Home / Knowledge / 사설: 블록체인 확장을 위한 샤딩의 다양한 얼굴들

사설: 블록체인 확장을 위한 샤딩의 다양한 얼굴들

사설: 블록체인 확장을 위한 샤딩의 다양한 얼굴들 1

사설: 블록체인 확장을 위한 샤딩의 다양한 얼굴들 2

모든 프로그래머는 DApp을 구축하기 위해 앉아본 적이 있으며, 그 과정에서 현재의 공공 블록체인의 한계에 대해 생각해야 했습니다. 가장 중요하고 명백한 한계는 제한된 처리량, 즉 초당 처리되는 거래 수입니다. 실제 세계의 처리량 요구를 처리할 수 있는 DApp을 실행하기 위해서는 블록체인이 확장 가능해야 합니다.

블록체인 확장의 한 가지 해결책은 샤딩입니다. 샤딩은 네트워크가 블록을 검증하는 방식을 변경하여 처리량을 증가시킬 것을 약속합니다. 샤딩의 주요 특징은 수평적 확장으로, 이는 채굴 네트워크가 확장됨에 따라 처리량이 증가한다는 것을 의미합니다. 이 샤딩의 특정 특성은 블록체인 기술의 빠른 채택을 촉진하는 이상적인 연료가 될 수 있습니다.

이 기사는 기존 블록체인 플랫폼의 확장 문제를 간략하게 논의할 것입니다. 대부분의 독자들은 이미 이에 익숙할 것이기 때문입니다. 그런 다음 샤딩과 그 다양한 형태가 확장 문제에 대한 유망한 해결책이 될 수 있는 방법을 논의할 것입니다. 또한 샤딩 구현에 대한 이론적 및 실질적 도전 과제와 이러한 도전 과제를 극복할 수 있는 방법에 대해서도 언급할 것입니다.

기존 블록체인의 확장성 문제

오늘날 공공 블록체인 플랫폼이 직면한 가장 큰 문제 중 하나는 확장성입니다. 모든 인기 있는 플랫폼은 초당 더 많은 거래를 처리하는 데 어려움을 겪고 있습니다. 사실, 현재 공공 이더리움과 비트코인 네트워크는 평균적으로 초당 7-10건의 거래를 처리할 수 있습니다. 이러한 수치는 평균적으로 약 8,000건의 거래를 처리하는 중앙 집중식 결제 처리기인 비자와 비교할 때 훨씬 열악합니다.

느린 거래 처리 속도는 주요 문제를 야기합니다. 이는 네트워크를 혼잡하게 만들어 실시간 결제와 같은 애플리케이션에 블록체인을 사용하기 어렵게 만듭니다. 결제가 처리되는 데 시간이 길어질수록 최종 사용자에게는 더 불편해집니다. 이는 PayPal과 비자와 같은 신용 카드와 같은 결제 방법이 여전히 훨씬 더 매력적인 주요 이유 중 하나입니다. 더 복잡한 DApp이 동일한 네트워크에 의존하게 되면 느린 거래 속도로 인한 문제는 더욱 심화될 것입니다.

더 기술적인 관점에서 볼 때, 모든 블록체인 합의 프로토콜은 도전적인 제한 사항을 가지고 있습니다. 네트워크의 모든 완전 참여 노드는 모든 거래를 검증해야 하며, 이에 대해 다른 노드와 합의를 구해야 합니다. 이것이 블록체인 기술이 분산 원장을 생성하고 보안을 유지하는 구성 요소입니다.

비트코인과 이더리움과 같은 대부분의 체인에서는 노드가 공공에 의해 운영됩니다. 분산 합의 메커니즘은 결함 허용, 보안, 정치적 중립성 및 진정성과 같은 몇 가지 중요한 이점을 제공하지만, 체인을 검증하는 이 방법은 확장성의 대가를 치르게 됩니다. 블록체인이 커질수록 이러한 공공 블록체인을 검증하는 데 더 많은 처리 능력이 필요하게 되며, 이는 이러한 네트워크에서 병목 현상을 초래하고 새로운 애플리케이션의 생성 속도를 늦출 수 있습니다.

샤딩: 나누고 정복하라

샤딩은 전통적인 데이터베이스 샤딩 개념에서 영감을 받은 확장 기술로, 데이터베이스를 여러 조각으로 나누어 서로 다른 서버에 배치하는 방식입니다. 공공 블록체인의 맥락에서 네트워크의 거래 부하는 서로 다른 노드로 구성된 다양한 샤드로 나누어집니다. 결과적으로 각 노드는 들어오는 거래의 일부만 처리하고, 네트워크의 다른 노드와 병렬로 작업을 수행합니다. 네트워크를 샤드로 나누면 더 많은 거래를 동시에 처리하고 검증할 수 있습니다. 결과적으로 네트워크가 성장함에 따라 점점 더 많은 거래를 처리할 수 있게 됩니다. 이 속성은 수평적 확장이라고도 합니다.

