https://cexplorer.io/article/understanding-the-nakamoto-consensus
Cardano는 Ouroboros라고 불리는 Nakamoto 합의의 변형을 사용합니다. 이는 나카모토 사토시가 비트코인을 위해 고안한 기본 원칙을 사용하는 지분 증명(PoS) 합의입니다. Ouroboros는 작업 증명(PoW)과 유사한 보안 보장을 제공하면서 에너지 효율성을 높이도록 설계되었습니다. 이 기사에서는 Nakamoto 합의의 기본 원칙을 설명하고 PoW와 PoS의 차이점을 강조합니다. 초점은 원칙과 기본 메커니즘에 맞춰집니다.
나카모토 합의
나카모토 컨센서스는 비트코인의 가명 창시자인 나카모토 사토시가 창안했습니다. 독립 노드들의 분산 네트워크에서 합의가 가능한지 묻는 비잔틴 장군 문제(Byzantine Generals Problem)에 대한 솔루션입니다.
Ouroboros는 에너지 효율적이면서 비트코인과 유사한 보안 보장을 제공하도록 설계되었습니다. 비트코인의 PoW와 Cardano의 PoS는 메커니즘과 구현의 차이에도 불구하고 Nakamoto 합의의 공통 원칙을 공유합니다.
PoW와 PoS의 주요 차이점은 이러한 원칙을 구현하는 방법에 있습니다.
PoW에서는 채굴자가 블록체인에 새로운 블록을 추가하기 위해 컴퓨팅 능력을 사용하여 복잡한 암호화 퍼즐을 풀어야 합니다.
PoS는 블록 생산자(풀)를 선택하여 그들이 소유하거나 위임받은 ADA 코인의 양을 기준으로 새로운 블록을 생성합니다.
근본적인 차이점은 PoW 및 PoS 합의 메커니즘이 사용하는 값비싼 리소스에 있습니다.
PoW가 작동하려면 엄청난 양의 해시레이트(컴퓨팅 파워)가 필요합니다. 이는 많은 에너지를 소비합니다. 전기는 비싸고 재생 가능한 자원입니다. 수량은 무제한입니다.
PoS는 디지털 코인을 자원으로 사용하기 때문에 에너지 효율성이 더 높습니다. 전기는 노드를 작동하는 데에만 소비됩니다. ADA 코인은 비싸고 재생이 불가능하며 희소한 자원입니다.
다양한 값비싼 자원의 사용은 나카모토 합의 원칙의 이행에 영향을 미쳤습니다. PoW와 PoS 합의는 모두 서로 다른 메커니즘을 사용하여 블록 생산 시기, 무작위성, 보안, 분산화, 포용성, 평등주의 등을 달성합니다.
PoW와 PoS는 개별 요소가 다르지만 Nakamoto 합의의 원칙에 관해서는 두 합의가 매우 유사합니다.
우리는 기사의 모든 요소를 다루지는 않을 것입니다. 우리는 주로 합의에 도달하는 방법을 설명하는 데 중점을 둡니다. 들어가기에 앞서 필요한 이론을 먼저 설명하겠습니다.
합의란 무엇을 위한 것인가?
분산 네트워크에서 합의의 목적은 서로 다른 위치에 분산되어 있을 수 있는 모든 참여 노드가 중앙 권한이 없음에도 불구하고 네트워크의 단일 상태에 동의하도록 하는 것입니다.
이 계약을 통해 네트워크는 원장의 일관되고 안정적인 상태를 유지할 수 있습니다. 네트워크는 원장의 상태를 변경할 수 있도록 일정한 간격으로 합의에 도달해야 합니다.
블록체인 네트워크에서는 새 블록을 추가하여 상태가 변경됩니다. 사용자 트랜잭션이 블록에 삽입됩니다. Cardano의 경우 인증서를 블록에 삽입할 수도 있습니다.
합의란 무엇을 의미하는가?
합의는 분산 네트워크 내의 노드가 상호 동의(상호 정보 교환 및 자율적 결정을 통해)를 달성할 수 있도록 하는 일련의 규칙을 의미할 수 있습니다.
이러한 규칙은 네트워크 프로토콜의 소스 코드에 인코딩되어 있습니다. 프로토콜은 본질적으로 청사진이며 클라이언트는 이 청사진을 구현하는 소프트웨어입니다. 자신의 컴퓨터에 클라이언트를 설치함으로써 사용자는 분산(분산) 네트워크 운영에 기여하는 노드가 됩니다.
합의는 특히 PoW 또는 PoS 메커니즘을 통한 합의 프로세스의 구현을 의미할 수도 있습니다.
따라서 합의는 합의에 도달하는 네트워크의 능력일 수도 있고 특정 구현일 수도 있습니다. 동일한 용어는 능력과 도구를 동시에 나타낼 수 있습니다.
그림에서 고객은 원장 상태 변경에 대한 상호 합의에 도달할 수 있는 Ouroboros PoS 합의를 사용하는 것을 볼 수 있습니다. 원장은 모든 클라이언트의 일부입니다. 모든 노드에서 상태 변경이 발생합니다.
네트워크 합의 요구 사항
나카모토 합의에 대한 설명을 시작하기 전에, 분산 네트워크에 대한 모든 종류의 네트워크 합의에 부과되는 몇 가지 중요한 측면을 설명할 필요가 있습니다.
합의 메커니즘은 결함이 있거나 악의적인 노드가 있는 경우에도 네트워크가 올바르게 작동하도록 보장해야 합니다. 합의에 도달하는 능력을 방해하여 네트워크를 손상시키려는 악의적인 행위자가 언제든지 개방형 네트워크에 참여할 수 있습니다.
다양한 이유로 네트워크의 여러 노드가 동시에 오프라인 상태가 될 수 있습니다.
분산형 네트워크에서는 값비싼 자원(비트코인의 해시율 또는 카르다노의 코인)을 소유한 사람은 누구나 권력을 공유할 수 있습니다(즉, 합의 도달에 참여).
네트워크의 신뢰성과 보안은 정직한 참가자가 악의적인 행위자가 합의를 방해하는 데 필요한 것보다 더 많은 값비싼 리소스를 보유하고 있다는 가정에 기반합니다.
또 다른 가정은 많은 노드가 갑자기 오프라인 상태가 되어도 합의에 도달하는 것이 가능하다는 것입니다. 모든 유형의 합의가 이를 제공할 수 있는 것은 아닙니다.
네트워크는 시스템의 전체 기능을 손상시키지 않으면서 네트워크와 참여 노드 모두에서 오류와 오류를 처리할 수 있어야 합니다. 네트워크는 내결함성이 있어야 합니다.
결함이 없는 모든 노드는 결국 동일한 원장 상태에 동의해야 전체 시스템에 걸쳐 일관성과 무결성이 보장됩니다. 네트워크는 이러한 상황을 처리하지 못한 채 상태가 두 개의 서로 다른 상태로 분할되는 상황(블록체인이 두 개의 경쟁 체인으로 분기될 수 있음)에 빠져서는 안 됩니다.
그림을 보면 N+3 블록까지 네트워크가 원장의 균일한 상태를 유지하고 있는 것을 볼 수 있습니다. 그 이후에는 상태가 애매합니다. N+4와 N+5의 높이가 같은 한 쌍의 블록이 있습니다.
특정 시점에서는 어떤 원장의 상태가 유효한지 판단할 수 없습니다.
프로토콜 규칙은 모든 만일의 경우에 대비하고 상태 일관성을 보장해야 합니다. 상태 분할의 경우 네트워크는 문제를 감지하고 어떤 상태가 올바른지 결정론적으로 결정할 수 있어야 합니다(더 긴 체인 규칙).
그림에서 네트워크가 하위 블록 N+4 및 N+5를 삭제한 것을 볼 수 있습니다(고아가 됨). 상위 블록 N+5 뒤에 새로운 블록 N+6과 N+7이 추가되었습니다. 이 체인은 승리했으며 원장의 현재(합의된) 상태를 나타냅니다.
결함이 없는 모든 프로세스는 결국 결정에 도달해야 하며 합의 프로토콜이 결국 결론을 내릴 수 있도록 보장해야 합니다. 즉, 네트워크는 어떻게 합의를 진행해야 할지 모르는 상황에 빠져서는 안 됩니다. 연속성이 보장되어야 합니다.
N+5 블록 쌍을 추가한 후 네트워크가 중단되고 어떤 상태가 올바른지 결정하는 방식으로 다른 블록을 추가할 수 없는 경우 중앙화된 개체(팀)가 개입해야 합니다. 이는 바람직하지 않습니다.
안전성과 생명력
안전성과 활동성은 네트워크가 올바르고 안전하게 작동하도록 보장하는 두 가지 중요한 속성입니다. 네트워크 합의를 구축하는 팀은 이러한 속성의 균형을 유지해야 합니다. 그들은 어느 쪽을 더 선호하는지 결정해야 합니다.
이러한 속성을 설명하겠습니다.
안전이란 네트워크가 잘못된 합의에 도달하지 않는다는 보장을 의미합니다. 즉, 적절하게 작동하는 하나의 노드에 의해 최종으로 간주되는 모든 거래가 결국 적절하게 작동하는 모든 노드에 의해 최종으로 간주되도록 보장합니다. 이는 또한 적절하게 작동하는 두 개의 노드에 의해 최종으로 간주된 두 개의 트랜잭션이 충돌하지 않는다는 것을 의미합니다.
극단적인 경우, 이는 네트워크가 잘못된 거래 정산보다 합의 중단을 선호하는 것으로 해석될 수 있습니다. 활성보다 안전을 우선시하는 네트워크에서는 포크를 피하는 것이 중요합니다. 왜냐하면 포크는 원장의 상태에 대한 불일치가 있어 안전 위반으로 이어질 수 있음을 의미하기 때문입니다.
이러한 네트워크에서 트랜잭션을 폐기하는 것은 시스템의 신뢰와 신뢰성을 약화시킬 수 있으므로 매우 바람직하지 않습니다. 사용자는 거래가 블록에 포함되고 블록체인에 추가되면 거래가 최종적이고 변경 불가능할 것으로 기대합니다.
이 바람직하지 않은 상황을 그림에서 볼 수 있습니다. 네트워크는 N+4 두 개의 블록을 생성했으며 각 블록(작은 빨간색 및 파란색 상자)에는 서로 다른 트랜잭션이 있습니다. 네트워크는 트랜잭션을 포함한 N+4 블록 중 하나를 폐기해야 합니다.
이는 안전보다 활동성을 선호하는 네트워크와는 다른 요구 사항입니다.
활동성은 네트워크가 멈추지 않고 계속해서 발전할 것이라는 보장입니다. 이는 완료되지 않은 트랜잭션이 있는 한 완료된 트랜잭션 세트가 계속 증가한다는 것을 의미합니다. 이는 모든 거래가 결국 모든 정직한 노드에 의해 해결되도록 보장합니다.
보안보다 활동성을 우선시하는 네트워크는 포크가 발생해도 멈추지 않습니다. 대신, 두 개의 체인이 일시적으로 존재할 수 있도록 허용하고 네트워크 참가자가 올바른 체인이라고 믿는 체인 위에 계속 구축하도록 의존합니다. 즉, 원장의 불일치 상태가 일시적으로 허용됩니다.
그림을 보면 위와 비슷한 상황이 보입니다. 네트워크 규칙은 이러한 상황을 허용합니다. 하위 블록 N+4는 폐기됩니다(빨간색 트랜잭션 포함). 빨간색 트랜잭션이 삽입된 블록 N+5가 추가됩니다. 두 거래 모두 궁극적으로 블록체인에 있습니다.
나카모토 합의를 사용하는 네트워크를 선호하는 속성이 무엇인지 알기를 바랍니다. Cardano와 Bitcoin은 모두 안전보다 활력을 우선시합니다.
이러한 설계 선택은 합의가 블록체인의 포크를 처리하는 방식에서 분명하게 드러납니다. Nakamoto 합의에서 노드는 포크가 발생할 때 가장 긴 체인을 따르도록 지시받습니다. 이 규칙은 일시적인 불일치나 분기가 있더라도 네트워크가 계속 발전하고 블록체인을 확장하도록 보장합니다.
그러나 이러한 접근 방식은 두 명의 채굴자가 거의 같은 시간에 같은 높이의 블록을 채굴하여 포크가 발생하는 등 일시적인 안전 위반으로 이어질 수 있습니다. Cardano에서는 두 명의 슬롯 리더가 동시에 선출될 수 있습니다.
네트워크는 결국 가장 긴 체인 규칙의 일부로 이러한 블록(체인) 중 하나에 수렴되지만 그때까지는 거래 내역에 대해 상충되는 관점이 있을 수 있습니다. 새로운 블록을 추가하는 데 있어 합의가 계속되면서 결국 안전 속성은 복원됩니다. 하나의 체인은 다른 체인보다 상당히 길어져 보편적으로 허용되는 체인이 됩니다.
나카모토 합의는 안전성과 생존성을 모두 제공하는 것을 목표로 하지만, 일시적인 불일치나 네트워크 문제가 발생하더라도 네트워크가 계속 살아 있고 거래를 처리할 수 있도록 설계되었습니다. 블록체인이 성장하고 심층적인 재구성 가능성이 무시될수록 안전성이 달성됩니다.
확률적 최종성
안전성과 활성 속성은 나카모토 합의의 확률적 최종성과 관련이 있습니다.
확률적 완결성(Probabilistic Finality)은 거래의 완결성이 새로운 블록에 삽입되는 시점에서 절대적이지 않다는 개념을 말합니다. 트랜잭션이 포함된 블록 위에 더 많은 블록이 추가됨에 따라 트랜잭션의 최종성은 점점 더 높아집니다.
안전성과 생존성은 다음과 같은 방식으로 확률적 최종성과 관련됩니다.
안전이란 일단 거래가 하나의 블록에 포함되고 여러 블록이 그 위에 추가되면(체인 내 위치가 깊어짐) 해당 거래가 취소될 가능성이 매우 낮다는 것을 의미합니다.
그러나 그것은 0이 아닙니다. 더 긴 경쟁 체인이 나타날 가능성은 항상 적지만, 블록이 추가될 때마다 확률은 기하급수적으로 감소합니다.
활동성은 거래가 최종적으로 확인되어 블록체인에 추가되도록 보장합니다. 풀(블록 생산자)이 새로운 블록을 추가하여 블록체인을 계속 확장하는 한 네트워크는 활력을 나타냅니다.
트랜잭션이 다음 블록에 포함된다는 보장은 없지만, 유효하고 네트워크가 계속 작동하는 한 결국 포함됩니다.
생존성보다 안전성을 선호하는 다른 네트워크 합의에 비해 나카모토 합의는 정착 속도가 느립니다.
사용자는 자신의 거래가 삽입된 블록 위에 네트워크가 여러 블록을 추가할 때까지 기다려야 합니다. 블록을 더 추가한 후에만 거래를 되돌릴 수 있습니다. 새로 추가된 다른 모든 블록(사용자의 거래가 포함된 블록 상단)은 원장 상태에 대한 합의를 나타냅니다. 자세한 내용은 나중에 다루겠습니다.
그림은 앨리스의 거래(작은 파란색 상자)가 블록 N+3에 삽입되었음을 보여줍니다. 아직 추가 블록이 추가되지 않았으므로 트랜잭션의 최종성은 0입니다. 블록이 추가될 때마다 트랜잭션(및 N+3 블록)의 최종성이 증가합니다. N+4 블록이 추가되면 최종성은 1이 됩니다. 앨리스가 충분한 수의 확인을 위해 3개의 블록이 필요한 경우(3명의 다른 블록 생산자가 N+3 블록에 동의함) N+6 블록에서 트랜잭션이 완료된(되돌릴 수 없음) 것으로 간주할 수 있습니다.
참고: 트랜잭션의 최종성은 이진 값으로 볼 수 있습니다. 따라서 거래는 최종적이거나(블록체인에 영원히 기록됨) 그렇지 않습니다(아직). 이것이 우리가 종종 확인 횟수에 대해 이야기하는 이유입니다. 거래가 차단된 후 추가된 각 블록은 하나의 추가 확인을 나타냅니다. 블록 N+6에서는 거래에 3번의 확인이 있습니다. Alice가 이것이 더 적은 금액의 거래에 대한 충분한 확인 횟수라고 생각하면 거래가 완료된 것으로 간주할 수 있습니다. 블록체인 재구성은 여전히 발생할 수 있지만 확률은 낮습니다.
활동성보다 안전성을 선호하는 네트워크는 상태 동의를 더 빨리 수집할 수 있습니다. 즉, 블록을 추가하는 것이 아니라 블록을 추가하기 전이나 직후에 일종의 투표를 통해 이루어지는 것입니다. 이러한 종류의 합의에는 일반적으로 각 블록에 대한 투표에 적극적으로 참여하기 위해 많은 수의 노드가 필요합니다.
짧은 시간 내에 다수의 노드로부터 새로운 상태(블록)에 대한 승인을 얻을 수 있어야만 트랜잭션의 완결성을 빠르게 얻을 수 있습니다.
나카모토 방식으로 새로운 블록을 생산하자
우리는 합의란 원장의 상태 변경에 대한 노드 간 합의에 관한 것이라고 말했습니다. 나카모토 합의는 다음과 같이 간단히 설명할 수 있습니다.
주어진 시간 간격 동안 새로운 블록을 생성할 권리를 얻는 네트워크의 노드 하나를 무작위로 선택해 보겠습니다. 이 블록은 네트워크에 브로드캐스트됩니다. 무작위로 선출된 다른 노드가 이 블록에 동의하면 이(최신) 블록 위에 새 블록을 추가합니다. 동의하지 않으면 이전 블록 위에 새 블록을 추가합니다(최신 블록 다음이 아님).
다음 그림을 설명해 보겠습니다.
Alice는 블록 N+2를 추가했습니다. 이 블록은 네트워크의 다른 노드에서 수신되므로 Bob과 Carol도 이를 수신하게 됩니다. Bob은 무작위로 다음 블록 생산자로 선출됩니다. 그는 블록 N+2 뒤에 블록 N+3(녹색)을 추가합니다.
Carol은 Bob이 생성한 블록 N+3을 받습니다. 그녀는 무작위로 다음 블록 생산자로 선출됩니다. Carol에게는 두 가지 옵션이 있습니다. 그녀는 기존 블록 N+3 뒤에 블록 N+4를 추가할 수 있습니다. 이는 예상되는 시나리오입니다(원장에 불일치가 없기 때문에). 그러나 그녀는 Bob의 블록 N+3을 좋아하지 않습니다. 따라서 그녀는 블록 N+2 뒤에 블록 N+3(빨간색)을 추가하기로 결정했습니다.
이렇게 하면 블록체인에 포크가 생성됩니다(원장의 상태가 이제 일관성이 없습니다). 무작위로 선출된 또 다른 블록 생산자는 빨간색 또는 녹색 블록 N+3 뒤에 새 블록을 추가할지 여부를 결정할 수 있습니다.
블록 추가에는 두 가지 기능이 중요합니다. 새로운 블록을 언제 추가할 것인지, 누가 생산할 것인지 결정합니다. 따라서 프로토콜 타이밍과 노드 무작위화 기능이 필요합니다.
노드 간 합의는 새로운 상태가 제안된 후에만 발생합니다. 다른 노드는 이전 블록 뒤에 새 블록을 추가하여 오랜 지연을 거쳐 변경에 동의합니다. 동시에 모든 노드에서 합의를 얻을 수는 없지만 다음 블록 생산자로 선택될 단일 노드에서만 합의를 얻을 수 있습니다. 합의를 이루는 것은 점진적인 과정입니다.
노드는 상태 변경이 발생하기 전에 상태 변경에 대해 서로 동의하지 않습니다. 대신, 무작위로 선출된 노드가 변경 사항을 정식으로 제안하고 다른 사람들이 동의할 것이라고 가정합니다. 블록이 유효한 경우 다른 노드는 동의할 가능성이 높습니다.
블록 생산자는 유효한 블록을 제안하도록 인센티브를 받습니다. 이것이 보상을 받을 수 있는 유일한 방법이기 때문입니다.
각 라운드에는 제안자 1명과 승인자 1명이 있습니다. 네트워크의 노드는 유효한 블록을 버릴 이유가 없기 때문에 유효한 블록을 받아들입니다. 노드가 유효한 블록(예: Alice가 생성한 모든 블록)을 폐기하면 네트워크에서 포크가 발생합니다(따라서 원장 불일치). 이는 바람직하지 않습니다.
새 블록을 추가하는 과정은 다음 단계로 구성됩니다.
- 블록 생산자의 무작위 선출.
- 무작위로 선출된 노드에 의해 새로운 블록이 생성됩니다.
- 생산자가 블록을 네트워크에 브로드캐스팅합니다.
- 블록 검증 및 가능한 승인.
- 1단계부터 다시 동일한 프로세스를 수행합니다.
Cardano와 Bitcoin 모두 프로세스는 동일합니다. 각 프로젝트는 서로 다른 합의를 사용하지만 근본적으로 다르지는 않습니다. 차이점을 설명해 보겠습니다.
차이점은 프로토콜 타이밍과 블록 생산자의 무작위 선택에 있습니다.
비트코인은 대략 10분마다 새로운 블록을 생성하도록 설계되었습니다. 네트워크는 이 블록 시간을 유지하기 위해 약 2주(2016블록)마다 채굴 난이도를 조정합니다. 이러한 조정을 통해 네트워크의 해시율(채굴에 사용되는 총 계산 능력)이 변경되더라도 블록을 생성하는 데 걸리는 시간이 일관되게 유지됩니다.
무작위 선택은 계산적으로 까다로운 수학적 작업(암호 퍼즐)을 해결하는 데 기반을 둡니다. 새로운 블록(풀)을 채굴하려는 노드는 새로운 블록을 받는 순간부터 작업 해결을 시작합니다. 모든 노드는 거의 동시에 시작됩니다(네트워크 지연). 먼저 작업을 해결한 노드는 즉시 새로운 블록을 생성하여 네트워크에 브로드캐스트합니다.
모든 풀은 동일한 작업을 해결하지만 하나만 성공할 수 있습니다. 풀이 새로운 유효한 블록을 수신하자마자 현재 작업 작업을 중지하고 새 작업 해결(새 블록 채굴)을 시작합니다.
때로는 작업이 거의 동시에 두 개의 풀을 해결하는 경우가 있습니다. 이러한 경우 블록체인의 포크가 발생하며 위에서 설명한 메커니즘에 의해 해결됩니다.
비트코인에서 새 블록을 추가하는 과정은 다음 단계로 구성됩니다.
- 모든 풀(마이너 포함)은 새로운 블록을 채굴하기 시작합니다.
- 하나의 풀은 암호화 퍼즐에 대한 해결책을 찾습니다.
- 풀은 블록을 생성하고 이를 네트워크에 브로드캐스팅합니다.
- 다른 노드와 풀은 블록을 검증합니다.
- 1단계와 동일한 프로세스를 다시 수행합니다(블록이 유효한 경우).
Cardano는 시간을 1초 단위로 나누고 무작위 선택을 위해 VRF(검증 가능한 무작위 함수)라는 최신 암호화 방식을 사용합니다.
컴퓨터 집약적인 수학 연산을 해결하는 모든 노드 대신 소위 슬롯 리더는 수학과 무작위 입력에 의해 결정됩니다.
각 노드는 각 슬롯에서 슬롯 리더가 되었는지 여부를 확인합니다. 그렇다면 새로운 블록을 생성합니다. 투표를 통제하는 중앙 기관은 없습니다. 노드는 블록체인에 저장된 인증서를 통해 투표에 등록합니다. 노드는 완전히 자율적으로 슬롯 리더가 되었는지 확인할 수 있습니다.
각 노드는 임계값 수를 계산해야 합니다. 이는 스테이크의 크기에서 파생됩니다. 스테이크는 운영자(서약자)의 ADA 코인과 모든 스테이커로 구성됩니다. 지분이 클수록 풀은 특정 시대에 더 많은 블록을 생성할 수 있습니다. 이는 우리가 비트코인에서 관찰하는 것과 동일한 원리입니다. 더 많은 해시율이 풀에 위임될수록 풀에서 채굴할 블록이 더 많아집니다.
매초마다 모든 풀은 VRF 알고리즘을 사용하여 VRF 출력을 얻습니다. VRF 출력은 임계값과 비교됩니다. VRF 출력이 임계값보다 작으면 풀이 슬롯 리더가 되어 새 블록을 만들 수 있는 권리를 얻습니다.
Cardano에서 새 블록을 추가하는 과정은 다음 단계로 구성됩니다.
- 각 슬롯에서 모든 풀은 자신이 슬롯 리더가 되었는지 확인합니다.
- 슬롯 리더는 새로운 블록을 생성하고 이를 네트워크에 브로드캐스트합니다.
- 다른 노드와 풀은 블록을 검증합니다.
- 1단계와 동일한 프로세스를 다시 수행합니다(블록이 유효한 경우).
보시다시피 비트코인의 경우와 동일한 프로세스입니다.
비트코인과 마찬가지로 20초(Cardano의 블록 시간) 안에 여러 슬롯 리더가 선출되는 일이 발생할 수 있습니다. 동일한 슬롯에서 2명의 슬롯 리더가 선출되는 것도 가능합니다. 비트코인과 유사하게 긴 체인 규칙은 블록체인의 포크를 해결하는 데 사용됩니다.
VRF 선거의 결과는 블록체인 포크가 발생할 경우 따라야 할 체인을 결정하는 숫자입니다.
또 다른 차이점 중 하나는 인센티브 모델입니다. 비트코인은 각각의 새로운 블록에 풀(채굴자)을 보상합니다. Cardano는 5일마다(에포크) 모든 스테이크풀 운영자와 스테이커에게 보상을 제공합니다.
우리는 비슷한 사소한 차이점을 많이 발견할 것입니다.
예를 들어 블록을 검증할 때입니다. 비트코인의 경우 수학적 문제가 해결되었다는 증거가 검증됩니다. Cardano의 경우, 블록이 슬롯 리더로 선출된 노드에서 왔다는 증거가 검증됩니다(KES 서명과 같은 다른 사항도 검증됩니다).
두 경우 모두 원장의 상태가 사기 노드에 의해 임의로 변경되지 않는 것이 보장됩니다. 비트코인에서는 사기성 노드가 새로운 사기성 블록을 생성하기 위해 엄청난 컴퓨팅 성능을 소비해야 합니다. Cardano에서는 사기성 노드가 암호화를 깨뜨려야 하며, 이를 위해서는 막대한 컴퓨팅 성능도 필요합니다.
두 접근 방식 모두 유사한 보안을 보장합니다.
암호화를 통해 Cardano는 주어진 시간 간격에 슬롯 리더를 보다 효율적으로 무작위로 선출할 수 있으며 선출된 슬롯 리더 외에는 누구도 블록체인에 새 블록을 추가할 수 없도록 할 수 있습니다. 비트코인은 이를 위해 엄청난 양의 에너지를 소비해야 합니다.
결론
나카모토 합의는 거래 완결성이 느리지만 매우 강력합니다. 많은 수의 노드가 오프라인 상태가 되어도 네트워크는 여전히 블록을 생성할 수 있습니다(속도는 느리지만).
카르다노와 비트코인은 분산화, 보안 예산, 평등주의, 포용성 등 여러 측면에서 다릅니다.
나카모토 합의는 예를 들어 탈중앙화의 질에 직접적인 영향을 미칠 수 없습니다. 비트코인 네트워크에서는 블록의 50% 이상이 단 2개의 풀에서 생성되는 반면, 카르다노 네트워크에는 1000개 이상의 풀이 있습니다. 이는 보상 메커니즘이 다르기 때문입니다(풀 포화 개념이 중요함). 비트코인은 단일 블록 생산자가 있든 1000명이 있든 상관하지 않습니다. Cardano 프로토콜은 분산화를 알고 있으며 경제적으로 성장을 장려할 수 있습니다.
분산화는 분산 네트워크의 핵심 기능입니다. 네트워크 합의의 주요 목표는 비교적 많은 수의 블록 생산자(수백에서 수천 명에 이를 수 있음) 간의 합의를 가능하게 하는 것입니다. 네트워크의 개별 속성의 품질은 다양한 요소와 세부 사항의 혼합에 의해 결정됩니다. 나카모토 합의는 비트코인과 카르다노 모두의 핵심 요소 중 하나이지만 다른 요소도 있습니다.
보상 메커니즘, 포용성, 평등주의는 분권화에 영향을 미칩니다. 이것이 PoW와 PoS가 근본적으로 다른 점입니다. 채굴과 달리 스테이킹은 진입 장벽이 낮고 위험도가 낮으며 전 세계 모든 사람이 접근할 수 있습니다. 이것은 많은 차이점 중 하나일 뿐입니다.