EOS Technical Whitepaper v2 중점 분석 및 요약
안녕하세요, 한국의 첫 EOS Block Producer 후보 EOSYS 팀입니다.
한국 시간으로 3월 18일 오전 7:10경, EOS.io의 기술 백서(Technical Whitepaper) v2가 업데이트 되었습니다.
업데이트된 백서는 2018년 3월 20일 Virginia Tech에서 열린 Dan Larimer의 강연 ‘Intro to Blockchain’에서 하드카피로 배포가 되면서 본격적으로 외부로 알려지기 시작했는데요,
이번 글을 통해 저희 EOSYS는 이제 갓 나온 v2 백서에 새롭게 추가되거나 변경된 부분들을 분석하여 여러분께 간략히 요약해 드리려고 합니다. 백서의 중간 중간 작은 문장 구조 변경이나 어휘 변경들은 건너뛰었으며, 최대한 빠르게 요약하기 위해 변경된 내용들을 압축하여 담았습니다. 중요하게 살펴보셔야 할 부분들은 굵게 표시하였습니다. 함께 살펴 보시죠.
Consensus Algorithm(BFT-DPOS)
- ‘DPOS’용어가 ‘BFT-DPOS’로, 표기가 변경되었습니다. 전부터 EOS를 DPOS로 표현한 것에 대해 자주 공격성 멘트를 받고는 했는데, 이번에 BFT를 명시함으로써 앞으로의 잡음이 줄어들 것으로 예상됩니다.
- 블록 생성 시간이 3초에서 0.5초로 단축되었습니다.
- 블록 생성자가 생성을 놓쳐 하나 이상의 블록이 생략된 경우, 블록 생성간의 최소 갭이 6초에서 0.5초로 단축되었습니다.
- 블록 생성 시간이 줄어든 것과 반대로, 매 라운드 당 생성되는 블록은 21블록에서 126블록으로 증가했습니다. 21BP가 6블록씩 생성하여 총 126블록이 됩니다. 결과적으로 한 라운드에 소요되는 총 시간은 이전과 동일하게 유지되었습니다.
- v1에서 블록을 생성하는 BP의 순서는 의사 난수를 이용해 섞이는 것으로 기술되어 있었지만, v2에서는 15BP 이상의 의결 하에 순서가 결정되는 것으로 변경되었습니다.
Transaction Confirmation
- ‘EOS.io는 1초 안에 트랜젝션이 번복 없이 승인(confirmation)될 수 있는 비동기식 비잔틴 장애 허용(aBFT: asynchronous Byzantine Fault Tolerance)을 적용한다.’는 내용이 추가되었습니다.
Accounts
- 모든 계정(account)명 제한이 2~32글자에서 최대 12글자로 변경되었습니다.
- 모든 계정이 계정 생성시(계정 저장 비용을 위해) 최소한의 잔고(balance)를 유지해야 한다는 내용이 삭제되었습니다.
- @user.domain과 같은 계정 소유주만이 가질 수 있는 고유 주소를 지원한다는 내용이 삭제되었습니다.
- 계정 생성자는 생성 초기 계정 저장을 위해 RAM공간을 확보해 두어야 한다는 내용이 추가되었습니다.
Actions & Handlers
- 모든 문구에서 ‘Message’용어가 ‘Action’으로 대체되었습니다.
- ‘각 계정은 기본적으로 자신만의 구성된 action handling 스크립트에 접근할 수 있지만 병렬 처리를 지원하기 위해 다른 account의 database에 접근하여 action들을 보낼 수 있다.’는 내용이 일부 변경/추가되었습니다.
Deterministic Parallel Execution of Applications
- ‘2018년 6월에 출시할 EOS.io 소프트웨어는 우선 싱글 스레드(thread)만을 지원한다.’라는 내용이 추가되었습니다.추후 멀티스레드로 병렬 작업을 처리할 수 있게 되면, 각 샤드(shard)로 작업을 배치하고 동시에 처리할 수 있게 됩니다.
Context Free Actions 추가
- 서명 확인과 같은 계산 작업은 context를 포함하고 있지 않으므로 병렬 처리가 가능하다고 밝히며, 이를 통하면 EOS에 국한되지 않고 Sharding, Raiden, Plasma, State channel같은 확장성 있는 기능들을 활용해 효율적인 interblockchain communication과 잠재적으로 제한 없는 확장성이 가능하게 되었습니다.
Token Model and Resource Usage
Objective and Subjective Measurements
- ‘DApp 개발자들은 bandwidth와 computation을 유저들에게 위임(delegate)할 수 있다’는 내용이 추가되었습니다.
Worker Proposal System(‘##Community Benefit Applications’ 에서 제목 변경)
- ‘유저들이 3개의 DApp을 투표해서 보상을 준다’는 항목이 ‘토큰 홀더들이 작업 제안(Worker Proposal)에 투표해서 보상을 준다’로 변경되었습니다.
- Worker Proposal을 구현하는 시스템 컨트랙트는 2018년 6월에 출시되지 않을 수 있으나, 보상을 위한 펀딩 메카니즘이 우선 출시될 것입니다. BP보상이 시작됨과 동시에 이 자금이 축적되기 시작할 것입니다. Worker Proposal 시스템이 WASM 안에 구현될 것이기 때문에 포크(fork)없이 추가될 수 있습니다.
Governance
Freezing Accounts
- 계좌 동결을 위해 필요한 BP 정족수가 17명에서 15명으로 감소했습니다.
Changing Account Code
- 얘기치 않게 어플리케이션이 비정상적으로 작동할 경우 포킹하지 않고 코드를 대체하는 작업에도 계좌 동결과 마찬가지로 필요한 BP 정족수가 17에서 15로 감소했습니다.
Upgrading the Protocol & Constitution 내용 변경
- EOS.io 소프트웨어는 표준 소스코드와 헌법(constitution)으로 정의된 프로토콜에 근거하여 아래의 프로세스를 정의하며, 이는 업데이트 될 수 있습니다.
- BP가 제안하는 헌법 변경은 (17명 -> 15명)의 동의를 얻어야 합니다.
- BP는 30일 연속으로 (17 -> 15명)의 동의를 얻어 새 헌법을 유지합니다.
- 모든 사용자들은 새 헌법에 따라 미래의 트랜잭션이 진행될 것이라는 것에 (hash를 사용하여 트랜젝션에 서명 -> 수락하는 의사를 표시)해야 합니다.
- BP는 소스코드 변경안을 헌법에 반영하기 위해 (git 커밋의 -> 새 헌법의) hash를 블록체인에 제안합니다.
- BP는 30일 연속으로 (17 -> 15명)의 동의를 유지하여 새 코드를 승인합니다.
- 코드 변경은 7일 후 적용되며, (+블록을 생성하지 않는) 모든 풀 노드들은 소스코드의 비준 후 1주일간 유예기간을 갖습니다.
Scripts & Virtual Machines
Generic Multi Index Database API(추가)
- ‘스마트 컨트랙트 개발에 필요한 데이터베이스 스키마의 필요성’이 추가되었습니다.
Virtual Machine Independent Architecture 삭제
Web Assembly (WASM) 삭제
Ethereum Virtual Machine (EVM) 삭제
- Web Assembly, VM과 관련된 내용은 EOS.io software design과 독립된 내용으로, 본 부분에서의 내용은 삭제되었습니다.
Inter Blockchain Communication
Merkle Proofs for Light Client Validation (LCV)
- ‘SHA 256을 활용함으로, 864byte 안에 1억개의 블록을 담을 수 있는 체인의 각 블록을 증명할 수 있게 되었다’는 내용이 추가되었습니다.
Segregated Witness
- Steem 블로그 포스트를 예시로 들어, EOS.io 도 다른 블록체인과의 통신(Inter blockchain communication)을 위해 Segwit을 도입했다는 내용이 추가되었습니다. 이는 디스크 샤용량과 동기화(sync) 시간을 크게 줄여줍니다.
이상으로 v2에서 업데이트 된 내용들을 간략히 살펴보았습니다. 관점에 따라 많은 내용이 변경되었다고 볼 수도 있고 크게 달라진 점이 없다고 볼 수 있을 것 같은데요, 여러분께서는 어떻게 보셨나요? 아직 구체화되고 담아내야 할 내용이 많은 것이 사실이지만, 다가올 6월 메인넷까지 더 방대한 내용들이 공개되기를 기대해 봅니다.
저희 EOSYS는 상시 모니터링을 통해 중요한 변화나 이슈를 감지하여 전해 드리도록 하겠습니다. 또한 건강한 EOS 생태계 활성을 위해 계속하여 고민들을 해나가고 있으니, 언제든 저희 EOSYS 텔레그램 채널에 오셔서 저희와 함께 생태계 건설에 참여해 주시길 바랍니다.
감사합니다.
EOSYS 팀 드림
Website: http://eosys.io
Steemit: https://steemit.com/@eosys
Medium: https://medium.com/@eosys
Twitter: https://twitter.com/@EOSYS_IO
Telegram (영문): https://t.me/EOSYSIO
Telegram (한글): http://t.me/EOSYSIOKR
오타있습니다! BTF -> BFT
글 감사합니다.
바로 수정합니다. 제보 감사드립니다^^!
아 추가로 Scripts & Virtual Machines 부분에서 'VM과 관련된 내용이 대폭 삭제되었습니다.' 라고 적어주셨는데 백서 본문 중 아래와 같은 부분이 있어 충분히 이유 언급이 된 것 같은데 eosys의 글에서도 같이 언급되었으면 좋겠다는 생각입니다.(그냥 없어졌다고 생각할 오해의 소지가 있어서..)
The details of scripting language and virtual machine are implementation specific details that are mostly independent from the design of the EOS.IO technology.
riverh님 의견 감사드립니다. 오해의 소지가 있어 짧게 그 이유를 추가해 두었습니다. :)
잘봤습니다 좋은 글 감사드립니다
읽어주셔서 감사합니다. :)
어떤 내용이었는지 궁금했는데 잘 정리해주셔서 감사합니다^^
읽어주셔서 감사드립니다. :)
웹 어셈블리는 이오스의 주 개발 언어로 알고있는데 이 내용을 삭제한 이유가 무엇일지..?
웹 어셈블리 자체를 EOS에서 없앤 것은 아니고, 백서 내용상의 삭제가 있었다. 라고 보시는게 맞을 것 같습니다.^^ 위에 @riverh 님께서 올려주신 백서 내용 일부처럼, 언어 스크립팅과 VM에 관한 내용은 EOS.io 기술을 디자인 하는 과정과는 독립적인 부분이라 그런 조취를 취한 것으로 보입니다. :)
블록 생성시간 단축(3초->0.5초) 과 필요 증인수 감소(17명->15명) 등이 큰 변화 같네요 ^^
맞습니다. 벌써 다음 버전이 기다려지네요 ^^
글 잘봤습니다ᆞ 좋은 하루 보내세요^^
감사드립니다. 따뜻한 하루 되세요^^
핵심 요약 글 잘보았습니다~ 여전히 발전 중이라는 점에서 미래가 더욱 기대됩니다.^^ 건승하시는 하루되십시오!
감사드립니다. valueup 님도 건승하세요!