UTxO 모델의 확장성 옵션 탐색


https://cexplorer.io/article/exploring-scalability-options-of-the-utxo-model

UTxO 모델은 트랜잭션의 병렬 처리를 가능하게 하며, 이는 트랜잭션의 높은 확장성과 빠른 최종성을 달성하는 데 필수적인 기능입니다. 이 기사에서는 네트워크 합의를 개선하여 네트워크 처리량을 늘리고 트랜잭션 최종성을 더 빠르게 하기 위한 다양한 전략에 대해 알아봅니다. 이 기사에서는 입력 엔도서, 샤딩 및 이중 지출 공격에 대한 보호가 확장성을 제한하는 방법에 대해 알아봅니다.
UTxO 모델의 기본 기능

UTxO는 독립적이고 변경할 수 없는 객체입니다. UTxO가 트랜잭션의 출력으로 생성되면 새 트랜잭션에서 사용될 때까지 변경되지 않습니다. 소비되면 완전히 소비되고 새 트랜잭션의 출력으로 새 UTxO가 생성됩니다.

이미지는 사용자가 새로운 거래를 지속적으로 동시에 제출하는 모습을 보여줍니다. 각 트랜잭션은 빨간색 UTxO로 이어지는 빨간색 화살표로 표시된 대로 UTxO 세트의 입력 UTxO를 고유하게 가리킵니다. 상태 1이라는 용어는 새 블록이 승인된 후 각 노드에 나타나는 새로운 전역 상태를 나타냅니다. 빨간색 UTxO가 UTxO 세트에서 제거되었습니다. UTxO 세트는 새로 형성된 UTxO를 추가하여 업데이트되었으며 녹색 UTxO를 가리키는 녹색 화살표로 표시됩니다.

UTxO 모델은 트랜잭션 검증 중에 전역 상태를 관리하는 데 중추적인 역할을 합니다. Cardano의 전역 상태는 UTxO 세트라고도 알려진 UTxO의 활성 컬렉션으로 표시됩니다. 각각의 새로운 블록이 추가되면 새로 생성된 모든 UTxO가 UTxO 세트에 통합됩니다. 반대로, 트랜잭션에 의해 소비(소비)된 UTxO는 UTxO 세트에서 제거됩니다. UTxO는 일회용 엔터티로 인식될 수 있습니다.

네트워크의 모든 노드는 개별 UTxO 세트를 유지합니다. 합의를 준수하는 대부분의 노드는 가장 최근에 추가된 블록을 포함하여 동일한 블록체인 기록을 보존하므로 동일한 UTxO 세트(전역 상태)를 보유합니다. 그럼에도 불구하고 네트워크 데이터 전송의 지연으로 인해 전역 상태는 모든 노드에서 동시에 순간적으로 변경되는 것이 아니라 약간의 지연이 발생합니다. 블록 생산자 노드가 새 블록을 네트워크에 전파하는 순간 모든 노드는 동일한 전역 상태를 공유한다고 가정할 수 있습니다(즉, 마지막 블록을 수신하고 이에 따라 전역 상태를 업데이트함을 의미).

거래의 최종성을 높이는 방법은 무엇입니까?
Cardano는 Nakamoto 스타일 합의와 유사한 합의 메커니즘을 사용합니다. 이는 블록의 확률적 최종성, 결과적으로 트랜잭션의 최종성으로 대표됩니다. 이는 트랜잭션이 BLOCK 1이라고 하는 새 블록에 포함되면 확인 횟수가 0임을 의미합니다. 블록이 추가되면 같은 시기에 생성된 대체 블록으로 대체될 수 있으므로 이 블록이 블록체인에서 유지되지 않을 가능성이 있습니다. 블록체인에서 블록이 지속될 것이라는 보장은 BLOCK 1 이후에 새 블록이 추가됨에 따라 높아집니다. 이를 종종 확인 횟수의 증가라고 합니다.

