[IMAGE: https://cdn.steemitimages.com/DQmZZP8DvxvVP9de4uNQtmrJcWiQigB7a8opzkhbkMmMgaQ/DFASD.png]
안녕하세요 EOS BP(Block Producer) 후보 KEOS 입니다.
오늘은 EOS 기술 백서 정보를 공유하려고 합니다.
본 자료는 KEOS가 EOS의 기술 백서 V2를 바탕으로 만든 자료입니다.
[IMAGE: https://cdn.steemitimages.com/DQmTifMN7PwAYjA3JTdALffmYt9RJYTjkj32a9iSrAv6uHP/4.jpg]
EOS 합의 알고리즘 : BFT-DPOS
BFT-DPOS 합의 알고리즘은 각각의 블록에 대한 거래의 완결성이 이더리움의 Casper보다 10배 빠릅니다.
즉, 그 거래가 비가역적으로 되는 시간까지 이더리움보다 10배 빠르다는 것을 의미합니다.
매 라운드 252개의 블록이 생성되며, 어떤 주어진 시점에서 한 BP만 12개의 블록을 생성할 권한이 있습니다.
한 블록의 생성 시간은 0.5초이고, 만약 블록이 제 시간에 생성되지 못 하면 블록은 생략될 수 있고, 다음 라운드 직전에 새로운 BP가 선출됩니다.
BP는 토큰 보유자에 의해 투표를 받습니다.
만약 BP가 블록을 놓치거나 24시간 안에 어떤 블록도 생성하지 못 하면, 다시 블록을 생성할 거라고 블록체인에 알리기 전까지 BP에서 제외됩니다.
이 합의 알고리즘에서 포크가 발생하는 경우, 합의는 가장 긴 체인으로 바뀝니다.
만약 BP가 동시에 두 개의 포크에서 두 개의 블록을 생산한다면, 투표로 퇴출됩니다.
[IMAGE: https://cdn.steemitimages.com/DQmQf9UCR3DvqmJDcZ5hf5cLHhpjo6w8s3aNBZoE3FuCjCm/6.png]
EOS 코인 특징
EOS.IO 소프트웨어에 의해 매년 최대 5%의 인플레이션이 발생할 수 있습니다.
생성되는 토큰의 양은 블록 생산자가 제출한 요구한 양의 중앙값으로 결정됩니다.
[IMAGE: https://cdn.steemitimages.com/DQmZfceEEQqtFKtQNHGQTJZznpq2L9aU42oHr61KVwLvT1T/7.PNG]
EOS BP(Block producers)
21명의 Main BP와 100명의 Standby BP가 있습니다.
Main BP는 총 연간 인플레이션의 1% 중 25%를 투표 지분에 따라 분배 받습니다.
Standby BP는 총 인플레이션의 1% 중 75%를 투표 지분에 따라 분배 받습니다.
하루 100 EOS 이하 토큰을 획득한 BP에게는 보상이 없습니다.
투표는 1년의 반감기를 가지며, 매주 재평가가 가능합니다.
[IMAGE: https://cdn.steemitimages.com/DQmTMjpSfxvAcqu4uNLwBjMqaNpwtQbwAsqjbPyq3rCqBr4/8.png]
EOS BP 선출
BP를 선출하는 것은 EOS.IO 소프트웨어에 내장되어 있습니다.
블록체인의 모든 변경 사항은 BP의 승인을 받아야 합니다.
만약 BP가 토큰 소유자들이 원하는 변경을 거부하면 낙선될 수 있습니다.
투표를 하기 위해 3일간 스테이킹 해야 합니다.
이를 철회하고 회수하는데 또한 3일 소요됩니다.
하나의 이오스 토큰은 30개의 투표 권한이 있습니다.
그러나, 중복해서 투표는 할 수 없습니다.
[IMAGE: https://cdn.steemitimages.com/DQmc5D8AJ5hbLsVpJ8Mc4x51GA8k3YDvPNWEsMXjaFXmbXD/9.jpg]
EOS BP 권한
1). BP는 블록에 포함되는 거래를 선택할 수 있는 권한이 있으며, 이를 이용하여 계정을 동결시킬 수 있습니다.
2). 이를 위해 BP간 15/21의 투표를 받으면 특정 계정에 대해 동결할 수 있습니다.
3). 만약 BP가 이 기능을 악용하는 경우, 그들은 투표에서 제외되고 동결된 계정은 동결이 풀리게 됩니다.
4). 멈추지 않는 app이 예기치 않게 동작할 때, BP는 전체 블록체인의 하드 포크 없이 계정 코드를 바꿀 수 있습니다. 계정 동결과 유사하게, 코드의 변경은 BP간 15/21의 투표를 받으면 됩니다.
[IMAGE: https://cdn.steemitimages.com/DQmVmQqU79Pw36gnpyACQspnYNr3HmH88FzMuMjG3KZNsSM/10.jpg]
EOS Worker Proposal 선출
BP를 선출하는 것 외에도 Worker Proposal를 선출할 수 있습니다.
제안서에 토큰 소지자로부터 받은 투표에 비례하여 인플레이션에서 BP가 받는 토큰을 뺀 나머지 양 중 일부를 받을 수 있습니다.
이 시스템은 2018년 6월에 출시되지 않고 늦게 출시될 예정입니다.
[IMAGE: https://cdn.steemitimages.com/DQmdw2WSzhPudnoCKdE21p2dtWj13z7ET2tqYpq4KAV1onV/11.jpg]
EOS.IO 소프트웨어 특징
1). 병렬 처리 능력으로 인해 향후 초당 수 백만 건의 거래 속도를 지원합니다.
2). EOS.IO 소프트웨어는 모든 계정이 12글자의 읽을 수 있는 이름을 가집니다.
3). 새 계정을 저장하기 위해 필요로 하는 RAM을 예약해야 합니다. 이를 위해 토큰이 있어야 합니다.
[IMAGE: https://cdn.steemitimages.com/DQmbZXgz9J9N297RUPUsd9DyUaTPELgiDgGxMF5U5rW9h4i/17.PNG]
4). 권한 통제
스팀 블록체인의 경우 posting key, active key, owner key로 구성되어 있습니다.
Posting key는 글 쓰기와, 업보팅만 할 수만 있고, active key는 금전적인 부분을 제어할 수 있습니다.
Owner key는 계정 소유에 대해 증명할 수 있는 키로 posting key와 active key를 변경할 수 있습니다.
이처럼 각각은 다른 권한을 가집니다.
EOS.IO Software는 여기서 더 나아가서 이러한 권한을 개인이 이름을 지어서 설정할 수 있습니다.
예를 들어, “친구” 권한을 설정하면 “친구”와 관련된 권한을 통제할 수 있습니다.
이러한 권한을 매핑을 통해서 다른 계정에서도 계정 소유자처럼 친구와 관련된 권한을 통제할 수 있습니다.
[IMAGE: https://cdn.steemitimages.com/DQmRqNzduhbnNJWw6XhYW2waTNZAVEthnrCJiXuZbdQjWr4/14.jpg]
5). Dapp을 사용하기 위한 3가지 자원 요소
① 대역폭과 기록 저장소(Bandwith and Log Storage)
② 연산과 연산 백로그, CPU(Computation and Computational Backlog)
③ 상태 저장소, RAM(State Storage)
참고&주의사항
① BP는 BP가 활용 가능한 Bandwith, CPU, RAM을 알려줘야 합니다.
② EOS.IO 소프트웨어가 런칭되고 어떤 계정이 총 토큰의 1%를 가지는 경우, 3일 동안의 스테이킹 Smart contract에 의해 허용량의 지분에 해당하는 것을 소비할 수 있습니다.
③ EOS 토큰 홀더들은 EOS.IO 메인넷 런칭 이후 bandwith과 CPU를 Dapp 개발자 등에게 유상으로 임대할 수 있습니다.
④ 블록체인은 모든 메시지의 기록을 유지하며, 이 기록은 full nodes에 의해 저장됩니다. 메시지 기록으로부터 상태를 재생성하기 위해 위한 계산을 연산 부채라고 하는데 연산 부채가 급격히 증가하면 과거 1년의 거래 상태를 재생하기 위해 6개월이 걸릴 수 있습니다. 이는 매우 치명적이므로 주의 깊게 관리 해야합니다. 연산 부채가 급격히 증가할 때, 그 해결 방안으로 블록체인 상태의 스냅샷을 저장하는 것과 과거 이력을 삭제 하는 것이 요구됩니다.
[IMAGE: https://cdn.steemitimages.com/DQmReHUoSkv5wE1MG6ym4CHaquSMBQC95tViqB8bgNrQ4JZ/16.jpg]
6). 헌법
EOS.IO 소프트웨어에 내자된 헌법은 코드에 의해 사용자간 의무를 정의하며, 상호 인정되는 다른 규칙과 함께 관활권 및 법률 선택을 확립함으로써 분쟁 해결을 용이하게 합니다.
EOS.IO 소프트웨어에 내장된 헌법을 변경하기 위한 절차
① BP는 헌법 개정을 제안하고 15/21 승인을 받습니다.
② BP는 개정된 헌법의 15/21 승인을 30일 동안 유지합니다.
③ 모든 유저는 처리 될 미래 거래의 상태로서 새로운 헌법을 나타내야 합니다.
④ BP는 헌법 변경을 반영하여 소스 코드를 바꾸도록 적용해야 하고, 새 헌법 해시를 사용하여 블록체인에 제안합니다.
⑤ BP는 새 코드의 15/21 승인을 30일 동안 유지합니다.
⑥ 7일 후에 소스 코드가 적용됩니다.
⑦ 새 코드로 업그레이드 하지 않은 노드는 강제 종료됩니다.
따라서, 헌법 개정에 2달이 소요됩니다.
[IMAGE: https://cdn.steemitimages.com/DQmaPQHECMe2S9txSadNFeNaNnqa76fEWZFiq5dNmn5WU5D/15.jpg]
7). 해킹 당한 키로부터 복구
계정 소유자는 최근 30일 이내 활성화되었던 다른 오너 키를 사용하여 지정된 계정 복구 파트너로부터 승인과 함께 그 계정의 오너키를 재설정할 수 있습니다.
[IMAGE: https://cdn.steemitimages.com/DQmRqNzduhbnNJWw6XhYW2waTNZAVEthnrCJiXuZbdQjWr4/14.jpg]
Dapp을 구현하기 위해 필요로 하는 것
- 수 백만 사용자가 사용할 수 있어야 합니다.
- 무료로 사용되어야 하므로 EOS.IO는 Dapp 개발자가 대역폭, 연산, 저장소 비용을 지불 할 수 있기에 사용자는 무료로 사용할 수 있습니다. 또한, Dapp 개발자는 사용자에게 bandwith과 cpu를 위임할 수 있습니다. 이를 위해 Dapp 개발자는 EOS 코인을 보유해야 합니다. 이더리움의 경우 네트워크를 사용할 때마다, 사용자가 수수료인 gas를 지불하지만 EOS는 그렇지 않을 것 입니다.
- 블록체인에 기반한 app은 버그의 수정에 대한 업그레이드가 쉬워야 합니다.
- 네트워크 지연 속도가 낮아야 합니다.
[IMAGE: https://cdn.steemitimages.com/DQmTtdCEZqxbZdiG9cjpq1Sh11RsmHZKhUGN6Gccmzt9ofj/13.png]
EOS 블록체인 확장성
EOS 메인 블록체인 뿐만 아니라 여러 사이드 체인을 통해 Dapp 개발자들이 가격 대비 사용 효율이 우수한 체인을 이용할 것 입니다.
이는 IBC(Inter Blockchain 기술)에 의한 것입니다.
[IMAGE: https://cdn.steemitimages.com/DQmSUhLzgiXh5ryEtjYatDGfhEFhzhWpdHCKwgb9sqsqysF/12.png]
블록체인 간 통신 지연
다른 외부의 블록체인과 통신할 때, BP들은 유효한 입력 값으로 받아들이기 전에 거래가 다른 블록체인에 의해 100% 비가역적으로 확인 될 때까지 반드시 기다려야 합니다.
블록체인에 기반한 EOS.IO 소프트웨어와 DPOS를 사용하는 것은 0.5초의 블록 생성 시간과 BFT 비가역성이 대략적으로 0.5초 소요됩니다.
만약 어떤 체인의 BP가 비가역적으로 확인되기 전 까지 기다리지 않는 경우에 블록 체인의 합의의 유효성에 영향을 미칠 수 있습니다.
EOS.IO 소프트웨어는 빠른 비가역성을 제공하기 위해 DPOS와 aBFT를 모두 사용합니다.
[IMAGE: https://cdn.steemitimages.com/DQmXbDevtWxMFf3qweHF3FNx6CV4CTn7krM43n7rdh47T1o/dfa.png]