
원작자 : 빔
면책 조항: 이 기사는 업계 연구 토론용으로만 사용되며 투자 조언을 나타내지 않습니다.
2022년 9월 15일 이더리움이 합병(Merge)되었습니다. 이더리움이 5년동안 준비했다가 6번이나 미뤘다 반복되는 디버깅과 장기간의 개발, 기대되는 후광효과로 인해 많은 사람들이 병합이 자연스럽게 더 높은 Scalability를 가져올 것이라고 잘못 생각하고 있으며, PoW(작업 증명)에서 PoS(자본 증명)로의 전환은 트랙과 바퀴를 대체할 뿐 직접적으로 더 빠른 속도, 더 큰 규모를 가져오지는 않습니다. 위의 세 가지 사항을 실제로 달성할 수 있는 것은 샤딩 기능이 있는 메인 네트워크와 향상된 확장성 솔루션이 있는 레이어 2의 완전한 솔루션 세트입니다.
이미지 설명
그림 1 샤딩의 간단한 논리
첫 번째 레벨 제목
1. "샤딩"에 대하여
간단히 말하자면 이더리움을 좌표계(0,0)의 원점으로 하는 임파서블 트라이앵글의 제약을 고려하여 "수직"과 "수평"의 두 가지 아이디어에 따라 현재의 블록체인 확장성 방식을 나눕니다. 두 가지 범주로:
수직 확장: 시스템의 기존 하드웨어 성능을 향상시켜 구현합니다. 네트워크의 모든 노드가 슈퍼 컴퓨팅 성능을 갖는 분산형 네트워크 구축, 즉 모든 노드는 "더 나은" 하드웨어가 필요합니다. 이것은 처리량의 초기 개선을 달성하는 간단하고 효과적인 방법입니다. 특히 초단타 거래, 게임 및 게임에 적합합니다. 지연에 민감한 다른 애플리케이션 시나리오. 그러나 이 확장 방식은 검증 노드 또는 전체 노드를 실행하는 비용이 높아지기 때문에 네트워크의 탈중앙화 수준을 제한합니다. 분산 수준을 유지하는 것은 컴퓨팅 하드웨어 성능의 대략적인 증가율에 의해 제한됩니다(소위 "무어의 법칙": 칩의 트랜지스터 수는 2년마다 두 배가 되고 컴퓨팅 비용은 절반으로 줄어듭니다). .
수평 확장: 일반적으로 수평 확장에 대한 몇 가지 아이디어가 있습니다. 하나는 블록체인 맥락에서 특정 생태계의 트랜잭션 계산량을 여러 개의 독립된 블록체인으로 분산시키는 것이며, 각 체인은 자체 블록 생산자와 실행 기능을 가지고 있습니다.각 체인의 실행 계층은 노드 하드웨어 요구 사항과 같이 완전히 사용자 정의할 수 있습니다. , 개인 정보 보호 기능, 가스 요금, 가상 머신 및 권한 설정. 또 다른 수평적 확장 솔루션은 블록체인 인프라를 실행 계층, 데이터 가용성 계층(DA) 및 합의 계층으로 나누는 모듈식 블록체인입니다. 가장 주류인 블록체인 모듈화 메커니즘은 롤업입니다. 또 하나는 블록체인을 여러 조각으로 나누어 병렬로 실행하는 것입니다. 각 샤드는 블록체인으로 간주될 수 있으며, 이는 많은 블록체인이 병렬로 실행될 수 있음을 의미합니다. 또한 일반적으로 모든 샤드를 동기화하는 것이 유일한 작업인 메인 체인이 있습니다.
위의 확장 아이디어 중 어느 것도 단독으로 존재하지 않는다는 점을 지적해야 합니다.각 솔루션은 불가능한 삼각형에서 절충점을 찾고 시스템의 경제력에 의해 생성된 인센티브 메커니즘의 설계와 협력하여 달성하는 것입니다. 효과적인 거시적 및 미시적 수준 균형.
"샤딩"에 대해 논의하려면 처음부터 시작해야 합니다.
여전히 월마트 쇼핑 체크아웃이라는 시나리오를 가정하고 체크아웃 효율성을 높이고 고객 대기 시간을 줄이기 위해 단일 체크아웃 채널에서 10개의 체크아웃 창구로 확장했습니다. :
먼저 계산원이 10명인 경우 작업할 창구를 어떻게 지정합니까?
둘째, 1000명의 고객이 줄을 서서 기다리고 있는 경우 각 고객이 계산할 창구를 어떻게 결정합니까?
셋째, 이 10개의 창에 해당하는 10개의 개별 원장을 어떻게 요약할 것인가?
넷째, 계좌 불일치를 피하기 위해 출납원이 실수하는 것을 어떻게 방지합니까?
이러한 질문은 실제로 다음과 같은 샤딩의 몇 가지 주요 질문에 해당합니다.
전체 네트워크의 노드/검증자가 속한 샤드를 결정하는 방법은 무엇입니까? 즉, 네트워크 샤딩(NetworkSharding)을 수행하는 방법입니다.
각 트랜잭션이 할당된 샤드를 어떻게 결정합니까? 즉, 트랜잭션 샤딩(Transaction Sharding)을 수행하는 방법;
블록체인 데이터는 다른 샤드에 어떻게 저장됩니까? 즉, 상태 샤딩(State Sharding)을 수행하는 방법;
보조 제목
01 네트워크 샤딩
단순히 블록체인을 탈중앙화된 원장으로 이해한다면 그것이 PoS든 PoW 합의 메커니즘이든 각 노드가 정해진 규칙에 따라 부기 권한을 놓고 경쟁할 수 있도록 하고, 프로세스. 그리고 네트워크 샤딩은 블록체인 네트워크를 샤딩하기 위해서는 또 다른 정해진 규칙이 필요하다는 것을 의미하는데, 상호 통신을 최소화한다는 전제 하에 각 샤드는 체인에서 트랜잭션을 처리하고 장부에 대한 권리, 즉 노드의 그룹화 규칙을 놓고 경쟁합니다.
이 과정에서 부딪히는 문제는 블록체인의 내부 노드가 서로 다른 조각으로 나뉘기 때문에 공격자의 난이도와 비용이 급감한다는 것입니다. 이 그룹화 프로세스의 규칙과 결과가 고정되고 예측 가능하다고 가정하면 전체 블록체인 네트워크를 제어하려는 공격자는 대상 방식으로 샤드 중 하나를 제어하고 샤드에서 일부 노드만 구입하면 됩니다. .
이미지 설명
그림 2 샤드 공격 난이도 대폭 감소
이미지 설명
그림 3 이더리움 2.0에서 구상한 유효성 검사기 회전
간단히 말해서, 노드를 임의로 그룹화한 다음 독립적인 검증을 위해 각 노드 그룹에 작업을 할당합니다.
보조 제목
02 트랜잭션 샤딩
트랜잭션 샤딩은 "어떤 트랜잭션을 어떤 샤드에 할당해야 하는지"에 대한 규칙을 공식화하여 병렬 처리의 목적을 달성할 수 있을 뿐만 아니라 이중 지출 문제의 발생을 방지할 수 있습니다. 블록체인의 원장 모델의 차이는 트랜잭션 샤딩의 개발에 영향을 미칩니다.
현재 블록체인 네트워크에는 UTXO(Unspent Transaction Outputs, 미사용 트랜잭션 출력) 모델과 계정/잔고 모델의 두 가지 유형의 부기 방법이 있으며 전자의 대표적인 것이 BTC이고 후자는 ETH와 같습니다. .
이미지 설명
그림 4 UTXO에 대한 가능한 트랜잭션 샤딩 아이디어
항목이 일관된 방식으로 올바른 샤드에 배치되도록 하려면 해시 함수에 입력된 값이 모두 동일한 열에서 나와야 합니다. 이 열을 샤드 키라고 합니다. 이후 값이 1인 모든 트랜잭션은 샤드 1로, 값이 2인 트랜잭션은 샤드 2로 나뉩니다. 이 방법의 단점은 이중 지출 공격을 피하기 위해 샤드가 통신해야 한다는 것입니다. 교차 샤드 트랜잭션을 제한하면 플랫폼의 사용성이 제한되는 반면 교차 샤드 트랜잭션을 허용하면 교차 샤드 통신 비용과 성능 향상의 이점을 고려해야 합니다.
보조 제목
03 상태 샤딩(State Sharding)
상태 샤딩은 블록체인 데이터가 서로 다른 샤드에 분산 및 저장되는 방식을 나타냅니다.
여전히 Walmart 대기열 예를 사용하여 각 창에는 계정이 있습니다. 해당 계정은 어떻게 기록됩니까? If: 고객이 어떤 대기열에 오든 계정이 기록됩니다. 예를 들어 고객 A가 창구 A로 이동하면 고객은 다음 날 창구 B와 같은 다른 결제 창으로 이동하고 창 B에는 고객의 창구가 없습니다. 과거 계정 정보(예: 선불 카드와 같은 결제 방법 관련), 어떻게 해야 합니까? 창구 A로 고객의 계좌 정보를 호출하시겠습니까?
상태 샤딩은 위에서 언급한 네트워크 샤딩과 트랜잭션 샤딩보다 어려운 샤딩의 가장 큰 문제점이다. 샤딩 메커니즘에서는 주소 할당에 따라 트랜잭션이 다른 샤드에서 처리되기 때문에, 즉 주소가 있는 샤드에만 상태가 저장됩니다. 트랜잭션은 샤드에 있을 뿐만 아니라 종종 교차 샤딩(Cross-Sharding)을 포함합니다.
이체 상황을 생각해보면 A계좌는 10U를 B계좌로 이체하고 A의 주소는 shard 1에 할당되고 트랜잭션 기록도 shard 1에 저장됩니다. B의 주소는 shard 2에 할당되고 트랜잭션 기록은 shard 2에 저장됩니다.
A가 B에게 송금을 원하면 크로스 샤드 트랜잭션이 형성되고 샤드 2는 거래의 유효성을 확인하기 위해 샤드 1에 과거 거래 기록을 호출합니다 A가 B에게 코인을 자주 보내면 샤드 2는 샤드 1과 지속적으로 상호 작용해야 하며 트랜잭션 처리 효율성이 감소합니다. 그러나 특정 샤드의 전체 기록을 다운로드하고 확인하지 않으면 참가자는 그들 간의 상호 작용 상태가 유효한 블록 시퀀스의 결과인지, 이러한 블록 시퀀스가 실제로 표준 체인인지 확신할 수 없습니다. 사금파리.
따라서 샤딩이 없는 단일 체인과 비교할 때 샤딩된 시스템의 새로운 과제는 너무 많은 데이터가 있기 때문에 사용자가 주어진 체인의 유효성과 가용성을 직접적이고 완전하게 확인할 수 없다는 것입니다. 사용자가 어떤 체인이 정식 체인인지 결정할 수 있도록 어떤 체인이 완전히 사용 가능하고 유효한지 확인할 수 있는 최대의 무신뢰적이고 실용적인 간접적인 방법이 있어야 합니다. 실제로 블록체인 개발자는 위원회, SNARK/STARK, 어부 메커니즘, 사기 증명 및 데이터 가용성과 같은 기술을 사용하여 검증의 일부 문제를 해결할 수 있습니다.
이 문제를 해결하는 방법은 두 가지가 있는데 하나는 동기식 크로스 샤딩(Synchronous), 즉 긴밀한 결합(Tight Coupling)으로, 교차 샤드 트랜잭션이 실행될 때마다 상태 전이가 포함된 관련 블록이 동시에 발생한다. , 각 샤드 온칩 노드는 트랜잭션을 실행하기 위해 협력합니다. 보기에 자연스럽고 사용하기 가장 좋은 모델의 가장 유명한 디자인은 병합 블록이라고 하지만 실제로 이를 달성하는 것은 복잡합니다. 위의 작업을 수행하려면 샤드 간의 유효성 검사기가 서로 동기적으로 통신해야 합니다. 교차 샤드 트랜잭션에 대한 수요가 충분히 높으면 더 많은 샤드 작업자가 교차 샤드 트랜잭션을 처리하기 위해 함께 협력해야 하므로 성능이 저하될 수 있습니다.
또 다른 방법은 비동기식 교차 샤딩(Asynchronous), 즉 느슨하게 결합(Loosely Coupling)하는 것입니다. 이 아이디어는 NEAR, Ethereum, Cosmos, Kadena 등과 같이 더 널리 채택됩니다. 이 과정에서 가장 어려운 것은 트랜잭션의 원자성입니다. Scalar Capital의 공동 설립자인 Jordan Clifford에 따르면 영수증(Receipt)의 개념을 상상하면 수신자는 소스 샤드에서 트랜잭션의 Merkle 경로를 제공함으로써 외부 샤드에서 토큰을 받을 것임을 증명합니다. 대상 샤드는 영수증을 소비하고 수신자의 계정에 입금합니다. 이것은 원자적으로 수행되어야 합니다. 보낸 사람과 받는 사람의 계정이 함께 수정되거나 수정되지 않습니다. 틈이 있거나 한쪽 끝이 실패하면 보낸 사람은 받는 사람이 결코 받을 수 없는 자금을 받았다고 믿도록 속일 수 있습니다.
첫 번째 레벨 제목
2. 샤딩의 탐색과 시도
샤딩에 대한 논의에서 위에서 언급한 몇 가지 주요 문제를 검토해 보겠습니다.
하나는 상태 샤딩을 수행하는 방법, 즉 블록체인 데이터를 서로 다른 샤드에 할당하고 저장하는 방법과 크로스 샤드 통신이 필요할 때 이점의 균형을 보장하는 방법입니다.
두 번째는 트랜잭션의 원자성을 처리하는 방법입니다.하나의 샤드는 다른 샤드에게 공통 액세스 상태의 수정에 대해 적시에 알려야 합니다. 그렇지 않으면 상태 장애가 쉽게 발생합니다.
보조 제목
01 계산 샤딩
질리카는 샤딩을 시도하는 최초의 스마트 컨트랙트 플랫폼 중 하나이며 샤딩 기술의 매우 유익하고 효과적인 시도입니다.
2017년에 설립된 이 회사는 싱가포르 국립 대학교와 관련된 전담 연구원 및 학자 팀이 주도하고 있으며, 확장성 문제를 해결하는 것이 주요 목표이며 계산 집약적인 작업을 위해 특별히 제작되었습니다. Zilliqa 네트워크는 컴퓨팅 샤딩이라는 병렬화 프로세스를 통해 네트워크 전체에서 높은 처리량 트랜잭션을 처리할 수 있습니다. 샤딩된 블록체인 네트워크에서 트랜잭션 계산 작업은 네트워크의 샤드 전체에 분산됩니다.
샤딩 프로세스에서 Zilliqa는 이를 두 부분으로 나눕니다. 먼저 디렉터리 서비스(DS) 위원회 노드를 선택한 다음 샤딩 프로세스를 시작하고 각 샤드에 노드를 할당합니다. 트랜잭션이 샤드에서 확인되면 전체 네트워크에서 모든 샤드의 트랜잭션을 Zilliqa 블록체인의 검증 가능한 단일 진실 소스로 결합하는 글로벌 상태로 확인할 수 있습니다.
간단히 말해서 블록체인의 노드에는 세 가지 주요 기능이 있습니다.
- 거래 처리
- 트랜잭션을 패키징하고 다른 노드에 브로드캐스트
- 전체 네트워크의 과거 원장 저장
보조 제목
02 정적 상태 샤딩
샤딩에 대한 보다 일반적인 접근 방식은 계정의 주소 공간을 샤드라고 하는 여러 고정 크기 영역으로 나누고 네트워크의 노드를 다른 샤드에 할당하는 것입니다. 이를 상태 샤딩이라고 합니다. Near, Elrond 및 Harmony와 같은 플랫폼은 이러한 접근 방식을 취하고 있습니다. 이더리움은 처음에 상태 샤딩을 구현할 계획이었지만, 새로운 접근 방식은 접근성을 높이기 위해 데이터만 샤딩합니다.
2.1 이더리움의 데이터 단편화 아이디어
Ethereum의 맥락에서 샤딩은 네트워크를 통해 집계하는 데 필요한 대량의 데이터를 처리하는 부담을 덜어 레이어 2와 함께 작동합니다. 이것은 계속해서 네트워크 정체를 줄이고 초당 트랜잭션을 증가시킬 것입니다.
이더리움의 샤딩 계획은 보다 효율적인 확장 경로가 개발됨에 따라 지속적으로 발전하고 있다는 점에 유의해야 합니다. Ethereum의 향후 샤딩 계획 중 하나는 "데이터 가용성" 샤딩을 기반으로 합니다. "Danksharding"은 샤딩 "체인"의 개념을 사용하지 않는 새로운 샤딩 방법입니다. 모든 데이터를 사용할 수 있는지 확인합니다.
다른 솔루션 버전은 솔루션 1을 기반으로 각 샤드에 추가 기능을 추가하여 각 샤드를 오늘날의 이더리움 메인넷과 유사하게 만들고 샤드가 코드를 저장 및 실행하고 트랜잭션을 처리할 수 있도록 합니다. 계정 잔액 및 교차 샤드 통신은 샤드 간의 트랜잭션을 허용합니다. 그러나 이 체계는 커뮤니티에서 여전히 논쟁 중입니다. 체계 1의 데이터 가용성과 레이어 2의 조정이 이미 이더리움에 충분한 확장성을 제공할 수 있기 때문에 커뮤니티는 여전히 버전 2의 경제적 비용과 이점 가치를 평가하고 있습니다.
2.2 Harmony
Harmony는 샤딩에 대해 보다 표준적인 접근 방식을 취하는 PoS 기반 샤딩 네트워크로, 각각 상태의 일부를 담당하는 샤드라고 하는 여러 개의 작은 블록체인과 이를 조정하는 블록체인인 하모니의 비콘 체인. 이전 논의를 따라 하모니가 네트워크 샤딩, 트랜잭션 샤딩 및 상태 샤딩의 문제를 아래에서 위로 어떻게 해결하는지 살펴보겠습니다.
네트워크 샤딩: Harmony는 유효성 검사기 네트워크를 샤드로 나누고 각 샤드는 서로 밀접하게 연결된 서로 다른 유효성 검사기 집합을 포함하며 이들 간에 합의를 실행합니다.
트랜잭션 샤딩: Harmony의 트랜잭션은 단일 샤드에서 처리되고 처리됩니다. 이를 통해 샤드가 트랜잭션을 동시에 처리할 수 있으므로 블록체인의 전체 트랜잭션 용량이 증가합니다. 트랜잭션의 경우 사용자는 트랜잭션이 속한 샤드를 나타내는 서명된 트랜잭션의 shard_id 필드만 지정하면 됩니다.
상태 샤딩: Harmony에서 각 샤드의 유효성 검사기는 자체 블록체인 및 상태 데이터베이스(N=샤드 수)를 유지하기 때문에 글로벌 상태의 1/N을 저장해야 합니다. 이는 데이터 가용성에 대한 유효성 검사기의 우려를 완화합니다. 또한 교차 샤딩은 샤드 간의 상태 일관성을 더욱 향상시킵니다.
Harmony 메인넷은 여러 샤드에서 수천 개의 노드를 지원하여 즉각적인 완결성으로 몇 초 만에 블록을 생성합니다. 서약 메커니즘의 배열을 통해 중앙화를 줄이고 서약 위임, 보상 복리 및 이중 서명 감소를 지원합니다. EPoS(Effective Proof-of-Stake)의 효과적인 모기지 메커니즘과 안전한 랜덤 샤딩 기술(Random Sharding)을 채택하고, 대가족이 저당하는 토큰을 여러 작은 부분으로 나누고 무작위로 분배하는 계약 조항에 의존합니다. 이러한 방식으로 아무도 저당 토큰을 단일 샤드에 집중시킬 수 없으므로 단일 샤드를 공격할 수 없습니다.
그리고 교차 샤드와 관련하여 교차 샤드 트랜잭션 및 비콘 체인 동기화의 경우 서로 다른 샤드의 유효성 검사기가 전역적으로 연결된 네트워크를 통해 샤드 간에 메시지를 보냅니다. Harmony의 공식 문서에 따르면 "Kademlia 크로스 샤드 라우팅 기술"을 채택하여 크로스 샤드 통신의 네트워크 오버헤드를 제어하고 "삭제 코드"를 사용하여 블록 브로드캐스트 프로세스를 최적화하여 방송사의 네트워크 압력을 줄입니다. 효율적인 수평 샤딩 확장을 달성하기 위해 발신자의 네트워크 병목 현상 문제를 피하십시오. 크로스 샤드 메시징을 수행하는 최초의 샤드 블록체인으로 이미 준비되어 있습니다. 효율적인 크로스 샤드 메시징 프로토콜과 풀 메시 디자인을 통해 샤드는 서로 원활하게 통신할 수 있으며 팀이 이 목표를 향해 적극적으로 노력함에 따라 사용자와 개발자는 올해 말 Harmony에서 릴리스를 기대할 수 있습니다. . 크로스 샤드 메시징 프로토콜.
기능을 수집하고 서로 다른 샤드에 있는 데이터를 사용하여 빌드할 수 있으므로 이는 Harmony의 빌더와 개발자에게 중요한 혁신입니다. 또한 샤드 간 데이터의 일관성도 중요합니다. 이 두 가지 추구가 이 무한한 확장성의 지속 가능성을 결정할 것입니다.
2.3 Elrond
Elrond는 보안, 효율성, 확장성 및 상호 운용성을 제공하도록 설계된 처리량이 많은 퍼블릭 블록체인입니다. Elrond를 차별화하는 두 가지 가장 중요한 기능은 적응형 상태 샤딩과 안전한 지분 증명 합의 메커니즘입니다.
Elrond는 트랜잭션, 데이터 및 네트워킹을 위해 모든 수준의 적응형 상태 샤딩을 사용합니다. 동적 적응 샤딩 메커니즘은 사용 가능한 유효성 검사기 및 네트워크 사용량을 고려하여 샤드 병합 및 분할을 수행합니다. 샤드 간 주기적인 노드 셔플링으로 인해 악의적인 공격에 대해 높은 복원력을 유지합니다. 담합을 방지하기 위해 매 시대마다 각 샤드 노드의 최대 1/3이 다른 샤드로 재셔플됩니다. 임의성 측면에서 임의성의 소스는 BLS 서명을 사용하여 확보되므로 편향되지 않고 예측할 수 없습니다.
샤드 상태 아키텍처의 스마트 계약의 경우 교차 샤드 실행 프로세스가 사용되며 샤드 부하가 균형을 이룹니다. 여러 샤드에서 스마트 계약의 균형을 조정하면 Elrond가 여러 스마트 계약을 병렬로 실행할 수 있습니다.
동시에 크로스 샤드의 경우 Elrond는 몇 초 내에 크로스 샤드 트랜잭션(최종성)을 신속하게 결정할 수 있는 Meta Chain이라는 디자인을 채택합니다. 기술 백서를 연구하여 다음과 같이 프로세스를 단순화합니다. Elrond 네트워크에는 두 개의 샤드와 메타체인만 있다고 가정합니다. 사용자가 주소가 샤드 0인 지갑에서 트랜잭션을 생성하고 지갑 주소가 샤드 1인 다른 사용자에게 EGLD를 보내려고 한다고 가정하면 교차 샤드 조각 거래를 처리하기 위해 아래 그림에 표시된 단계가 필요합니다.
블록의 구조는 블록에 대한 정보(블록 논스, 라운드, 제안자, 유효성 검사기 타임스탬프 등)를 포함하는 블록 헤더와 내부의 실제 트랜잭션을 포함하는 샤드당 미니 블록 목록으로 표시됩니다. 우리의 경우 샤드 0의 블록에는 일반적으로 3개의 미니 블록이 있습니다.
miniblock 0: 샤드 0의 샤드 내 트랜잭션을 포함합니다.
miniblock 1: 샤드 0의 발신자와 샤드 1의 대상이 있는 교차 샤드 트랜잭션을 포함합니다.
miniblock 2: 교차 샤드 트랜잭션을 포함하고 발신자는 샤드 1에 있고 대상은 샤드 0에 있습니다. 이러한 트랜잭션은 발신자 샤드 1에서 이미 처리되었으며 현재 샤드가 처리된 후에 완료됩니다.
한 블록에 동일한 발신자와 수신자가 있는 작은 블록의 수에는 제한이 없습니다. 이는 송신자와 수신자가 동일한 여러 미니 블록이 동일한 블록에 나타날 수 있음을 의미합니다. 이 과정에서 샤드에 걸쳐 실행되는 원자 처리 단위는 미니블록입니다. 즉, 미니블록의 모든 트랜잭션을 즉시 처리하거나 처리하지 않고 다음 라운드에서 미니블록의 실행을 재시도합니다.
Elrond의 크로스 샤드 트랜잭션 전략은 비동기 모델을 사용합니다. 유효성 검사 및 처리는 발신자의 샤드에서 먼저 수행된 다음 수신자의 샤드에서 수행됩니다. 트랜잭션은 해당 샤드의 계정에서 시작된 모든 트랜잭션을 완전히 확인할 수 있으므로 보낸 사람의 샤드에서 먼저 발송됩니다. 그 후 수신자의 샤드에서 노드는 메타체인이 제공하는 실행 증명만 있으면 되고, 서명 검증과 재전송 공격 여부를 확인하고 최종적으로 수신자에 대한 잔액을 업데이트하고 트랜잭션 금액을 추가합니다.
샤드 0은 미니블록 0의 내부 샤드 트랜잭션과 미니블록 1의 수신자로서 샤드 1에서 주소가 오는 일련의 교차 샤드 트랜잭션을 처리합니다. 블록 헤더와 미니 블록은 메타체인으로 전송됩니다. 메타체인은 각 미니블록에 대한 다음 정보(발신자 샤드 ID, 수신자 샤드 ID, 미니블록 해시)를 포함하는 새로운 메타체인 블록(metablock)을 생성하여 샤드 0의 블록을 공증합니다.
이미지 설명