사진을 보면 BLOCK 0 이후에 블록체인의 포크가 있었던 것을 볼 수 있습니다. 두 개의 대체 BLOCK 1이 생산되었습니다. 더 많은 블록을 추가한 후 상위 체인이 승리했습니다. 상위 체인에는 TX 1 트랜잭션이 있었습니다.

Cardano는 낮은 거래 최종성을 나타냅니다. Cardano의 블록 시간은 20초로 구성됩니다. 이는 거래에 10번의 확인이 필요한 경우 약 200초(약 3분)를 기다려야 함을 의미합니다.

UTxO 세트 내 UTxO의 독립성 덕분에 트랜잭션 검증도 상호 배타적입니다. 각 노드는 트랜잭션 또는 트랜잭션 그룹의 유효성을 검사할 수 있습니다. 블록 내의 트랜잭션 순서는 서로 영향을 미치지 않으므로 중요하지 않습니다. 결과적으로, 노드는 수신 시 개별 거래를 검증할 수 있을 뿐만 아니라 거래를 네트워크에 전파하기 전에 어떤 형태로든 승인이나 투표를 추가할 수도 있습니다. 트랜잭션을 수신하는 모든 후속 노드는 이전에 트랜잭션을 수신한 노드의 승인도 관찰합니다.

그림에서 TX 1 트랜잭션이 확산되는 다른 모든 노드에서 점진적으로 승인을 수집하는 방법을 볼 수 있습니다. NODE 4가 새 블록을 생성하면 거래에 이미 4개의 승인이 있습니다. NODE 4가 mem-pool을 처음으로 수정했다는 점에 유의하세요. NODE 4는 트랜잭션 TX 1에서 이전 입력 UTxO(빨간색)를 제거하고 새로 생성된 UTxO(녹색)를 삽입했습니다.


오랫동안 노드의 메모리 풀에 있었던 트랜잭션은 일반적으로 더 많은 승인을 받게 되며 블록에 추가될 때 더 높은 우선순위를 부여받을 수 있습니다. Cardano는 선입선출 방식으로 운영되기 때문에 이는 이미 Cardano 거래의 특징입니다. 결정적으로, 트랜잭션이 네트워크의 대다수 노드로부터 승인을 얻으면 블록체인이 재구성되더라도 해당 트랜잭션이 폐기될 가능성이 줄어듭니다.

거래 포함에 대한 합의에 도달하는 과정은 새로운 블록 생성과 관계없이 더 빠르고 독립적으로 이루어질 수 있습니다.

트랜잭션이 포함된 블록에 몇 가지 확인(아마도 하나만)만 있는 경우에도 네트워크 노드 간에 트랜잭션이 블록체인의 일부여야 한다는 합의가 이미 있을 것입니다. 다수의 승인을 받은 가장 오래된 거래가 가장 빠른 기회에 블록체인에 포함되도록 네트워크를 설계할 수 있습니다.

그러나 블록체인의 잠재적인 재구성은 거래의 최종성에 도전을 제기합니다. 승인된 거래가 많음에도 불구하고 이론적으로 블록체인에서 일시적으로 제거될 수 있습니다. 이는 체인의 일부(블록체인의 가장 최근 블록)가 대체 버전으로 대체되는 경우 발생할 수 있습니다. 이 새로운 서브체인 버전의 블록에는 다른 트랜잭션 세트가 포함될 수 있습니다. 따라서 거래의 완결성을 높이려면 블록체인 재구성을 방지하기 위해 합의를 변경하거나 거래 승인 횟수를 반영하도록 규칙을 수정하는 것이 필요합니다.

아래 이미지에서 원치 않는 블록체인 재구성을 볼 수 있습니다. 상위 체인의 TX1은 4개의 승인과 1개의 확인(BLOCK 2)을 가졌습니다. 그럼에도 불구하고 결국 TX 1 거래가 없는 하위 체인이 승리했다.