기존 블록체인이 하나의 톨게이트에서 단 하나의 톨부스만 운영하는 바쁜 고속도로처럼 작동한다고 상상해 보십시오. 그 결과는 사람들이 톨게이트를 통과하기 위해 긴 줄을 서면서 교통 체증이 발생하는 것입니다. 샤딩 기반 블록체인을 구현하는 것은 고속도로에 15개 또는 20개의 톨부스를 추가하는 것과 같습니다. 이는 톨게이트를 통과하는 교통의 속도를 극적으로 개선할 것입니다. 샤딩은 엄청난 차이를 만들어내고 거래 속도를 극적으로 개선할 것입니다.

샤딩 기반 블록체인의 구현은 공공 블록체인에 여러 가지 이점을 가져올 수 있습니다. 첫째, 매초 수천 건 이상의 거래를 처리할 수 있어 사람들이 암호화폐를 결제 수단으로서의 효율성에 대해 느끼는 방식을 변화시킬 수 있습니다. 거래 처리량을 개선하면 더 많은 사용자와 애플리케이션이 분산 시스템으로 유입되고, 이는 블록체인의 추가 채택을 촉진하여 채굴을 더 수익성 있게 만들고 공공 네트워크에 더 많은 노드를 유치하여 선순환을 생성할 것입니다.

게다가 샤딩은 단일 거래를 검증하는 데 필요한 처리량이 줄어들기 때문에 거래 수수료를 낮추는 데 도움을 줄 수 있습니다. 노드는 더 작은 수수료를 부과하면서도 운영에 수익성을 유지할 수 있습니다. 낮은 수수료와 높은 거래 처리 능력을 결합하면 공공 체인은 실제 사용 사례에 점점 더 매력적이게 될 것입니다. 이러한 긍정적인 추세가 계속될수록 암호화폐와 블록체인 애플리케이션의 주류 채택이 더욱 증가할 것입니다.

샤딩 전략

이것이 기본 개념이지만, 네트워크 및 거래 샤딩, 상태 샤딩과 같은 샤딩 전략을 구현하는 더 세분화된 방법이 있습니다. 네트워크 및 거래 샤딩에서는 블록체인 노드의 네트워크가 서로 다른 샤드로 분할되며, 각 샤드는 서로 다른 거래 하위 집합을 처리하고 합의에 도달하기 위해 형성됩니다. 이렇게 하면 연결되지 않은 거래 하위 집합을 병렬로 처리할 수 있어 거래 처리량이 수십 배로 증가합니다.

반면, 오늘날의 주류 공공 블록체인에서는 거래, 스마트 계약 및 다양한 상태를 저장하는 부담이 모든 공공 노드에 의해 지워지므로 블록체인에서 지속적인 작업을 유지하기 위해 필요한 저장 공간 측면에서 엄청나게 비쌀 수 있습니다.

이 문제를 해결하기 위해 제안된 한 가지 잠재적 접근 방식은 상태 샤딩입니다. 핵심은 전체 저장소를 조각으로 나누고 서로 다른 샤드가 서로 다른 부분을 저장하도록 하는 것입니다. 따라서 각 노드는 전체 블록체인 상태 대신 자신의 샤드 데이터를 호스팅하는 것만 책임집니다.

샤딩의 복잡성

모든 샤딩의 다양한 형태는 매우 직관적일 수 있지만, 기술적 세부 사항을 풀어내면 접근 방식과 그에 따른 도전 과제의 복잡성이 드러납니다. 이러한 도전 과제 중 일부는 극복하기 쉬운 반면, 다른 일부는 그렇지 않습니다. 일반적으로 네트워크 및 거래 샤딩은 수행하기가 더 쉽고 상태 샤딩은 훨씬 더 복잡합니다. 아래에서는 다양한 샤딩 메커니즘에 대해 이러한 도전 과제를 분류하고 이를 극복하는 것이 얼마나 실현 가능한지 논의합니다.

네트워크 샤딩

샤딩에서 가장 먼저 해결해야 할 도전 과제는 샤드를 생성하는 것입니다. 특정 샤드에 어떤 노드가 속하는지를 안전한 방식으로 결정하는 메커니즘을 개발해야 하며, 이는 특정 샤드에 대한 많은 제어를 얻은 공격자로부터의 공격을 피하기 위해 필요합니다.

