블록생성자 편집하기
최신판 | 당신의 편집 | ||
72번째 줄: | 72번째 줄: | ||
===합의 알고리즘=== | ===합의 알고리즘=== | ||
− | [[합의 알고리즘]]은 [[블록체인]] 프로젝트의 심장과 마찬가지로 블록 생성자가 악의적으로 이중지불을 용인하거나, | + | [[합의 알고리즘]]은 [[블록체인]] 프로젝트의 심장과 마찬가지로 블록 생성자가 악의적으로 이중지불을 용인하거나, 가짜(transaction)를 만들어 내면 블록체인의 신뢰는 무너지고 프로젝트는 위험에 빠진다. 그만큼 합의 알고리즘은 매우 중요하고, 많은 선택지가 있는데 초기 블록체인 프로젝트들이 [[작업증명]](PoW), [[지분증명]](PoS)을 선택했다면, 요즘은 프랙티컬 [[비잔틴 장애 허용]](PBFT)과 [[위임 지분증명]](DPoS)가 주로 선택지로 고려된다. |
− | # '''작업증명'''(PoW) : 다른 마이너들과 특정 | + | # '''작업증명'''(PoW) : 다른 마이너들과 특정 넌스(Nounce) 값을 찾아내는 연산을 하여 블록을 생성하는 경쟁을 하며 전력 소모가 크다. |
− | # '''지분증명'''(PoS) : 지분의 | + | # '''지분증명'''(PoS) : 지분의 스테이킹(Staking)한 검증 인들이 블록을 생성하고, 검증하는 방식이다. |
# '''위임 지분증명'''(DPoS) : 토큰홀더로부터 투표를 받아 일정 수의 블록 생성자를 정하고 선출된 이들이 블록을 생성하고, 검증을 진행한다. | # '''위임 지분증명'''(DPoS) : 토큰홀더로부터 투표를 받아 일정 수의 블록 생성자를 정하고 선출된 이들이 블록을 생성하고, 검증을 진행한다. | ||
# '''프랙티컬 비잔틴 장애 허용'''(PBFT) : 블록 생성자가 특정 기준으로 선정되고, 지정된 블록 생성자가 블록을 생성한다. | # '''프랙티컬 비잔틴 장애 허용'''(PBFT) : 블록 생성자가 특정 기준으로 선정되고, 지정된 블록 생성자가 블록을 생성한다. | ||
80번째 줄: | 80번째 줄: | ||
[[파일:DCS삼각형.PNG|썸네일|500픽셀|DCS 삼각형]] | [[파일:DCS삼각형.PNG|썸네일|500픽셀|DCS 삼각형]] | ||
− | 합의 알고리즘을 선택할 때는 DCS 삼각형을 고려해야 하는데, DCS 삼각형은 블록체인 프로젝트가 가질 수 있는 3가지 속성을 가르치는 것으로, 각각 탈중앙화, 데이터 정합성, 확장성(Scalability)을 가르친다. 탈중앙화는 얼마나 많은 노드가 데이터를 검증할 수 있는가, 확장성은 제한된 시간 내에 얼마나 많은 거래를 처리할 수 있는가, 데이터 정합성은 모든 노드가 같은 데이터를 갖고 있는가를 나타낸다. DCS 삼각형에서 포기할 수 없는 두 가지를 선택하는 것이 보통 프로젝트의 성격을 규정할 수 있다. 예를 들어, [[이더리움]]과 [[비트코인]]은 CD( | + | 합의 알고리즘을 선택할 때는 DCS 삼각형을 고려해야 하는데, DCS 삼각형은 블록체인 프로젝트가 가질 수 있는 3가지 속성을 가르치는 것으로, 각각 탈중앙화(Decentralization), 데이터 정합성(Consistent), 확장성(Scalability)을 가르친다. 탈중앙화는 얼마나 많은 노드가 데이터를 검증할 수 있는가, 확장성은 제한된 시간 내에 얼마나 많은 거래를 처리할 수 있는가, 데이터 정합성은 모든 노드가 같은 데이터를 갖고 있는가를 나타낸다. DCS 삼각형에서 포기할 수 없는 두 가지를 선택하는 것이 보통 프로젝트의 성격을 규정할 수 있다. 예를 들어, [[이더리움]](Ethereum)과 [[비트코인]](Bitcoin)은 CD(Cinsistent, Decentralized)로 표현될 수 있다. 데이터 정합성과 [[탈중앙화]]를 선택하는 비트코인과 이더리움은 필연적으로 거래를 확정(finality)하는데 오랜 시간이 걸린다. 반면 [[IPFS]]는 속도와 탈중앙화는 이뤘지만, 각 노드 간 데이터의 정합성은 일부 포기하는 구조이다. 비잔틴 장애 허용 계열의 합의 알고리즘이 합쳐진 [[텐더민트]](Tender mint) 또한 좋은 선택지가 될 수 있다. 탈중앙화는 비싸고 어렵다. 궁극적으론 이더리움과 같이 완전히 탈중앙화를 이룬 프로젝트가 가장 이상적이지만, 아직 비즈니스에 사용되기에는 적합하지 않다. 하지만 이더리움이 확장성을 개선할 수 있는 플리즈마(Plasma) 혹은 샤딩을 구현한다면 이런 논의가 무의미해질지도 모른다.<ref>WK, 〈[https://brunch.co.kr/@bitcoin/10, 블록체인 프로젝트 설계의 이해]〉, 《브런치》, 2018-08-26 </ref> {{자세히|합의 알고리즘}} |
{{각주}} | {{각주}} |