네트워크 전파 중에 블록체인에 통합하는 데 동의하는 노드를 통해 트랜잭션 완결성이 향상될 수 있습니다. 이는 UTxO 모델로 인해 실현 가능합니다. 거래 검증에는 입력 UTxO의 존재(UTxO 세트에 존재)만 확인하면 되며, 이는 해당 입력이 소비 가능함을 의미합니다.

기사 아래에서는 네트워크가 다음 블록을 생성하기 전에 트랜잭션의 더 빠른 최종성을 이론적으로 달성하는 방법을 보여줍니다.

또한 네트워크 내에서 새로 추가된 블록에 대한 합의를 가속화하여 완결성을 강화할 수 있습니다. 이는 블록체인에 추가되기 전이나 직후에 블록에 투표하는 노드를 통해 달성될 수 있습니다.
입력 엔더서

입력 엔도서는 카르다노의 확장성을 향상시키기 위한 계획입니다. 이러한 개선은 블록체인에 블록(합의 블록)이 추가되기 전의 투표 형태로 볼 수 있습니다.

입력 보증자는 입력 블록(IB), 보증 블록(EB) 및 순위 블록(RB)의 3가지 유형의 블록을 사용합니다. 각 유형의 블록은 서로 다른 빈도로 생성됩니다. 일부 블록은 동일한 슬롯에서 생성될 수 있습니다. 입력 블록은 가장 빠른 빈도로 생성됩니다.

입력 승인자는 제출된 모든 트랜잭션을 추적하고 이러한 트랜잭션을 사전 구성된 블록으로 묶습니다. 입력 엔도서 기능의 주요 목적은 트랜잭션 선택을 블록 생성과 분리하는 것입니다.

이 모델에서는 트랜잭션이 메모리 풀로 이동하는 동안 동의를 수집할 수 있습니다. 이는 입력 보증자가 블록체인의 선형성을 유지하면서 병렬성과 동시성 요소를 합의에 통합하기 때문입니다.
baffc925032a6fba1eae784a8f687865

입력 엔도서 알고리즘은 네트워크에서 더 많은 노드의 동시 참여를 허용하므로 트랜잭션 선택 단계에서 많은 수의 트랜잭션 준비를 용이하게 합니다. Endorser 노드는 트랜잭션을 검증하고 사전 승인하여 순위가 매겨진 블록 생산자의 계산 부담과 대역폭 요구를 줄이는 동시에 트랜잭션 풀의 다양성과 가용성을 향상시킵니다. 또한 검증 가능한 보증 증거를 제공하여 아직 체인에 통합되지 않은 거래의 확인을 신속하게 처리합니다.

입력 엔도서의 배포는 노드가 독립적으로 트랜잭션을 검증할 수 있도록 허용하는 UTxO 모델 덕분에 실현 가능합니다. 블록체인이 블록의 선형 시퀀스라는 점을 고려하면 시스템에서 보존해야 하는 유일한 선형성은 블록 순위 수준입니다. 순위 블록을 포함하여 블록 내의 트랜잭션 순서는 중요하지 않습니다. 흥미롭게도 순위 블록에는 거래가 포함되지 않고 보증 블록을 통해 해당 거래에 대한 참조만 포함됩니다.

이미지는 활성 UTxO 세트(전역 상태)에서 입력 UTxO(빨간색 UTxO로 표시)를 참조하는 트랜잭션을 제출하는 사용자를 보여줍니다. 이러한 거래는 병렬 검증을 거친 후 입력 블록에 통합됩니다. 노드는 이러한 입력 블록을 동시에 승인할 수 있습니다. 시스템은 순위 블록이 블록체인에 첨부되는 합의의 최고 수준에서 이중 지출 공격 등을 방지하는 선형성과 최고 수준의 검증을 유지합니다.

블록체인에 블록이 새로 추가될 때마다 전역 상태도 변경됩니다. 위에서 설명한 것처럼 소비된 UTxO는 UTxO 세트에서 제거되고 동시에 새로운 UTxO(트랜잭션의 녹색 UTxO)가 여기에 삽입됩니다.