그림 5 Elrond의 크로스 샤드 비동기 모델
2.4 Near
Near는 완전히 상태가 샤딩되고 개발자 친화적인 확장 가능한 퍼블릭 체인으로, Nightshade라는 새로운 프로토콜과 솔루션을 제안했습니다.
이미지 설명

그림 6 비콘 체인 접근 방식을 거의 포기하고 Nightshade 디자인을 채택함
Nightshade는 시스템을 단일 블록체인으로 모델링합니다. 여기서 각 블록은 논리적으로 모든 샤드의 모든 트랜잭션을 포함하고 모든 샤드의 전체 상태를 변경합니다. 물리적으로 참가자는 전체 상태 또는 전체 논리 블록을 다운로드하지 않습니다. 대신, 네트워크의 각 참가자는 트랜잭션을 검증한 샤드에 해당하는 상태만 유지하고 블록의 모든 트랜잭션 목록은 샤드당 하나의 블록인 물리적 청크로 나뉩니다.
이상적인 조건에서 각 블록의 각 샤드는 정확히 하나의 블록을 포함하며, 이는 비콘 체인과 동일한 속도로 블록을 생성하는 샤드 체인이 있는 모델에 대략적으로 해당합니다. 그러나 네트워크 대기 시간으로 인해 일부 블록이 손실될 수 있으므로 각 블록의 각 샤드에는 실제로 하나 또는 0개의 블록이 포함됩니다.
Nightshade에는 블록 생산자와 유효성 검사기의 두 가지 역할이 있습니다. 언제든지 시스템은 가까운 모델 w=100 v = 100, wv = 10,000에서 w 블록 생산자(Block Producer)와 wv 유효성 검사기(Validator)를 포함합니다. 시스템에는 n개의 샤드가 포함되어 있으며 가까운 모델에서는 n = 1000입니다. Nightshade에는 샤드 체인이 없으며 대신 모든 블록 생산자와 검증자가 메인 체인이라고 하는 단일 블록체인을 구축하고 있습니다. 메인 체인의 상태는 n 개의 샤드로 나뉘고 각 블록 생산자와 검증자는 샤드의 특정 하위 집합에 해당하는 상태 하위 집합을 항상 로컬에서만 다운로드하고 이러한 부분의 트랜잭션 상태만 처리하고 확인합니다. 네트워크 유지 관리는 기간으로 수행되며 기간은 일의 기간입니다.
블록 생산자와 블록 생산자는 고정된 일정에 따라 각 블록을 회전시킵니다. 블록 생산자는 순서가 있고 그 순서대로 반복적으로 블록을 생성합니다. 예를 들어 블록프로듀서가 100명이라면 첫 번째 블록프로듀서는 블록 1, 101, 201 등을 생성하고, 두 번째 블록프로듀서는 블록 2, 102, 202 등을 생성한다. 블록 생산은 블록 생산과 다르기 때문에 상태를 유지해야 하며 각 샤드에 대해 sww/n 블록 생산자만 각 샤드의 상태를 유지하고 그에 따라 해당 sww/n 블록 생산자만 회전하여 블록을 생성합니다.
이미지 설명

