ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이더리움 비잔티움 하드 포크란 무엇인가?
    암호화폐 2018. 12. 10. 08:33




    이더리움 비잔티움 하드 포크란 무엇인가?





    가상화폐에 관심을 두게 되면 제일 먼저 비트코인과 이더리움을 만나게 된다. 작년 말 이들의 가격은 가히 광풍이라 할 만했다. 이더리움 투자자들은 현명한 계약과 분산된 애플리케이션이 여러 산업 분야에 사용되기를 기대한다. 하지만 2015년 7월 30일에 세상에 첫선을 보이고 3년밖에 안 된 여전히 초기 기술이라는 것을 잊어버리는 경향이 있는 것 같다. 시간이 지난 지금 비잔티움 하드 포크를 다시 꺼내는 이유는 콘스탄티노플 하드 포크가 진행 중이기 때문이다.

    비잔티움( Byzantium) 하드포크는 이더리움이 실시한 두 번째 업데이트이며, 메트로폴리스(Metropolis) 단계로 가기 위해서 두 번의 업데이트가 있는데 그중 하나다. 비잔티움 하드포크는 2017년 10월 16일 오후 2시 22분경 이더리움의 437만 번째 블록을 기점으로 구현되었다. 이더리움의 프라이버시, 확장성 및 보안 속성을 개선하기 위해 설계된 9개의 EEP (ETHERSUMUM EUPEMENT PROTOCOL)로 구성되었다.
    이더리움의 로드맵에 따라 네 가지 네트워크가 출시될 예정이다. 첫 번째 버전은 프런티어(Frontier)라고 하며 2015년 7월에 출시되었다. 개발자가 분산된 앱을 실험하고 개발하는 데 "베타 출시"로 간주하였다. 두 번째 것은 홈스테드(Homestead)라고 불렀으며 플랫폼을 안정화하기 위해 2016년 3월에 출시되었다. 세 번째 것은 메트로폴리스(Metropolis)로 비잔티움 하드 포크와 콘스탄티노플 하드 포크 두 부분으로 구성되어 있다. 변경 사항의 성격으로 인해 대량 수용 가능성에 대한 이더리움의 중요한 진화를 나타낸다. 네 번째이자 마지막 업그레이드는 세레니티(Serenity)라고 하며 올해 초에 릴리스 될 예정이지만 지연되었다.


    비잔티움(Byzantium) 업데이트의 주요 목표는 현재 버전에서 확인된 비효율성을 제거하고 홈스테드(Homestead)의 출시 이후 확인된 개선 사항을 통합한다. 현재 핵심 개발팀이 조사하고 있는 주요 프로젝트를 위한 기초 인프라를 구축하는 것이다. 이 업데이트는 이더리움의 현재 버전인 홈스테드(Homestead)의 출시에 따라 개발 및 테스트 된 여러 Ethereum Improvement Proposals (EIP) 을 통합하므로 플랫폼을 더 가볍고 빠르게 실행하고 트랜잭션 속도를 향상하며 스마트 계약 보안 및 개인 정보를 보호하도록 설계되었다. 비잔티움이 도입 한 몇 가지 변경 사항은 다음과 같다.



    비잔티움 하드 포크의 주요 특징

    1) EIP 649  - 블록체인 난이도 지연시키고 블록 보상을 줄인다

    최근 비탈릭 부테린(Vitalik Buterin)이 PoS 개발 상황에 관한 내용(75개)을 트윗한 것을 살펴보면 이더리움의 인프라가 형성되어 본격적으로 성장의 가속도가 붙기 위해선 채굴 방식을 기존 작업증명(PoW)에서 지분증명(PoS) 방식으로 합의 메커니즘을 변경해야 한다는 것은 분명해 보이고 처음부터 계획했던 것 같다. 비잔티움 업데이트는 네트워크 속도를 유지하기 위해서 Ethereum Ice Age(난이도 폭탄)를 18개월 지연시키고 이 기간에 이더리움의 캐스퍼 프로젝트(Casper Project) 버전이 도입되었다. 지연 외에도 EIP 649는 광부 관점에서 난이도 폭탄 대비 보상이 30%가량 늘었다고 하나 블록타임에 의한 보상감소가 아니라 블록 내 보상감소는 큰 의미를 지닌다. 블록당 5이더에서 3이더 까지 블록 보상을 줄였기 때문에 작업증명(Proof of Work, PoW)을 통한 광업은 점차 불가능한 수준이 될 것이다.


    2) EIP 98  - 병렬 계산 사용

    각 트랜잭션 후에 상태 루트를 계산하지 않으면 상태 루트를 계산하는 프로세스가 병렬화되고 반복되는 업데이트가 해싱될 수 있으므로 더 적은 수의 버클 트리 분기가 계산된다. 이는 연속적인 블록을 사용하여 트랜잭션 상태를 통신함으로써 일련의 병렬 프로세스를 시작함으로써 수행된다. 트랜잭션 처리 자체가 병렬로 수행되는 미래의 확장성 업그레이드를 위한 단계를 설정한다.


    3) EIP 658  - 가벼운 클라이언트 또는 지갑을 사용할 때 확실성 증가

    EIP140에서 REVERT opcode를 도입한 후에는 트랜잭션이 모든 가스를 소비하면 더 이상 실패한다고 가정할 수 없다. 결과적으로 호출자가  트랜잭션이 성공했는지와 상태 변경이 적용되었는지를 결정하는 명확한 메커니즘이 없다. 현재, 라이트 클라이언트는 이더리움 네트워크에 브로드 캐스팅된 트랜잭션이 실제로 실행되었는지를 확인할 수 없다. 이 제안서는 각 거래 영수증에 확인 번호를 추가하여 실제로 그러한 거래가 실제로 실행되었음을 확인한다. 트랜잭션 확인에는 이제 성공 또는 실패를 나타내는 상태 필드(성공의 경우 1, 실패의 경우 0)가 포함된다.


    4) EIP 100 - 블록 보상의 정밀도를 높인다

    네트워크 광부(miner)들은 거래를 확인하고 장부에 새로운 거래 기록(블록)을 추가하고 블록체인을 유지 보수 함으로써 블록 보상을 받는다. 그러나 때로는 두 명의 다른 광부가 동시에 블록을 생성할 수도 있다. 블록체인의 작동 메커니즘으로 인해 다양한 노드가 새로 식별된 블록 중 어떤 블록을 계속 진행할 것인지, 어느 노드를 거부할 것인지에 대한 합의를 하므로 블록체인 네트워크가 일시적이면서도 모호한 상태가 된다. 이때 공유가 큰 블록은 정상 블록으로 추가되어 작동하는 반면, 채택이 안 된 블록은 엉클 블록(uncle block)을 구성한다. 예를 들어 블록체인을 가계도로 간주하고 채택된 블록을 "부모 - 자식"이라 한다면, 삼촌은 비록 부모와 매우 가까운 관계지만 핵가족 일부가 아니므로 가족이나 블록체인과는 관련이 있지만 분리되어 있다는 의미이다.

    이렇게 따로 분리된 엉클 블록(uncle block)은 비트코인의 고립 블록(Orphan Block)을 보상하지 않는 것과는 달리 이더리움에서는 광업 보상의 분배에 있어서 네트워크 지연의 영향을 중화하기 위해 마이너 보수를 받는다. 엉클 블록(uncle block)은 컴퓨팅 파워가 높은 대형 광산 채굴장이 대부분의 보상금을 청구함으로써 인적 자원에 별다른 영향을 미치지 않는 인센티브의 중앙 집중화를 감소시키는 데 도움이 되고 엉클 블록 마이닝에서 수행된 작업으로 메인 블록체인에서 작업을 보완하여 네트워크의 보안을 강화한다. 이더리움에서 엉클 블록은 메인체인의 구성요소로 다뤄지고 있음을 파악할 수 있다. 이러한 엉클 블록(uncle block)의 비율은 안정된 블록 생성시간을 실현하기 위한 난이도 조정에 영향을 미칠 것이다.


    5) 암호화 강화를 위한 솔루션 도입 (EIP 198, EIP 212(197) 및 EIP 213(196)의 조합)

    ZK-Snarks (Zero-Knowledge proof)는 Zcash라고 하는 암호 해독 기술이다. 블록체인에 의해 트랜잭션을 인증받으면서도 코인 거래자들의 주소와 금액을 모두 보이지 않게 할 수 있는 기본적인 기반이 마련되었다. 이는 유효성 검사기가 처리하지 않고 트랜잭션을 검증할 수 있게 하므로 유효성 여부와 관계없이 트랜잭션에 있는 내용을 알 필요가 없다. 즉, ZK-Snarks는 이더리움에서 익명 트랜잭션을 가능하게 한다. Zcash는 프라이버시 보존 트랜잭션을 위한 가장 잘 연구된 방법인 논술 증거 (Zero-Knowledge Proofs)의 변형을 사용한다. Zcash의 변종인 zk-SNARKs는 블록체인이 거래 당사자의 신원이나 트랜잭션 금액을 공개하지 않고 거래가 발생했다는 암호 증명을 제공한다. 이것은 프라이빗 스마트 계약과 같이 이더리움의 새로운 사례를 가능하게 하는 개인 정보 보호 메커니즘을 위한 토대를 제공한다. Zk-snarks는 사용 편의성과 높은 보안 표준으로 인해 암호 공간에서 점점 더 많이 사용되고 있는 암호 유형이 되었다.


    6) EIP 214 - 스마트 계약 간의 상호 작용을 보다 안전하게 하는 것

    블록체인 기술을 통해 성공적으로 구현할 수 있는 가장 놀라운 개념 중 하나는 분산된 자율 조직인 DAO 이다. 분산된 자치 단체는 현명한 계약을 통해 운영되는 단체다. 금융 거래 및 규칙은 블록체인에 인코딩되어 중앙 통치 기관의 필요성을 효과적으로 제거한다. 하지만 현명한 계약 시 어떻게 블록체인에 배치되었는지를 완전히 예측하는 것은 매우 어려운 일이다. 이러한 예측 불가능성으로 인해 해커가 자금을 도용할 수 있는 보안 침해가 발생했다 (예 : The DAO hack). EIP 214는 계약 요청을 보다 예측 할 수 있게 만들고 현명한 계약이 알려지지 않으며, 계약자와 상호 작용하는 보다 안전한 환경을 조성함으로써 The DAO를 일으킨 문제를 해결하려고 한다.


    7) EIP 211  - 스마트 계약 간의 상호 작용을 보다 효율적으로 만드는 것

    RETURNDATASIZE와 RETURNDATACOPY 의 두 가지 새로운 opcode를 소개한다. 스마트 계약이 상호 작용할 때 개발자는 스마트 계약에서 받을 것으로 예상하는 데이터의 양을 하드 코딩해야 하며 이로 인해 가스 요금 청구 문제가 발생한다. 이 제안은 상호 작용 중인 계약에서 수신할 것으로 예상하는 데이터의 양을 지정하는 두 개의 새로운 opcode를 도입하여 이 문제점을 해결하려고 한다.


    8) EIP 206  - 사용자와 스마트 계약자 간의 상호 작용을 보다 저렴하게 만든다

    이더리움 사용자가 현명한 계약을 체결하면 여러 가지 이유로 트랜잭션이 실패 할 수 있다. 실패한 거래에서 자금이 이전되지는 않았지만 시도된 거래에 사용된 가스는 소비된다. EIP 206은 되돌리는 기능을 통해 조기 거래 또는 오류 거래를 차단하고 실제로 사용되는 가스만 특정 사용자 트랜잭션에 사용된다. 값싼 상태로 EVM을 확장한다.


    9) EIP 684  - 계약서 덮어 쓰기 방지

    비잔티움(Byzantium)은 계약 주소가 생성되고 저장되는 방식을 변경했다. 이 변경으로 인해 충돌할 수 있는 계약 주소가 작성될 수 있으며 이로 인해 여러 가지 문제가 발생할 수 있다. EIP 684는 이러한 충돌이 발생하지 않도록 설계되었다. 이더리움에서 EDCC가 같은 장소를 차지할 수 없도록 해서 EDCC 주소가 생성되는 방식을 바꾸었다.


    결론       
    비잔티움(Byzantium) 하드 포크는 이더리움의 규모를 약속된 로드맵대로 확장하는데 중요한 업데이트다. 이 업그레이드는 블록체인에서 더 빠른 트랜잭션과 더 높은 보안을 가능하게 하고 스마트 트랜잭션을 비즈니스 트랜잭션에 사용하기에 적합하도록 구현되었다.  궁극적으로, 우리는 비잔티움 하드 포크를 통해 도입된 변화가 이더리움 생태계의 건강에 긍정적으로 작용할 것으로 기대한다.





    Use by CCL A from http://coinpen.tistory.com/38

    [ 코인펜 ] 글 더보기

    댓글

Designed by Tistory.