참고: 위 이미지는 UTxO 세트에 새 UTxO를 삽입하는 것이 아니라 UTxO 소비만 보여줍니다.
이중 지출 공격으로부터 보호

이중 지출 공격에 대한 보호는 거래의 확장성과 병렬 처리를 제한하는 요소 중 하나입니다. 트랜잭션 검증을 위한 입력은 전역 상태입니다. 노드는 자신이 유지하는 현재 전역 상태의 맥락에서 트랜잭션의 유효성을 검사합니다.

회계 모델은 노드가 전역 상태와 작동하는 방식과 트랜잭션 검증 및 확장성의 병렬화와 관련하여 노드가 갖는 옵션에 근본적으로 영향을 미칩니다.

UTxO 모델의 맥락에서 사용자가 동일한 입력 UTxO를 참조하는 두 개의 트랜잭션을 제출하면 이중 지출 공격이 발생할 수 있습니다. 이는 같은 돈을 두 번 쓰려는 것과 비슷합니다. 정교한 공격자는 다양한 노드, 즉 네트워크의 다양한 위치를 통해 네트워크에 트랜잭션을 제출할 수 있습니다. 즉, 동일한 입력 UTxO를 사용하는 다른 트랜잭션이 도착할 때까지 특정 노드 그룹에서 두 트랜잭션 모두 유효한 것으로 간주됩니다. 그때 갈등이 일어납니다.

이상적인 시나리오에서는 이중 지출 공격이 가장 빠른 기회에 식별됩니다. 하나의 거래가 새 블록에 통합되고 다른 거래는 취소됩니다. 포함된 트랜잭션은 전역 상태에 영향을 미칩니다. 소비된 UTxO는 더 이상 사용할 수 없게 되어 이미 소비된 UTxO를 참조하므로 두 번째 트랜잭션이 영구적으로 무효화됩니다.

입력 보증인을 구현하면 입력 블록 또는 보증 블록 단계에서 이중 지출 공격을 잠재적으로 탐지할 수 있습니다. 이러한 탐지가 발생하지 않더라도 순위 블록이 구성되는 동안 노드에 의해 공격이 확실하게 식별됩니다.

이미지는 시도된 이중 지불 공격을 보여줍니다. 트랜잭션 TX 1은 트랜잭션 TX 2와 비교하여 다른 입력 블록에 배치됩니다. 이후 두 트랜잭션 모두 별도의 승인 블록에 포함됩니다. 이 단계에서 네트워크는 잠재적으로 충돌하는 트랜잭션을 식별하고 그 중 하나를 삭제할 수 있습니다. 그러나 이것이 발생하지 않으면 순위 블록 구성 중에 충돌이 해결됩니다. 순위 블록 구축을 담당하는 노드는 충돌하는 거래를 감지하고 문제를 해결하는 데 필요한 모든 정보를 보유하고 있습니다.
a97a5ba20c796f134a4b752a1671fb5e
시스템이 충돌을 결정적으로 해결하고 이중 지출 공격을 방지하는 기능을 유지하면서 트랜잭션의 병렬 처리를 용이하게 한다는 점을 관찰하세요. 대부분의 거래는 순위 블록에 통합되지만 충돌하는 거래는 검증을 통과할 가능성이 없습니다.

거래의 최종성이 블록 순위 수준의 확인 횟수가 아니라 보증 횟수에 따라 달라지는 개선을 구상하세요. 이는 완결성이 네트워크 내 트랜잭션 전파 속도에 대략 비례한다는 것을 의미합니다. 사용자가 네트워크에 거래를 제출하는 데 사용한 노드는 보증 수를 알아야 합니다. 이를 위해서는 보증 블록을 전파하기 위한 메커니즘이 필요합니다. 거래를 시작한 노드는 보증 블록을 받고 그 안에서 사용자 거래에 대한 승인 횟수를 관찰합니다. 이 정보는 지갑이나 블록체인 탐색기를 통해 사용자에게 표시될 수 있습니다. 가상적으로 거래가 지분의 51%로부터 승인을 얻었고 충돌하는 거래가 없었다는 것이 거의 확실하다면 거래는 이론적으로 최종적인 것으로 간주될 수 있습니다. 그러나 거래는 순위 블록의 일부가 된 후에만 최종 최종성을 획득하게 됩니다.
UTxO 모델과 샤딩

