백서 읽어주는 남자(eos 백서-6) @leesunmoo

이오스 백서 읽어주는 남자 6번째 포스팅입니다.

이태민님이 번역하시고 조재우님이 감수하신 이오스 기술백서를 제가 가지고 있는 백서를 읽는 능력(?)을 바탕으로 이오스 백서를 읽어볼까 합니다. 혹 제가 잘못 이해하는 부분이 있다면 독자분들이 바로 잡아주시길 바랍니다. 그리고 제가 이오스 백서를 읽어드리는 목적은 이오스에 대한 이해를 돕기 위함이지 투자를 권유하기 위함이 아님을 분명히 밝혀둡니다.

한글 번역된 기술백서 링크-이태민님이 번역하시고 조재우님이 감수하심

@leesunmoo/eos-leesunmoo
@leesunmoo/eos-2-leesunmoo
@leesunmoo/eos-3-leesunmoo
@leesunmoo/eos-4-leesunmoo
@leesunmoo/eos-5-leesunmoo

에 이어서 계속합니다.

거버넌스 (Governance)

거버넌스는 사람들이 소프트웨어 알고리즘으로 결정할 수 없는 주관적 문제에 대하여 합의를 이루는 과정을 뜻합니다. EOS.IO 소프트웨어는 블록 생산자가 가지고 있는 영향력을 효과적으로 행사하는 거버넌스 과정을 구현합니다. 정의된 가버넌스 과정의 부재로 인해 이전의 블록체인들은 즉흥적이고, 비공식적이고, 때로는 논란을 일으키는 거버넌스 과정을 겪었고 예측할 수 없는 결과가 나타났습니다.

지금까지 개발된 많은 블록체인들이 거버넌스 시스템 부재로 인하여 어려움을 경험하고 있습니다. 비트코인은 블록사이즈 확장 이슈를 아직도 해결하지 못하고 있고 이더리움은 다오 사태 때 이념 문제로 체인이 분기되어 이더리움클레식이라는 귀태를 탄생시키기도 했습니다. 물론 대쉬처럼 이상적인 거버넌스 시스템을 갖춘 블록체인도 있습니다. 이오스 블록체인은 스팀과 유사한 거버넌스 시스템을 갖추게 되는 것으로 이해됩니다.

EOS.IO 소프트웨어는 블록 생산자에게 양도한 토큰 소유자로부터 권력이 발생함을 인지하고 있습니다. 블록 생산자가 가지는 권한은, 계정을 동결하고, 결함이 있는 애플리케이션을 판올림하며, 기본 프로토콜의 변경을 가하는 하드포크를 제안하는 것으로 한정합니다.

이오스 블록체인의 핵심 거버넌스 기능을 수행하는 것은 블록생산자들이며 이들에게는 제한되지만 명확한 권한을 부여합니다. 이오스 블록체인도 스팀블록체인처럼 블록생산자를 어떻게 구성하는가가 매우 중요해 보입니다.

EOS.IO 소프트웨어의 일부는 블록 생산자를 선출하는 것입니다. 블록체인의 모든 변경사항은 블록 생산자에 의해 검수받아야 합니다. 만약에 블록 생산자가 토큰 소유자에 반하는 결정을 내린다면 투표에 의해 지위를 상실할 수 있습니다. 블록 생산자가 토큰 소유자의 허가 없이 변경을 가한다면 모든 비생산 풀 노드 검사자(non-producing full-node validators)(거래소 등)들은 변경을 거부할 수 있습니다.

블록생산자들이 토큰 소유자의 허가 없는 블록변경을 하는 경우 비생산풀노드 검사자들에 의해 거부될 수 있다고 합니다. 블록변경이 토큰 소유자의 허가를 득한것인지 여부를 알 수 있게 하는 , 그리고 토큰소유자가 블록변경 허가의사를 어떻게 표시하는지에 대한 부분은 언급이 없지만 이오스 블록체인상에 구현될 것으로 예상 되어 집니다.

계정 동결 (Freezing Accounts)

가끔 스마트 컨트렉트는 비정상적이거나 예측하지 못한 방식으로 동작하여 의도했던 기능이 동작하지 않을 수 있습니다. 이외에도 비정상적인 양의 리소스를 소비하는 것을 인지하여 애플리케이션이나 계정에 문제가 있음을 알 수 있습니다. 이러한 문제점이 발생했을 때, 블록 생산자는 이러한 상황을 바로 잡을 방법을 가집니다.
모든 블록체인의 블록 생산자들은 블록에 포함되는 트랜잭션을 선택하는 능력을 갖추고 있으며, 이를 이용하여 계정을 동결할 수 있습니다. EOS.IO 소프트웨어는 활성화된 블록 생산자들 간의 17/21 투표를 통해 특정 계정에 대한 동결 여부를 의결할 수 있습니다. 만약에 블록 생산자들이 이 기능을 악용한다면 투표에 의해 지위를 상실할 수 있으며 이 경우 동결된 계정은 복원됩니다.