적대자를 이기는 가장 좋은 방법(대부분의 경우)은 무작위성을 활용하는 것입니다. 무작위성을 활용함으로써 네트워크는 노드를 무작위로 샘플링하여 샤드를 형성할 수 있어야 합니다. 무작위 샘플링은 악의적인 노드가 단일 샤드를 과도하게 차지하는 것을 방지합니다.

하지만 무작위성은 어디서 나와야 할까요? 공공 무작위성의 가장 쉽게 이용할 수 있는 출처는 블록에 있습니다. 예를 들어, 거래의 머클 트리 루트입니다. 블록에서 제공되는 무작위성은 공개적으로 검증 가능하며, 무작위 추출기를 통해 (거의) 균일한 무작위 비트를 추출할 수 있습니다.

그러나 노드를 샤드에 할당하기 위한 무작위화 메커니즘이 있다고 해서 충분하지 않습니다. 네트워크가 샤드의 구성원에 대해 합의해야 한다는 것도 보장해야 합니다. 이는 예를 들어 작업 증명과 같은 합의 프로토콜을 통해 달성할 수 있습니다.

거래 샤딩

거래 샤딩은 생각만큼 간단하지 않습니다. 비트코인과 같은 시스템(스마트 계약 없이)에서 거래 샤딩을 도입한다고 가정해 보겠습니다. 시스템의 상태는 UTXO를 사용하여 정의됩니다. 네트워크가 이미 샤드로 구성되어 있고 사용자가 거래를 보낸다고 가정해 보겠습니다. 거래에는 두 개의 입력과 하나의 출력이 있습니다. 이제 이 거래를 어떻게 샤드에 할당해야 할까요?

가장 직관적인 접근 방식은 거래 해시의 마지막 몇 비트를 기반으로 샤드를 결정하는 것입니다. 예를 들어, 해시의 마지막 비트가 0이면 거래는 첫 번째 샤드에 할당되고, 그렇지 않으면 두 번째 샤드에 할당됩니다(두 개의 샤드만 있다고 가정). 이렇게 하면 거래가 단일 샤드 내에서 검증될 수 있습니다. 그러나 사용자가 악의적이라면 동일한 두 입력을 가진 다른 거래를 생성할 수 있습니다. 즉, 이중 지출이 발생할 수 있습니다. 두 번째 거래는 다른 해시를 가지게 되고, 따라서 두 거래는 서로 다른 샤드에 배치될 수 있습니다. 각 샤드는 다른 샤드에서 검증되고 있는 이중 지출 거래를 알지 못한 채로 수신된 거래를 개별적으로 검증하게 됩니다.

이중 지출을 방지하기 위해 샤드는 검증이 진행되는 동안 서로 통신해야 합니다. 사실, 이중 지출 거래가 어떤 샤드에든 도착할 수 있기 때문에, 특정 샤드에서 거래를 수신하면 모든 다른 샤드와 통신해야 합니다. 통신 오버헤드는 실제로 거래 샤딩의 전체 목적을 무효화할 수 있습니다.

반면, 계정 기반 시스템(스마트 계약 없이)에서는 문제가 훨씬 간단하게 해결됩니다. 각 거래는 발신자의 주소를 가지며, 이를 기반으로 샤드에 할당될 수 있습니다. 이렇게 하면 두 개의 이중 지출 거래가 동일한 샤드에서 검증되므로 교차 샤드 통신 없이 쉽게 감지할 수 있습니다.

상태 샤딩

상태 샤딩의 약속에는 새로운 도전 과제가 따릅니다. 사실, 상태 샤딩은 지금까지 제안된 모든 샤딩 제안 중에서 가장 도전적입니다.

계정 기반 모델을 계속 사용하겠습니다(지금은 스마트 계약을 도입하지 않겠습니다). 상태 샤딩 블록체인에서는 특정 샤드가 상태의 일부만 유지합니다. 예를 들어, 두 개의 샤드와 두 개의 사용자 계정(각각 앨리스와 밥이 있다고 가정)만 있다면, 각 샤드는 단일 사용자의 잔액만 유지합니다.

앨리스가 밥에게 지불하기 위한 거래를 생성한다고 상상해 보십시오. 이 거래는 첫 번째 샤드에서 처리됩니다. 거래가 검증되면 밥의 새로운 잔액에 대한 정보는 그의 샤드와 공유되어야 합니다. 두 개의 인기 있는 계정이 서로 다른 샤드에서 처리되면, 이는 빈번한 교차 샤드 통신 및 상태 교환을 수반할 수 있습니다. 교차 샤드 통신이 상태 샤딩의 성능 향상을 초과하지 않도록 보장하는 것은 여전히 해결되지 않은 연구 문제입니다.