샤딩은 블록체인의 확장성을 높이는 핵심 기술입니다. 블록체인 네트워크는 '샤드’라고 알려진 더 작은 부분 또는 하위 네트워크로 나뉩니다. 총 컴퓨팅 및 스토리지 워크로드는 샤드로 나뉩니다.

샤딩은 시스템에서 병렬 처리의 한 형태입니다. 각 샤드는 독립적으로 작동하며 자체 트랜잭션 세트를 처리할 수 있습니다. 이러한 트랜잭션의 병렬 실행은 전체 시스템 효율성과 처리량을 증가시킵니다.

각 샤드는 전역 상태의 해당 부분을 유지합니다. 이를 로컬 상태라고 합니다. 전체 블록체인의 글로벌 상태는 이러한 모든 로컬 상태의 집합입니다.

샤드 간 통신은 샤딩의 중요한 측면입니다. 이는 서로 다른 샤드 간에 거래 또는 정보가 교환되는 프로세스를 나타냅니다. 샤딩된 블록체인 네트워크의 처리량은 샤드 간 통신에 크게 영향을 받기 때문에 이는 매우 중요합니다.

UTxO 모델은 계정 기반 모델보다 샤딩에 더 유리합니다.

UTxO 모델의 맥락에서 트랜잭션은 검증의 기본 단위 역할을 합니다. 트랜잭션은 여러 당사자가 동시에 독립적으로 유효성을 검사할 수 있는 엔터티입니다. 이러한 검증의 결과는 항상 동일합니다. Cardano는 결정론적으로 거래 검증을 실행합니다. 여러 당사자는 블록에 관계없이 임의의 순서로 병렬로 트랜잭션을 검증할 수 있습니다. 즉, 트랜잭션이 블록에 통합되는 시기와 블록 내의 트랜잭션 순서에 관계없이 가능합니다.

대조적으로, 이더리움의 계정 기반 모델에서는 블록이 검증의 기본 단위입니다. 거래는 상호의존적입니다. 이더리움 거래는 단독으로 검증될 수 없으며, 지배적인 글로벌 상태에 대해서만 검증됩니다. 이더리움의 전역 상태는 일련의 트랜잭션으로 개념화될 수 있습니다. 거래 검증의 결과는 이 순서 내에서의 위치에 따라 달라집니다.

회계 모델의 차이는 샤딩 구현에 큰 영향을 미칩니다.

간단히 말해서 Cardano 네트워크를 단일 샤드로 간주하세요. 10개의 샤드가 있다면 10개의 Cardano 네트워크가 나란히 작동하는 것과 비슷할 것입니다. 이론적으로 이는 네트워크 처리량을 10배 증가시킬 수 있습니다. 그러나 실제로는 샤드 간 통신, 데이터 일관성 및 보안을 보장해야 하는 필요성, 네트워크 대기 시간, 관리 오버헤드(예: 샤드 간 로드 밸런싱, 노드 합류 및 탈퇴 관리, 및 라우팅 트랜잭션).

UTxO 모델을 사용하는 블록체인의 경우 전역 상태가 자연스럽게 병렬성을 허용하고 트랜잭션이 각 샤드 내에서 독립적으로 검증될 수 있으므로 샤딩 구현이 비교적 간단합니다.

UTxO 모델은 두 개의 샤드에서 검증이 필요한 트랜잭션을 생성하는 것이 상대적으로 쉽기 때문에 샤드 간 통신과 관련하여 장점이 있습니다.

SHARD 1의 전역 상태에서 입력 UTxO를 갖고 SHARD 2의 전역 상태에서 출력 UTxO를 생성하는 트랜잭션을 상상해 보세요. 이 트랜잭션은 두 샤드 모두에서 블록체인의 일부가 됩니다. 여기서 장점은 블록에 관계없이, 즉 블록 내 거래 순서에 관계없이 검증이 발생할 수 있다는 것입니다.

