[논문 리뷰] LazyLedger: A Distributed Data Availability Ledger With Client-Side Smart Contracts
LazyLedger는 블록체인을 순서 정렬 및 데이터 가용성 보장 전용으로 사용함으로써 합의와 거래 검증을 분리하는 블록체인 아키텍처를 제안한다. 클라이언트 측에서 애플리케이션 로직을 실행하기 위해 확률적 데이터 가용성 검증을 활용함으로써 노드 자원 사용을 줄이고, 동일한 체인 상에서 다수의 애플리케이션이 상호 간 영향을 최소화하면서 공존할 수 있도록 한다.
We propose LazyLedger, a design for distributed ledgers where the blockchain is optimised for solely ordering and guaranteeing the availability of transaction data. Responsibility for executing and validating transactions is shifted to only the clients that have an interest in specific transactions relating to blockchain applications that they use. As the core function of the consensus system of a distributed ledger is to order transactions and ensure their availability, consensus participants do not necessarily need to be concerned with the contents of those transactions. This reduces the problem of block verification to data availability verification, which can be achieved probabilistically with sub-linear complexity, without downloading the whole block. The amount of resources required to reach consensus can thus be minimised, as transaction validity rules can be decoupled from consensus rules. We also implement and evaluate several example LazyLedger applications, and validate that the workload of clients of specific applications does not significantly increase when the workload of other applications that use the same chain increase.
연구 동기 및 목표
- 합의 과정과 거래 검증을 분리하여 블록체인 확장성을 향상시키고, 전체 노드의 부담을 줄이기 위해.
- 최종 사용자가 합의 노드가 모든 거래를 처리할 필요 없이 애플리케이션 전용 로직을 독립적으로 검증하고 실행할 수 있도록 하기 위해.
- 블록 검증 과정을 데이터 가용성 검증으로 단순화하여 확률적 샘플링을 통해 선형 이하의 복잡도를 달성하기 위해.
- 다양한 독립적인 애플리케이션들이 동일한 블록체인 상에서 최소한의 성능 영향을 주고받으며 공존할 수 있도록 하기 위해.
- 애플리케이션 로직이 온체인에서 강제되지 않는 새로운 블록체인 패러다임을 탐색하여 로직 변경 시 하드 포크가 필요 없도록 하기 위해.
제안 방법
- 합의 노드가 블록의 데이터 가용성만 확인하도록 하는 블록체인 아키텍처를 설계하며, 블록 유효성 검증을 위한 두 가지 규칙(전체 다운로드 규칙 및 확률적 샘플링 규칙)을 사용한다.
- 애플리케이션별로 거래를 정렬하기 위해 네임스페이스가 적용된 머클 트리를 사용하여 클라이언트가 관련 데이터만 효율적으로 쿼리하고 검증할 수 있도록 한다.
- 클라이언트 측에서 애플리케이션 로직을 실행하도록 구현하여, 관심 있는 클라이언트만 자신의 애플리케이션에 해당하는 거래를 처리하고 검증하도록 한다.
- 확률적 데이터 가용성 검증을 적용하여 합의 노드가 전체 블록을 다운로드하지 않고도 블록의 가용성을 검증할 수 있도록 한다.
- 통화, 네임 레지스트리, 청원 등 예시 애플리케이션을 포함한 프로토타입을 구축하여 성능과 확장성 평가를 수행한다.
- 다양한 애플리케이션 워크로드에서 클라이언트 측 작업량과 데이터 다운로드 오버헤드를 측정하여 격리 성능을 검증한다.
실험 결과
연구 질문
- RQ1보안 및 가용성 보장을 유지하면서도 합의 과정과 거래 검증을 분리할 수 있는가?
- RQ2확률적 샘플링을 사용할 경우 데이터 가용성 검증이 얼마나 선형 이하의 복잡도로 달성될 수 있는가?
- RQ3동일한 체인 상에서 다른 애플리케이션이 높은 부하를 경험할 때, 한 애플리케이션의 클라이언트 부하가 어떻게 증가하는가?
- RQ4애플리케이션 로직을 온체인에서 완전히 이전하여 합의 수준의 변경이나 하드 포크 없이 클라이언트 측에서 실행할 수 있는가?
- RQ5공유 블록체인 환경에서 전통적인 전용 노드 검증 대비 클라이언트 측 검증의 성능 오버헤드는 어느 정도인가?
주요 결과
- LazyLedger는 블록 검증을 데이터 가용성 검증으로 단순화하여, 전체 블록을 다운로드하지 않고도 확률적 샘플링을 통해 선형 이하의 복잡도를 달성한다.
- 다른 애플리케이션이 높은 트랜잭션 볼륨을 경험하더라도, 한 애플리케이션의 클라이언트는 성능 저하를 거의 경험하지 않는다.
- 애플리케이션 증명의 크기와 상태 저장소 크기는 관련 없는 애플리케이션 활동과 독립적으로 작고 일정하게 유지되어 작업량 격리가 성공적으로 구현됨을 보여준다.
- 15개의 샘플을 사용한 확률적 데이터 가용성 검증은 강력한 가용성 보장을 제공하면서도 클라이언트의 다운로드 요구량을 크게 줄였다.
- 애플리케이션 로직은 합의 수준의 변경이나 하드 포크 없이도 클라이언트 측에서 독립적으로 업데이트 가능하여 애플리케이션 상태의 자율성을 실현한다.
- 프로토타입은 클라이언트 측 실행과 선택적 데이터 액세스가 실질적으로 가능하고 효율적임을 입증하였으며, 개별 애플리케이션에 대한 오버헤드가 최소한임을 보였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.