IB CS Case study 2020:

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

Transaction pool

The transaction pool (or mempool, as it's usually called) is not a network-wide pool. Each node maintains its own mempool. When a node receives your transaction, it will validate and add it to its own mempool, and possibly broadcast it further on.

Ledger

generally refers to the bill of quantities made in accounts. Same in cryptoworld, it makes sense with the record of transactions being done among Bitcoin users. e.g Blockchain, Ethereum etc. Also, it is a secured database which stores and holds the money of people in the form of bitcoins.

Candidate block

is a block that a mining node (miner) is trying to mine in order to receive the block reward. So a candidate block may be described as a temporary block that will be either validated or discarded by the network. Miners compete with each other to validate the next block and add it to the blockchain, but first, they have to create a candidate block to participate in the mining competition. Candidate blocks are created by miners by collecting and organizing multiple unconfirmed transactions from the memory pool. The transactions are then hashed to form a Merkle tree structure, which will eventually produce a Merkle root (or root hash). The Merkle root is a single hash that represents all previous hashes of that tree, and therefore, all transactions that were included in that particular block.

Blockchain

is a growing list of records, called blocks, that are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data (generally represented as a Merkle tree).

Merkle tree

is a hash-based data structure that is a generalization of the hash list. It is a tree structure in which each leaf node is a hash of a block of data, and each non-leaf node is a hash of its children. Typically, Merkle trees have a branching factor of 2, meaning that each node has up to 2 children. Merkle trees are used in distributed systems for efficient data verification. They are efficient because they use hashes instead of full files. Hashes are ways of encoding files that are much smaller than the actual file itself. Currently, their main uses are in peer-to-peer networks such as Tor, Bitcoin, and Git.

PuTTYgen

is a key generator. It generates pairs of public and private keys to be used with WinSCP. PuTTYgen generates RSA, DSA, ECDSA, and Ed25519 keys.

Digital signature

is a mathematical technique used to validate the authenticity and integrity of a message, software or digital document. The digital equivalent of a handwritten signature or stamped seal, a digital signature offers far more inherent security, and it is intended to solve the problem of tampering and impersonation in digital communications. Digital signatures can provide the added assurances of evidence of origin, identity and status of an electronic document, transaction or message and can acknowledge informed consent by the signer.

Entropy

is a measure of true randomness. An n-bit number chosen uniformly at random with a perfect random number generator has n bits of entropy, and entropy of other things can be computed in comparison to this case. For example, 4 words chosen uniformly at random from a wordlist of 1024 words has 40 bits of entropy because you can represent each word by 10 bits (2^10 = 1024) and stick the 4 groups of 10 bits together to get a 40-bit number chosen uniformly at random. When dealing with things chosen uniformly at random, you can also compute the entropy by calculating the base-2 logarithm of the total possible outcomes, eg. there are 6^20 possible outcomes when rolling a 6-sided die 20 times and then writing down the results one after another (ie. not summing or reordering them), so the result has log_2(6^20) ~= 51.7 bits of entropy. If the result is in any way biased (like the sum of dice rolls, which is very much not uniformly distributed), then you can still calculate the entropy, but it's more difficult.

Non-repudiation

is a method of guaranteeing message transmission between parties via digital signature and/or encryption. It is one of the five pillars of information assurance (IA). The other four are availability, integrity, confidentiality and authentication. It is often used for digital contracts, signatures and email messages. By using a data hash, proof of authentic identifying data and data origination can be obtained. Along with digital signatures, public keys can be a problem when it comes to nonrepudiation if the message recipient has exposed, either knowingly or unknowingly, their encrypted or secret key.

Distributed consensus

refers to the elaborate, largely mathematically-based game that the members of the bitcoin network use to keep in sync their tens of thousands of individual duplicate copies of the entire set of transactions that ever happened in the blockchain. Some basic facts you need, in order to understand the general idea: Nobody, or rather every member, is in charge of the bitcoin network. There are about 24,000 full nodes in the bitcoin network. Each "full node" keeps a complete copy of the entire database of transactions that have ever happened on the bitcoin network. That's called "the blockchain". The data in the blockchain database is chunked up into groups of transactions. Each group is called a block. The data in each block includes a mathematical dependency on the data in the previous block, which links them together. That's the chain part. You can add a transaction to the bitcoin network by just asking any full node to add it. That node sends the transaction out to the rest of the network.

Immutable transactions

the ability for a blockchain ledger to remain a permanent, indelible, and unalterable history of transactions — is a definitive feature that blockchain evangelists highlight as a key benefit. Immutability has the potential to transform the auditing process into a quick, efficient, and cost-effective procedure, and bring more trust and integrity to the data businesses use and share every day.

One-way function

A hash is designed to act as a one-way function — you can put data into a hashing algorithm and get a unique string, but if you come upon a new hash, you cannot decipher the input data it represents. A unique piece of data will always produce the same hash.

Determinism

A hash procedure must be deterministic—meaning that for a given input value it must always generate the same hash value. In other words, it must be a function of the data to be hashed, in the mathematical sense of the term. This requirement excludes hash functions that depend on external variable parameters, such as pseudo-random number generators or the time of day. It also excludes functions that depend on the memory address of the object being hashed in cases that the address may change during execution (as may happen on systems that use certain methods of garbage collection), although sometimes rehashing of the item is possible. The determinism is in the context of the reuse of the function. For example, Python adds the feature that hash functions make use of a randomized seed that is generated once when the Python process starts in addition to the input to be hashed. The Python hash is still a valid hash function when used within a single run. But if the values are persisted (for example, written to disk) they can no longer be treated as valid hash values, since in the next run the random value might differ.

Nonce

A nonce ("number only used once") is a number added to a hashed block that, when rehashed, meets the difficulty level restrictions. The nonce is the number that blockchain miners are solving for.

51 % Attack

refers to an attack on a blockchain - usually bitcoin's, for which such an attack is still hypothetical - by a group of miners controlling more than 50% of the network's mining hash rate, or computing power. The attackers would be able to prevent new transactions from gaining confirmations, allowing them to halt payments between some or all users. They would also be able to reverse transactions that were completed while they were in control of the network, meaning they could double-spend coins. They would almost certainly not be able to create a new coin or alter old blocks, so a 51% attack would probably not destroy bitcoin or another blockchain-based currency outright, even if it proved highly damaging.

Self-referential data structure

A self-referential class contains a reference member that refers to a class object of the same class type. Self-referential objects can be linked together to form useful data structures such as lists, queues, stacks and trees.

Takeover attack

Account takeover is a form of identity theft where a fraudster illegally gets access to a victim's bank or online e-commerce account using bots. A successful account takeover attack leads to fraudulent transactions and unauthorized shopping from the victim's compromised account.

Cryptographic hash

This function is a mathematical function used in cryptography. Typical hash functions take inputs of variable length to return outputs of fixed length. A cryptographic hash function combines the message-passing capabilities of hash functions with security properties.

Collision resistance

This property requires that two different input messages should not hash to the same output. In other words, h(x) != h(z). This property is also known as strong collision resistance.

Block

are files where data pertaining to the Bitcoin network is permanently recorded. A block records some or all of the most recent Bitcoin transactions that have not yet entered any prior blocks. Thus a block is like a page of a ledger or record book. Each time a block is 'completed', it gives way to the next block in the blockchain. A block is thus a permanent store of records which, once written, cannot be altered or removed.

Merkle proof

are used to decide upon the following factors: If the data belongs in the Merkle tree To concisely prove the validity of data being part of a dataset without storing the whole data set To ensure the validity of a certain data set being inclusive in a larger data set without revealing either the complete data set or its subset.

Miner

can be defined as accountants who records every transaction to the blockchain. The concept is simple, proof of payment is important if you want your payment to be valid. The miners are the ones who keep the record of your payment. Hence they are record keepers who keep the system updated of new payments and existing ones.

Proof of work

is a piece of data which is difficult (costly, time-consuming) to produce but easy for others to verify and which satisfies certain requirements. Producing proof of work can be a random process with low probability so that a lot of trial and error is required on average before a valid proof of work is generated. Bitcoin uses the Hashcash proof of work system.

Double-spend problem

is a problem in which the same digital currency can be spent more than once. In other words, double-spending is an instance in which a transaction uses the same input as another transaction that has already been broadcast on the network. This is a flaw that is unique to digital currencies because digital information is something that can be reproduced rather easily. Digital currencies such as Bitcoin can be thought of as being a digital file. If, for example, Bob has a file that has been saved locally to his computer. There is nothing preventing Bob from simply copying this file as many times as he wants and sharing the file with multiple individuals. This same principle can be applied to digital currencies. It is not ideal for the same digital currency to be spendable more than once, because it can result in inflation and a loss of trust in that currency, making it effectively worthless.

Cryptocurrency

is a type of digital currency that uses cryptography for security and anti-counterfeiting measures. Public and private keys are often used to transfer cryptocurrency between individuals. As a counter-culture movement that is often connected to cypherpunks, cryptocurrency is essentially a fiat currency. This means users must reach a consensus about cryptocurrency's value and use it as an exchange medium. However, because it is not tied to a particular country, its value is not controlled by a central bank. With bitcoin, the leading functioning example of cryptocurrency, value is determined by market supply and demand, meaning that it behaves much like precious metals, like silver and gold.

Non-invertibility

is another feature that's often desirable, depending on the intended usage of the algorithm. This says that it should be impossible, or at least prohibitively difficult, to work out the input that led to any given hash. Ideally, it should be easy to transform data into a hash, and practically impossible to go the other way.

SHA256

is one of a number of cryptographic hash functions. A cryptographic hash is like a signature for a text or a data file. SHA-256 algorithm generates an almost-unique, fixed-size 256-bit (32-byte) hash. Hash is a one-way function - it cannot be decrypted back. This makes it suitable for password validation, challenge hash authentication, anti-tamper, digital signatures. SHA-256 is one of the successor hash functions to SHA-1 and is one of the strongest hash functions available.

Genesis block

is the first block of a blockchain. Modern versions of Bitcoin number it as block 0, though very early versions counted it as block 1. The genesis block is almost always hardcoded into the software of the applications that utilize its blockchain. It is a special case in that it does not reference a previous block, and for Bitcoin and almost all of its derivatives, it produces an unspendable subsidy.

Mining

is the process of creating, or rather discovering, bitcoin currency. Unlike real-world money that is printed when more is needed, bitcoin cannot simply be willed into existence but has to be mined through mathematical processes. Bitcoin maintains a public ledger that contains past transactions, and mining is the process of adding new transactions to this ledger.

Key pair generation

is the process of generating keys for cryptography. The key is used to encrypt and decrypt data whatever the data is being encrypted or decrypted. Modern cryptographic systems include symmetric-key algorithms (such as DES and AES) and public-key algorithms (such as RSA). Symmetric-key algorithms use a single shared key; keeping data secret requires keeping this key secret. Public-key algorithms use a public key and a private key. The public key is made available to anyone (often by means of a digital certificate). A sender will encrypt data with the public key; only the holder of the private key can decrypt this data.

Block header

is used to identify a particular block on an entire blockchain and is hashed repeatedly to create a proof of work for mining rewards.


Ensembles d'études connexes

General Chemistry Chapter 9 Section 3: Stoichiometry of Gaseous Substances, Mixtures, and Reactions

View Set

Pharmacology Chapter 58: Drugs for thyroid disorders

View Set

Unit 8: Period 8, 1945-1980, Part 1 (AP EXAM PREP)

View Set

PrepU Chapter 9: Teaching and Counseling

View Set

Operating, Investing, and Financing Activities

View Set

Level G: Unit 3 - Completing the Sentences

View Set