입력 승인자가 있는 각 샤드에서 교차 샤드 트랜잭션은 제출 직후 보증(승인)을 받을 수 있습니다. 거래는 SHARD 1에 제출되며 즉시 SHARD 2로 전달됩니다. 두 샤드 모두에서 거래는 동시에 보증을 받게 됩니다.
ad2199b6c7a54d113db102ffedfb35fe
UTxO 모델은 입력 엔도서 및 샤딩에 대한 적용 가능성을 포함하여 여러 가지 이점을 제공합니다. 앞서 언급한 예는 이 두 기술의 통합을 보여줍니다. 입력 승인자가 배치되면 샤딩은 Cardano의 확장성을 향상시킬 수 있는 잠재력을 갖습니다. 그러나 입력 보증자는 느린 샤드 간 통신을 방지하고 글로벌 상태의 무결성을 보장하기 위해 트랜잭션 최종성을 촉진해야 합니다.
이더리움에서 샤딩을 구현하는 것이 왜 어려운가요?

Ethereum은 각 계정에 연결된 상태가 있는 계정 기반 모델에서 작동합니다. 이더리움의 글로벌 상태는 본질적으로 모든 계정과 현재 자산 잔고의 데이터베이스입니다. 새로운 블록이 나올 때마다 해당 블록 내의 트랜잭션을 기반으로 시스템 상태가 업데이트됩니다.

송금인의 잔액이 충분한지 확인하여 거래를 진행합니다. 성공하면 보내는 사람의 잔액은 줄어들고 받는 사람의 잔액은 늘어납니다. 그런 다음 EVM(Ethereum Virtual Machine)은 현재 상태와 트랜잭션에서 새로운 상태를 계산하며, 이는 다음 트랜잭션의 기초가 됩니다. 블록체인 상태의 지속적인 발전은 거래 순서가 검증에 중요하다는 것을 의미합니다.

각 거래는 잠재적으로 모든 계정의 상태를 변경할 수 있으며 그 결과는 처리 순서에 따라 달라질 수 있습니다. 일관성을 유지하고 이중 지출을 방지하기 위해 전역 상태는 각 검증 중에 '잠금’되어 한 번에 하나의 트랜잭션만 처리할 수 있습니다. 이 잠금 메커니즘은 시스템 무결성에 필수적이며 동시 거래로 인해 불일치나 이중 지출이 발생하는 것을 방지합니다.

거래 입력은 공유 자원인 계정 잔액입니다. 이는 트랜잭션 제출 시 잔액이 검증 시 잔액과 다를 수 있어 UTxO 모델과 달리 트랜잭션 입력이 비결정적일 수 있음을 의미합니다.

이더리움에서 잔액은 언제든지 트랜잭션에 의해 수정될 수 있는 지속적인 개체이지만 두 트랜잭션이 동시에 동일한 잔액을 수정할 수는 없습니다.

그림에서 사용자가 5개의 거래를 제출하는 방법을 볼 수 있습니다. 거래는 동시에 제출될 수 있습니다. 여러 거래가 동일한 잔액을 조정한다는 점에 유의하세요. 예를 들어 TX 1과 TX 2는 동일한 잔액에서 값을 뺍니다. 거래 TX 3 및 TX 4는 동일한 잔액에 가치를 추가합니다. STATE 1부터 STATE 4까지는 트랜잭션의 순차적 처리와 그에 따른 전역 상태의 점진적인 업데이트를 나타냅니다. 전역 상태는 동일한 잔액, 즉 트랜잭션을 통해 연속적으로 상태가 여러 번 변경될 수 있는 영구 객체로 구성됩니다.

