Skip to content

Instantly share code, notes, and snippets.

@shingonu
Last active July 29, 2018 02:40
Show Gist options
  • Select an option

  • Save shingonu/774d0c449c758108cfba881f80749883 to your computer and use it in GitHub Desktop.

Select an option

Save shingonu/774d0c449c758108cfba881f80749883 to your computer and use it in GitHub Desktop.

Ethereum Milestones

Ethereum은 Bitcoin의 한계점에 대한 불만으로 시작되었다. Bitcoin은 금융 산업을 분산화된 방식으로 대체하기 위해 나온 프로토콜이다. 비탈릭은 blockchain 사용에 대한 잠재성을 확인하고 bitcoin을 scrip langauge가 아닌 blockchain 위에 애플리케이션을 개발할 수 있도록 하는 제안을 했지만 거절되었다. 2013년에 그는 블록체인 위에 애플리케이션을 올릴 수 있는 플랫폼을 새로 제안하게 된다. 이러한 제안은 백서로 2013년 11월에 공개된다.

Public Announcement

2014년 1월 Ethereum platform 개발이 시작됨을 알린다. 초기 개발 멤버는 Vitalik Buterin, Mihai Alisie, Anthony Di Iorio 그리고 Charles Hoskinson로 구성되었다.

Ethereum Foundation

초반에 Ethereum platform의 개발은 Ethereum Switzerland GmbH라 불리는 스위스 회사에서 시작되었다. 2014년 6월 비영리 재단인 Ethereum 재단은 Ethereum cryptocurrency platform 개발을 지원하게 된다.

Ethereum Crowdsale

Ethereum Network를 만들기 위해서 Ethereum 측에서는 펀딩이 필요했다. 벤처 투자자들에게 투자를 받는 것 대신 그들은 crowdsale하게 된다. 그들은 비트코인을 받고 이더를 팔았다. 그 결과 그들은 11.9 백만의 토큰을 팔게 되었다. 그 양은 총 공급량의 13%에 해당되는 양이었다.

Olympic

2015년 5월 Ethereum testnet이 시작되었다. 이 testnet을 통해 개발자들은 여러 문제들을 해결할 수 있게 되었다.

Frontier (2015.07.31, block 1)

Ethereum 개발은 4개의 stage로 구분하여 진행되고 있다(Frontier, Homestead, Metropolis, and Serenity). Frontier는 Ethereum 개발의 첫번째 stage로 최소한의 기능만을 제공했다. Frontier 버전에서, 유저들은 Ether를 사거나 팔 수 있었고 mining과 smart contract을 Ethereum Network에 올릴 수 있었다. Frontier는 2015년 7월 30일에 릴리즈되었다. Frontier stage에서 기능은 잘 동작하였지만 플랫폼의 안정성과 보안적인 부분은 많이 부족했다.

Frontier Thawing (2015.09.08, block 200,000)

The first software release of Frontier will have a hardcoded Gas limit per block of 5,000 Gas. Unlike the normal Gas per block parameter, this special limit will not grow proportionally to the network usage - effectively preventing transacting during the first few days. This ‘thawing’ period will enable miners to start their operations and early adopters to install their clients without having to ‘rush’. After a few days (likely 3-4, but this could change), we’ll release a small software update which all clients will have to install. This update will see the Gas limit per block raised to 3 million, an initial number from which it will expand or contract as per the default miner settings.

First Ethereum ICO

가장 먼저 Ethereum 기반의 ICO는 Augur 프로젝트였다.

Homestead (2016.03.15, block 1,150,000)

Homestead는 첫번째 "stable" Ethereum release로 2016년 3월 14일에 개시되었다(block 1,150,000). 몇몇 protocol 변화와 networking 변화를 준 업데이트였다.

  • EIP-2 Main homestead hardfork changes
  • EIP-7 Hardfork EVM update: DELEGATECALL
  • EIP-8 devp2p forward compatibility

The DAO Hack (2016.07.21, block 1,920,000)

EIP-150 Hard Fork (a.k.a Tangerine Whistle) (2016.11.23, block 2,463,000)

Ethereum Network를 동작시키기 위해서는 gas를 소모해야 한다. Tangerine Whistle 하드포크 이전의 몇몇 operation들의 gas price가 매우 쌌다. 이러한 operation을 가지고 악의적인 공격자들이 Ethereum network를 공격하는 사태가 발생했다. 이를 막기 위해 Ethereum은 Tangerine Whistle 하드포크를 실행하게 되고 특정 operation들에 대해 추가적인 계산 복잡도를 반영시켰다. 이로 인해 해당 공격 대상이 된 operation의 사용 fee가 높아지게 되었다.

REFERENCE

Spurious Dragon (2016.11.23, block 2,675,000)

  • EIP 155: Replay attack protection - prevents transactions from one Ethereum chain from being rebroadcasted on an alternative chain. For example: If you send 150 test ether to someone from the Morden testnet, that same transaction cannot be replayed on the main Ethereum chain. Important note: EIP 155 is backwards compatible, so transactions generated with the "pre-Spurious-Dragon" format will still be accepted. However, to ensure you are protected against replay attacks, you will still need to use a wallet solution that implements EIP 155. Be aware that this backwards compatibility also means that transactions created from alternative Ethereum based blockchains that have not implemented EIP 155 (such as Ethereum Classic) can still be replayed on the main Ethereum chain.
  • EIP 160: EXP cost increase - adjusts the price of EXP opcode so it balances the price of EXP with the computational complexity of the operation, essentially making it more difficult to slow down the network via computationally expensive contract operations.
  • EIP 161: State trie clearing - makes it possible to remove a large number of empty accounts that were put in the state at very low cost as a result of earlier DoS attacks. With this EIP, 'empty' accounts are removed from the state whenever 'touched' by another transaction. Removal of the empty accounts greatly reduces blockchain state size, which will provide client optimizations such as faster sync times. The actual removal process will begin after the fork by systematically performing CALL to the empty accounts that were created by the attacks.
  • EIP 170: Contract code size limit - changes the maximum code size that a contract on the blockchain can have. This update prevents an attack scenario where large pieces of account code can be accessed repeatedly at a fixed gas cost. The maximum size has been set to 24576 bytes, which is larger than any currently deployed contract.

The previous hard fork (a.k.a “Tangerine Whistle”) addressed immediate network health issues due to the attacks. The upcoming hard fork addresses important but less pressing matters such as further tuning opcode pricing to prevent future attacks on the network, enabling “debloat” of the blockchain state, and adding replay attack protection.

Byzantium

Metropolis is a planned Ethereum development phase that includes two hard forks: Byzantium and Constantinople. Byzantium is occurring at block number 4.37mil. Constantinople does not currently have a release date, but is expected in 2018.

The following upgrades are included:

  • Addition of ‘REVERT’ opcode, which permits error handling without consuming all gas (EIP 140)
  • Transaction receipts now include a status field to indicate success or failure EIP 658)
  • Elliptic curve addition and scalar multiplication on alt_bn128 (EIP 196) and pairing checks (EIP 197), permitting ZK-Snarks and other cryptographic mathemagic™
  • Support for big integer modular exponentiation (EIP 198), enabling RSA signature verification and other cryptographic applications
  • Support for variable length return values (EIP 211)
  • Addition of the ‘STATICCALL’ opcode, permitting non-state-changing calls to other contracts (EIP 214)
  • Changes to the difficulty adjustment formula to take uncles into account (EIP 100)
  • Delay of the ice age / difficulty bomb by 1 year, and reduction of block reward from 5 to 3 ether (EIP 649)

Reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment