"블록생성자"의 두 판 사이의 차이
잔글 |
|||
(사용자 2명의 중간 판 26개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''블록생성자'''<!--블록 생성자-->(BP; Block Producer)란 | + | '''블록생성자'''<!--블록 생성자-->(BP; Block Producer)<!--BP, block producer-->란 [[블록체인]]에서 체인의 맨 끝에 새로운 블록을 생성하여 추가할 수 있는 사람을 말한다. 간략히 '''BP'''(비피)라고도 한다. [[이오스]](EOS)에서 쓰는 용어이지만 같은 의미로 [[비트코인]]이나 [[이더리움]] 등 에서는 [[채굴자]]라고 불린다. |
== 개요 == | == 개요 == | ||
− | 블록생성자란 블록체인에서 체인의 맨 끝에 새로운 블록을 생성하여 추가할 수 있는 사람을 말하며, [[채굴자]]는 [[비트코인]] 등 [[작업증명]](PoW) 방식을 따르는 암호화폐의 경우, 블록생성자는 | + | 블록생성자란 블록체인에서 체인의 맨 끝에 새로운 블록을 생성하여 추가할 수 있는 사람을 말하며, [[채굴자]]는 [[비트코인]] 등 [[작업증명]](PoW) 방식을 따르는 암호화폐의 경우, 블록생성자는 목푯값 이하의 [[해시]]를 가장 빨리 찾은 사람이 선택된다. 즉, 다수의 [[채굴]] 노드 가운데 가장 빨리 목푯값보다 작은 해시값을 찾은 [[노드]]가 블록생성자가 된다. 작업증명 방식의 합의 알고리즘을 따르는 블록체인의 경우, [[채굴자]]가 블록생성자가 된다. 암호화폐 보유자는 [[카르다노]] 등 [[지분증명]](PoS) 방식을 따르는 암호화폐의 경우, 일정한 개수 이상의 암호화폐를 소유한 사람들 가운데, 랜덤하게 블록생성자가 선택되어, 보유 지분이 많으면 많을수록, 블록생성자로 선택될 확률이 높아진다. 마지막으로 대표자는 [[이오스]] 등 [[위임지분증명]](DPoS) 방식에 따르는 암호화폐의 경우, 코인 소유자들의 전자 투표를 통해, 미리 정해진 숫자의 대표자(또는 증인)을 선출하고, 이 중에서만 새로운 블록을 생성하는 BP가 선택된다. 이 대표자를 부르는 이름은 암호화폐별로 조금씩 다른데, [[스팀]]은 [[증인]] 이라고 부르고, [[네오]](NEO)의 경우 [[북키퍼]](BookKeeper)라고 부른다. 대표자, 슈퍼대표자 또는 증인의 숫자는 개별 암호화폐의 종류에 따라 조금씩 다른데, [[비트쉐어]]는 101명, [[스팀]]은 21명, [[이오스]]도 21명, [[트론]]은 27명으로 미리 정해져 있다. 블록생성자에게는 새로운 [[블록]]을 생성한 것에 대한 대가로 일정한 개수의 [[암호화폐]]가 보상으로 주어진다. |
− | == | + | == 활용 == |
+ | ===이오스=== | ||
+ | [[파일:이오스 글자.png|썸네일|300픽셀|'''이오스'''(EOS)]] | ||
+ | 이오스(EOS)가 다른 블록체인과 가장 뚜렷하게 차별화되는 점은 바로 성능으로 소수의 블록 생성자들이 블록을 생성하고 검증하는 위임 [[지분증명]](DPoS)모델의 핵심 장점이다. 특히나 EOS.IO 저장소까지도 블록 생성자들이 제공하게 된다고 하니, 블록 생성자의 건전한 활동이 이오스 생태계에 매우 큰 영향을 끼친다. 1개의 블록 생성자 연 보상은 이오스 총 마켓캡 인플레이션율(1 + 인플레이션율), 블록생성 자수는 이오스 총 마켓캡 2017년 10월 10일 기준 2억 2천만 달러이다. 인플레이션율이 최대 <math>5%</math>, 초기에는 블록 생성자 독려를 위해 투표를 통해 <math>5%</math>로 성장하고, 블록생성 자수 최초 값 21개, 각 블록 생성자들이 동일한 보상을 받는다고 가정하면, 이오스 총 마켓캡에 인플레이션율을 바로 곱한 뒤 1 + 인플레이션율로 나누는 이유는 인플레이션으로 인한 토큰 가치 하락을 반영하기 위한 것이다. 또 인플레이션으로 발생한 신규 이오스 토큰이 <math>100%</math> 블록 생성자에게 지급된다고 가정해보면, 원래 [[디앱]](Dapp)을 비롯하여 이오스 네트워크 가치 창출에 도움이 되는 방향에 치출한다는 내용있었지만 구체적 비율이 정해진 것이 없고 초기에는 디앱이 하나도 없어도 일단 블록 생성자는 있어야 하기 때문이다. 1개의 블록 생성자가 1년간 받는 액수는 51만 4천 773달러가 된다. 한화로는 5억 8천만 원 정도가 되는데, 여기서 구축한 서버 비용 유지비용과 업그레이드 비용을 제외한 나머지가 순이익이 될 것이다. 만약에 이 비용으로 감당할 수 있는 하드웨어가 이오스 출시와 함께할 초기 디앱들의 성능을 커버하지 못할 수준이라면, 그 정도로 많은 사용량을 발생시키는 디앱들이 출시되는 것이 확실해지면 기대심리로 인해 그전에 이오스 토큰 가격이 미리 상승할 것이고, 토큰 가격 상승으로 인해 증가한 보상은 더 놓은 수준의 하드웨어를 보유한 블록 생성자 참여를 유도할 것이다. 사용량이 증가하면 거래 수수료와 지연시간이 동시에 증가하는 기존 블록체인과는 확연히 다른 모습으로 단순히 블록생성 자수를 줄여서 속도를 빠르게 하는 것은 위임 지분증명의 일부분이고, 이런 경제모델이 핵심일 것이다.<ref>dev1by0, 〈[https://steemit.com/eos/@dev1by0/eos EOS 블록생성자는 얼마를 벌게 될까?]〉, 《스팀잇》, 2017-10-11 </ref> | ||
+ | |||
+ | * '''위임 지분증명''' | ||
+ | : [[위임 지분증명]](DPoS) 방식은 [[작업증명]](PoW) 방식과 달리 블록 생성자가 되기 위해선 투표를 거쳐야 한다. 이오스에서는 투표를 통해 21명의 블록 생성자를 선출하는데 선거 방식은 1인 1표가 아니라 1코인 1표 정책을 선택한다. 누구나 블록생산에 참여 할 수 있으며, 선거에서 득표 순위가 21위 안에 들 때 블록 생성자가 될 수 있다. 선출된 대표자들은 암호화폐가 정한 계획에 따라 블록을 생성하고, 투표 결과 21위 안에 들지 못했으나 40위 안에든 사람들에게는 블록 생성후보자의 지위를 부여한다. 장래에는 121위 안에 드는 사람까지 블록생성 후보자의 지위를 부여할 예정이라고 한다.<ref name="이유">EOS 암호화폐의 블록 생성에 대한 인센티브 분석 - http://caislab.kaist.ac.kr/publication/paper_files/2018/CISC-W'18_SH.pdf </ref> | ||
+ | |||
+ | * '''블록생성 보상체계''' | ||
+ | : 이오스 시스템은 2018년 6월 [[메인넷]]이 활성화된 시점에 총 10억 개의 토큰을 발행했다. 이후 연간 <math>5%</math>의 인플레이션율에 따라 토큰 발행량이 증가할 예정이고, 그림은 5%는 연간 인플레이션율을 나타낸 것이다. 그림을 보면 알 수 있듯이 이오스 시스템은 총 이오스 토큰 발행량의 <math>1%</math>를 블록 생성자와 후보자에게 수여 하고, 블록 생성자에게 주어지는 보상은 크게 두 종류로 나뉜다. 블록생성을 수행함으로써 얻는 보상과 투표 득표율에 따라 얻는 보상이 있다. 단, 두 개의 보상을 합쳐 100 이오스 토큰을 초과하지 않으면 어떠한 보상도 주어지지 않는다. 블록생성 후보자는 오직 득표율에 따른 보상만 받을 수 있으며, 후보자의 경우에 득표율에 따른 보상이 하루에 100 이오스 토큰을 초과하지 않으면 어떠한 보상도 받을 수 없다. | ||
+ | : [[파일:블록생성 보상 개념도.PNG|썸네일|500픽셀|블록생성 보상 개념도]] | ||
+ | : 블록생성 보상은 블록생성을 하는 노드에만 주어지며, 총 이오스 토큰 발행량의 <math>2.25%</math>가 21명의 블록 생성자에게 주어진다는 것을 보여준다. 모든 블록 생성자는 동일한 블록생성 보상을 받으며, 각각의 블록 생성자 에게는 총 이오스 토큰 발행량의 <math>0.0119%</math>가 주어지게 된다. 2018년 6월 기준 이오스의 총 토큰 발행량은 10억이다. 따라서 각각의 블록 생성자들은 1년 동안 <math>119,047</math> 이오스 토큰을 보상으로 받을 것이다. 일별로 보상을 계산해보면 각 블록 생성자들은 하루에 326.16 이오스 토큰을 받을 수 있고, 블록 생성자는 일일 보상이 100 이오스를 초과하므로 항상 보상을 받을 수 있다. | ||
+ | |||
+ | : 득표율에 따른 보상으로 투표 보상에 할당된 총 이오스 토큰은 위 그림과 같이 이오스 토큰 발행량의 <math>0.75%</math>이다. 각 블록 생성자와 블록생성 후보자는 선거 시 득표한 비율에 따라 보상을 받게 된다. 예를 들어, 투표에서 <math>2%</math>의 득표율을 기록한 경우 2018년 기준 <math>1,000,000,000 * 0.075 * 0.02</math>인 <math>150,000</math> 이오스 토큰을 받을 수 있다. 이를 하루 평균으로 계산하면 <math>410.96</math> 이오스이다. 블록 생성자로 채택되지 못하고 블록생성 후보자가 된 경우 투표 보상을 받기 위해서는 득표율이 <math>0.49%</math>를 넘어야 하며, <math>0.49%</math>라는 임계수치는 총 이오스 토큰 발행량이 변하면 달라질 수 있다.<ref name="이유"></ref> | ||
+ | |||
+ | * '''블록생성 비용체계''' | ||
+ | : 이오스의 블록생성에 요구되는 비용으로는 자본 비용과 실행 비용이 있는데, 자본 비용은 CPU, GPU나 RAM 같은 하드웨어 장비를 갖추기 위해 소모되는 비용이다. 반면 실행 비용은 실제 블록생성 시 소모되는 전력에 따른 비용이다. | ||
+ | |||
+ | :{|class=wikitable width=600 | ||
+ | |+ | ||
+ | !align=center|역할 | ||
+ | !align=center|CPU | ||
+ | !align=center|RAM | ||
+ | !align=center|Disc | ||
+ | !align=center|Expansion | ||
+ | |- | ||
+ | |align=center|기본 블록생산자 | ||
+ | |align=center|Dual Xeon | ||
+ | 3.2GHz 8 Core | ||
+ | |align=center|128 GB DDR4 | ||
+ | |align=center|512 GB SSD | ||
+ | |align=center|Yes | ||
+ | |- | ||
+ | |align=center|기본 풀노드 | ||
+ | |align=center|Dual Xeon | ||
+ | 3.2GHz 8 Core | ||
+ | |align=center|64 GB DDR4 | ||
+ | |align=center|512 GB SSD | ||
+ | |align=center|Yes | ||
+ | |} | ||
+ | : 자본비용으로 이오스 블록 생성자 들은 [[비트코인]](Bitcoin) 채굴자들과 달리 개별 블록생성을 위해 경쟁하지 않는다. 그러나 이오스 사용자들은 CPU, 네트워크 기능을 블록 생성자로부터 임차하여 사용하기 때문에 블록 생성자에게 높은 [[하드웨어]] 수준을 요구한다. 선거 유세 시 유권자들에게 높은 하드웨어 성능을 약속하지 못하는 후보자들은 많은 득표를 할 수 없으며, 실제로는 사용자들이 블록 생성자 들에게 고사양의 하드웨어를 갖출 것을 요구하고 있다. 위에 표는 2018년 11월 기준 득표율이 70~80위에 속한 블록생성 후보자 [[EOSUK]]의 하드웨어 장비를 나타낸 것으로, 개별 블록생성을 위한 경쟁이 없더라도 블록 생성자가 되기 위한 자본 비용이 높다는 것을 유추할 수 있다. 그리고 실행 비용으로 블록 생성자가 블록을 생성하고 이오스 사용자에게 편의를 제공하기 위해서는 상시로 생성자가 소유한 서버의 전원을 켜놓아야 하므로 하루 24시간 내내 전력을 소비할 것이다.<ref name="이유"></ref> | ||
+ | |||
+ | * '''블록생성자 규약준수 조사단''' | ||
+ | : [[재생성자]](Regproducer)에 대한 블록 생성자들의 준수사항으로 모든 블록 생성자 후보들은 이오스 체인에 생성자로 등록해야 투표를 받을 수 있다. 블록 생성자가 계약을 준수하는 것으로 여겨지려면, 재생기를 실행하고 특히 이오스를 지급받기 위해 보상을 실행하는 블록 생성자들은 재생산자 협약에 기재된 조항들을 지킬 법적 의무를 지켜야 한다. 커뮤니티가 운영하는 규약준수 조사단이 현재 법을 이행하지 않으면서 이득을 취한 블록 생성자들을 가려내기 위해 움직이고 있다. 기술적으로 측정 가능한 재생산자 협약의 몇 가지 조항들은 다음과 같다. | ||
+ | # '''재생산자 공개 웹사이트''' : 모든 블록 생성자의 지원자들은 그들이 재생성자 명령을 시행할 때 공개 웹사이트를 언급해야 하며, 해당 웹사이트는 모든 자세한 사항을 공개해야 한다. 거의 모든 블록 생성자 들은 bp.json 파일을 도메인의 루트에 이용하면서 각종 정보를 제공하는 것을 표준으로 삼는다. | ||
+ | # '''재생산자 소유권 공개''' : 블록 생성자는 정확하게 정의된 소유권을 공개해야 하며, 특히 <math>10%</math> 이상을 소유하는 수혜 주주들과 다른 직접적인 주주들에 대해 자세히 명시해야 한다. | ||
+ | # '''재생산자 공개 노드''' : 모든 블록 생성자들은 퍼블릭 엔드포인트(public endpoints)를 가지고 있어야 하는데, 블록 생성자라면 P2P 혹은 API 종점의 구분하겠지만, 종점의 구분은 협약에 명시되어 있지는 않다.<ref>eosys, 〈[http://a.to/1903zR9 EOS 블록 프로듀서 준수규정]〉, 《미디엄》, 2018-08-07 </ref> {{자세히|이오스}} | ||
+ | |||
+ | ===비트코인=== | ||
+ | [[파일:비트코인 글자.png|썸네일|300픽셀|'''비트코인'''(bitcoin)]] | ||
+ | [[비트코인]](Bitcoin)은 모든 사람이 블록 생성자가 될 수 있다. 모든 사람은 다른 사람들이 전달하는 거래 기록들을 전달받은 후에 거래 기록들을 블록으로 분리한 후에 그 블록을 암호화시켰을 때 첫 자리 숫자들에 0이 여러 번 연속으로 뜨게 만들어주는 특정 숫자를 찾으면 특정 숫자와 함께 블록을 블록체인에 업데이트 할 수 있다. 비트코인을 사용하는 모든 사람이 블록 생성자의 역할을 하는 것이 아니라, 원하는 사람들만 특정 숫자를 찾는 일을 함으로써 블록 생성자(채굴자)가 될 수 있다. 간단히 말해서, 특정 숫자를 찾는 사람들이 거래 기록들을 인증해 주는 역할을 하며, 인증되지 않은 블록들은 블록체인에 추가가 되지 못하고 버려지게 되는 것이다. 블록 생성자가 인증한 블록이 블록체인에 추가가 되면 그들만의 특별한 거래 기록을 블록에 하나 추가할 수 있는데, 이 거래 기록은 보통의 거래 기록들과 매우 다른 특징은 블록 보상 거래 기록으로, 블록 보상 거래 기록은 보통의 거래 기록들과 다르게 보내는 사람, 전자서명이 필요 없고, 비트코인을 주고받는 거래 기록이 아니기 때문에 단순히 비트코인 총공급량에 추가가 된다. 채굴된 비트코인이 비트코인 총공급량에 추가가 된다는 것은 예를 들어, 전 세계에 정확히 100만 원이 있고 100명이 서로 다른 금액을 보유하고 주고받고 하면서 거래를 한다고 가정해보면, 통화의 총공급량은 100만 원이고 줄어들지도 않고 늘지도 않지만, 비트코인이 채굴될 때는 기존에 없었던 새로운 비트코인이 만들어지게 되기 때문에 원래는 전 세계에 100개의 비트코인이 있었더라도 시간이 지나면 101개, 102개, 105개, … 비트코인의 총 개수가 점진적으로 증가하게 된다. 이렇듯, 블록을 생성하는 것 = 채굴이라고 부르며, 채굴의 결과로 새로운 비트코인을 비트코인 생태계에 추가하게 된다. 블록 생성자 들의 역할은 세 가지로 이루어져 있는데 다음과 같다.<ref>work4block 공식 홈페이지 - http://www.work4block.com/post/537 </ref> | ||
+ | |||
+ | # 거래 기록들을 전달받는다. | ||
+ | # 특정숫자를 찾아서 블록을 생성한다. | ||
+ | # 생성한 블록을 블록체인에 추가하고 전달하여 새롭게 채굴된 비트코인을 보상으로 받는다. | ||
+ | |||
+ | * '''작업증명''' | ||
+ | : 비트코인에서 활용하는 채굴은 [[작업증명]](PoW)에서 W(Work)를 말한다. 작업증명 이란 블록체인 네트워크에서 특정 조건을 충족시키는 연산 작업 등의 행위를 증명하는 것을 말하는데, 즉 컴퓨팅 파워를 제공해 블록을 연결 및 검증하는 방식이다. 대부분의 블록체인이 이 작업증명 방식을 택하고 있다. 블록체인 네트워크는 구성원들에게 경쟁을 통해 블록 생성 권한을 부여한다. 참여자 중 가장 빠르게 연산 작업 등을 수행한 사람이 블록을 생성하게 되고 블록 생성자의 지갑에 해당 [[암호화폐]]가 보상으로 전송되면 이것이 첫 거래로 [[블록체인]]에 기록되는 방식이다. 그렇다면 블록체인 네트워크에서 이 채굴이 왜 필요하며 사람들은 채굴함으로써 무엇을 얻는가 하면, 답은 블록체인의 기본 정신에 있는데, 블록체인의 기본 정신은 분산으로, 데이터를 암호화해 여러 컴퓨터에 분산 저장하고 이들의 검증에 따라 거래가 이루어지는 방식을 택한다. 데이터가 암호화되면 이를 저장할 블록이 필요하고, 채굴은 이 블록을 생성하는 과정이다. 이 블록을 생산하기 위해서는 사람들의 참여가 필요하다. [[중앙화]]된 기관이 정보를 관리하는 체계가 아니기 때문이다. 그러나 일반적으로 GPU 방식의 채굴은 채굴 장비가 비쌀 뿐만 아니라 채굴에 드는 전력도 엄청나기 때문에 이 모든 리스크를 상쇄하고도 남을 보상이 필요하며 이 보상은 사람들을 채굴에 참여하게 만드는 동인이 된다. | ||
+ | |||
+ | : 블록 생성자 들은 블록 생성에 대한 보상으로 암호화폐를 지급받는다. 사람들이 암호화폐를 전송하면서 발생하는 수수료 개념의 가스(가스 링크 넣기)도 추가 보상으로 지급받아, 블록체인 네트워크에 지속해서 참여하도록 유인을 주는 것이다. 블록을 가장 먼저 생산한 사람에게 블록이 생산되며 이에 대한 보상으로 해당 암호화폐를 지급받는다고 언급했지만, 딱 한 명의 블록 생성자만 채굴에 대한 보상을 받는 것은 아니다. 이론적으로는 단 한 명에게 주어지는 것이 이 보상이지만 채굴과 보상 효율화를 위해 참여자들은 일종의 그룹을 형성해 작업을 분담한다. 이들이 참여한 그룹에서 블록을 생성할 경우 해당 그룹에 참여한 모든 사람이 특정 기준에 따라 보상을 나눠 갖게 되고, 평생 블록을 생성하지 못할 일도 없으며 보상을 받지 못할 일도 없다.<ref>김진배 기자, 〈[https://www.blockmedia.co.kr/archives/93317?print=print (What is Block) 금도 아닌데 채굴을 한다고?]〉, 《블록미디어》 </ref> {{자세히|비트코인}} | ||
+ | |||
+ | ===이더리움=== | ||
+ | [[파일:이더리움 글자.png |썸네일|300픽셀|'''이더리움'''(Ethereum)]] | ||
+ | [[이더리움]]의 블록체인은 순서가 정렬된 일련의 [[블록]]으로 구성된다. 블록은 메타정보를 담은 [[헤더]]와 일련의 트랜잭션으로 구성된다. 블록은 블록 생성자가 채굴해 생성되고 네트워크의 다른 노드로 브로드캐스트된다. 모든 노드는 일련의 합의 규칙에 따라 수신된 블록을 확인하고, 합의 규칙을 충족시키지 못하는 블록은 네트워크에서 거부된다. [[포크]](fork)는 새로운 규칙 집합이 이전 규칙의 하위 집합일 때 발생하는데, 여전히 이전 규칙을 사용하는 클라이언트도 새 규칙을 사용해 [[클라이언트]]가 만든 블록을 거부하지 않음으로, 블록 생성자(채굴자)만 소프트웨어를 업데이트 하면 된다. [[하드포크]]는 새로운 규칙이 이전의 규칙과 호환하지 않을 때 발생한다. 이 경우 모든 클라이언트가 소프트웨어를 업데이트해야 한다. 하드포크는 언제나 논쟁의 소재인데 사용자 그룹이 소프트웨어 업데이트를 거부하면 체인의 분할이 발생하고 한 체인에서 유효한 블록은 다른 체인에서 유효하지 않게 되기 때문에 지급까지 이더리움은 콘스탄티노플 하드 포크까지 7번의 하드 포크를 겪었고 그중 하나의 포크는 체인 분할로 이어져 [[이더리움 클래식]]을 탄생시켰다. | ||
+ | |||
+ | 이더리움 네트워크의 [[채굴]] 노드는 [[이더해시]](Ethash)라는 독자적인 [[작업증명]] 알고리즘을 사용해 블록을 생성하고자 경쟁한다. 이더해시 알고리즘에 대한 입력은 [[논스]]라고 하는 임의로 생성된 숫자를 포함하는 블록 헤더 이며, 그 출력은 32바이트의 16진수이다. 논스를 수정하면 출력도 수정되는데, 예측할 수 없는 방식으로 수정된다. 네트워크가 채굴된 블록을 수용하려면 블록 헤더에 대한 이더해시 출력이 네트워크 난이도보다 적어야 하며 또 다른 32바이트의 16진수가 채워질 대상으로 사용되며, 목표 난이도를 상회하는 블록을 브로드캐스트하는 모든 채굴자는 블록 보상을 받는다. 블록 보상은 블록에 [[코인베이스]] 트랜잭션을 포함함으로써 부여되고, 코인 베이스 트랜잭션은 일반적으로 블록의 첫 번째 트랜잭션이며 블록 보상을 블록 생성자가 같은 시간에 한 블록을 생산하고 오직 하나만 주체인에 합류하게 된다. 수용되지 않은 블록을 [[엉클 블록]](uncle block)이라고 하며, 엉클 블록은 체인에 포함되어 더 적은 블록 보상을 받으며, 엉클 블록의 트랜잭션은 상태 트리를 수정하지 않는다. 블록체인의 보안은 네트워크의 해시 파워에 비례하여 네트워크의 해시 파워가 클수록 개별 채굴자의 총 해시 파워는 낮아지고 네트워크 점유 공격이 더 어려워지게 된다. 체인에 엉클 블록을 포함하면 체인의 보안이 강화되어 수락되지 않는 블록을 만드는 데 사용하는 해시 파워가 낭비되지 않기 때문이다. 네트워크 난이도는 지속 조정되며, 난이도 조절로 15~30초마다 블록을 생성하도록 만든다.<ref>키더아이어, 크리스대넌, 〈[http://a.to/1946Efn 이더리움 블록체인 게임 개발]〉, 《도서》, 2019-09-06 </ref> {{자세히|이더리움}} | ||
− | |||
===합의 알고리즘=== | ===합의 알고리즘=== | ||
+ | [[합의 알고리즘]]은 [[블록체인]] 프로젝트의 심장과 마찬가지로 블록 생성자가 악의적으로 이중지불을 용인하거나, 가짜를 만들어 내면 블록체인의 신뢰는 무너지고 프로젝트는 위험에 빠진다. 그만큼 합의 알고리즘은 매우 중요하고, 많은 선택지가 있는데 초기 블록체인 프로젝트들이 [[작업증명]](PoW), [[지분증명]](PoS)을 선택했다면, 요즘은 프랙티컬 [[비잔틴 장애 허용]](PBFT)과 [[위임 지분증명]](DPoS)이 주로 선택지로 고려된다. | ||
+ | # '''작업증명'''(PoW) : 다른 마이너들과 특정 논스 값을 찾아내는 연산을 하여 블록을 생성하는 경쟁을 하며 전력 소모가 크다. | ||
+ | # '''지분증명'''(PoS) : 지분의 스테이킹한 검증 인들이 블록을 생성하고, 검증하는 방식이다. | ||
+ | # '''위임 지분증명'''(DPoS) : 토큰홀더로부터 투표를 받아 일정 수의 블록 생성자를 정하고 선출된 이들이 블록을 생성하고, 검증을 진행한다. | ||
+ | # '''프랙티컬 비잔틴 장애 허용'''(PBFT) : 블록 생성자가 특정 기준으로 선정되고, 지정된 블록 생성자가 블록을 생성한다. | ||
+ | |||
+ | [[파일:DCS삼각형.PNG|썸네일|500픽셀|DCS 삼각형]] | ||
+ | 합의 알고리즘을 선택할 때는 DCS 삼각형을 고려해야 하는데, DCS 삼각형은 블록체인 프로젝트가 가질 수 있는 3가지 속성을 가르치는 것으로, 각각 탈중앙화, 데이터 정합성, 확장성(Scalability)을 가르친다. 탈중앙화는 얼마나 많은 노드가 데이터를 검증할 수 있는가, 확장성은 제한된 시간 내에 얼마나 많은 거래를 처리할 수 있는가, 데이터 정합성은 모든 노드가 같은 데이터를 갖고 있는가를 나타낸다. DCS 삼각형에서 포기할 수 없는 두 가지를 선택하는 것이 보통 프로젝트의 성격을 규정할 수 있다. 예를 들어, [[이더리움]]과 [[비트코인]]은 CD(Consistent, Decentralized)로 표현될 수 있다. 데이터 정합성과 [[탈중앙화]]를 선택하는 비트코인과 이더리움은 필연적으로 거래를 확정하는데 오랜 시간이 걸린다. 반면 [[IPFS]]는 속도와 탈중앙화는 이뤘지만, 각 노드 간 데이터의 정합성은 일부 포기하는 구조이다. 비잔틴 장애 허용 계열의 합의 알고리즘이 합쳐진 [[텐더민트]]또한 좋은 선택지가 될 수 있다. 탈중앙화는 비싸고 어렵다. 궁극적으론 이더리움과 같이 완전히 탈중앙화를 이룬 프로젝트가 가장 이상적이지만, 아직 비즈니스에 사용되기에는 적합하지 않다. 하지만 이더리움이 확장성을 개선할 수 있는 [[플라즈마]] 혹은 [[샤딩]]을 구현한다면 이런 논의가 무의미해질지도 모른다.<ref>WK, 〈[https://brunch.co.kr/@bitcoin/10, 블록체인 프로젝트 설계의 이해]〉, 《브런치》, 2018-08-26 </ref> {{자세히|합의 알고리즘}} | ||
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
+ | * work4block 공식 홈페이지 - http://www.work4block.com/post/537 | ||
+ | * EOS 암호화폐의 블록 생성에 대한 인센티브 분석 - http://caislab.kaist.ac.kr/publication/paper_files/2018/CISC-W'18_SH.pdf | ||
+ | * 키더아이어, 크리스대넌, 〈[http://a.to/1946Efn 이더리움 블록체인 게임 개발]〉, 《도서》, 2019-09-06 | ||
+ | * WK, 〈[https://brunch.co.kr/@bitcoin/10, 블록체인 프로젝트 설계의 이해]〉, 《브런치》, 2018-08-26 | ||
+ | * dev1by0, 〈[https://steemit.com/eos/@dev1by0/eos EOS 블록생성자는 얼마를 벌게 될까?]〉, 《스팀잇》, 2017-10-11 | ||
+ | * eosys, 〈[http://a.to/1903zR9 EOS 블록 프로듀서 준수규정]〉, 《미디엄》, 2018-08-07 | ||
+ | * 김진배 기자, 〈[https://www.blockmedia.co.kr/archives/93317?print=print (What is Block) 금도 아닌데 채굴을 한다고?]〉, 《블록미디어》 | ||
== 같이 보기 == | == 같이 보기 == | ||
21번째 줄: | 100번째 줄: | ||
* [[채굴자]] | * [[채굴자]] | ||
− | {{블록체인 기술| | + | {{블록체인 기술|검토 필요}} |
2019년 9월 23일 (월) 12:24 기준 최신판
블록생성자(BP; Block Producer)란 블록체인에서 체인의 맨 끝에 새로운 블록을 생성하여 추가할 수 있는 사람을 말한다. 간략히 BP(비피)라고도 한다. 이오스(EOS)에서 쓰는 용어이지만 같은 의미로 비트코인이나 이더리움 등 에서는 채굴자라고 불린다.
개요[편집]
블록생성자란 블록체인에서 체인의 맨 끝에 새로운 블록을 생성하여 추가할 수 있는 사람을 말하며, 채굴자는 비트코인 등 작업증명(PoW) 방식을 따르는 암호화폐의 경우, 블록생성자는 목푯값 이하의 해시를 가장 빨리 찾은 사람이 선택된다. 즉, 다수의 채굴 노드 가운데 가장 빨리 목푯값보다 작은 해시값을 찾은 노드가 블록생성자가 된다. 작업증명 방식의 합의 알고리즘을 따르는 블록체인의 경우, 채굴자가 블록생성자가 된다. 암호화폐 보유자는 카르다노 등 지분증명(PoS) 방식을 따르는 암호화폐의 경우, 일정한 개수 이상의 암호화폐를 소유한 사람들 가운데, 랜덤하게 블록생성자가 선택되어, 보유 지분이 많으면 많을수록, 블록생성자로 선택될 확률이 높아진다. 마지막으로 대표자는 이오스 등 위임지분증명(DPoS) 방식에 따르는 암호화폐의 경우, 코인 소유자들의 전자 투표를 통해, 미리 정해진 숫자의 대표자(또는 증인)을 선출하고, 이 중에서만 새로운 블록을 생성하는 BP가 선택된다. 이 대표자를 부르는 이름은 암호화폐별로 조금씩 다른데, 스팀은 증인 이라고 부르고, 네오(NEO)의 경우 북키퍼(BookKeeper)라고 부른다. 대표자, 슈퍼대표자 또는 증인의 숫자는 개별 암호화폐의 종류에 따라 조금씩 다른데, 비트쉐어는 101명, 스팀은 21명, 이오스도 21명, 트론은 27명으로 미리 정해져 있다. 블록생성자에게는 새로운 블록을 생성한 것에 대한 대가로 일정한 개수의 암호화폐가 보상으로 주어진다.
활용[편집]
이오스[편집]
이오스(EOS)가 다른 블록체인과 가장 뚜렷하게 차별화되는 점은 바로 성능으로 소수의 블록 생성자들이 블록을 생성하고 검증하는 위임 지분증명(DPoS)모델의 핵심 장점이다. 특히나 EOS.IO 저장소까지도 블록 생성자들이 제공하게 된다고 하니, 블록 생성자의 건전한 활동이 이오스 생태계에 매우 큰 영향을 끼친다. 1개의 블록 생성자 연 보상은 이오스 총 마켓캡 인플레이션율(1 + 인플레이션율), 블록생성 자수는 이오스 총 마켓캡 2017년 10월 10일 기준 2억 2천만 달러이다. 인플레이션율이 최대 , 초기에는 블록 생성자 독려를 위해 투표를 통해 로 성장하고, 블록생성 자수 최초 값 21개, 각 블록 생성자들이 동일한 보상을 받는다고 가정하면, 이오스 총 마켓캡에 인플레이션율을 바로 곱한 뒤 1 + 인플레이션율로 나누는 이유는 인플레이션으로 인한 토큰 가치 하락을 반영하기 위한 것이다. 또 인플레이션으로 발생한 신규 이오스 토큰이 블록 생성자에게 지급된다고 가정해보면, 원래 디앱(Dapp)을 비롯하여 이오스 네트워크 가치 창출에 도움이 되는 방향에 치출한다는 내용있었지만 구체적 비율이 정해진 것이 없고 초기에는 디앱이 하나도 없어도 일단 블록 생성자는 있어야 하기 때문이다. 1개의 블록 생성자가 1년간 받는 액수는 51만 4천 773달러가 된다. 한화로는 5억 8천만 원 정도가 되는데, 여기서 구축한 서버 비용 유지비용과 업그레이드 비용을 제외한 나머지가 순이익이 될 것이다. 만약에 이 비용으로 감당할 수 있는 하드웨어가 이오스 출시와 함께할 초기 디앱들의 성능을 커버하지 못할 수준이라면, 그 정도로 많은 사용량을 발생시키는 디앱들이 출시되는 것이 확실해지면 기대심리로 인해 그전에 이오스 토큰 가격이 미리 상승할 것이고, 토큰 가격 상승으로 인해 증가한 보상은 더 놓은 수준의 하드웨어를 보유한 블록 생성자 참여를 유도할 것이다. 사용량이 증가하면 거래 수수료와 지연시간이 동시에 증가하는 기존 블록체인과는 확연히 다른 모습으로 단순히 블록생성 자수를 줄여서 속도를 빠르게 하는 것은 위임 지분증명의 일부분이고, 이런 경제모델이 핵심일 것이다.[1]
- 위임 지분증명
- 위임 지분증명(DPoS) 방식은 작업증명(PoW) 방식과 달리 블록 생성자가 되기 위해선 투표를 거쳐야 한다. 이오스에서는 투표를 통해 21명의 블록 생성자를 선출하는데 선거 방식은 1인 1표가 아니라 1코인 1표 정책을 선택한다. 누구나 블록생산에 참여 할 수 있으며, 선거에서 득표 순위가 21위 안에 들 때 블록 생성자가 될 수 있다. 선출된 대표자들은 암호화폐가 정한 계획에 따라 블록을 생성하고, 투표 결과 21위 안에 들지 못했으나 40위 안에든 사람들에게는 블록 생성후보자의 지위를 부여한다. 장래에는 121위 안에 드는 사람까지 블록생성 후보자의 지위를 부여할 예정이라고 한다.[2]
- 블록생성 보상체계
- 이오스 시스템은 2018년 6월 메인넷이 활성화된 시점에 총 10억 개의 토큰을 발행했다. 이후 연간 의 인플레이션율에 따라 토큰 발행량이 증가할 예정이고, 그림은 5%는 연간 인플레이션율을 나타낸 것이다. 그림을 보면 알 수 있듯이 이오스 시스템은 총 이오스 토큰 발행량의 를 블록 생성자와 후보자에게 수여 하고, 블록 생성자에게 주어지는 보상은 크게 두 종류로 나뉜다. 블록생성을 수행함으로써 얻는 보상과 투표 득표율에 따라 얻는 보상이 있다. 단, 두 개의 보상을 합쳐 100 이오스 토큰을 초과하지 않으면 어떠한 보상도 주어지지 않는다. 블록생성 후보자는 오직 득표율에 따른 보상만 받을 수 있으며, 후보자의 경우에 득표율에 따른 보상이 하루에 100 이오스 토큰을 초과하지 않으면 어떠한 보상도 받을 수 없다.
- 블록생성 보상은 블록생성을 하는 노드에만 주어지며, 총 이오스 토큰 발행량의 가 21명의 블록 생성자에게 주어진다는 것을 보여준다. 모든 블록 생성자는 동일한 블록생성 보상을 받으며, 각각의 블록 생성자 에게는 총 이오스 토큰 발행량의 가 주어지게 된다. 2018년 6월 기준 이오스의 총 토큰 발행량은 10억이다. 따라서 각각의 블록 생성자들은 1년 동안 이오스 토큰을 보상으로 받을 것이다. 일별로 보상을 계산해보면 각 블록 생성자들은 하루에 326.16 이오스 토큰을 받을 수 있고, 블록 생성자는 일일 보상이 100 이오스를 초과하므로 항상 보상을 받을 수 있다.
- 득표율에 따른 보상으로 투표 보상에 할당된 총 이오스 토큰은 위 그림과 같이 이오스 토큰 발행량의 이다. 각 블록 생성자와 블록생성 후보자는 선거 시 득표한 비율에 따라 보상을 받게 된다. 예를 들어, 투표에서 의 득표율을 기록한 경우 2018년 기준 인 이오스 토큰을 받을 수 있다. 이를 하루 평균으로 계산하면 이오스이다. 블록 생성자로 채택되지 못하고 블록생성 후보자가 된 경우 투표 보상을 받기 위해서는 득표율이 를 넘어야 하며, 라는 임계수치는 총 이오스 토큰 발행량이 변하면 달라질 수 있다.[2]
- 블록생성 비용체계
- 이오스의 블록생성에 요구되는 비용으로는 자본 비용과 실행 비용이 있는데, 자본 비용은 CPU, GPU나 RAM 같은 하드웨어 장비를 갖추기 위해 소모되는 비용이다. 반면 실행 비용은 실제 블록생성 시 소모되는 전력에 따른 비용이다.
역할 CPU RAM Disc Expansion 기본 블록생산자 Dual Xeon 3.2GHz 8 Core
128 GB DDR4 512 GB SSD Yes 기본 풀노드 Dual Xeon 3.2GHz 8 Core
64 GB DDR4 512 GB SSD Yes
- 자본비용으로 이오스 블록 생성자 들은 비트코인(Bitcoin) 채굴자들과 달리 개별 블록생성을 위해 경쟁하지 않는다. 그러나 이오스 사용자들은 CPU, 네트워크 기능을 블록 생성자로부터 임차하여 사용하기 때문에 블록 생성자에게 높은 하드웨어 수준을 요구한다. 선거 유세 시 유권자들에게 높은 하드웨어 성능을 약속하지 못하는 후보자들은 많은 득표를 할 수 없으며, 실제로는 사용자들이 블록 생성자 들에게 고사양의 하드웨어를 갖출 것을 요구하고 있다. 위에 표는 2018년 11월 기준 득표율이 70~80위에 속한 블록생성 후보자 EOSUK의 하드웨어 장비를 나타낸 것으로, 개별 블록생성을 위한 경쟁이 없더라도 블록 생성자가 되기 위한 자본 비용이 높다는 것을 유추할 수 있다. 그리고 실행 비용으로 블록 생성자가 블록을 생성하고 이오스 사용자에게 편의를 제공하기 위해서는 상시로 생성자가 소유한 서버의 전원을 켜놓아야 하므로 하루 24시간 내내 전력을 소비할 것이다.[2]
- 블록생성자 규약준수 조사단
- 재생성자(Regproducer)에 대한 블록 생성자들의 준수사항으로 모든 블록 생성자 후보들은 이오스 체인에 생성자로 등록해야 투표를 받을 수 있다. 블록 생성자가 계약을 준수하는 것으로 여겨지려면, 재생기를 실행하고 특히 이오스를 지급받기 위해 보상을 실행하는 블록 생성자들은 재생산자 협약에 기재된 조항들을 지킬 법적 의무를 지켜야 한다. 커뮤니티가 운영하는 규약준수 조사단이 현재 법을 이행하지 않으면서 이득을 취한 블록 생성자들을 가려내기 위해 움직이고 있다. 기술적으로 측정 가능한 재생산자 협약의 몇 가지 조항들은 다음과 같다.
- 재생산자 공개 웹사이트 : 모든 블록 생성자의 지원자들은 그들이 재생성자 명령을 시행할 때 공개 웹사이트를 언급해야 하며, 해당 웹사이트는 모든 자세한 사항을 공개해야 한다. 거의 모든 블록 생성자 들은 bp.json 파일을 도메인의 루트에 이용하면서 각종 정보를 제공하는 것을 표준으로 삼는다.
- 재생산자 소유권 공개 : 블록 생성자는 정확하게 정의된 소유권을 공개해야 하며, 특히 이상을 소유하는 수혜 주주들과 다른 직접적인 주주들에 대해 자세히 명시해야 한다.
- 재생산자 공개 노드 : 모든 블록 생성자들은 퍼블릭 엔드포인트(public endpoints)를 가지고 있어야 하는데, 블록 생성자라면 P2P 혹은 API 종점의 구분하겠지만, 종점의 구분은 협약에 명시되어 있지는 않다.[3] 이오스에 대해 자세히 보기
비트코인[편집]
비트코인(Bitcoin)은 모든 사람이 블록 생성자가 될 수 있다. 모든 사람은 다른 사람들이 전달하는 거래 기록들을 전달받은 후에 거래 기록들을 블록으로 분리한 후에 그 블록을 암호화시켰을 때 첫 자리 숫자들에 0이 여러 번 연속으로 뜨게 만들어주는 특정 숫자를 찾으면 특정 숫자와 함께 블록을 블록체인에 업데이트 할 수 있다. 비트코인을 사용하는 모든 사람이 블록 생성자의 역할을 하는 것이 아니라, 원하는 사람들만 특정 숫자를 찾는 일을 함으로써 블록 생성자(채굴자)가 될 수 있다. 간단히 말해서, 특정 숫자를 찾는 사람들이 거래 기록들을 인증해 주는 역할을 하며, 인증되지 않은 블록들은 블록체인에 추가가 되지 못하고 버려지게 되는 것이다. 블록 생성자가 인증한 블록이 블록체인에 추가가 되면 그들만의 특별한 거래 기록을 블록에 하나 추가할 수 있는데, 이 거래 기록은 보통의 거래 기록들과 매우 다른 특징은 블록 보상 거래 기록으로, 블록 보상 거래 기록은 보통의 거래 기록들과 다르게 보내는 사람, 전자서명이 필요 없고, 비트코인을 주고받는 거래 기록이 아니기 때문에 단순히 비트코인 총공급량에 추가가 된다. 채굴된 비트코인이 비트코인 총공급량에 추가가 된다는 것은 예를 들어, 전 세계에 정확히 100만 원이 있고 100명이 서로 다른 금액을 보유하고 주고받고 하면서 거래를 한다고 가정해보면, 통화의 총공급량은 100만 원이고 줄어들지도 않고 늘지도 않지만, 비트코인이 채굴될 때는 기존에 없었던 새로운 비트코인이 만들어지게 되기 때문에 원래는 전 세계에 100개의 비트코인이 있었더라도 시간이 지나면 101개, 102개, 105개, … 비트코인의 총 개수가 점진적으로 증가하게 된다. 이렇듯, 블록을 생성하는 것 = 채굴이라고 부르며, 채굴의 결과로 새로운 비트코인을 비트코인 생태계에 추가하게 된다. 블록 생성자 들의 역할은 세 가지로 이루어져 있는데 다음과 같다.[4]
- 거래 기록들을 전달받는다.
- 특정숫자를 찾아서 블록을 생성한다.
- 생성한 블록을 블록체인에 추가하고 전달하여 새롭게 채굴된 비트코인을 보상으로 받는다.
- 작업증명
- 비트코인에서 활용하는 채굴은 작업증명(PoW)에서 W(Work)를 말한다. 작업증명 이란 블록체인 네트워크에서 특정 조건을 충족시키는 연산 작업 등의 행위를 증명하는 것을 말하는데, 즉 컴퓨팅 파워를 제공해 블록을 연결 및 검증하는 방식이다. 대부분의 블록체인이 이 작업증명 방식을 택하고 있다. 블록체인 네트워크는 구성원들에게 경쟁을 통해 블록 생성 권한을 부여한다. 참여자 중 가장 빠르게 연산 작업 등을 수행한 사람이 블록을 생성하게 되고 블록 생성자의 지갑에 해당 암호화폐가 보상으로 전송되면 이것이 첫 거래로 블록체인에 기록되는 방식이다. 그렇다면 블록체인 네트워크에서 이 채굴이 왜 필요하며 사람들은 채굴함으로써 무엇을 얻는가 하면, 답은 블록체인의 기본 정신에 있는데, 블록체인의 기본 정신은 분산으로, 데이터를 암호화해 여러 컴퓨터에 분산 저장하고 이들의 검증에 따라 거래가 이루어지는 방식을 택한다. 데이터가 암호화되면 이를 저장할 블록이 필요하고, 채굴은 이 블록을 생성하는 과정이다. 이 블록을 생산하기 위해서는 사람들의 참여가 필요하다. 중앙화된 기관이 정보를 관리하는 체계가 아니기 때문이다. 그러나 일반적으로 GPU 방식의 채굴은 채굴 장비가 비쌀 뿐만 아니라 채굴에 드는 전력도 엄청나기 때문에 이 모든 리스크를 상쇄하고도 남을 보상이 필요하며 이 보상은 사람들을 채굴에 참여하게 만드는 동인이 된다.
- 블록 생성자 들은 블록 생성에 대한 보상으로 암호화폐를 지급받는다. 사람들이 암호화폐를 전송하면서 발생하는 수수료 개념의 가스(가스 링크 넣기)도 추가 보상으로 지급받아, 블록체인 네트워크에 지속해서 참여하도록 유인을 주는 것이다. 블록을 가장 먼저 생산한 사람에게 블록이 생산되며 이에 대한 보상으로 해당 암호화폐를 지급받는다고 언급했지만, 딱 한 명의 블록 생성자만 채굴에 대한 보상을 받는 것은 아니다. 이론적으로는 단 한 명에게 주어지는 것이 이 보상이지만 채굴과 보상 효율화를 위해 참여자들은 일종의 그룹을 형성해 작업을 분담한다. 이들이 참여한 그룹에서 블록을 생성할 경우 해당 그룹에 참여한 모든 사람이 특정 기준에 따라 보상을 나눠 갖게 되고, 평생 블록을 생성하지 못할 일도 없으며 보상을 받지 못할 일도 없다.[5] 비트코인에 대해 자세히 보기
이더리움[편집]
이더리움의 블록체인은 순서가 정렬된 일련의 블록으로 구성된다. 블록은 메타정보를 담은 헤더와 일련의 트랜잭션으로 구성된다. 블록은 블록 생성자가 채굴해 생성되고 네트워크의 다른 노드로 브로드캐스트된다. 모든 노드는 일련의 합의 규칙에 따라 수신된 블록을 확인하고, 합의 규칙을 충족시키지 못하는 블록은 네트워크에서 거부된다. 포크(fork)는 새로운 규칙 집합이 이전 규칙의 하위 집합일 때 발생하는데, 여전히 이전 규칙을 사용하는 클라이언트도 새 규칙을 사용해 클라이언트가 만든 블록을 거부하지 않음으로, 블록 생성자(채굴자)만 소프트웨어를 업데이트 하면 된다. 하드포크는 새로운 규칙이 이전의 규칙과 호환하지 않을 때 발생한다. 이 경우 모든 클라이언트가 소프트웨어를 업데이트해야 한다. 하드포크는 언제나 논쟁의 소재인데 사용자 그룹이 소프트웨어 업데이트를 거부하면 체인의 분할이 발생하고 한 체인에서 유효한 블록은 다른 체인에서 유효하지 않게 되기 때문에 지급까지 이더리움은 콘스탄티노플 하드 포크까지 7번의 하드 포크를 겪었고 그중 하나의 포크는 체인 분할로 이어져 이더리움 클래식을 탄생시켰다.
이더리움 네트워크의 채굴 노드는 이더해시(Ethash)라는 독자적인 작업증명 알고리즘을 사용해 블록을 생성하고자 경쟁한다. 이더해시 알고리즘에 대한 입력은 논스라고 하는 임의로 생성된 숫자를 포함하는 블록 헤더 이며, 그 출력은 32바이트의 16진수이다. 논스를 수정하면 출력도 수정되는데, 예측할 수 없는 방식으로 수정된다. 네트워크가 채굴된 블록을 수용하려면 블록 헤더에 대한 이더해시 출력이 네트워크 난이도보다 적어야 하며 또 다른 32바이트의 16진수가 채워질 대상으로 사용되며, 목표 난이도를 상회하는 블록을 브로드캐스트하는 모든 채굴자는 블록 보상을 받는다. 블록 보상은 블록에 코인베이스 트랜잭션을 포함함으로써 부여되고, 코인 베이스 트랜잭션은 일반적으로 블록의 첫 번째 트랜잭션이며 블록 보상을 블록 생성자가 같은 시간에 한 블록을 생산하고 오직 하나만 주체인에 합류하게 된다. 수용되지 않은 블록을 엉클 블록(uncle block)이라고 하며, 엉클 블록은 체인에 포함되어 더 적은 블록 보상을 받으며, 엉클 블록의 트랜잭션은 상태 트리를 수정하지 않는다. 블록체인의 보안은 네트워크의 해시 파워에 비례하여 네트워크의 해시 파워가 클수록 개별 채굴자의 총 해시 파워는 낮아지고 네트워크 점유 공격이 더 어려워지게 된다. 체인에 엉클 블록을 포함하면 체인의 보안이 강화되어 수락되지 않는 블록을 만드는 데 사용하는 해시 파워가 낭비되지 않기 때문이다. 네트워크 난이도는 지속 조정되며, 난이도 조절로 15~30초마다 블록을 생성하도록 만든다.[6] 이더리움에 대해 자세히 보기
합의 알고리즘[편집]
합의 알고리즘은 블록체인 프로젝트의 심장과 마찬가지로 블록 생성자가 악의적으로 이중지불을 용인하거나, 가짜를 만들어 내면 블록체인의 신뢰는 무너지고 프로젝트는 위험에 빠진다. 그만큼 합의 알고리즘은 매우 중요하고, 많은 선택지가 있는데 초기 블록체인 프로젝트들이 작업증명(PoW), 지분증명(PoS)을 선택했다면, 요즘은 프랙티컬 비잔틴 장애 허용(PBFT)과 위임 지분증명(DPoS)이 주로 선택지로 고려된다.
- 작업증명(PoW) : 다른 마이너들과 특정 논스 값을 찾아내는 연산을 하여 블록을 생성하는 경쟁을 하며 전력 소모가 크다.
- 지분증명(PoS) : 지분의 스테이킹한 검증 인들이 블록을 생성하고, 검증하는 방식이다.
- 위임 지분증명(DPoS) : 토큰홀더로부터 투표를 받아 일정 수의 블록 생성자를 정하고 선출된 이들이 블록을 생성하고, 검증을 진행한다.
- 프랙티컬 비잔틴 장애 허용(PBFT) : 블록 생성자가 특정 기준으로 선정되고, 지정된 블록 생성자가 블록을 생성한다.
합의 알고리즘을 선택할 때는 DCS 삼각형을 고려해야 하는데, DCS 삼각형은 블록체인 프로젝트가 가질 수 있는 3가지 속성을 가르치는 것으로, 각각 탈중앙화, 데이터 정합성, 확장성(Scalability)을 가르친다. 탈중앙화는 얼마나 많은 노드가 데이터를 검증할 수 있는가, 확장성은 제한된 시간 내에 얼마나 많은 거래를 처리할 수 있는가, 데이터 정합성은 모든 노드가 같은 데이터를 갖고 있는가를 나타낸다. DCS 삼각형에서 포기할 수 없는 두 가지를 선택하는 것이 보통 프로젝트의 성격을 규정할 수 있다. 예를 들어, 이더리움과 비트코인은 CD(Consistent, Decentralized)로 표현될 수 있다. 데이터 정합성과 탈중앙화를 선택하는 비트코인과 이더리움은 필연적으로 거래를 확정하는데 오랜 시간이 걸린다. 반면 IPFS는 속도와 탈중앙화는 이뤘지만, 각 노드 간 데이터의 정합성은 일부 포기하는 구조이다. 비잔틴 장애 허용 계열의 합의 알고리즘이 합쳐진 텐더민트또한 좋은 선택지가 될 수 있다. 탈중앙화는 비싸고 어렵다. 궁극적으론 이더리움과 같이 완전히 탈중앙화를 이룬 프로젝트가 가장 이상적이지만, 아직 비즈니스에 사용되기에는 적합하지 않다. 하지만 이더리움이 확장성을 개선할 수 있는 플라즈마 혹은 샤딩을 구현한다면 이런 논의가 무의미해질지도 모른다.[7] 합의 알고리즘에 대해 자세히 보기
각주[편집]
- ↑ dev1by0, 〈EOS 블록생성자는 얼마를 벌게 될까?〉, 《스팀잇》, 2017-10-11
- ↑ 2.0 2.1 2.2 EOS 암호화폐의 블록 생성에 대한 인센티브 분석 - http://caislab.kaist.ac.kr/publication/paper_files/2018/CISC-W'18_SH.pdf
- ↑ eosys, 〈EOS 블록 프로듀서 준수규정〉, 《미디엄》, 2018-08-07
- ↑ work4block 공식 홈페이지 - http://www.work4block.com/post/537
- ↑ 김진배 기자, 〈(What is Block) 금도 아닌데 채굴을 한다고?〉, 《블록미디어》
- ↑ 키더아이어, 크리스대넌, 〈이더리움 블록체인 게임 개발〉, 《도서》, 2019-09-06
- ↑ WK, 〈블록체인 프로젝트 설계의 이해〉, 《브런치》, 2018-08-26
참고자료[편집]
- work4block 공식 홈페이지 - http://www.work4block.com/post/537
- EOS 암호화폐의 블록 생성에 대한 인센티브 분석 - http://caislab.kaist.ac.kr/publication/paper_files/2018/CISC-W'18_SH.pdf
- 키더아이어, 크리스대넌, 〈이더리움 블록체인 게임 개발〉, 《도서》, 2019-09-06
- WK, 〈블록체인 프로젝트 설계의 이해〉, 《브런치》, 2018-08-26
- dev1by0, 〈EOS 블록생성자는 얼마를 벌게 될까?〉, 《스팀잇》, 2017-10-11
- eosys, 〈EOS 블록 프로듀서 준수규정〉, 《미디엄》, 2018-08-07
- 김진배 기자, 〈(What is Block) 금도 아닌데 채굴을 한다고?〉, 《블록미디어》
같이 보기[편집]