교차 샤드 통신 오버헤드를 줄이는 한 가지 방법은 사용자가 교차 샤드 거래를 하지 못하도록 제한하는 것입니다. 우리의 예에서 이는 앨리스가 밥과 직접 거래할 수 없음을 의미합니다. 앨리스가 밥과 거래해야 하는 경우, 그녀는 해당 샤드에 계정을 보유해야 합니다. 이렇게 하면 교차 샤드 통신이 제거되지만, 플랫폼의 사용성이 다소 제한될 수 있습니다.

상태 샤딩의 두 번째 도전 과제는 데이터 가용성입니다. 특정 샤드가 공격을 받아 오프라인 상태가 되는 시나리오를 고려해 보십시오. 시스템의 상태가 모든 샤드에 복제되지 않기 때문에, 네트워크는 오프라인 샤드에 의존하는 거래를 더 이상 검증할 수 없습니다. 결과적으로 블록체인은 대부분 사용 불가능하게 될 수 있습니다. 이 문제에 대한 해결책은 네트워크가 데이터 가용성 문제를 해결하고 복구하는 데 도움을 줄 수 있는 아카이브 또는 백업 노드를 유지하는 것입니다. 그러나 이러한 노드는 전체 시스템의 상태를 저장해야 하므로 중앙 집중화 위험을 초래할 수 있습니다.

모든 샤딩 메커니즘(상태 샤딩에만 국한되지 않음)에서 고려해야 할 또 다른 점은 공격 및 실패에 대한 복원력을 위해 샤드가 정적이지 않도록 보장하는 것입니다. 네트워크는 새로운 노드를 수용하고 무작위로 서로 다른 샤드에 할당해야 합니다. 즉, 네트워크는 가끔씩 재구성되어야 합니다.

그러나 상태 샤딩의 경우 재구성이 복잡합니다. 각 샤드는 상태의 일부만 유지하므로, 네트워크를 한 번에 재구성하면 일부 동기화가 완료될 때까지 전체 시스템이 사용 불가능해질 수 있습니다. 중단을 방지하기 위해 네트워크는 각 샤드가 노드를 퇴출하기 전에 충분한 오래된 노드를 보유하도록 보장하기 위해 점진적으로 재구성되어야 합니다.

유사하게, 새로운 노드가 샤드에 합류하면 해당 노드가 샤드의 상태와 동기화할 충분한 시간을 가져야 합니다. 그렇지 않으면 들어오는 노드는 모든 거래를 즉시 거부하게 됩니다.

결론

결론적으로, 샤딩은 블록체인이 분산화와 투명성을 저해하지 않고 확장성 문제를 해결하기 위해 추구해야 할 흥미롭고 유망한 방향입니다. 그러나 샤딩, 특히 상태 샤딩이 설계 수준과 구현 수준 모두에서 올바르게 수행하기가 notoriously 어렵다는 것은 의심의 여지가 없습니다.

샤딩은 신중하게 다루어져야 합니다. 또한 상태 샤딩의 실행 가능성을 확립하기 위해 더 많은 연구가 필요합니다. 이는 저장 문제에 대한 만능 해결책이 아닐 수 있습니다. 연구자와 개발자는 현재 대체 솔루션을 적극적으로 모색하고 있습니다. 아마도 답은 바로 코앞에 있을 것입니다.

이 글은 Zilliqa의 기술 책임자인 Dr. Yaoqi Jia의 게스트 포스트입니다. 표현된 견해는 그의 개인적인 것이며 BTC Media 또는 Bitcoin Magazine의 견해를 반드시 반영하지는 않습니다.

관련 기사

Strive의 SATA가 하루에 예상 490 비트코인을 초과 달성 — 전체 일일 채굴 공급량보다 많음 1

Strive의 SATA, 하루에 490 비트코인 초과 달성

Strive, Inc.는 수요일에 주목할 만한 이정표를 넘어섰습니다. 회사의 시장 프로그램을 통해 약 490 비트코인을 획득한 것으로 추정되는 변동 금리 A

마이애미 IT 직원, 전 상사로부터 190만 달러 비트코인 절도 혐의로 체포 1

마이애미 비트코인 절도, IT 직원 체포

마이애미의 한 남성이 경찰에 따르면 전 직장에서 거의 200만 달러 상당의 비트코인을 훔친 혐의로 여러 중범죄 혐의에 직면해 있습니다. 이

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.