EOS 블록 프로듀서 준수규정

원문: EOS Block Producer Compliance (Ben Sigman)

이 글의 목적은 EOS 블록생성자 규정 및 기준에 대한 우려를 되짚고, 계약 의무를 이행하지 않은 블록 프로듀서들을 일깨우기 위함입니다.

들어가기에 앞서, 계약과 EOS에 관한 배경지식

EOS는 블록체인을 통해 비즈니스가 안정적으로 수행될 수 있도록 오픈된 기술적 프레임을 제공할 것을 약속합니다. 이를 보장하기 위해, EOS는 EOS 메인넷을 사용하는 모든 EOS 토큰 보유자들에게 적용되는 일련의 시행법들 — 예를 들면, EOS 헌법 — 을 코드로 구현했습니다.

EOS 리카르디안 계약(EOS Ricardian Contracts(RC))

헌법과 더불어서, EOS 내부 명령들에 귀속되는 계약들이 있습니다. 이러한 계약들은 쉽게 변경될 수 없도록 EOS 안에 하드 코딩되지만, 평문으로 작성되기 때문에 일반인들도 읽을 수 있습니다.

1996년 Ian Grigg에 의해 발명된 이러한 종류의 계약을 리카르디안 계약(RC)이라고 합니다. RC는 암호화 서명에 의해 체결되기 때문에 특별합니다. 계약은 일반적으로 당사자들이 종이 위에 펜을 놓고, ID를 제공하고, 그 ID를 증명하는 공증인이 문서에 함께 서명하면서 체결됩니다. EOS로 명령이 전달되면, 암호화된 계좌의 키는 그 명령을 위해 관련된 계약들에 서명합니다. — 이 키는 계좌의 신원과 계좌 대리인의 서명을 유효화하는 역할을 합니다.

대다수 RC (와 헌법) 은 contracts/eosio.system directory에 있습니다. — 이것들은 EOS내에서 시스템 활동과 관련된 계약과 법들입니다.

계약은 결과만큼 강력합니다.

EOS내의 계약은 법적인 제약이 따르며 계약을 위반하는 것은 그에 따른 결과를 불러일으킵니다. 만약 결과가 없다면, 계약에 대해 책임을 가질만한 동기도 없게 됩니다. — 즉, 계약의 당사자들은 더욱 직접적으로 관여해야합니다. (실패의 위험이 있어야 계약이행을 함) Ian Grigg는 이렇게 말했습니다. “적극적으로 관여한다는 것은, Bob이 수상한 행동을 할 때 Alice가 Bob을 구속할 만한 방법이 필요하다는 것입니다.

EOS 메인넷 체인이 작동된지 한달이 지나가고 있으며, 블록 프로듀서들이 그들이 서명한 계약을 준수하도록 조치를 취할 시점은 이미지났습니다. 블록 프로듀서들은 체인의 근본적인 존재들입니다. — 게다가 선출된 존재들로서 블록 프로듀서들은 EOS 메인넷의 법을 이행할 책임감을 지녀야 합니다.

Regproducer에 대한 블록 프로듀서들의 준수사항

모든 블록생성자 후보들은 EOS 체인에 프로듀서로 등록해야 투표를 받을 수 있습니다. eosio.system-regproducer-rc.md RC는 현재 구동중인 regproducer 명령에 의해 체결되었습니다. 이 계약은 깃허브에서 확인 가능합니다.

블록 프로듀서가 계약을 “준수”하는 것으로 여겨지려면, regproducer을 실행하고 특히 EOS를 지급받기 위해 claimrewards를 실행하는 블록 프로듀서들은 regproducer 협약에 기재된 조항들을 지킬 법적 의무를 지켜야 합니다.

물론 블록 프로듀서들이 어떠한 계약의 존재도 모르고 있었을 수도 있습니다. 하지만 이것이 그들이 이러한 책임들에서 벗어날 수 있다는 의미일까요? 최근 EOS뉴욕의 Kevin Rose가 말하길 “법을 몰랐다는 사실이 법을 지키지 않은 뒤 자신을 방어할 수 있게 해주지는 않는다”고 하였습니다.

블록 프로듀서 규약준수 조사단

커뮤니티가 운영하는 규약준수 조사단이 현재 법을 이행하지 않으면서 이득을 취한 블록 프로듀서들을 가려내기 위해 움직이고 있습니다. 현재 기술적으로 측정 가능한 regproducer 협약의 몇 가지 조항들은 다음과 같습니다.

Regproducer — 공개 웹사이트

모든 블록 프로듀서 지원자들은 그들이 Regproducer 명령을 시행할 때 공개 웹사이트을 언급해야 합니다. 해당 웹사이트는 모든 자세한 사항을 공개해야 합니다. 거의 모든 BP들은 bp.json 파일을 도메인의 루트에 이용하면서 각종 정보를 제공하는 것을 표준으로 삼고 있습니다.

I, {{producer}}, agree to maintain a website hosted at {{url}} which contains up-to-date information on all disclosures required by this contract.

Regproducer — 소유권 공개

블록 프로듀서는 정확하게 정의된 소유권을 공개해야만 합니다. 특히 “10% 이상을 소유하는 수혜 주주들과 다른 직접적인 주주들”에 대해 자세히 명시해야합니다.

I, {{producer}}, hereby agree to disclose and attest under penalty of perjury all ultimate beneficial owners of my company who own more than 10% and all direct shareholders.

