영화와 음식과 여행

[블록체인] Ethereum 2 본문

개발

[블록체인] Ethereum 2

돌고래꽃 2021. 1. 6. 09:39

https://ethereum.org/en/eth2/

Eth2 는 Ethereum 을 더 확장 가능하고, 안전하고, 지속 가능하게 만드는 일련의 상호 연결된 업그레이드를 말한다.

세레니티(Serenity)로 명명 되었으며 기존의 이더리움 네트워크와 결합하지 않는다. 유저들은 smart contract 를 통해 기존의 PoW chain 에서 가치를 이전할 수 있다.

Vision

https://ethereum.org/en/eth2/vision/

Scalability

Etheruem 은 네트워크의 노드 크기를 증가시키지 않고 더 많은 tps를 처리할 수 있어야 한다. 노드 크기를 증가시키는 것은 powerful 하고 비싼 컴퓨터를 가진 사람들 만이 할 수 있기 때문에 실용적이지 않다. 확장을 하기 위해서 Ethereum 은 더 많은 tps 와 node 가 필요하다. 더 많은 node 는 더 높은 보안을 의미한다.

shard chain 업그레이드는 네트워크의 부하를 64개의 새로운 chain 으로 분산시킨다. 이것은 혼잡을 줄이고 현재 15-45 tps 한계 이상의 속도로 증가시켜 Ethereum 이 숨쉴 수 있는 공간을 제공한다.

그리고 더 많은 chain 이 있을지라도, 실제로 이는 validator(네트워크의 maintainer) 의 일을 덜 필요로 한다. Validator 는 자신의 shard 만 'run' 하면 된다. 전체 ethereum chain 이 아니라. 이는 node 를 더 가볍게 만들고, Ethrereum 이 확장되고 분산 상태로 유지되도록 한다.

Security

Eth2 업그레이드는 '51% attack' 과 같은 cooridnated attack 으로부터 Ethreuem 의 보안성을 향상시킨다. 이는 누군가가 네트워크의 대부분을 제어하는 경우, 사기적인 변경을 통해 강제할 수 있는 유형의 공격이다.

Proof of Statke 로의 전환은 Ethereum protocol 이 공격이 있을 때 더 큰 불이익을 준다는 것을 의미한다. 이는 PoS 에서 네트워크를 보호하는 validator 는 protocol 에 상당한 양의 ETH 를 stake 해야하기 때문이다. 만약 그들이 네트워크를 공격하려고 시도하면 protocol 은 자동으로 그들의 ETH 를 파괴 할 수 있다.

PoS 에서 protocol 이 할 수 있는 최선의 방법인 [network 를 보호하는 miner 가 그렇게 하지 않았으면(공격하지 않았으면 을 뜻하는 것 같다) 얻었을 mining rewards 를 잃게하는 방법] 은 불가능하다. PoW 에서 동등한 효과를 얻으려면, protocol 은 miner 가 cheat 하려고 시도할 때 miner 의 모든 장비를 파괴할 수 있어야 한다.

Ethereum 의 보안 모델 역시 shard chain 의 도입때문에 바뀌어야 한다. Beacon chain 은 서로 다른 shard 에 validator 를 무작위로 할당한다. 따라서 validator 가 특정 shard 를 공격해서 공모하는 것이 사실상 불가능하다. Sharding 은 PoW blockchain 에서 안전하지 않다. miner 는 protocol 에 의해 제어될 수 없기 때문이다.

Staking 또한 Ethereum node 를 'run' 하기 위해 엘리트 하드웨어에 투자할 필요가 없음을 의미한다. 이는 더 많은 사람들이 validator 가 되고, 네트워크의 탈 중앙화를 강화하고 공격 표면적을 줄일 수 있도록 하고 있다.

Sustainability

Ethereum 은 더 친환경적 이어야 한다.

Ethereum 과 Bitcoin 과 같은 다른 블록체인이 mining 때문에 에너지 집약적 이라는 것은 비밀이 아니다. 그러나 Ethereum 은 staking 과 PoS 를 통해 컴퓨팅 파워가 아닌 ETH 에 의해 보안이 이루어지는 방향으로 가고있다.


PoS(Proof-of-Stake) : 지분 증명

Validator 와 ETH 예치 금액에 의존하여 블록을 생성하는 방식

Validator 들은 32 ETH 를 deposit contract 에 예치하고 network 를 유지하기로 결정한 노드들을 의미한다. 이 validator 들은 무작위로 선택되어 다음 블록을 생성 할 수 있는 기회를 얻게 되며, 블록 검증 및 생성에 대한 보상으로 ETH 를 받게 된다.

Shard chain : 샤드 체인

