Index
A
- ABI (application binary interface), The Ethereum Contract ABI-Selecting a Solidity Compiler and Language Version
- account
- address object, address object
- addresses, Ethereum Addresses-Detecting an error in an EIP-55 encoded address
- air-gapped system, Separating Signing and Transmission (Offline Signing)
- airdrops, Other Notable Ethereum Forks
- application binary interface (ABI), The Ethereum Contract ABI-Selecting a Solidity Compiler and Language Version
- application-specific integrated circuits (ASIC), Ethash: Ethereum’s Proof-of-Work Algorithm
- approve & transferFrom workflow, ERC20 workflows: “transfer” and “approve & transferFrom”, Demonstrating the “approve & transferFrom” workflow-Demonstrating the “approve & transferFrom” workflow
- arithmetic over/underflows, Arithmetic Over/Underflows-Real-World Examples: PoWHC and Batch Transfer Overflow (CVE-2018–10299)
- ASIC (application-specific integrated circuits), Ethash: Ethereum’s Proof-of-Work Algorithm
- assert function
- assymetric cryptography (see public key cryptography)
- attack surface, Security by Maturity
- attribution, Using Code Examples
- Auction DApp, A Basic DApp Example: Auction DApp-From App to DApp
- authenticity proofs, Data Authentication
- await construct, Asynchronous Operation with Await
B
- backward compatibility, Ethereum vs. Bitcoin, Ethereum’s Development Culture
- balance, world state and, Ethereum State
- Bamboo, Introduction to Ethereum High-Level Languages
- Bancor, Real-World Examples: ERC20 and Bancor
- batching, The JSON-RPC Interface
- batchTransfer function, Real-World Examples: PoWHC and Batch Transfer Overflow (CVE-2018–10299)
- big-endian, defined, Quick Glossary
- BIP-32 standard
- BIP-39 standard, Seeds and Mnemonic Codes (BIP-39), Mnemonic Code Words (BIP-39)-Working with mnemonic codes
- BIP-43 standard, Navigating the HD wallet tree structure
- BIP-44 standard, Navigating the HD wallet tree structure
- BIPs (see Bitcoin improvement proposals)
- Bitcoin
- Bitcoin Core, Components of a Blockchain
- Bitcoin improvement proposals (BIPs), Quick Glossary
- bitcoind client, Components of a Blockchain
- blind calls, Raw call, delegatecall
- block gas limit, Block Gas Limit
- block object, Block context
- block timestamp manipulation security threat, Block Timestamp Manipulation-Real-World Example: GovernMental
- block, defined, Quick Glossary
- blockchain
- BlockOne IQ, Oracle Client Interfaces in Solidity
- brainwallets, mnemonic words vs., Mnemonic Code Words (BIP-39)
- broadcast (multicast) oracle, Oracle Design Patterns
- browser wallets, Browser Wallets
- burn (see ether burn)
- Buterin, Vitalik, Quick Glossary
- bytecode, Quick Glossary
- bytecode operations, The EVM Instruction Set (Bytecode Operations)-The EVM Instruction Set (Bytecode Operations)
- Byzantium fork, Quick Glossary, Ethereum’s Four Stages of Development
C
- CALL opcode, DELEGATECALL
- calls, external, Unchecked CALL Return Values-Real-World Example: Etherpot and King of the Ether
- Casper, Casper: Ethereum’s Proof-of-Stake Algorithm
- Casper CBC, Casper: Ethereum’s Proof-of-Stake Algorithm
- Casper FFG, Casper: Ethereum’s Proof-of-Stake Algorithm
- chain code, Extended public and private keys
- chain identifier, Raw Transaction Creation with EIP-155
- ChainLink, Decentralized Oracles
- checks-effects-interactions pattern, Preventative Techniques
- checksum
- child private keys, Hardened child key derivation
- Cipher Browser, Mobile (Smartphone) Wallets
- class inheritance, Class Inheritance
- clients, Ethereum, Ethereum Clients-Conclusions
- code examples, obtaining and using, Code Examples
- cold-storage wallets, Extended public and private keys
- command-line interface, Software Requirements for Building and Running a Client (Node)
- comments and questions, How to Contact Us
- compiler directive, Selecting a Solidity Compiler and Language Version
- compiling
- concurrency, nonces and, Concurrency, Transaction Origination, and Nonces
- consensus, Consensus-Conclusions
- consensus rules, Quick Glossary
- constant (function keyword), Functions
- Constantinople fork, Quick Glossary, Ethereum’s Four Stages of Development
- constructor function, Contract Constructor and selfdestruct
- constructor/contract name modification security threat
- contact information, How to Contact Us
- contract accounts, Externally Owned Accounts (EOAs) and Contracts
- contract creation transaction, Quick Glossary, Special Transaction: Contract Creation-Special Transaction: Contract Creation, What Is a Smart Contract?
- contract data type, Contract Definition
- contract definition, Solidity, Contract Definition
- contract destruction, Contract Constructor and selfdestruct
- contract invocation, Transmitting a Data Payload to an EOA or Contract
- contract name modification/constructor security threat
- contract object, Contract Inheritance-Contract Inheritance
- convert function (Vyper), Variable Typecasting
- counterparty risk, Counterparty Risk
- cryplet, Computation Oracles
- cryptographic hash functions, Cryptographic Hash Functions-Which Hash Function Am I Using?
- cryptography, Cryptography-Conclusions
- CryptoRoulette honey pot, Real-World Examples: OpenAddressLottery and CryptoRoulette Honey Pots
- currency units, Ether Currency Units
D
- DAG (directed acyclic graph), Ethash: Ethereum’s Proof-of-Work Algorithm
- Dagger-Hashimoto algorithm, Ethash: Ethereum’s Proof-of-Work Algorithm
- DAO (Decentralized Autonomous Organization), Ethereum’s Four Stages of Development, The Decentralized Autonomous Organization (The DAO)-Timeline of the DAO Hard Fork
- Dapp, Testing Smart Contracts
- dapp.tools, dapp.tools
- DApps (decentralized applications), Decentralized Applications (DApps)-Conclusions
- Auction DApp example, A Basic DApp Example: Auction DApp-From App to DApp
- backend (smart contract), Backend (Smart Contract)
- data storage, Data Storage
- decentralized message communication protocols, Decentralized Message Communications Protocols
- defined, Quick Glossary
- elements of, What Is a DApp?-Decentralized Message Communications Protocols
- Ethereum as platform for, From General-Purpose Blockchains to Decentralized Applications (DApps)
- frontend (web user interface), Frontend (Web User Interface)
- IPFS and, IPFS
- Swarm and, Swarm
- web3 and, The Third Age of the Internet
- data authentication, oracles and, Data Authentication
- data field, Transaction Value and Data-Transmitting Value to EOAs and Contracts
- data mapping, ERC20 data structures
- data payload, transmitting to EOAs and contracts, Transmitting a Data Payload to an EOA or Contract-Transmitting a Data Payload to an EOA or Contract
- data storage
- decentralized applications (see DApps)
- Decentralized Autonomous Organization (see DAO)
- declarative programming, Introduction to Ethereum High-Level Languages
- decorators, Vyper, Decorators
- deed
- default function (see fallback function)
- default visibility specifier security problem, Default Visibilities-Real-World Example: Parity Multisig Wallet (First Hack)
- defensive programming, Security Best Practices
- delegatecall method, Raw call, delegatecall
- DELEGATECALL opcode security threat, DELEGATECALL-Real-World Example: Parity Multisig Wallet (Second Hack)
- denial of service (DoS) attacks, Denial of Service (DoS)-Real-World Examples: GovernMental
- deployment bytecode, Contract Deployment Code
- deployment scripts, Truffle migrations—understanding deployment scripts-Truffle migrations—understanding deployment scripts
- deterministic (seeded) wallets
- development culture, Ethereum, Ethereum’s Development Culture
- difficulty setting, Quick Glossary
- Diffie, Whitfield, Public Key Cryptography and Cryptocurrency
- digital fingerprint, Cryptographic Hash Functions
- digital signatures, Keys and Addresses, Digital Signatures-Raw Transaction Creation with EIP-155
- creating, Creating a digital signature
- defined, Quick Glossary
- ECDSA and, The Elliptic Curve Digital Signature Algorithm
- ECDSA math, ECDSA Math-ECDSA Math
- mechanism of operation, How Digital Signatures Work
- private key and, Public Key Cryptography and Cryptocurrency
- separating signing and transmission, Separating Signing and Transmission (Offline Signing)-Separating Signing and Transmission (Offline Signing)
- signature prefix value (v) and public key recovery, The Signature Prefix Value (v) and Public Key Recovery
- signing in practice, Transaction Signing in Practice
- verifying, Verifying the Signature
- Wikipedia definition, The Elliptic Curve Digital Signature Algorithm
- directed acyclic graph (DAG), Ethash: Ethereum’s Proof-of-Work Algorithm
- discrete logarithm problem, Public Key Cryptography and Cryptocurrency
- distributed state machine, Ethereum as, Ethereum: A General-Purpose Blockchain
- DoS attacks (see denial of service attacks)
- Dual_EC_DRBG, Ethereum’s Cryptographic Hash Function: Keccak-256
- duress wallet, Optional passphrase in BIP-39
- dynamically sized arrays, Avoid Dynamically Sized Arrays
E
- ECDSA (see Elliptic Curve Digital Signature Algorithm)
- EIP-155 Simple Replay Attack Protection standard, Raw Transaction Creation with EIP-155
- EIP-55 (Ethereum Improvement Proposal 55)
- EIPs (Ethereum Improvement Proposals), Ethereum Improvement Proposals (EIPs)
- Ellaism, Other Notable Ethereum Forks
- elliptic curve cryptography, Public Key Cryptography and Cryptocurrency, Elliptic Curve Cryptography Explained-Elliptic Curve Arithmetic Operations
- Elliptic Curve Digital Signature Algorithm (ECDSA)
- Embark, Embark, Testing Smart Contracts
- Emerald Platform, Emerald Platform
- Emerald Wallet, Choosing an Ethereum Wallet
- EMOD (Ethereum Modification), Other Notable Ethereum Forks
- empty input test, Which Hash Function Am I Using?
- encryption, Cryptography
- (see also keys and addresses)
- ENS (Ethereum Name Service), Quick Glossary, The Ethereum Name Service (ENS)-Resolving a Name to a Swarm Hash (Content)
- bottom layer: name owners and resolvers, Bottom Layer: Name Owners and Resolvers-Resolvers
- choosing a valid name, How to choose a valid name
- DApps and, The Ethereum Name Service (ENS)-Resolving a Name to a Swarm Hash (Content)
- design of, The ENS Specification-Top Layer: The Deeds
- history of, History of Ethereum Name Services
- managing your ENS name, Managing Your ENS Name
- middle layer: .eth nodes, Middle Layer: The .eth Nodes
- Namehash algorithm, The Namehash algorithm
- registering a name, Registering a Name-Registering a Name
- resolvers, Resolvers
- resolving a name, ENS Resolvers-Resolving a Name to a Swarm Hash (Content)
- resolving a name to a Swarm hash, Resolving a Name to a Swarm Hash (Content)
- root node ownership, Root node ownership
- specification, The ENS Specification
- top layer: deeds, Top Layer: The Deeds
- Vickrey auctions, Vickrey auctions
- entropy
- entropy illusion security threat, Entropy Illusion
- EOA (Externally Owned Account)
- ephemeral private key, ECDSA Math
- equity tokens
- ERC (Ethereum Request for Comments), Quick Glossary
- (see also EIPs (Ethereum Improvement Proposals))
- ERC20 token standard, The ERC20 Token Standard-ERC20 implementations
- ERC223 token standard proposal, ERC223: A Proposed Token Contract Interface Standard
- ERC721 non-fungible token standard, ERC721: Non-fungible Token (Deed) Standard-ERC721: Non-fungible Token (Deed) Standard
- ERC777 token standard proposal, ERC777: A Proposed Token Contract Interface Standard-ERC777 hooks
- error handling, Solidity, Error Handling (assert, require, revert)
- ETC (see Ethereum Classic)
- ETF (EthereumFog), Other Notable Ethereum Forks
- eth nodes, Middle Layer: The .eth Nodes
- Ethash, Quick Glossary, Ethash: Ethereum’s Proof-of-Work Algorithm
- ETHB (EtherBTC), Other Notable Ethereum Forks
- Ether (cryptocurrency), Quick Glossary
- ether (generally)
- ether burn, Transaction Recipient, Special Transaction: Contract Creation
- EtherBTC (ETHB), Other Notable Ethereum Forks
- Ethereum (generally)
- about, What Is Ethereum?-What This Book Will Teach You
- and EVM, Introducing the World Computer
- as general-purpose blockchain, Ethereum: A General-Purpose Blockchain
- basics, Ethereum Basics-Conclusions
- birth of, The Birth of Ethereum
- Bitcoin compared to, Compared to Bitcoin
- blockchain components, Components of a Blockchain, Ethereum’s Components
- clients (see clients, Ethereum)
- control and responsibility, Control and Responsibility-Control and Responsibility
- currency units, Ether Currency Units
- DApps and, From General-Purpose Blockchains to Decentralized Applications (DApps)
- development culture, Ethereum’s Development Culture
- EIPs, Ethereum Improvement Proposals (EIPs)
- EOAs and contracts, Externally Owned Accounts (EOAs) and Contracts
- Ethereum Classic compared to, Ethereum and Ethereum Classic
- fork history, Ethereum Fork History-Other Notable Ethereum Forks
- four stages of development, Ethereum’s Four Stages of Development
- MetaMask basics, Getting Started with MetaMask-Exploring the Transaction History of an Address
- purpose of, Compared to Bitcoin
- reasons to learn, Why Learn Ethereum?
- standards, Ethereum Improvement Proposals (EIPs)
- Turing completeness and, Ethereum and Turing Completeness
- wallet choices, Choosing an Ethereum Wallet
- web3 and, The Third Age of the Internet
- Ethereum Classic (ETC)
- Ethereum Improvement Proposals (see EIP entries)
- Ethereum Modification (EMOD), Other Notable Ethereum Forks
- Ethereum Name Service (see ENS)
- Ethereum Virtual Machine (see EVM)
- EthereumFog (ETF), Other Notable Ethereum Forks
- EthereumJS, Raw Transaction Creation and Signing, EthereumJS
- EthereumJS helpeth, Inter Exchange Client Address Protocol, EthereumJS helpeth: A Command-Line Utility
- EtherInc (ETI), Other Notable Ethereum Forks
- EtherJar, EtherJar
- Etherpot smart contract lottery, Real-World Example: Etherpot and King of the Ether
- ethers.js, ethers.js
- EtherZero (ETZ), Other Notable Ethereum Forks
- ethpm project, Contract Libraries
- Ethstick contract, Real-World Example: Ethstick
- ETI (EtherInc), Other Notable Ethereum Forks
- events
- EVM (Ethereum Virtual Machine), The Ethereum Virtual Machine-Conclusions
- about, What Is the EVM?
- and Ethereum high-level languages, Introduction to Ethereum High-Level Languages-Introduction to Ethereum High-Level Languages
- as world computer, Introducing the World Computer
- block gas limit, Block Gas Limit
- comparison with existing technology, Comparison with Existing Technology
- compiling Solidity to EVM bytecode, Compiling Solidity to EVM Bytecode-Compiling Solidity to EVM Bytecode
- contract deployment code, Contract Deployment Code-Contract Deployment Code
- defined, Quick Glossary
- disassembling bytecode, Disassembling the Bytecode-Disassembling the Bytecode
- Ethereum state updating, Ethereum State
- gas accounting considerations, Gas Accounting Considerations
- gas accounting during execution, Gas Accounting During Execution
- gas and, Implications of Turing Completeness, Gas-Who decides what the block gas limit is?
- gas cost vs. gas price, Gas Cost Versus Gas Price
- instruction set (bytecode operations), The EVM Instruction Set (Bytecode Operations)-The EVM Instruction Set (Bytecode Operations)
- opcodes and gas consumption, Ethereum EVM Opcodes and Gas Consumption
- Turing completeness and Gas, Turing Completeness and Gas
- EVM assembly language, Quick Glossary
- EVM bytecode, Introduction to Ethereum High-Level Languages
- EVM OPCODES, The EVM
- Expanse, Other Notable Ethereum Forks
- explicit typecasting, Variable Typecasting
- extended keys, Extended public and private keys
- external calls, Unchecked CALL Return Values-Real-World Example: Etherpot and King of the Ether
- external contract referencing security threat, External Contract Referencing-Real-World Example: Reentrancy Honey Pot
- external function, Functions
- Externally Owned Account (see EOA)
F
- fallback function, Quick Glossary, A Simple Contract: A Test Ether Faucet, Functions
- fast synchronization, The First Synchronization of Ethereum-Based Blockchains
- faucet, defined, Quick Glossary
- Faucet.sol contract (test example)
- adding constructor and selfdestruct to, Adding a Constructor and selfdestruct to Our Faucet Example
- adding events to, Events-Catching events
- catching events, Catching events
- compiling, Compiling the Faucet Contract-Compiling the Faucet Contract, Compiling with the Solidity Compiler (solc)
- creating, A Simple Contract: A Test Ether Faucet-A Simple Contract: A Test Ether Faucet
- interacting with, Interacting with the Contract-Viewing the Contract Address in a Block Explorer
- METoken approve & transferFrom workflow demonstration, Demonstrating the “approve & transferFrom” workflow-Demonstrating the “approve & transferFrom” workflow
- METoken project, Sending ERC20 tokens to contract addresses-Sending ERC20 tokens to contract addresses
- on the blockchain, Creating the Contract on the Blockchain-Creating the Contract on the Blockchain
- sending ether to, Funding the Contract-Funding the Contract
- viewing contract address in a block explorer, Viewing the Contract Address in a Block Explorer
- withdrawing funds from, Withdrawing from Our Contract-Withdrawing from Our Contract
- Federal Information Processing Standard (FIPS), Ethereum’s Cryptographic Hash Function: Keccak-256
- fees (see gas)
- Fibonacci sequences, The Vulnerability-The Vulnerability
- finney, Quick Glossary
- FIPS (Federal Information Processing Standard), Ethereum’s Cryptographic Hash Function: Keccak-256
- FIPS-202, Ethereum’s Cryptographic Hash Function: Keccak-256
- first synchronization
- floating-point representation security risk, Floating Point and Precision-Real-World Example: Ethstick
- flood routing, Transaction Propagation
- forks, Quick Glossary, Ethereum Fork History-Other Notable Ethereum Forks
- frameworks, Frameworks-ZeppelinOS
- front-running attacks, Race Conditions/Front Running-Real-World Examples: ERC20 and Bancor
- Frontier, Quick Glossary, Ethereum’s Four Stages of Development
- full node
- function declarations, ordering of, Function and Variable Ordering
- function invocation, Transmitting a Data Payload to an EOA or Contract
- function modifiers, Function Modifiers
- function overloading, Function Overloading
- fungible tokens, Tokens and Fungibility
- (see also ERC20 token standard)
G
- Ganache
- gas
- accounting considerations, Gas Accounting Considerations
- accounting during execution, Gas Accounting During Execution
- as counter to Turing completeness, Implications of Turing Completeness
- avoiding calls to other contracts, Avoid Calls to Other Contracts
- basics, Sending Ether from MetaMask
- block gas limit, Block Gas Limit
- conserving, Gas Considerations-Estimating Gas Cost
- cost vs. price, Gas Cost Versus Gas Price
- defined, Quick Glossary
- dynamically sized arrays and, Avoid Dynamically Sized Arrays
- estimating cost of, Estimating Gas Cost-Estimating Gas Cost
- EVM and, Gas-Who decides what the block gas limit is?
- EVM opcodes and gas consumption, Ethereum EVM Opcodes and Gas Consumption
- negative costs, Negative gas costs
- on test networks, Sending Ether from MetaMask
- tokens and, Issues with ERC20 Tokens
- transactions and, Transaction Gas-Transaction Gas
- gas cost, gas price vs., Gas Cost Versus Gas Price
- gas limit, Quick Glossary
- gasLimit field, Transaction Gas
- gasPrice field, Transaction Gas
- generator point, Public Keys, Generating a Public Key
- genesis block, Quick Glossary
- Geth (Go-Ethereum), Software Requirements for Building and Running a Client (Node)
- git, Software Requirements for Building and Running a Client (Node)
- global state trie, Reading and Writing Data
- Go, Software Requirements for Building and Running a Client (Node)
- (see also Geth (Go-Ethereum))
- GovernMental Ponzi scheme
- graphics processing unit (GPU), mining and, Ethash: Ethereum’s Proof-of-Work Algorithm
H
- halting problem, Ethereum and Turing Completeness, Turing Completeness and Gas
- hard forks, Quick Glossary, Ethereum’s Four Stages of Development, Ethereum Fork History-Other Notable Ethereum Forks, The DAO Hard Fork-Timeline of the DAO Hard Fork
- (see also DAO; other specific hard forks, e.g.: Spurious Dragon)
- hardened derivation
- hardware wallets, Wallet Best Practices, Extended public and private keys
- hash collision, Cryptographic Hash Functions
- hash functions, Cryptographic Hash Functions-Which Hash Function Am I Using?
- hash, defined, Quick Glossary
- HD wallet seed, Quick Glossary
- Hellman, Martin, Public Key Cryptography and Cryptocurrency
- helpeth command-line tool, Inter Exchange Client Address Protocol, EthereumJS helpeth: A Command-Line Utility
- hierarchical deterministic wallets (BIP-32/BIP-44), Hierarchical Deterministic Wallets (BIP-32/BIP-44)
- Homestead, Quick Glossary, Ethereum’s Four Stages of Development
- honey pots, Real-World Example: Reentrancy Honey Pot-Real-World Example: Reentrancy Honey Pot
- hybrid programming languages, Introduction to Ethereum High-Level Languages
I
- IBAN (International Bank Account Number), Inter Exchange Client Address Protocol
- ICAP (Inter-exchange Client Address Protocol), Quick Glossary, Inter Exchange Client Address Protocol-Inter Exchange Client Address Protocol
- Ice Age, Quick Glossary, Ethereum’s Four Stages of Development
- ICOs (see Initial Coin Offerings)
- IDE (Integrated Development Environment), Quick Glossary
- immediate-read oracles, Oracle Design Patterns
- immutable deployed code problem, Quick Glossary
- imperative programming, Introduction to Ethereum High-Level Languages
- implicit typecasting, Variable Typecasting
- index numbers, for normal/hardened derivation, Hardened child key derivation
- infinite loops, Implications of Turing Completeness
- inheritance, Contract Inheritance-Contract Inheritance, Class Inheritance
- Initial Coin Offerings (ICOs)
- inline assembly, Inline Assembly
- Integrated Development Environment (IDE), Quick Glossary
- intended audience, Intended Audience
- Inter-exchange Client Address Protocol (ICAP), Quick Glossary, Inter Exchange Client Address Protocol-Inter Exchange Client Address Protocol
- interface object type, Contract Definition
- internal function, Functions
- internal transaction (message), Quick Glossary, Withdrawing from Our Contract
- International Bank Account Number (IBAN), Inter Exchange Client Address Protocol
- invariant checking, The Vulnerability
- invocation, Transaction Value and Data, Transmitting a Data Payload to an EOA or Contract
- IPFS (InterPlanetary File System), Quick Glossary, IPFS
K
- Keccak-256 hash function, Quick Glossary, Ethereum’s Cryptographic Hash Function: Keccak-256
- key derivation function (KDF), Quick Glossary, Nondeterministic (Random) Wallets
- key derivation methods, Wallet Technology Overview
- key exchange protocol, Public Key Cryptography and Cryptocurrency
- key pairs, Keys and Addresses, Public Key Cryptography and Cryptocurrency
- key-stretching function, From mnemonic to seed
- key-value tuple, Ethereum: A General-Purpose Blockchain
- keychains, Wallet Technology Overview
- keys
- keys and addresses, Ethereum Addresses and Transactions in this Book, Keys and Addresses
- (see also cryptography; private keys; public keys)
- keystore file, Quick Glossary, Nondeterministic (Random) Wallets
- King of the Ether, Real-World Example: Etherpot and King of the Ether
L
- LevelDB, Quick Glossary
- libraries, web3.js-Emerald Platform
- library contract, Quick Glossary, Contract Definition
- libsecp256k1 cryptographic library, Elliptic Curve Libraries
- light/lightweight client, Quick Glossary, Should I Run a Full Node?
- LLL, Introduction to Ethereum High-Level Languages
- local blockchain simulation, Local Blockchain Simulation Advantages and Disadvantages
- logs, Vyper, Reading and Writing Data
M
- Mastering Ethereum Token (see METoken)
- Merkle Patricia Tree, Quick Glossary
- Merkle, Ralph, Public Key Cryptography and Cryptocurrency
- message call, Quick Glossary, Transaction/message call context
- message communication protocols, Decentralized Message Communications Protocols
- message, defined, Quick Glossary
- MetaMask, Choosing an Ethereum Wallet
- METoken (Mastering Ethereum Token)
- Metropolis, Quick Glossary, Ethereum’s Four Stages of Development
- MEW (see MyEtherWallet)
- migrations, Truffle migrations—understanding deployment scripts-Truffle migrations—understanding deployment scripts
- miners, Quick Glossary, Recording on the Blockchain
- mining farms, Recording on the Blockchain
- Mist (browser-based wallet), Quick Glossary, Mist
- mnemonic code words, Wallet Technology Overview
- mobile (smartphone) wallets, Mobile (Smartphone) Wallets
- modifiers, Modifiers
- msg object, Transaction/message call context
- multicast (broadcast) oracle, Oracle Design Patterns
- multiple-signature (multisig) transactions, Multiple-Signature (Multisig) Transactions
- mutex, Preventative Techniques
- MyCrypto (wallet), MyCrypto
- MyEtherWallet (MEW), Choosing an Ethereum Wallet, MyEtherWallet (MEW), MyCrypto
N
- Namehash algorithm, The Namehash algorithm
- names/naming (see ENS (Ethereum Name Service))
- National Institute of Science and Technology (NIST), Ethereum’s Cryptographic Hash Function: Keccak-256
- negative gas, Life Cycle of a Smart Contract
- neighbor nodes, Transaction Propagation
- Nethereum, Nethereum
- networks (Ethereum)
- NFTs (see nonfungible tokens)
- NIST (National Institute of Science and Technology), Ethereum’s Cryptographic Hash Function: Keccak-256
- node
- Node.js, Installing the Truffle framework
- non-fungible tokens (NFTs), Tokens and Fungibility
- non-repudiation, The Elliptic Curve Digital Signature Algorithm
- nonces, The Transaction Nonce-Concurrency, Transaction Origination, and Nonces
- concurrency, Concurrency, Transaction Origination, and Nonces
- confirmation, Gaps in Nonces, Duplicate Nonces, and Confirmation
- defined, Quick Glossary
- duplicated, Gaps in Nonces, Duplicate Nonces, and Confirmation
- gaps in sequence of, Gaps in Nonces, Duplicate Nonces, and Confirmation
- keeping track of, Keeping Track of Nonces
- transaction origination, Concurrency, Transaction Origination, and Nonces
- world state and, Ethereum State
- nondeterministic (random) wallets, Wallet Technology Overview-Nondeterministic (Random) Wallets
- nonfungible tokens (NFTs)
O
- offline signing, Separating Signing and Transmission (Offline Signing)-Separating Signing and Transmission (Offline Signing)
- ommer, defined, Quick Glossary
- one-way functions, Public Keys, Cryptographic Hash Functions
- open source licenses, Using Code Examples
- OpenAddressLottery honey pot, Real-World Examples: OpenAddressLottery and CryptoRoulette Honey Pots
- OpenSSL cryptographic library, Elliptic Curve Libraries
- OpenZeppelin, Preventative Techniques, Contract Libraries, OpenZeppelin-OpenZeppelin
- oracles, Oracles-Conclusions
- and data authentication, Data Authentication
- broadcast/multicast, Oracle Design Patterns
- client interfaces in Solidity, Oracle Client Interfaces in Solidity-Oracle Client Interfaces in Solidity
- computation oracles, Computation Oracles-Computation Oracles
- data authentication with, Data Authentication
- decentralized, Decentralized Oracles
- design patterns, Oracle Design Patterns-Oracle Design Patterns
- immediate-read, Oracle Design Patterns
- publish-subscribe, Oracle Design Patterns
- reasons for using, Why Oracles Are Needed
- request-response, Oracle Design Patterns
- use cases/examples, Oracle Use Cases and Examples
- Oraclize, Data Authentication, Computation Oracles, Oracle Client Interfaces in Solidity-Oracle Client Interfaces in Solidity
- overflow, Arithmetic Over/Underflows-Real-World Examples: PoWHC and Batch Transfer Overflow (CVE-2018–10299)
P
- Parity
- Parity Multisig Wallet
- passphrases, Optional passphrase in BIP-39
- password stretching algorithm, Nondeterministic (Random) Wallets
- payable function, Functions
- payment, Transaction Value and Data
- PBKDF2 function, From mnemonic to seed
- Populus, Testing Smart Contracts
- PoS (see proof of stake)
- PoW (see proof of work)
- PoWHC (see Proof of Weak Hands Coin)
- pre-image, Cryptographic Hash Functions
- prime factorization, Public Key Cryptography and Cryptocurrency
- private blockchain, Local Blockchain Simulation Advantages and Disadvantages
- private function, Functions
- private keys, Keys and Addresses, Private Keys-Generating a Private Key from a Random Number
- PRNG (pseudorandom number generator) contracts, Real-World Example: PRNG Contracts
- proof of stake (PoS)
- Proof of Weak Hands Coin (PoWHC), Real-World Examples: PoWHC and Batch Transfer Overflow (CVE-2018–10299)
- proof of work (PoW)
- propagation of transactions, Transaction Propagation
- prototype of a function, Transmitting a Data Payload to an EOA or Contract
- proxy, ZeppelinOS
- pseudorandom number generator (PRNG) contracts, Real-World Example: PRNG Contracts
- public function, Functions
- public key cryptography, Public Key Cryptography and Cryptocurrency-Public Key Cryptography and Cryptocurrency
- public key recovery, The Signature Prefix Value (v) and Public Key Recovery
- public keys, Public Keys-Elliptic Curve Libraries
- public testnets, Public Testnet Advantages and Disadvantages
- publish-subscribe oracles, Oracle Design Patterns
- pure function, Functions
R
- race conditions, Race Conditions/Front Running
- (see also front-running security threat; reentrancy attack)
- random (nondeterministic) wallets, Wallet Technology Overview-Nondeterministic (Random) Wallets
- random numbers, private key generation from, Generating a Private Key from a Random Number
- receipt, defined, Quick Glossary
- Recursive Length Prefix (RLP), Quick Glossary, The Structure of a Transaction
- reentrancy attacks, Reentrancy-Real-World Example: The DAO
- reentrancy bug, The Reentrancy Bug
- reentrancy honey pot security threat, Real-World Example: Reentrancy Honey Pot-Real-World Example: Reentrancy Honey Pot
- reference specification, Components of a Blockchain
- registering a name, Registering a Name-Registering a Name
- Remix IDE, Compiling the Faucet Contract, Creating the Contract on the Blockchain-Creating the Contract on the Blockchain
- remote clients, Remote Ethereum Clients-Mist
- Remote Procedure Call (RPC) commands (see JSON-RPC API)
- request-response oracles, Oracle Design Patterns
- require function, Error Handling (assert, require, revert)
- resolver contracts, Resolvers
- revert function, Error Handling (assert, require, revert)
- reward, defined, Quick Glossary
- RLP (Recursive Length Prefix), Quick Glossary, The Structure of a Transaction
- root seeds, creating HD wallets from, Creating an HD Wallet from the Seed
- Ropsten Test Network, Getting Some Test Ether
- RPC (Remote Procedure Call) commands (see JSON-RPC API)
- Rubixi pyramid scheme, Real-World Example: Rubixi
- runtime bytecode, Contract Deployment Code
- Rust, Software Requirements for Building and Running a Client (Node)
S
- SafeMath library, Preventative Techniques
- salts, From mnemonic to seed
- Satoshi Nakamoto, Quick Glossary
- SchellingCoin protocol, Decentralized Oracles
- Schneier, Bruce, Cryptographic Hash Functions
- SECG (Standards for Efficient Cryptography Group), Generating a Public Key
- secp256k1 elliptic curve, Elliptic Curve Cryptography Explained-Elliptic Curve Cryptography Explained, Generating a Public Key, Elliptic Curve Libraries
- secret keys, Quick Glossary
- Secure Hash Algorithm (see SHA entries)
- security (smart contracts), Smart Contract Security-Conclusions
- arithmetic over/underflow threat, Arithmetic Over/Underflows-Real-World Examples: PoWHC and Batch Transfer Overflow (CVE-2018–10299)
- best practices, Security Best Practices
- block timestamp manipulation threat, Block Timestamp Manipulation-Real-World Example: GovernMental
- constructors and contract name-change threat, Constructors with Care
- contract libraries for, Contract Libraries
- default visibility specifier threat, Default Visibilities-Real-World Example: Parity Multisig Wallet (First Hack)
- DELEGATECALL opcode threat, DELEGATECALL-Real-World Example: Parity Multisig Wallet (Second Hack)
- denial of service attacks, Denial of Service (DoS)-Real-World Examples: GovernMental
- entropy illusion threat, Entropy Illusion
- external contract referencing threat, External Contract Referencing-Real-World Example: Reentrancy Honey Pot
- floating-point problem, Floating Point and Precision-Real-World Example: Ethstick
- race conditions/front running threat, Race Conditions/Front Running-Real-World Examples: ERC20 and Bancor
- reentrancy attacks, Reentrancy-Real-World Example: The DAO
- risks and antipatterns, Security Risks and Antipatterns-Preventative Techniques
- short address/parameter attack, Short Address/Parameter Attack
- token standard implementation choices, Security by Maturity
- tx.origin authentication threat, Tx.Origin Authentication-Preventative Techniques
- unchecked CALL return value threat, Unchecked CALL Return Values-Real-World Example: Etherpot and King of the Ether
- unexpected ether threat, Unexpected Ether-Further Examples
- uninitialized storage pointer threat, Uninitialized Storage Pointers-Real-World Examples: OpenAddressLottery and CryptoRoulette Honey Pots
- seeded wallets (see deterministic wallets)
- seeds, Quick Glossary
- selfdestruct function, Contract Constructor and selfdestruct, The Vulnerability
- SELFDESTRUCT opcode, Life Cycle of a Smart Contract, Contract Constructor and selfdestruct
- semantic versioning, Selecting a Version of Solidity
- Serenity, Quick Glossary, Ethereum’s Four Stages of Development
- Serpent, Quick Glossary, Introduction to Ethereum High-Level Languages
- SGX (Software Guard eXtensions), Data Authentication
- SHA (Secure Hash Algorithm), Quick Glossary
- SHA-3 Hash Function, Ethereum’s Cryptographic Hash Function: Keccak-256
- shell commands, Software Requirements for Building and Running a Client (Node)
- short address/parameter attack, Short Address/Parameter Attack
- side effects, Introduction to Ethereum High-Level Languages
- single-instance private blockchain, Local Blockchain Simulation Advantages and Disadvantages
- singleton, Quick Glossary
- smart contracts, Smart Contracts and Solidity-Conclusions
- ABI, The Ethereum Contract ABI-Selecting a Solidity Compiler and Language Version
- addressing an existing instance, Addressing an existing instance
- and Ethereum high-level languages, Introduction to Ethereum High-Level Languages-Introduction to Ethereum High-Level Languages
- as DApp backend, Backend (Smart Contract), Auction DApp: Backend Smart Contracts-DApp governance
- basics, Externally Owned Accounts (EOAs) and Contracts
- building with Solidity, Building a Smart Contract with Solidity-Conclusions
- call method, Raw call, delegatecall-Raw call, delegatecall
- calling other contracts from within a contract, Calling Other Contracts (send, call, callcode, delegatecall)-Raw call, delegatecall
- constructor function, Contract Constructor and selfdestruct
- creating new instance, Creating a new instance
- defined, Quick Glossary, Quick Glossary, What Is a Smart Contract?
- delegatecall method, Raw call, delegatecall
- deleting, Life Cycle of a Smart Contract
- EOAs compared to, Smart Contracts and Solidity
- ether and, Introducing the World Computer
- gas considerations, Gas Considerations-Estimating Gas Cost
- inheritance, Contract Inheritance-Contract Inheritance
- life cycle of, Life Cycle of a Smart Contract
- on-platform libraries, Contract Libraries
- security, Smart Contract Security-Conclusions
- Solidity and, Building a Smart Contract with Solidity-Compiling with the Solidity Compiler (solc)
- test frameworks, Testing Smart Contracts-Ganache: A Local Test Blockchain
- transmitting data payload to, Transmitting a Data Payload to an EOA or Contract-Transmitting a Data Payload to an EOA or Contract
- transmitting value to, Transmitting Value to EOAs and Contracts
- using Truffle to deploy, Using truffle to deploy a contract
- Vyper and (see Vyper)
- smartphones (see mobile (smartphone) wallets)
- Snowden, Edward, Ethereum’s Cryptographic Hash Function: Keccak-256
- Software Guard eXtensions (SGX), Data Authentication
- solc (Solidity compiler), Compiling with the Solidity Compiler (solc)
- Solidity, Introduction to Ethereum High-Level Languages
- adding constructor/selfdestruct to faucet example, Adding a Constructor and selfdestruct to Our Faucet Example
- building a smart contract with, Building a Smart Contract with Solidity-Conclusions
- calling other contracts from within a contract, Calling Other Contracts (send, call, callcode, delegatecall)-Raw call, delegatecall
- class inheritance, Class Inheritance
- compiling source file to EVM bytecode, Compiling Solidity to EVM Bytecode-Compiling Solidity to EVM Bytecode
- contract constructor function, Contract Constructor and selfdestruct
- contract definition, Contract Definition
- contract destruction, Contract Constructor and selfdestruct
- contract inheritance, Contract Inheritance-Contract Inheritance
- data types, Data Types-Data Types
- default visibility specifier problem, Default Visibilities-Real-World Example: Parity Multisig Wallet (First Hack)
- defined, Quick Glossary
- development environment, Development Environment
- downloading/installing, Download and Install
- error handling, Error Handling (assert, require, revert)
- event objects, Events-Catching events
- faucet.sol and, A Simple Contract: A Test Ether Faucet
- function modifiers, Function Modifiers
- function ordering, Function and Variable Ordering
- function overloading, Function Overloading
- function syntax, Functions
- functions, Functions-Functions
- gas considerations, Gas Considerations-Estimating Gas Cost
- modifiers, Modifiers
- oracle client interfaces in, Oracle Client Interfaces in Solidity-Oracle Client Interfaces in Solidity
- predefined global variables/functions, Predefined Global Variables and Functions-Built-in functions
- programming with, Programming with Solidity-Raw call, delegatecall
- selecting compiler and language version, Selecting a Solidity Compiler and Language Version
- selecting version of, Selecting a Version of Solidity
- selfdestruct function, Contract Constructor and selfdestruct
- smart contracts and, Building a Smart Contract with Solidity-Compiling with the Solidity Compiler (solc)
- variable ordering, Function and Variable Ordering
- variable typecasting, Variable Typecasting
- Vyper compared to, Comparison to Solidity-Preconditions and Postconditions
- writing a simple program in, Writing a Simple Solidity Program
- Solidity compiler (solc), Compiling with the Solidity Compiler (solc)
- Solidity inline assembly, Quick Glossary, Inline Assembly
- Spurious Dragon, Quick Glossary, Ethereum’s Four Stages of Development, Transaction Signing in Practice
- SputnikVM, SputnikVM
- Standards for Efficient Cryptography Group (SECG), Generating a Public Key
- Status (mobile wallet), Mobile (Smartphone) Wallets
- storage (see data storage)
- storage pointers, uninitialized, Uninitialized Storage Pointers-Real-World Examples: OpenAddressLottery and CryptoRoulette Honey Pots
- stub, Contract Definition
- submarine sends, Preventative Techniques
- SUICIDE (see SELFDESTRUCT opcode)
- Swarm, Swarm
- Swarm hash, resolving a name to, Resolving a Name to a Swarm Hash (Content)
- synchronization (see fast synchronization) (see first synchronization)
- szabo, defined, Quick Glossary
- Szabo, Nick, What Is a Smart Contract?
T
- Tangerine Whistle, Quick Glossary, Ethereum’s Four Stages of Development
- TEEs (trusted execution environments), Data Authentication
- terminal applications, Software Requirements for Building and Running a Client (Node)
- test ether
- test frameworks
- test vector, determining hash functions with, Which Hash Function Am I Using?
- testnet
- throw function, Error Handling (assert, require, revert)
- TLSNotary proofs, Data Authentication
- token standards (generally), Using Token Standards-Security by Maturity
- tokens, Tokens-Conclusions
- counterparty risk, Counterparty Risk
- ERC20 standard, The ERC20 Token Standard-ERC20 implementations
- ERC223 standard proposal, ERC223: A Proposed Token Contract Interface Standard
- ERC721 non-fungible token standard, ERC721: Non-fungible Token (Deed) Standard-ERC721: Non-fungible Token (Deed) Standard
- ERC777 standard proposal, ERC777: A Proposed Token Contract Interface Standard-ERC777 hooks
- fungibility, Tokens and Fungibility
- gas and, Issues with ERC20 Tokens
- ICOs and, Tokens and ICOs
- intrinsicality, Tokens and Intrinsicality
- on Ethereum, Tokens on Ethereum-ERC721: Non-fungible Token (Deed) Standard
- reasons to adopt, Utility Tokens: Who Needs Them?
- uses of, How Tokens Are Used-How Tokens Are Used
- using token standards, Using Token Standards-Security by Maturity
- utility/equity types, Using Tokens: Utility or Equity-Utility Tokens: Who Needs Them?
- Town Crier, Data Authentication
- transaction call, Transaction/message call context
- transaction fees (see gas)
- transaction receipt, Events
- transactions, Transactions-Conclusions
- as atomic, Life Cycle of a Smart Contract
- basic structure, The Structure of a Transaction
- contract creation, Special Transaction: Contract Creation-Special Transaction: Contract Creation
- defined, Quick Glossary
- digital signatures and, Digital Signatures-Raw Transaction Creation with EIP-155
- gas, Transaction Gas-Transaction Gas
- multiple-signature, Multiple-Signature (Multisig) Transactions
- nonces, The Transaction Nonce-Concurrency, Transaction Origination, and Nonces
- propagation of, Transaction Propagation
- raw transaction creation with EIP-1455, Raw Transaction Creation with EIP-155
- raw transaction creation/signing, Raw Transaction Creation and Signing
- recipient of, Transaction Recipient
- recording on the blockchain, Recording on the Blockchain
- separating signing and transmission, Separating Signing and Transmission (Offline Signing)-Separating Signing and Transmission (Offline Signing)
- signature prefix value (v) and public key recovery, The Signature Prefix Value (v) and Public Key Recovery
- signing in practice, Transaction Signing in Practice
- smart contracts and, Life Cycle of a Smart Contract
- transmitting data payload to EOAs and contracts, Transmitting a Data Payload to an EOA or Contract-Transmitting a Data Payload to an EOA or Contract
- transmitting value to EOAs and contract, Transmitting Value to EOAs and Contracts
- value and data fields, Transaction Value and Data-Transmitting a Data Payload to an EOA or Contract
- warnings and cautions, Ethereum Addresses and Transactions in this Book
- transfer function
- trapdoor functions, Public Key Cryptography and Cryptocurrency
- tree structure, navigating, Navigating the HD wallet tree structure
- TrueBit, Computation Oracles
- Truffle, Truffle-Using the Truffle console
- as test framework, Testing Smart Contracts
- configuring, Configuring truffle
- console, Using the Truffle console-Using the Truffle console
- contract deployment with, Using truffle to deploy a contract
- creating a project directory, Creating a truffle project directory-Creating a truffle project directory
- defined, Quick Glossary
- installing, Installing the Truffle framework
- integrating a prebuilt Truffle project, Integrating a prebuilt Truffle project (Truffle Box)
- interacting with METoken via Truffle console, Interacting with METoken using the Truffle console-Interacting with METoken using the Truffle console
- migrations, Truffle migrations—understanding deployment scripts-Truffle migrations—understanding deployment scripts
- running test transaction with, Catching events
- Truffle Box, Integrating a prebuilt Truffle project (Truffle Box)
- Trust Wallet, Mobile (Smartphone) Wallets
- trusted execution environments (TEEs), Data Authentication
- trustless systems, Oracles
- Turing completeness
- Turing, Alan, Ethereum and Turing Completeness
- tx object, Transaction context
- tx.origin authentication security threat
- typecasting, Variable Typecasting
- typographical conventions, Conventions Used in This Book
U
- unchecked CALL return value security threat, Unchecked CALL Return Values-Real-World Example: Etherpot and King of the Ether
- underflow, Arithmetic Over/Underflows-Real-World Examples: PoWHC and Batch Transfer Overflow (CVE-2018–10299), The Vulnerability
- unexpected ether
- uninitialized storage pointers security threat, Uninitialized Storage Pointers-Real-World Examples: OpenAddressLottery and CryptoRoulette Honey Pots
- Universal Turing machine (UTM), Ethereum and Turing Completeness
- user interface, as DApp frontend, Frontend (Web User Interface)
- utilities, EthereumJS helpeth: A Command-Line Utility
- utility currency, ether as, Compared to Bitcoin
- utility tokens
- UTM (Universal Turing machine), Ethereum and Turing Completeness
V
- value field, Transaction Value and Data-Transmitting Value to EOAs and Contracts
- variable declarations, ordering of, Function and Variable Ordering
- version pragma, Selecting a Solidity Compiler and Language Version
- Vickrey auctions, Vickrey auctions
- view (function keyword), Functions
- visibility specifiers, Default Visibilities-Real-World Example: Parity Multisig Wallet (First Hack)
- vulnerabilities, Vulnerabilities and Vyper
- (see also security; specific attacks/vulnerabilities)
- Vyper, Introduction to Ethereum High-Level Languages, Smart Contracts and Vyper-Conclusions
- class inheritance, Class Inheritance
- compilation, Compilation
- contract vulnerabilities and, Vulnerabilities and Vyper
- decorators, Decorators
- defined, Quick Glossary
- function ordering, Function and Variable Ordering
- function overloading, Function Overloading
- modifiers, Modifiers
- overflow protection, Protecting Against Overflow Errors at the Compiler Level
- preconditions/postconditions, Preconditions and Postconditions
- reading/writing data, Reading and Writing Data
- Solidity compared to, Comparison to Solidity-Preconditions and Postconditions
- variable ordering, Function and Variable Ordering
- variable typecasting, Variable Typecasting
W
- wallets, Wallets-Conclusions
- best practices for, Wallet Best Practices-Navigating the HD wallet tree structure
- browser wallets, Browser Wallets
- choosing, Choosing an Ethereum Wallet
- cold-storage wallets, Extended public and private keys
- creating HD wallets from root seed, Creating an HD Wallet from the Seed
- defined, Quick Glossary, Choosing an Ethereum Wallet, Wallets
- deterministic, Wallet Technology Overview, Deterministic (Seeded) Wallets
- duress wallet, Optional passphrase in BIP-39
- Emerald Wallet, Choosing an Ethereum Wallet
- HD (see hierarchical deterministic wallets)
- Jaxx, Choosing an Ethereum Wallet, Mobile (Smartphone) Wallets, Jaxx
- MetaMask (see MetaMask)
- Mist, Quick Glossary, Mist
- mnemonic codes (BIP-39), Seeds and Mnemonic Codes (BIP-39), Mnemonic Code Words (BIP-39)-Working with mnemonic codes
- mobile, Mobile (Smartphone) Wallets
- MyCrypto, MyCrypto
- MyEtherWallet, Choosing an Ethereum Wallet, MyEtherWallet (MEW), MyCrypto
- nondeterministic, Wallet Technology Overview-Nondeterministic (Random) Wallets
- Parity Multisig Wallet hacks, Real-World Example: Parity Multisig Wallet (Second Hack)-Real-World Example: Parity Multisig Wallet (Second Hack), Real-World Example: Parity Multisig Wallet (First Hack)
- remote clients compared to, Should I Run a Full Node?
- technology overview, Wallet Technology Overview-Seeds and Mnemonic Codes (BIP-39)
- testnet ether and, Getting Some Test Ether
- Trust, Mobile (Smartphone) Wallets
- warnings and cautions
- web user interface, as DApp frontend, Frontend (Web User Interface)
- web3, Quick Glossary, The Third Age of the Internet, Decentralized Applications (DApps)
- web3.js, web3.js
- web3.py, web3.py
- web3j, web3j
- wei, defined, Quick Glossary
- Whisper, Quick Glossary, Decentralized Message Communications Protocols
- withdrawal of funds from contract, Withdrawing from Our Contract-Withdrawing from Our Contract
- Wood, Dr. Gavin, Quick Glossary
- world computer, Ethereum as, What Is Ethereum?, Introducing the World Computer
- world state, Ethereum State
..................Content has been hidden....................
You can't read the all page of ebook, please click
here login for view all page.