Regproducer — 공개 노드

모든 블록생성자들은 퍼블릭 엔드포인트(public endpoints; 좋은 블록생성자라면 P2P 혹은 API 종점의 구분하겠지만, 종점의 구분은 협약에 명시되어있지는 않다)을 가지고 있어야만 합니다. 밑에 있는 조사단 보고서에 따르면 우리는 그 두 개 모두를 갖고 있지 않는 블록생성자를 다수 확인했습니다.

<...>will provide a public endpoint allowing at least 100 peers to maintain synchronization with the blockchain and/or submit transactions to be included.

Regproducer RC 협약을 위반한 블록 프로듀서

2018년 8월 5일, 조사단은 규약을 준수하지 않는 블록 프로듀서 명단을 만들었습니다. 추후 조치를 취하기 전, 그들에게 의무를 이행할 시간을 주자는 요구를 받아들여 2018년 8월 21일까지로 연장했습니다.

나는 소유권 공개와 P2P/API 노드에 대한 커뮤니티 감사 결과 보고서의 몇 가지 핵심을 요약했습니다. 보고서의 여러 노트들은 아래와 같습니다.

  1. 이 레포트는 EOS Nation Validation Tool, Aloha EOS Validation Tool을 포함한 여러 온라인 툴을 사용하여 만들어졌다. 추가적으로, 블록생성자 웹사이트는 소유권 공개와/또는 그들의 노드로 이어지는 링크에 대한 자세한 사항들을 찾기 위해서 조사되었다. 몇몇 경우에는 블록생성자가 위치할 수 있는 공개 웹사이트조차 가지고 있지 않았다.
  2. 분명히 존재는 하지만 감사단이 찾지 못하는 경우가 있을 수 있다. 만약에 이러한 경우라면, 나는 각 블록생성자들로 하여금 그들의 정보를 찾기 쉽도록 그들의 bp.json 파일을 업데이트할 것을 추천한다.
  3. “잘 정리된” 소유권 공개는 굉장히 주관적이다. 밑에 보고서에도 기술되었지만, 많은 블록생성자들이 소유권을 공개하지 않았다. 나는 소유권에 대한 분쟁을 피하고 싶다면 가능한한 자세히 이를 명시할 것을 블록생성자들에게 추천한다. 다시 한 번 말하지만, bp.json 파일에는 소유권 공개에 대한 (필수사항은 아니지만) 표준이 존재한다. 나는 HTML의 anchor tag를 이용하여 소유권 공개 항목이 웹사이트 페이지의 어느 부분에 명시되어 있는지 분명하게 할 것을 추천한다.

아래 리스트 중 어느 행이라도 “NO”로 표시된 곳이 있는 블록 프로듀서들은 2018년 8월 21일 0:00시까지 규정을 이행하지 않으면 이후 조치가 취해질 것입니다. 텔레그램 방에 들어와서 준수사항에 대해 논의해주시기 바랍니다.

부패 및 나쁜 행위자들

현 시스템 내부에 존재한 부패와 관련해서 EOS 개발자 Dan Larimer는 EOS의 가장 큰 아이디어는 “모든 부패할 가능성이 있는 사람들을 그 문제로부터 제거해야 한다는 것"이라고 기술했습니다.

이 모든 블록생성자가 시스템 내에서 부패했거나 나쁜 행위자라고 가정하는 것은 아닙니다. 규정을 모두 지키지 않은 몇몇 블록생성자들은 EOS 메인넷의 주요 기여자들 이었습니다. 다른 더 조용히 있는 블록생성자들이 그들이 서명한 계약 의무를 알지 못할 수도 있습니다. EOS를 설치하거나 regproducer를 실행할 때 코드를 읽으라는 요구가 없기 때문입니다.

필자는 이 계약들에 대한 인식을 높이기 위해 노력해 왔습니다. — eosio_build 설치 과정에서 “Terms of Use” 스크립트를 추가했습니다. 이제 사용자들이 EOS를 설치하거나 업그레이드할 때 그들은 계약을 이행할 책임에 구속된다는 것에 동의하게 될 것입니다.

결론

이미 이해되었든 아니든, EOS 블록생성자들이 선을 그을 때가 되었습니다. 웬만한 정도의 공개와 서비스의 수준에 제한을 설정할 때가 된 것입니다. 규정과 표준의 목적은 블록생성자가 되는 것을 더 어렵게 만드는 것이 아니라, 안전하고, 상호 운용 가능하며, 이용할 수 있고, 믿을 수 있는 시스템을 만들기 위함입니다.

2018년 8월 21일 우리는 누가 블록생성자들과 나란히 EOS 메인넷의 법을 존중하고 누가 법을 어기고 이후 결과에 직면할 위험을 감수할지 가려낼 것입니다.

필자의 의도는 블록생성자를 소환해내는 것이지 블록생성자들을 내쫓아내는 것이 아닙니다. — 내 목적은 누구를 민망하게 하거나 본보기를 세우려는 것이 아닙니다. 이상적으로 모든 블록생성자들이 8/21 전까지 자신들의 규정 준수 사항을 바로잡고 이후 조치가 취해질 필요가 없기를 바랍니다.

블록생성자들은 규정과 관련된 이슈를 논의하고 싶으면 이 텔레그램 방에 조인해주십시오.