트랜잭션의 병렬 처리를 가능하게 하여 처리량을 향상

블록체인이 64개의 다른 체인들로 분할되는 확장성 메커니즘으로, 정보의 병렬 트랜잭션, 저장, 처리를 가능하게 한다.

Eth 2.0 로드맵

  1. Phase 0 : 2020 년. Beacon chain 구현. Beacon chain 은 validator 의 registry 를 저장하고 관리하며 이더리움 2.0 의 PoS 합의 메커니즘을 구현한다.
  2. Phase 1 : 2021 년 출시 예정. shard chain 의 통합. 이때 기존의 이더리움 chain 을 최초의 shard chain 으로 통합예정.
  3. Phase 2 : 2021~2022 년 예상. 명확하게 정의 되어 있지 않으나 Ethereum 계정 추가 및 입/출금, shard chain 간의 크로스 트랜잭션 및 contract 구현 등 으로 구성될 것으로 예상된다. 확장 가능한 applcation 을 Eth 2.0 상에 구축할 수 있도록 실행 환경을 구축하고 ethereum 1.0 chain 을 ethereum 2.0 으로 옮겨 기존의 PoW 를 완전히 종료하게 될 것으로 예상.

Eth 2.0 의 validator 로 참여하기 위해 staking 을 원하면 deposit contract 에 최소 32 ETH 를 예치하면 된다. 하지만 phase 0 에서 토큰 전송이 비활성화되어 있기 때문에 deposit 한 ETH 는 phase 2 까지 기다려야 출금이 가능하다.

 


Beacon Chain

https://ethereum.org/en/eth2/beacon-chain/

UTC 기준 2020.12.01. 12:00 에 ship 됨.

Beacon chain 은 shard 의 확장된 network 나 staker 를 수행하거나 조정한다. 하지만 이는 오늘날의 Ethereum mainnet 과는 다를 것이다. Beacon chain 은 account 나 smart contract 를 처리할 수 없다.

Beacon chain 의 역할은 시간이 지남에 따라 바뀔 것이지만, 우리가 추구하는 안전하고 지속가능하며 확장 가능한 Ethereum의 기본 구성요소이다.

Introducing staking

Beacon chain 은 Ethereum 에 PoS를 도입할 것이다. 이는 Ethereum 을 안전하게 유지하는데 도움이 되는 새로운 방법이다. Ethereum 을 더 건강하게 만들고 그 과정에서 더 많은 ETH 를 얻을 수 있게 하는 공공재라고 생각하자. 실제로, validator software 를 활성화하기 위해 ETH 를 staking 해야한다. validator 는 transaction 을 처리하고 새 block 을 생성한다.

Staking 하고 validator 가 되는 것이 mining(network 가 현재 보안되는 방식) 보다 쉽다. 그리고 이것이 장기적으로 Ethereum 을 더 안전하게 만드는데 도움이 되길 바란다. 더 많은 사람들이 network 에 참여할 수록, 더 탈중앙화되고 공격으로부터 안전해진다.

Setting up for shard chains

shard chain 은 두번째 Eth2 업그레이드 이다. 이는 network 의 capacity 를 증가시키고, network 를 64개의 blockchain 으로 확장하여 transaction 속도를 증가시킨다. Beacon chain 은 shard chain 을 도입하기 위한 중요한 첫 걸음 인데, shard chain 에서 안전하게 동작하기 위해서는 staking 을 필요로 하기 때문이다.

결국 Beacon chain 은 shard chain 을 validate 하기 위해 staker 들을 무작위로 할당할 책임을 가진다. 이것이 staker 가 shard 를 공모하고 인수하는 것을 어렵게 만드는 핵심이다. 이는 1조분의 1의 기회를 가지고 있다는 것을 의미한다.

Shard chain 은 PoS 합의 메커니즘이 있는 경우에만 Ethereum 생태계에 안전하게 들어갈 수 있다.

Shard chains

https://ethereum.org/en/eth2/shard-chains/

Sharding 은 부하를 분산하기 위해 database 를 수평으로 분할하는 process 이며, 컴퓨터 과학의 일반적인 개념이다. Ethereum context 에서 sharding 은 "shard" 라고 알려진 새로운 chain 을 생성해서 네트워크의 혼잡을 줄이고 tps 를 증가시킨다.

이는 확정성 이외의 이유로 중요하다.

 

Everyone can run a node

Sharding 은 기존의 database의 사이즈를 늘려서 확장하는 것에 비해서 분산된 상태로 유지하려는 경우 좋은 방법이다. 기존의 방법은 강력하고 비싼 컴퓨터가 필요하기 때문에 network validator 들이 Ethereum 에 접근하기 어렵게 만든다. Shard chain 을 이용하면, validator 들은 전체 network 가 아닌(오늘날의 상황) 그들이 validating 하는 shard 에 대한 data 만 store/run 하면 된다. 이를 통해 작업 속도가 빨라지고 hardware 요구 사항이 크게 감소한다.

