Finality of Cardano transactions | Cardano Explorer (cexplorer.io)
네트워크 합의를 설계하는 팀은 각 기능의 균형을 신중하게 조정해야 합니다. 한 관점에서 유리한 것이 다른 관점에서는 불리할 수 있습니다. 단점이 없는 단일 최상의 솔루션을 설계하는 것은 불가능합니다. 부지런한 연구와 기술 발전만이 이상적인 솔루션에 더 가까이 다가갈 수 있게 합니다. Cardano는 Nakamoto 스타일의 Proof-of-Stake를 사용하는데, 이는 무엇보다도 확률론적 트랜잭션 최종성을 가지고 있음을 의미합니다. 와서 이것이 무엇을 의미하는지, 장점과 단점이 무엇인지 읽어보십시오.
TLDR
IOG 팀은 현재 버전의 PoS에 대해 트랜잭션 속도보다 활성 및 보안을 선호했습니다. 최신 PoS 네트워크는 확률론적 및 증명 가능한 완결성의 이점을 결합합니다. Ouroboros Leios는 그것을 바꿀 수 있습니다.
거래의 최종성
사용자가 제출하는 각 트랜잭션이 분산 네트워크를 통해 점차 모든 블록 생산자 노드로 전파된다는 것을 알고 계실 것입니다. 주소에서 주소로 값을 전송하려면 트랜잭션이 블록에 포함되어야 하고 블록은 블록체인에 남아 있어야 합니다. 최종 트랜잭션으로 간주되려면 블록도 최종 트랜잭션이어야 합니다.
트랜잭션 완결성과 블록 완결성이 무엇을 의미하는지 정의해 봅시다.
거래 완결성은 블록체인 네트워크 내의 특정 거래가 취소 불가능하게 확인된 것으로 간주되어 번복되거나 무효화될 수 없는 시점을 의미합니다. 트랜잭션이 블록에 삽입되었고 블록체인 기록의 영구적인 부분으로 간주된다는 보증을 나타냅니다. 트랜잭션이 최종성을 달성하면 일반적으로 확정되고 변경할 수 없는 것으로 받아들여집니다.
트랜잭션의 완결성은 트랜잭션이 삽입된 블록의 완결성에 따라 달라집니다.
블록 완결성은 블록체인 내 전체 블록의 확인 및 영속성과 관련이 있습니다. 트랜잭션 블록이 불변으로 간주되어 수정하거나 폐기할 수 없는 지점을 나타냅니다. 블록이 최종성을 달성하면 해당 블록에 포함된 모든 트랜잭션도 최종 것으로 간주됩니다.
네트워크 합의의 역할
블록의 내용은 변경할 수 없으므로 블록의 완결성이 중요합니다. 네트워크 합의는 네트워크의 노드가 새 블록을 추가할 때 다수의 합의에 도달하도록 하는 데 사용됩니다. 따라서 블록체인은 본질적으로 순서가 변경 불가능한 연속 블록 체인일 뿐입니다. 보다 정확하게는 특정 시점부터 변경할 수 없습니다.
Finality의 관점에서 볼 때, 네트워크 합의에 따라 어떤 시점에서 블록이 되돌릴 수 없는 것으로 간주될 수 있는지가 중요합니다. 즉, 우리는 사용자가 네트워크의 대다수 노드가 주어진 블록이 블록체인에 영원히 남을 것이라고 확신할 수 있는 지점을 찾고 있습니다.
블록체인의 맥락에서 시간은 새로운 블록이 추가되는 기간으로 나눌 수 있습니다. Cardano의 경우 평균 20초, Bitcoin의 경우 평균 10분, Ethereum의 경우 평균 12초입니다.
최종 블록으로 간주되려면 분산 네트워크의 블록 생산자 노드 대다수가 동의해야 합니다. 어떤 형태의 투표를 통해 새 블록이 블록체인에 추가되기 전에 또는 나중에 새 블록을 이전 블록에 연결하여 이 작업을 수행할 수 있습니다. 이전 블록(들)을 새 블록의 선행 블록으로 사용하는 것은 해당 블록 생산자 노드의 동의를 표현한 것입니다.
소개에서 말했듯이 Cardano는 작업 증명 설계를 기반으로 하는 Nakamoto 스타일의 지분 증명을 사용합니다.
Nakamoto 합의는 소위 확률론적 최종성(probabilistic finality)만을 달성할 수 있습니다. 네트워크는 최종 합의에 도달할 수 있습니다. 확률론적 최종성은 네트워크 참여자에 대한 일부 가정 하에서 주어진 이전 블록 뒤에 추가된 몇 개의 블록을 보면 주어진 이전 블록이 최종 블록일 확률을 추정할 수 있음을 의미합니다. 최종 합의에 도달한다는 것은 미래의 어느 시점에서 모든 노드가 특정 블록 세트의 불변성에 동의한다는 것을 의미합니다. 최종 합의에 도달하는 데는 오랜 시간이 걸릴 수 있습니다. 또한 미리 시간이 얼마나 걸릴지 결정할 수 없습니다.
새 블록이 추가되면 참여자(블록 생산자 노드나 사용자 모두)는 블록이 되돌려지지 않을 것이라고 확신할 수 없습니다. 새로운 블록 생산자 노드가 블록체인의 마지막 블록에 연결되지 않고 해당 블록의 이전 블록에 연결되는 소위 포크가 발생할 수 있습니다. 이는 하나의 블록 뒤에 두 개의 후속 블록이 있음을 의미합니다. 후계자 중 하나만 블록체인에 남을 수 있습니다. 다른 하나는 모든 트랜잭션을 포함하여 고아가 됩니다. 블록체인에 남아 있는 후속 작업은 변형 중 하나를 선택할 다음 블록 생산자 노드에 의해 결정됩니다. 더 긴 체인 규칙이 블록체인의 우승 버전을 결정합니다.
개념을 이해하기 위해 항상 새 블록을 추가한 후에는 블록이 되돌려지고 그 안의 모든 트랜잭션이 무효화될 가능성이 적습니다.
확률론적 최종성에 대한 대안은 증명 가능한 최종성입니다. 입증 가능한 최종성을 갖도록 설계된 합의는 블록 후보(및 그 안의 트랜잭션)가 최종적이며 번복하거나 변경할 수 없다는 절대적인 확실성을 제공하는 것을 목표로 합니다. 이는 일반적으로 결정론적 결과와 수학적 증명을 보장하는 합의 메커니즘을 통해 달성됩니다. 블록체인의 포크를 방지하는 합의를 만들 수 있습니다. 참가자는 새로 추가된 각 블록이 최종 블록, 즉 변경할 수 없음을 확신할 수 있습니다.
새로 추가된 각 블록은 최종 블록임을 증명할 수 있기 때문에 블록 생성자 노드 간에 어떤 형태의 투표가 블록체인에 포함되기 전에 발생하는 것이 필수적입니다. 규칙으로 정의된 다수(종종 블록 생산자 노드의 ⅔)는 새로 제안된 블록에 동의해야 합니다. 다수가 동의하지 않으면 블록 후보가 블록체인에 추가되지 않으며 새 후보를 생성하고 다시 투표해야 합니다.
확률론적 및 증명 가능한 완결성의 장단점
설명된 두 접근 방식은 기본적으로 어떤 형태의 투표에 관한 것입니다. 주요 차이점은 확률론적 최종성의 경우 블록이 추가된 후에 투표가 이루어지고(포크로 이어질 수 있음) 입증 가능한 최종성의 경우 블록이 추가되기 전에 투표가 이루어진다는 것입니다.
새로 추가된 블록에 대한 투표가 추가된 직후에 이루어지는 하이브리드 변형이 있습니다. 블록은 네트워크에서 필요한 다수가 투표하는 즉시 불변으로 간주됩니다. 즉, 블록체인의 포크가 발생할 수 있지만 투표(블록 생성자 노드가 특정 블록을 유지하기 위해 투표)를 통해 매우 빠르게 블록을 완결할 수 있습니다.
블록 생산자 노드가 블록 후보를 제안하면 본질적으로 해당 노드에만 투표합니다. 블록에는 "무게"가 거의 없습니다. 가중치는 다른 노드의 투표에 따라 증가합니다. 카르다노(및 비트코인)의 경우 각 블록이 추가될 때마다 가중치가 증가합니다. 따라서 가중치(유권자 수)는 천천히 증가합니다. 합의가 블록이 추가되기 전(또는 직후)에 블록이 투표되도록 허용하는 경우 새 블록은 상대적으로 빠르게 높은 가중치를 갖습니다.
개별 블록 생산자 노드(풀)의 투표권을 고려하는 것이 중요하기 때문에 주제는 좀 더 복잡합니다. Cardano 네트워크에서 각 풀은 서로 다른 지분(스테이킹된 ADA 코인 수)을 가질 수 있습니다. 새 블록은 낮은 지분 또는 완전히 포화된 풀이 있는 풀을 제안할 수 있습니다. 이것이 새로운 후보 블록에 어떤 영향을 미칩니까? 새로 제안된 각 블록의 상태가 비슷하기 때문에 이론적으로는 없습니다. 그러나 높은 지분율을 가진 SPO는 주어진 시간 동안 더 많은 블록을 생산할 가능성이 높기 때문에 포크가 발생할 경우 이점이 될 수 있습니다.
우리는 주제를 더 복잡하게 만들지 않고 최종성을 고수할 것이지만 블록 생산자 노드가 다른 네트워크에서 동일한 투표권을 가질 수도 있고 그렇지 않을 수도 있다는 점에 유의하는 것이 중요합니다. 네트워크 분산화는 희소한 리소스(코인 또는 해시 비율)를 기반으로 하며 더 많은 리소스를 보유한 사람이 더 많은 투표권을 갖습니다.
결론으로 돌아가 봅시다. 확률적 최종성과 증명 가능한 최종성 간의 차이는 견고성과 활성도에 큰 영향을 미칩니다. 또한 거래 속도, 즉 사용자 경험에도 영향을 미칩니다.
Cardano의 경우 블록을 버릴 수 있으므로 거래가 블록에 삽입되면 블록체인에 영원히 남을 것이라는 보장이 없습니다. 되돌려질 가능성은 여전히 적습니다. Cardano는 블록의 완결성이 느리므로 트랜잭션이 발생합니다. 위에서 설명한 것처럼 새로운 블록을 추가하여 투표를 하기 때문에 가중치가 느리게 증가합니다. 20초마다 한 표가 추가됩니다.
현재 약 1,200개의 풀이 Cardano 네트워크에서 블록을 생성하고 있습니다. 풀의 10%만 투표하는 데 40분이 걸립니다. 이 기간 동안 120개의 새 블록이 추가됩니다.
주어진 블록은 특정 소수의 새 블록이 추가된 후에도 블록체인에 남아 있다고 가정할 수 있습니다. 문제는 이 낮은 수치는 추정하기 어렵고 확률적일 뿐이라는 것입니다.
투표를 통해 즉각적인 블록 최종성을 달성할 수 있는 Algorand와 같은 네트워크가 있습니다. 새 블록이 추가되면 절대 버릴 수 없습니다. 동시에 블록체인의 분기는 없습니다. 알고랜드는 약 3.6초의 블록 시간을 가지며 거래가 블록에 삽입되면 즉시 최종 거래가 됩니다.
이더리움은 모든 유효성 검사기를 에포크마다 32개의 동등한 위원회로 나눕니다. 시대에는 32개의 슬롯이 있습니다. 각 슬롯은 12초 동안 지속됩니다. 따라서 전체 시대는 6분 24초 길이입니다. 각 위원회는 블록 생성을 담당하고 위원회 구성원은 증명(생산자가 제안한 블록에 동의하는지 여부를 확인)을 제공할 책임이 있습니다. 새로 추가된 각 블록은 전체 보팅 파워의 3.1%로 확정됩니다. 이것은 블록이 카르다노의 경우보다 훨씬 더 빠르게 높은 가중치(많은 수의 투표)를 얻는다는 것을 의미합니다.
나카모토 스타일의 합의는 트랜잭션 속도보다 프로토콜 활성도를 선호합니다. 즉, 많은 노드를 사용할 수 없는 경우에도 항상 새 블록을 생성할 수 있는 기능입니다. 많은 수의 노드가 오프라인 상태가 되면 블록 생성 시간이 더 오래 걸리지만(슬롯 누락) 그럴 가능성이 높습니다. 노드가 점차 네트워크로 돌아감에 따라 블록 생산이 더 빈번해질 것입니다.
각 블록에 대한 활성 투표가 있는 네트워크의 경우 34%(일반적으로 블록 생산자 노드의 1/3 이상)가 오프라인 상태가 되면 블록 생산이 중지될 수 있습니다. 입증 가능한 완결성이 있는 네트워크는 공격에 더 탄력적인 것으로 간주되며 블록체인의 무결성을 더 잘 보장할 수 있습니다. 이러한 네트워크는 어떤 대가를 치르더라도 블록을 생성하는 것보다 블록 생성을 중단하는 것을 선호합니다.
최종성을 증명할 수 있는 네트워크에는 몇 가지 단점이 있습니다. 네트워크 합의는 상대적으로 복잡하고 취약할 수 있습니다. 투표에는 약간의 오버헤드가 필요하며 상대적으로 시간이 오래 걸릴 수 있습니다. 이러한 네트워크는 인터넷을 통한 데이터 전파 속도에 문제가 있는 경우 블록 생산 중단에 더 취약할 수 있습니다. 높은 확장성을 달성하는 것이 더 어려울 수 있습니다.
탈중앙화 및 보안으로 돌아가서, Cardano의 경우 공격자는 희소한 자원(ADA 코인)의 절반 이상을 확보해야 하는 반면 최종성을 증명할 수 있는 네트워크에서는 일반적으로 자원의 1/3 이상을 확보해야 합니다. 리소스의 1/3을 획득하는 것만으로도 공격자가 네트워크가 합의에 도달할 수 없도록 만들 수 있습니다.
결론
대부분의 블록체인 네트워크에서 보안이 상대적으로 높기 때문에 사용자는 보안보다 트랜잭션 속도를 선호하는 경향이 있습니다. 그들은 주로 트랜잭션을 신속하게 전송하고 완결성을 보장받기를 원합니다. 그러나 첫 번째 계층은 기본적으로 가능한 한 안전하고 분산되어야 합니다. 미래는 아마도 가장 긴 체인 규칙과 빠른 최종성을 보장하는 메커니즘을 결합하는 하이브리드 접근 방식에 속할 것입니다. Ouroboros Leios는 Cardano에 이와 같은 것을 가져올 것입니다. 네트워크에서 생성될 3가지 유형의 블록 중에서 두 번째 유형인 보증 블록에 대해 어떤 형태의 투표가 발생할 것입니다. 세 번째 유형의 블록은 현재 블록과 유사하며 승인된 블록, 즉 상대적으로 큰 지분의 합의를 포함하는 블록에 대한 참조를 포함합니다.
이 기사는 주로 거래 완결성에 관한 것이었지만 Cardano의 핵심은 고도의 탈중앙화와 고유한 유동성 스테이킹이라는 점을 기억하는 것이 중요합니다. 이러한 기능은 부분적으로 Cardano에 슬래싱이 없고 스테이킹에 참여하기 위해 특정(상대적으로 높은) 수의 코인이 필요하지 않기 때문에 달성되었습니다. 이더리움은 투표를 사용하여 합의에 도달하며 이를 위해서는 ETH를 잠그고 프로토콜의 이익에 반하는 행동에 대해 검증자를 처벌하는 기능이 필요합니다. 거래의 완결성은 예를 들어 스테이킹의 품질과도 관련이 있으며 따라서 분산화됩니다.
기술적 진보는 Cardano를 발전시킬 것입니다. Ouroboros Leios는 첫 번째 레이어에서 트랜잭션의 최종성에 관한 다음 주요 단계가 될 것입니다.