트랜잭션이 SHARD 1의 잔액과 SHARD 2의 잔액을 동시에 변경해야 한다면 교차 샤드 통신이 얼마나 더 복잡해질지 상상해 보십시오. Ethereum 블록의 트랜잭션 순서는 검증 결과에서 중요한 역할을 합니다. 현재 EVM 구현에서는 두 샤드 모두 블록에 트랜잭션을 포함하고 검증 결과에 대한 정보를 서로 전달해야 합니다. SHARD 1에서는 거래 검증이 성공하여 해당 값이 잔액에서 차감되었지만 SHARD 2에서는 거래 검증이 실패하여 해당 값이 잔액에 적립되지 않는다는 것은 말이 되지 않습니다. 샤드 간 통신은 각 샤드에 블록을 구성하는 능력을 심각하게 제한합니다.

그림에서 제출 후 mem-pool에 삽입되는 트랜잭션 TX 1을 볼 수 있습니다. 그런 다음 mem-pool에서 BLOCK 1로 삽입됩니다. 트랜잭션 TX 1의 유효성 검사는 SHARD 1의 현재 로컬 상태를 변경합니다. 그러나 SHARD 1은 SHARD 2의 유효성 검사 결과를 알아야 합니다. 따라서 SHARD 1은 SHARD 2와 통신합니다. BLOCK 2(SHARD 2)의 트랜잭션 검증 결과. 따라서 SHARD 2는 트랜잭션 TX 1을 BLOCK 2에 삽입하고 검증을 수행해야 합니다. 그런 다음 검증 결과를 SHARD 1에 전달할 수 있습니다. SHARD 1은 BLOCK 1에 다른 트랜잭션을 추가하기 전에 SHARD 2의 검증 결과를 알아야 합니다.
d48c4eed33aca6394ea57f053205d27d

실제로 제공된 예는 샤딩의 단순화된(순진한) 구현입니다. 이는 이더리움 팀이 현재 합의 메커니즘으로 샤딩을 구현하는 데 직면한 중요한 과제를 강조합니다.

계정 기반 블록체인에서 샤드 간 통신 중에 트랜잭션 원자성을 유지하는 것은 복잡한 작업입니다. 시스템의 무결성을 유지하려면 트랜잭션이 완전히 실행되거나 전혀 실행되지 않도록 하는 것이 중요합니다.

이 문제를 해결하기 위해 2단계 커밋 프로토콜을 포함한 다양한 전략과 프로토콜이 제안되었습니다. 그러나 이러한 솔루션에는 장단점과 복잡성도 있습니다. 여러 프로젝트가 계정 기반 모델을 사용하여 블록체인 내에서 샤딩을 성공적으로 구현했다는 점은 주목할 만합니다.
결론

합의 메커니즘을 변경하는 것은 네트워크 확장성을 향상시키는 한 가지 방법일 뿐입니다. 확장성은 두 번째 레이어 솔루션, 계층형 아키텍처 또는 효율성 향상을 통해 향상될 수도 있습니다. 예를 들어, Plutus V2는 이전 버전인 Plutus V1보다 더 효율적이므로 블록 공간이 절약됩니다. 이러한 효율성을 통해 블록당 더 많은 트랜잭션을 허용하여 네트워크 처리량을 높일 수 있습니다. 그러나 입력 보증자는 효율성 향상보다 더 실질적인 확장성 향상을 제공할 수 있습니다.

Cardano 커뮤니티의 일부 구성원은 입력 엔도서(Endorser)보다는 ZK 암호화를 통해 확장성을 향상시키는 데 더 중점을 두어야 한다고 믿습니다. Cardano는 Chang 하드포크를 통해 ZK 암호화를 통합할 예정입니다. Cardano의 결정성으로 인해 시퀀서가 필요하지 않은 ZK 롤업을 구성하는 것이 가능합니다.

UTxO 모델은 일회용 개체로 구성된 전역 상태가 병렬화 가능하므로 입력 엔도서 또는 샤딩에 매우 적합합니다. 네트워크의 여러 노드는 샤딩의 경우에도 병렬로 서로 독립적으로 트랜잭션을 검증할 수 있습니다.