Anyone dealing with software on the peer-to-peer Internet needs to work with concepts of encryption, including hashing, signatures, public and private keys, symmetric and asymmetric encryption, denial of service, and e.g. distributed hash tables, networks of trust such mysterious structures.
New Bitcoin users are forced to struggle with learning the basics of crypto, with additional internal terms like "block", "confirmation", "mining", "SPV client" and "51% attack", As well as economic concepts such as incentive compatibility and the nuances of centralization and decentralization.
Ethereum, as a generalized decentralized application development platform based on cryptocurrency, inevitably contains a collection of these concepts, and also adds many of its own concepts. In order to help someone new to Ethereum, whether they are cryptocurrency enthusiasts, entrepreneurs, social or political visionaries, web developers or ordinary people just seeing how this technology can improve their lives, the purpose of the list below is to To provide a basic summary of vocabulary commonly used by Ethereum users.
A process is said to be computationally infeasible if someone is interested in completing a process but takes an unrealistically long time to do so (eg, billions of years). In general, the computational steps of 2 raised to the power of 80 are considered to be the lower bound on computationally infeasible.
A hash function (or hash algorithm) is a process by which a document (such as a data block or file) is processed into small pieces of data (usually 32 bytes) that appear to be completely random, from which no Meaningful data can be recovered into documents, and the most important performance is that the result of hashing a particular document is always the same. Also, extremely importantly, it is computationally impossible to find two files with the same hash.
In general, even if the one-letter change file also completely disrupted hash; e.g., "Saturday" is SHA3 hashes c38bbc8e93c09f6ed3fe39b5135da91ad1a99d397ef16948606cdcbd14929f9d, SHA3 and the hash is Caturday b4013c0eed56d5a0b448b02ec1d10dd18c1b3832068fbbdc65b98fa9b14b6dbf. Hash values are often used as a globally agreed identifier for a specific document that cannot be forged.
The processing of a document (plaintext) in combination with a short string of data called a key (eg c85ef7d79691fe79573b1a7064c19c1a9819ebdbd1faaab1a8ec92344438aaf4). Encryption produces an output (ciphertext) that can be "decrypted" back to the original plaintext by someone else who has the key, but decryption is puzzling and computationally infeasible for someone without the key.
public key encryption
A special kind of encryption that has the process of generating two keys at the same time (often called a private key and a public key) so that a document encrypted with one key can be decrypted with the other key. Typically, as the name suggests, individuals publish their public keys and keep their private keys for themselves.
A digital signature algorithm is a process in which a user can use a private key to generate a short string of data called a signature for a document, so that anyone with the corresponding public key, signature and document can verify that (1) the document was created by a specific private key. "signed" by the owner of the key, (2) the document has not been changed since it was signed. Note that this is different from a traditional signature where you can smear the extra text after the signature and do so indistinguishable; any changes to the document after the digital signature will invalidate the signature.
An address is essentially a representation of a public key belonging to a particular user; for example, the address associated with the private key given above is cd2a3d9f938e13cd947ec05abc7fe734df8dd826. Note that in practice the address is technically the hash of a public key, but for simplicity it is best to ignore this distinction.
A transaction is a document that authorizes some specific action related to the blockchain. In a currency, the primary transaction type is the sending of currency units or tokens to others; in other systems, such as domain name registration, the act of making and completing offers and entering into contracts is also a valid transaction type.
A block is a data packet that contains zero or more transactions, the hash of the previous block (the "parent block"), and optionally other data. Every block except the initial "genesis block" contains the hash of its parent block. The entire set of blocks is called the blockchain, and contains the entire transaction history of a network. Note that some blockchain-based cryptocurrencies use the term "ledger" instead of blockchain. The two mean roughly the same thing, although in systems that use the term "ledger", each block usually includes a full copy of the current state of each account (e.g. currency balances, partially fulfilled contracts, registrations) , and allows users to discard outdated historical data.
An account is a record in the ledger, indexed by its address, which contains complete data about the state of the account. In a currency system, this includes currency balances and perhaps outstanding trade orders; in other cases more complex relationships can be stored in the account.
Proof of employment
An important feature in Bitcoin, Ethereum, and many other encrypted ledgers, means that the hash value in a block must be less than a certain target value. The reason for this is that in a decentralized system anyone can produce blocks, so in order to prevent flooding of blocks in the network and to provide a way to measure how much consensus there is after a particular version of the blockchain, making a Blocks are very tough. Since the hash value is pseudo-random, find a hash value ratio 0000000000000000000000000000000000000000000000000000000000,000, a small block, an average of 43 billion times. In all of these systems, the target value adjusts itself so that a node on the network finds a block every N minutes on average (e.g., N=10 for Bitcoin, N=1 for Ethereum),
A nonsense value in a block that is adjusted in an effort to satisfy proof-of-work conditions.
Mining is the process of iteratively totaling transactions, building blocks, and trying different nonces until a nonce is found that qualifies as proof-of-work. If a miner is lucky and produces a valid block, it is awarded a certain amount of coins (the full fees of the transactions in the block) as a reward. And all miners start trying to create a new block that contains the hash of the latest block that is the parent block.
For the same parent block, another block is created after another block has been created; stale blocks are usually discarded, which is a waste of energy.
In the case where 2 blocks that point to the same parent block are generated at the same time, some miners see one of the blocks, and other miners see the other. This leads to the simultaneous growth of 2 blockchains. Generally speaking, as miners on one chain get lucky and that chain grows, all miners will switch to that chain, and mathematically the score will almost finish itself within 4 blocks.
It is an intentional fork, when a user with a lot of mining power sends a transaction to buy a product, and after receiving the product makes another transaction to send the same amount of coins to himself. The attacker creates a block that is at the same level as the block containing the original transaction, but contains not the original transaction but a second transaction, and starts mining on this fork. Double spending can eventually be guaranteed to succeed at any block depth if the attacker has more than 50% of the mining power. Below 50%, there is a partial chance of success. But it often has the only significant possibility at depths 2-5. So on most cryptocurrency exchanges, gaming sites and financial services need to wait for 6 blocks to be produced (also called "6 confirmations") before accepting payments.
SPV client (or light client)
A client that downloads only a small portion of the blockchain enables users with low-power or low-storage hardware like smartphones and laptops to maintain nearly the same security guarantees through the sometimes selective download of small Part of the state, while blockchain verification and maintenance does not require megabytes of bandwidth or gigabytes of storage space.
The process of converting a data structure into a sequence of bytes. The encoding format that Ethereum uses internally is called Recursive Length Prefix Encoding (RLP) and is described here
A data structure that stores the state of each account. This tree is built by starting at each node, then dividing the nodes into groups of up to 16, then hashing each group, and then continuing to hash the result until the entire tree has a final "root hash" . This tree has important properties: -(1) There is exactly one possible tree, so each dataset corresponds to one possible root hash. -(2) It is easy to update, add, or delete tree nodes, and generate new root hashes. -(3) There is no way to modify any part of the tree without changing the root hash, so a signature or proof of work can vouch for the entire tree if the root hash is included in a signed document or valid block. -(4) Anyone can only provide a branch down to a specific node, which can be encrypted to prove that the node with the exact content is indeed in the tree. Patricia trees are also used to store accounts, transactions have been stored internally in uncle blocks. A more detailed explanation can be found here.
Spectre is a protocol by which blocks can contain not only the hash of their parent block, but also stale blocks that hash other child blocks (called uncles) of the parent's parent. This ensures that stale blocks still contribute to the security of the blockchain and alleviates the problem that large miners have an advantage on fast blockchains, since they are immediately aware of their blocks and therefore less likely to produce stale block.
A block that is a child of a parent block's parent, but not its own parent, or more generally a child of an ancestor, but not its own ancestor. If A is an uncle of B, then B is A's nephew.
Account random number
Transaction count for each account. This prevents replay attacks, where a transaction sends say 20 coins from A to B and can be replayed by B over and over again until A's account balance is continuously drained.
Ethereum Virtual Machine code, the programming language code that Ethereum's blockchain can contain. The EVM code associated with an account is executed each time a message is sent to this account, and has read/write storage and the ability to send messages itself.
##Message A "virtual transaction" sent by EVM code from one account to another. It should be noted that "transaction" and "message" are different in Ethereum; "transaction" in Ethereum term specifically refers to a physical digitally signed string of data, and each transaction triggers an associated message, But messages can also be sent via EVM code, in which case they are never represented as any data.
A key/value database contained in each account, where both keys and values are 32-byte strings, but can otherwise contain anything.
Externally Owned Account
Accounts controlled by private keys. Externally owned accounts cannot contain EVM code.
An account that contains and is controlled by the EVM's code. Contracts cannot be directly controlled by private keys unless compiled into EVM code, which has no owner once the contract is issued.
A cryptographic token that is the internal foundation of the Ethereum network. Ether is used to pay for transactions and computational fees for Ethereum transactions.
Roughly equivalent to the measurement of computational steps. Each transaction needs to include a gas limit, as well as a fee willing to pay per gas; miners can choose whether to include transactions and collect fees. The total amount of gas used by calculations resulting from a transaction that includes the original message and any sub-messages that may have been triggered, if it is greater than or equal to the gas limit, the transaction is processed. Unless the transaction is still valid and fees are still collected by miners, all changes are reverted if the total amount of gas is less than the limit. Every operation has a gas cost; for most operations, the cost is 1 gas, although some expensive operations will cost up to 100 gas, and the transaction itself will have a 500 gas cost.
Ethereum Browser: The upcoming Ethereum base client will exist in the form of a web browser that can be used to access normal websites and applications built on the Ethereum platform.
The upcoming peer-to-peer messaging protocol will be integrated into the ethereum browser.
An upcoming, peer-to-peer data storage protocol optimized for static web hosting, will be integrated into the ethereum browser.
LLL, Serpent and Mutan
A programming language for writing contract code that can be compiled into EVM code. serpent can be compiled to LLL.
The English abbreviation of proof-of-concept, another name for the pre-release version.
Decentralized Organization (GDO)
One has no central leadership, but uses a combination of formal democratic voting processes and consensus-active self-organization as its basic operating principles. A less impressive, but sometimes confusing, concept is "Geographically Decentralized Organizations" (GDOs), in which people work far apart and may not even have offices; GDOs may have a formal central lead.
A test used to find out how decentralized an organization is. The test is as follows: Suppose the organization has N people, then the aliens pick K people out of the organization at a time (say once a week), destroy their existence, and replace them in each group with K new people who don't know much about the organization. Now how many people can K be in order for the organization to work? In a dictatorship, it fails when K=1, i.e. the dictator is destroyed. The U.S. government is slightly better, but it would still be a big problem if all 638 members of the Senate and Congress suddenly disappeared. But something like Bitcoin or BitTorrent is resilient even to extremely high K values, as new agents can simply fill in the missing roles based on their economic motivations. There is also a more rigorous test, the Byzantine Theseus criterion, which involves randomly replacing K users with malicious actors at the same time for a period of time, and then replacing them with new users.
mandated democracy (or fluid democracy)
A governance mechanism for DOs (Decentralized Organizations) and DAOs (Decentralized Autonomous Organizations), by default everyone votes on everything, but individuals can choose specific others to vote for them on certain issues . This idea encapsulates the following trade-offs between 2 democracies, full direct democracy (everyone has the same power) and expert opinion/quick decision-making ability provided by some specific people (allowing people to submit themselves to friends, politicians, domain experts or anyone of their choice).
theoretical government partially controlled by speculative markets
It was originally proposed by Robin Hanson to manage the governance mechanism of political organizations. But it's actually very applicable to DOs and DAOs: governance through prediction markets. Fundamentally, some easy-to-measure success criteria are selected, and tokens are issued, determined by the value of the success criteria, which will be paid at some time in the future (eg, 1 year later), for each Possible actions to be taken all use one such token. These tokens are all exchanged for the corresponding USD tokens, if the corresponding measure is implemented, exactly 1 USD will be paid (if the corresponding measure is not implemented, both types of tokens pay 0 USD, so are being implemented The probability of the action does not affect the price). Actions expected by the market will have the best results and will be executed when their tokens have a high price in the market. This provides another autonomous, choice mechanism while rewarding expert opinion.
Economics Token System
Essentially a tradable virtual substitute. More formally, a token system is a database that maps addresses to numbers and has the following properties, the basic allowed operation is to transfer N tokens from A to B, provided that N is non-negative and N is not less than A The current balance of , and the document authorizing the transfer is digitally signed by A. Secondary "issuance" and "consumption" operations can also exist, transaction fees can also be collected, and it is also possible for many parties to make transfers at the same time. Typical use cases include currencies, network cryptographic tokens, company shares and digital gift cards.
A database that maps names to values. For the simplest example, anyone can register an entry if the name is not already taken (perhaps after paying some fees). If the name is already taken, it can only be changed (if any) by the account that made the original registration (in many systems, ownership also transfers). Namespaces can be used to store usernames, public keys, Internet domain names, token systems or other namespaces, and many other applications.
A set of cryptographically verifiable interactions, with attributes created by the same person.
A set of cryptographically verifiable interactions with the following properties: Created by the same person. Plus the constraint that a person can't have more than one unique identity.
If everyone is better off "playing by the rules" than trying to cheat, unless at least a large number of people agree to cheat together at the same time, then the protocol is incentive compatible.
The idea of sending a certain amount of tokens to each unique identity every once in a while (say, months). Its ultimate purpose is to enable people who are unwilling or unable to work to survive on this allowance. These tokens can simply be created out of thin air, or from revenue streams (such as from revenue-generating entities or governments). To enable people to live on basic income alone, a combination of multiple income streams may be used.
A service that provides a very small benefit to a very large number of people. This way no individual has any influence over whether to produce or not, and therefore no one has an incentive to pay.
An attribute of an identity that other entities consider to be (1) competent for some specific task, or (2) trustworthy in some circumstances. For example, it is unlikely to betray others for short-term profits.
web of trust
The following idea, if A highly trusts B and B highly trusts C, then A may trust C. A complex and powerful mechanism for determining the reliability of a particular individual under a particular concept can theoretically be inferred from this principle.
If two low-reputation entities are engaged in trade, the payer may wish to leave the money with the high-reputation third party and instruct the third party to send the money to the payee only after the product has been delivered. This reduces the risk of payer or payee fraud.
The digital assets put into the contract involving another party will be automatically confiscated by the other party if certain conditions are not met.
The digital assets put into the contract involving another party, if certain conditions are not met, the assets will be automatically destroyed or donated to charity or basic income funds. It may be possible to distribute the benefits widely, but it must be such that specific individuals do not benefit significantly.