블록체인 데이터 가용성 방안에 대한 자세한 설명
원문 제목:Data Availability in Blockchains 원문 저자:AltLayer 창립자 YQ 편집:첸원, ChainCatcher
데이터 가용성은 블록체인 네트워크의 모든 참여자가 블록에 포함된 전체 거래 데이터에 접근할 수 있도록 보장하는 것을 의미합니다. 이 개념은 보안을 유지하는 데 매우 중요하며, 특히 블록체인 시스템이 더 큰 거래량으로 확장될 때 더욱 그렇습니다.
샤딩, 롤업 및 경량 클라이언트와 같은 새로운 방법은 거래 처리를 샤드 또는 롤업 체인에 분산시켜 각 노드가 모든 거래를 처리하지 않도록 합니다. 이렇게 하면 작업을 분산시켜 처리량을 높일 수 있습니다. 그러나 이렇게 하면 어떤 노드도 모든 데이터를 볼 수 없게 됩니다. 이는 개별 노드가 더 이상 모든 거래를 완전히 검증할 수 없음을 의미하며, 특정 거래 데이터가 손실되거나 숨겨지면 사기/ 유효성 증명을 생성할 수 없습니다. 데이터 가용성이 보장되지 않으면 경량 클라이언트는 특히 취약해집니다.
따라서 필요한 데이터의 접근성을 보장하는 것이 블록체인 확장의 주요 도전 과제가 되었습니다. 현재 과도한 중복 오버헤드를 발생시키지 않으면서 이러한 보장을 제공하기 위한 다양한 기술이 등장하고 있습니다.
데이터 가용성 문제
비트코인 및 (POS 이전의) 이더리움과 같은 전통적인 작업 증명 블록체인에서는 각 블록이 메타데이터 헤더와 거래 목록을 포함합니다. 이러한 네트워크의 전체 노드는 각 블록의 모든 거래를 다운로드하고 검증하며, 주로 거래를 독립적으로 실행하고 블록체인의 프로토콜 규칙에 따라 유효성을 검사합니다. 이러한 독립적인 거래 실행 방식은 전체 노드가 검증 및 다음 블록을 처리하는 데 필요한 현재 상태를 계산할 수 있게 합니다. 전체 노드가 이러한 거래 실행 및 검증을 수행함으로써, 무효 거래가 블록에 추가되는 것을 방지하는 중요한 거래 유효성 규칙을 적용할 수 있습니다.
경량 클라이언트
경량 클라이언트는 SPV("Simplified Payment Verification" 간소화된 결제 검증) 클라이언트라고도 불립니다. 전체 노드와는 다른 방법을 사용하여 대역폭과 저장 공간을 절약합니다. SPV 클라이언트는 블록 헤드만 다운로드하고 검증하며, 거래를 실행하거나 검증하지 않습니다. 반대로, SPV 클라이언트는 가정에 의존합니다; 블록체인 합의 알고리즘이 선호하는 체인, 즉 비트코인에서 가장 긴 체인은 프로토콜 규칙을 올바르게 따르는 유효한 블록만 포함합니다. 이렇게 하면 SPV 클라이언트는 실제 거래 실행 및 검증 작업을 블록체인의 합의 메커니즘 자체에 위임할 수 있습니다.
SPV 클라이언트의 보안 모델은 본질적으로 "정직한 다수"가 존재하는지 여부에 달려 있습니다. 예를 들어, 작업 증명 블록체인에서 광부가 거래 유효성 규칙을 올바르게 적용하고 소수의 무효 블록을 거부할 것입니다. 만약 대다수의 비정직한 광부나 블록 생산자가 공모한다면, 그들은 함께 불법 상태 전환을 가진 블록을 생성하여 토큰을 무단으로 생성하거나 자산 보호를 위반하거나 다른 형태의 도난이나 착취를 실현할 수 있습니다. SPV 노드는 이러한 악의적인 행동을 감지할 수 없습니다. 왜냐하면 실제로 거래를 검증하지 않기 때문입니다. 반면, 합의 메커니즘에 관계없이 전체 노드는 모든 프로토콜 규칙을 실행하므로 비정직한 다수 노드가 생성한 무효 블록을 즉시 거부합니다.
SPV 클라이언트의 보안 가정을 개선하기 위해, 사기/ 유효성 증명이라는 경고 메커니즘이 전체 노드가 암호 증명을 생성하여 경량 클라이언트에 주어진 블록이 명확히 무효 상태 전환을 포함하고 있음을 보여줄 수 있습니다. 유효한 사기/** 유효성 증명을 받은 후, 심지어 합의 메커니즘이 잘못된 무효 블록을 수용하더라도 경량 클라이언트는 해당 무효 블록을 거부할 수 있습니다.
그러나 사기/유효성 증명은 본질적으로 이러한 증명을 생성하는 전체 노드가 블록에서 참조된 전체 거래 데이터에 접근할 수 있어야 거래를 재실행하고 무효 상태 변화를 식별할 수 있습니다. 블록 생산자가 선택적으로 블록 헤드만 게시하고 특정 블록의 전체 거래 데이터 세트를 게시하지 않으면, 전체 노드는 사기/유효성 증명을 구축하는 데 필요한 정보를 얻을 수 없습니다. 이러한 네트워크에서 거래 데이터에 접근할 수 없는 상황을 "데이터 가용성 문제"라고 합니다.
데이터 가용성 보장이 없는 경우, 경량 클라이언트는 블록 생산자의 행동이 정직하고 올바르다고 믿을 수밖에 없습니다. 이러한 신뢰에 대한 완전한 의존은 사기/유효성 증명의 본래 목적을 위배하며, 경량 클라이언트 모델의 보안 이점을 훼손합니다. 따라서 데이터 가용성은 블록체인 네트워크에서 사기/유효성 증명의 예상 보안성과 유효성을 유지하는 데 매우 중요하며, 특히 더 큰 거래량으로 확장할 때 더욱 그렇습니다.
확장 솔루션의 데이터 가용성 요구
기존 네트워크의 데이터 가용성 요구 외에도, 데이터 가용성은 샤딩 및 롤업과 같은 거래 처리량을 높이기 위한 새로운 확장 솔루션에서 더욱 중요해지고 있습니다. 현재 proto-danksharding, EIP 4484, Celestia, EigenDA 및 Avail과 같은 많은 이니셔티브와 프로젝트가 롤업에 대해 효율적이고 경제적인 DA를 제공하기 위해 큰 진전을 이루고 있습니다.
샤딩 블록체인 아키텍처에서 검증자의 단일 네트워크는 더 작은 그룹 또는 "샤드"로 나뉘며, 각 그룹 또는 "샤드"는 일부 거래만 처리하고 검증합니다. 샤드는 다른 샤드의 거래를 처리하거나 검증하지 않기 때문에 개별 샤드 노드는 자신 특정 샤드의 거래 데이터만 접근할 수 있습니다.
롤업 과정에서 거래의 실행은 최적화된 환경에서 오프체인으로 이루어져 거래 처리량이 크게 증가합니다. 압축 및 요약된 거래 데이터만 롤업 운영자가 주기적으로 메인 체인 L1에 게시합니다. 이는 모든 거래를 L1에서 직접 실행하는 것과 비교하여 L1의 비용과 혼잡을 줄입니다.
샤딩과 롤업에서는 어떤 노드도 전체 시스템의 모든 거래를 검증하거나 관찰할 수 없습니다. 이전의 전통적인 단일 블록체인의 데이터 가용성 가정이 깨졌습니다. 만약 정렬자 운영자가 롤업 블록의 전체 거래 데이터 세트를 보류하거나, 악의적으로 공모한 검증자 그룹이 샤드에서 무효 블록을 생성하면, 다른 샤드나 L1의 전체 노드는 누락된 데이터에 접근할 수 없습니다. 이러한 데이터가 없으면 그들은 무효 상태 전환을 나타내는 사기/유효성 증명을 생성할 수 없습니다. 문제를 식별하는 데 필요한 데이터를 얻을 수 없기 때문입니다.
새로운 확장 모델을 통해 나쁜 행위자가 무효 거래를 선택적으로 숨기면서 충분한 가시성 블록 유효성을 유지하여 발견되지 않도록 할 수 있는 방법이 없다면, 경량 클라이언트는 샤드 노드와 롤업 운영자가 언제나 정직하게 행동할 것이라고 믿어야 합니다. 그러나 분산된 참여자들이 항상 정직하게 행동할 것이라고 믿는 것은 위험하며, 이는 블록체인이 인센티브 메커니즘, 탈중앙화 및 암호 기술을 통해 피하고자 하는 상황입니다.
크로스 샤드 거래 및 L2 솔루션의 맥락에서 경량 클라이언트 모델과 유효한 사기/ 유효성 증명의 예상 보안 이점을 유지하려면 전체 거래 데이터가 네트워크의 어딘가에서 언제든지 접근 가능하도록 보장해야 합니다. 데이터 자체는 모든 샤드의 모든 노드가 다운로드할 필요는 없지만, 참여자가 블록을 검증하고 잠재적 문제에 대한 사기/유효성 증명을 생성하려면 최소한 언제든지 이러한 데이터에 접근할 수 있어야 합니다.
데이터 가용성 솔루션
사람들은 모든 노드가 과도하게 전체 거래 데이터 세트를 다운로드하고 저장하지 않고도 "데이터 가용성"을 제공하는 데 도움이 되는 여러 방법을 제안하고 탐색했습니다:
데이터 가용성 샘플링
데이터 가용성 샘플링은 경량 클라이언트가 전체 거래 데이터 세트의 무작위 조각만 다운로드하여 거래 데이터의 가용성을 확률적으로 검사할 수 있도록 하는 기술의 일종입니다. proto-danksharding, Celestia, EigenDA 및 Avail과 같은 프로젝트는 KZG 약속 및 ZK 증명과 같은 다양한 새로운 기술을 시도하여 더 나은 샘플링을 구현하고 있습니다.
일반적으로 데이터 가용성 샘플링 솔루션은 삭제 인코딩에 의존합니다. 이 방법은 전체 거래 데이터 세트를 사용하고 계산적 중복을 추가하여 수학적으로 더 긴 인코딩 데이터 세트로 변환합니다. 충분한 인코딩 조각의 하위 집합이 사용 가능하면, 수학적 변환을 역전시켜 원래 데이터를 재구성할 수 있습니다.
경량 클라이언트는 무작위로 선택된 소량의 삭제 인코딩 데이터 조각을 가져와 검증합니다. 샘플링 조각이 누락되거나 사용 불가능한 경우, 전체 네트워크가 전체 삭제 인코딩 데이터 세트를 사용할 수 없음을 나타냅니다. 클라이언트가 데이터 세트의 무작위 조각에서 수집할 수 있는 샘플이 많을수록, 클라이언트가 누락된 데이터를 감지할 가능성이 높아집니다. 삭제 인코딩 매개변수는 경량 클라이언트가 매우 작은 비율의 조각(약 1%)만 무작위로 샘플링하여 전체 데이터 세트의 가용성을 매우 높은 통계적 신뢰도로 검증할 수 있도록 조정할 수 있습니다.
이러한 일반적인 방법은 경량 클라이언트가 실제로 전체 데이터 세트를 다운로드하지 않고도 매우 큰 거래 데이터 세트의 가용성을 매우 효율적으로 검사할 수 있게 합니다. 샘플은 또한 네트워크의 전체 노드와 공유되어 누락된 데이터 블록을 재구성하는 데 도움을 주며, 필요할 경우 사용 불가능한 데이터 블록을 복구합니다.
데이터 제공 위원회
위원회를 기반으로 한 데이터 가용성 솔루션은 거래 데이터 가용성 검증의 책임을 상대적으로 작은 신뢰할 수 있는 노드 그룹인 데이터 가용성 위원회(DAC)에 할당합니다. 위원회 노드는 블록 거래 데이터의 전체 사본을 저장하고, 메인 체인에 암호 서명을 게시하여 데이터가 실제로 완전히 사용 가능하다는 것을 나타냅니다. 이렇게 하면 경량 클라이언트는 이러한 서명을 저렴하게 검증하여 위원회 노드의 데이터가 사용 가능하다는 것을 확신할 수 있습니다. 실제로 데이터를 처리하거나 저장할 필요 없이 말입니다.
데이터 가용성 위원회가 본질적으로 해야 하는 타협은 경량 클라이언트가 위원회 노드가 데이터 가용성 신호를 올바르게 발신할 것이라고 믿어야 한다는 것입니다. 중앙 집중식 허가 위원회에 의존하는 것은 네트워크에 일정 수준의 집중 위험과 단일 실패 지점을 초래할 수 있습니다. Proof-of-Stake 검증자로 구성된 DAC 기술을 사용하고 부정 행위에 대해 엄격한 처벌을 가하면 경량 클라이언트의 신뢰 요구를 줄일 수 있지만 완전히 없앨 수는 없습니다.
데이터 샤딩
데이터 샤딩 솔루션에서 거래 데이터는 여러 샤드로 나뉘며, 경량 클라이언트는 모든 샤드에서 확률적으로 샘플링하여 전체 시스템의 데이터 가용성을 검증합니다. 그러나 크로스 샤드 샘플링을 구현하면 데이터 가용성 프로토콜의 복잡성이 크게 증가하며, 단일 실패 지점을 방지하기 위해 복잡한 네트워크 토폴로지가 필요할 수 있습니다.
간결한 증명
제로 지식 증명 및 zk-SNARK와 같은 새로운 암호 증명은 블록 내 상태 전환의 유효성을 증명하는 데 사용될 수 있으며, 어떠한 기본 거래 데이터도 누출하지 않습니다. 예를 들어, 유효성 증명은 롤업 블록 전환이 완전히 유효하다는 것을 증명할 수 있지만, 롤업 자체에서 사용되는 어떠한 개인 거래 데이터도 누출하지 않습니다.
그러나 본질적으로 데이터는 여전히 어딘가에 제공되어야 하며, 전체 노드가 자신의 로컬 상태를 올바르게 업데이트할 수 있습니다. 블록 생산자가 블록의 기본 거래 데이터를 전혀 제공하지 않으면 전체 노드는 최신 상태 균형과 완전성을 정확하게 추적할 수 없습니다. 간결한 증명은 상태 변화의 유효성을 보장할 수 있지만, 이러한 변화를 유도하는 기본 데이터의 가용성을 보장할 수는 없습니다.
결론
블록체인 거래량이 증가하고 샤딩 및 롤업과 같은 고급 아키텍처로의 전환이 이루어짐에 따라 데이터 가용성은 반드시 해결해야 할 주요 도전 과제가 되었습니다. 그러나 희망적인 것은 탈중앙화 블록체인 네트워크의 발전과 함께 데이터 가용성을 실현하고 이 문제가 확장성과 검열 저항성을 영구적으로 제한하는 장애물이 되지 않도록 할 수 있는 여러 가지 실행 가능한 경로가 존재한다는 것입니다.