이오스 블록체인은 스마트컨트렉에서 다양한 이유로 발생될 수 있는 예측할수 없는 오작동에 대하여 블록생산자 80%(21명중 17명)의 찬성에 근거하여 특정 계정을 동결 할 수 있는 것으로 이해 됩니다. 물론 동결 계정 복원 방법도 가지고 있는 것으로 이해 됩니다.

계정 코드 변경 (Changing Account Code)

다른 모든 수단이 실패하고 "멈추지 않은 애플리케이션"이 예측할 수 없이 동작한다면 EOS.IO 소프트웨어는 블록 생산자들이 전체 블록체인의 하드 포크 없이 계정의 코드를 교체할 수 있도록 합니다. 계정 동결과 유사하게 코드의 교체 작업은 선출된 블록 생산자들 간의 17/21 투표가 필요합니다.

모든 수단을 동원하고도 애플리케이션의 오작동을 멈출 수 없을 경우 이오스 블록체인은 블록생산자 21명 중 17명의 찬성으로 하드포크를 거치지 않고 계정의 코드만을 교체할 수 있다고 합니다. 2016년 있었던 이더리움 스마트컨트렉이었던 더다오 오류사태 같은 경우가 발생하더라도 어렵지 않게 대처할 수 있는 것으로 이해됩니다. 물론 블록생산자들이 위임된 권한을 남용할 수 없도록 토큰 소유자들이 블록생산자들을 관심을 가지고 지켜보아야 하는 부담은 존재하는 것으로 보입니다.

약관 (Constitution)

EOS.IO 소프트웨어는 블록체인에서 P2P 서비스 약정을 체결하거나, 서명 한 사용자 간의 구속력 있는 계약인 "약관"을 수립하도록 합니다. 약관으로 코드로 제약을 가하기 어려운 사용자 간의 의무를 규정하며, 상호 간의 관할권을 확립하고 법률을 제정함으로 분쟁 해결을 쉽게 합니다. 네트워크로 전파되는 모든 트랜잭션은 약관의 해시(hash)를 서명에 포함해야 하며, 이를 통해 서명자가 명시적으로 계약에 구속되도록 합니다.
약관은 사람이 읽을 수 있는 형식으로 소스코드 프로토콜의 의도를 정의합니다. 이를 통해 오류가 발생하였을 때 버그와 기능의 차이를 인식할 수 있도록 하며, 커뮤니티가 수정사항이 적합한지 아닌지 판단하도록 해줍니다.

프로토콜과 약관의 개정 (Upgrading the Protocol & Constitution)

EOS.IO 소프트웨어는 소스 코드 원형과 약관으로 규정되는 프로토콜의 절차를 규정하며, 다음의 절차로 개정할 수 있습니다.
1.블록 생산자들은 약관의 개정을 제안하고 17/21 승인을 받습니다.
2.블록 생산자들은 17/21 승인을 30일간 유지합니다.
3.모든 사용자는 새 약관의 해시를 사용하여 거래에 서명해야 합니다.
4.블록 생산자들은 약관의 변화를 반영하도록 소스 코드의 변경을 채택하며, git 커밋의 해시값을 이용하여 블록체인에 제안합니다.
5.블록 생산자들은 17/21 승인을 30일간 유지합니다.
6.코드 변경은 7일간의 소스코드 적용 유예기간을 주며, 7일이 지난 이후 적용됩니다.
7.새 코드로 판올림하지 않은 노드는 강제로 종료됩니다.
EOS.IO 소프트웨어의 기본 설정에 따르면, 새로운 기능을 추가하는 블록체인의 판올림 작업은 23달이 걸리며, 약관의 개정이 필요 없는 치명적이지 않은 버그의 수정은 12달 소요됩니다.

이오스 블록체인의 하드포크와 약관 변경 절차를 규정하고 있는 부분입니다. 하드포크와 약관 변경은 신속히 진행된다고 해도 67일이 소요되는 것으로 보입니다. 3항 모든 사용자는 새 약관의 해시를 사용하여 거래에 서명해야 합니다.부분은 100% 사용자 서명을 요구하는 것인지는 조금 의구심이 듭니다. 현실적으로 100% 서명을 받는 것은 불가능하기 때문입니다.현실적으로 찬성 서명이 70%를 넘는 것으로 해야 하는 것 아닌가 생각을 해보게 됩니다.

응급 변경 (Emergency Changes)

치명적인 버그나 공격자로 인한 보안 문제가 발생할 경우 블록 생산자는 판올림 과정을 빠르게 해야합니다. 일반적으로 새로운 기능을 도입하거나 치명적이지 않은 버그를 수정하기 위해 판올림을 빠르게 하는 것은 약관에 어긋납니다.

프로토콜과 약관의 개정 (Upgrading the Protocol & Constitution) 절차에도 불구하고 치명적 버그나 보안문제가 발생할 경우 프로토콜과 약관의 개정 (Upgrading the Protocol & Constitution)절차를 거치지 않고 이오스 블록체인 하드포크를 진행할 수 있다는 의미입니다.

이후 부분은 다음 포스팅(eos 백서-7)에서 읽어드리겠습니다

감사합니다.

@leesunmoo 올림

대문 이미지를 제공해 주신 @leesol님에게 감사드립니다.

H2
H3
H4
3 columns
2 columns
1 column
12 Comments