Answers

Answers to the Ethereum SAT.

  • What do the terms “wei”, "finney", and "szabo" refer to in Ethereum?
  • Here’s the breakdown:
  • 10^12 Wei = 1 Szabo
  • 10^15 Wei = 1 Finney
  • 10^18 Wei = 1 Ether

  • Name two solutions to running out of gas in a smart contract.

  • Ethereum recently hard forked, but no new coins were created. What gives?
  • Ethereum’s recent Byzantium hard fork wasn’t a contentious hard fork, meaning that most miners agreed with the protocol updates. Given that there weren’t enough miners that “voted against” this protocol update, not enough hash power was able to support the old chain, leading to its graceful termination.

  • What's the approximate cost to store one gigabyte of data on the Ethereum blockchain? (without solutions like Filecoin or Swarm)

  • What does maintaining state enable in Ethereum, and what fundamental data structure modification from Bitcoin allows for that?
  • Maintaining state allows for keeping track of “accounts”, as opposed to the UTXO model based in Bitcoin. To accomplish this, a modification of the Merkle Tree, called a Merkle-Patricia trie, is used (Patricia stands for Practical Algorithm To Retrieve Information Coded In Alphanumeric). This is a modified binary radix trie, which means a binary choice when traversing the trie. What is this all good for? Primarily, this data structure allows for quick calculation + update of the state tree root, even after insert/edit/update operations (the order of operations grow as the number of transactions in Ethereum goes up). Additionally, the depth of the tree is bounded, and the root of the tree depends on the data itself, not on the order of the data.

  • More about Merkle Patricia tries in Ethereum here:

  • What is geth's fast sync and what makes it fast?
  • This flag enables fast syncing through state downloads rather than downloading the full block data. This will also reduce the size of your blockchain dramatically. NOTE: --fast can only be run if you are syncing your blockchain from scratch and only the first time you download the blockchain for security reasons. See this Reddit post for more information.

  • What are the differences between partially light, full light, and archive nodes?
  • "Full" Sync: Gets the block headers, the block bodies, and validates every element from genesis block.
  • Fast Sync: Gets the block headers, the block bodies, it processes no transactions until current block - 1024. Then it gets a snapshot state and goes like a full synchronization.
  • Light Sync: Gets only the current state. To verify elements, it needs to ask to full (archive) nodes for the corresponding tree leaves.

  • What is LLL, Solidity, and Serpent, and how does it relate to the EVM? Which is the most popular of the three?

  • What's the total supply of Ethereum? What is the "ice age"?
  • The total supply in Ethereum is not fixed yet. As of November 14th, 2017, ~96m Ether are in supply. The “Ice Age” is a period on the Ethereum blockchain where the PoW difficulty rises exponentially. This is done to incentivize miners to move to the new proof-of-stake chain when the Constantinople hard fork occurs (here’s a cool difficulty simulation: https://gist.github.com/CJentzsch/c78768f9837afb8eef74)

  • What is a colored coin and how does it relate to Ethereum tokens?
  • To create a digital asset that has some special property (it could represent equity in a company, stake in a network, etc.), you don’t need to have an entirely new blockchain. Instead, you can take an existing digital asset (such as Ethereum) and “color” the token to represent the properties which you desire. ERC20, the token standard in Ethereum, is a similar concept, except you don’t need to rely on OP_RETURN to store, albeit, a limited, amount of data. Additionally, you don’t need to worry about needing another blockchain or proof layer to verify the validity of tokens - the code that runs tokens are part of the Ethereum blockchain itself.

  • Briefly describe how you would write a naming service in a smart contract (think something like DNS).

  • What happens when a smart contract is broadcast to the network? Who runs the smart contract?