첫 번째 레벨 제목
텍스트
텍스트
텍스트
텍스트
샤드 간에 거래할 때 트랜잭션의 원자적 처리를 보장하면서 샤드의 연속 실행을 방지하는 방법은 무엇입니까? 2. 하나의 샤드 노드보다 적은 수의 노드가 네트워크에 추가되면 네트워크는 추가 노드를 어떻게 처리합니까?
보조 제목
3.1 Shardeum 및 거래 수준 합의
Shardeum은 PoQ(Proof of Quorum)와 PoS(Proof of Stake)를 결합한 고유한 기술 및 합의 알고리즘을 구성했습니다. 합의 알고리즘은 노드의 서약을 수집하고 검증하기 위해 무신뢰 투표를 통해 네트워크를 보호하는 데 도움이 됩니다. 각 트랜잭션은 블록/파티션으로 그룹화되기 전에 받은 순서대로 처리됩니다.
보조 제목
3.2 Shardeum 및 선형 확장
선형 스케일링이 무엇인지 설명하려면 다음 상황을 상상해야 합니다.
Near 메인 네트워크에 있는 100개 노드의 샤드 하나. 앞으로 더 많은 샤드가 추가될 것으로 예상됩니다. Harmony에는 각각 250개의 노드가 있는 4개의 샤드가 있으며 메인 네트워크에는 총 1,000개의 노드가 있습니다. 모든 계약은 동일한 샤드에 있습니다. Elrond에는 3개의 샤드와 1개의 메타체인이 있고 각 샤드에는 800개의 노드가 있으며 메인 네트워크에는 총 3200개의 노드가 있습니다.
샤드에 필요한 250개 노드보다 적은 100개 노드를 Harmony에 추가하는 경우 Harmony는 이러한 노드를 어떻게 처리합니까? 이 총 1,100개의 노드를 각각 100개 노드의 11개 샤드로 나누는 것을 고려할 수 있습니까?
더 좋아 보이지만 일부 샤드의 정적 특성으로 인해 새 샤드를 생성하려면 많은 추가 노드가 네트워크에 가입해야 합니다. 위의 네트워크에 일부 노드를 추가하려는 경우 단일 노드만 추가하면 전체 블록의 성능을 향상시키는 것이 불가능합니다. 최소한 현재 "최소 샤드 크기" 노드 수(약 100개 노드) - 현재 샤드는 모두 정적 샤드이고 선형 확장을 지원하지 않으며 프로덕션 네트워크는 실제로 정적 샤드를 분할 및 병합할 수 없기 때문입니다.
Shardeum의 백서는 "트랜잭션 수준의 합의"를 넘어 모든 노드가 동일한 주소 범위를 다루는 정적 샤드와 달리 동적 상태 샤딩을 사용한다는 고유한 기능을 언급합니다. 겹치는 노드가 있는 주소를 포함하는 다른 주소 범위 - 이것은 더 복잡하지만 진정한 선형 확장이 가능하다는 이점이 있습니다.
주소 공간 및 노드 대응의 동적 변경과 교차 샤드 검증을 위한 새로운 데이터 가용성 증명을 통해 Shardeum은 적합하거나 대략적인 "선형 확장"을 달성할 수 있습니다. "트랜잭션 레벨"에 따른 검증 및 확인 방법은 단일 칩의 성능을 어느 정도 희생시킬 수 있지만 네트워크 전체에 매우 유익한 확장입니다.
이미지 설명
그림 8 2021년 3분기에 Shardus는 5000 TPS의 교차 샤드 트랜잭션을 달성하는 것으로 입증되었습니다.
첫 번째 레벨 제목
4. 결론
진정으로 샤딩되고 확장 가능한 블록체인은 처음부터 시작해야 합니다. 마찬가지로, 다이아몬드와 같은 합의를 가진 커뮤니티도 처음부터 구축해야 하며 커뮤니티 구축은 기술 연구 및 혁신보다 더 쉬웠던 적이 없습니다. 샤디움 테스트넷 런칭 이후 활성 테스터의 수와 테스트 트랜잭션의 수를 보았고, 우리가 발견한 혁신의 길을 더 많은 사람들이 손을 잡고 걷고 있다는 사실에 흥분됩니다. 의심의 목소리가 있지만 우리는 진보의 길이 나선형이라고 믿습니다
첫 번째 레벨 제목
Reference
1.https://blog.chain.link/blockchain-scalability-approaches-zh/
2.https://www.odaily.news/post/5147856
3.https://docs.near.org/concepts/basics/transactions/overview
4.https://medium.com/nearprotocol/the-authoritative-guide-to-blockchain-sharding-part-1-1b53ed31e060
5.https://medium.com/nearprotocol/unsolved-problems-in-blockchain-sharding-2327d6517f43
6.https://medium.com/nearprotocol/why-doesnt-near-just-replicate-ethereum-serenity-design-3e2cfa2f960c
7.https://ethereum.org/en/upgrades/sharding/#what-is-sharding
8.https://blog.ethereum.org/2020/03/27/sharding-consensus
9.https://www.web3.university/article/ethereum-sharding-an-introduction-to-blockchain-sharding
10.https://medium.com/harmony-one/enabling-cross-shard-communication-at-harmony-22f26483d0d1
11.https://en.elrondwiki.com/article/multi-shard-the-answers-to-certain-questions
12.https://docs.elrond.com/technology/cross-shard-transactions/
13.https://near.org/papers/nightshade/
14.https://shardus.com/whitepaper.pdf
텍스트
텍스트
트위터|@JSquare_co