More network participation

Sharding 은 결국 개인 노트북이나 핸드폰에서 Ethereum 을 싱핼할 수 있게 한다. 따라서 더 많은 사람들이 shard 된 Ethereum 에 참여하거나 client 를 실행할 수 있어야 한다. Network 가 분산 될 수록 공격 표면적이 작아지기 때문에 보안이 강화될 것이다.

Hardware 요구사항이 낮을 때, sharding 은 중개 서비스에 전혀 의존하지 않고도 client 를 쉽게 run 할 수 있다. 가능하면 여러 client 를 실행하는 것이 좋다. 이는 장애 지점을 더 줄여 network 상태에 도움이 될 수 있다.

Shard chains version 1 : data availability

첫번째 shard chain 이 ship 되면 network 에 추가 data 만 제공한다. Transaction 이나 smart contract 를 처리하지 않는다. 하지만 rollup 과 결합하면 tps 의 현저한 향상을 제공한다.

Rollup 은 오늘날 존재하는 "layer 2" 기술이다. 이를 통해 dapp 은 transaction 을 off-chain single transaction 으로 묶거나 "roll up" 하고, 암호화 증명을 수행한 다음 이를 chain 에 제출 할 수 있다. 이는 transaction 에 필요한 data 를 줄인다. 이를 shard 에서 제공하는 모든 추가 데이터 가용성과 결합하면 100,000 tps 를 얻을 수 있다.

Shard chains version 2 : code execution

계획은 항상 shard 에 추가 기능을 더하여 오늘날 Ethereum mainnet 과 비슷하게 만드는 것이었다. 이를 통해 smart contract 를 저장 및 실행하고, account 를 처리할 수 있다. 하지만 version 1 shard 가 제공하는 tps 증가를 고려할 때, 이것이 계속 필요로 하는 것일까? 이는 community 에서 계속 논의되고 있으며 몇 가지 옵션이 있는 것으로 보인다.

Do shards need code execution?

Vitalik Buterin 이 Bankless podcast 에 대해서 얘기할 때, 논의할만한 가치가 있는 잠재적인 옵션 3가지를 발표했다.

  1. State execution not needed : 이 뜻은 shard 에 smart contract 를 처리하고 이것들을 data depot 으로 남겨둘 수 있는 기능을 제공하지 않는다.
  2. Have some execution shards : 더 스마트해지기 위해 모든 shard(현재 64개가 계획 됨) 가 필요하지 않는 절충안이 있을 수 있다. 이 기능을 일부에 추가하고 나머지는 그대로 둘 수 있다. 이것이 배달 속도를 높일 수 있다.
  3. Wait until we can do Zero Knowledge(ZK) snarks : 마지막으로, ZK snarks 가 확고해지면 이 논쟁을 재검토 할 수 있다. 이것은 진정한 private transaction 을 network 에 가져오는 데 도움이 될 수 있는 기술이다. 더 스마트한 shard 를 필요로 할 가능성이 높지만 아직 연구 개발 중에 있다.

Zero Knowledge snarks : 영지식 스나크

영지식 스나크의 특성으로 블록체인 환경에서 영지식 증명을 구현할 수 있게 되었다. 영지식 스나크를 활용하면 transaction 의 세부 정보(수신자, 송신자, 금액 등)를 노출하지 않고도 해당 transaction 의 유효성을 다른 노드들에게 알릴 수 있다.


Docking

처음에는 다른 Eth2 업그레이드가 우리가 현재 사용하는 mainnet 과 별도로 ship 된다는 점을 기억하는 것이 중요하다. Ethereum mainnet 은 Beacon chain 과 shard chain 이 PoS를 사용하며 병렬로 실행되는 동안에도 계속 PoW 로 보호 될 것이다. Docking 은 이 두 시스템이 합쳐지는 것이다.

https://ethereum.org/en/eth2/docking/

Docking mainnet 은 모든 ETH holder 와 사용자가 원활하게 전환 할 수 있도록 Ethereum 의 전체 history 및 현재 상태와 더불어, PoS system 안에서 smart contract 를 실행 할 수 있는 기능을 제공한다.

'개발' 카테고리의 다른 글

[블록체인] ERC-721  (0) 2021.01.06
[블록체인] DeFi  (0) 2021.01.06
[블록체인] UDC 2020  (0) 2021.01.04
[블록체인] 옴니원  (0) 2021.01.04
Comments