brunch

셀레스티아 백서

Celestia Whitepaper

by Astin

레이지렛져 LazyLedger (Celestia의 전신)

1. 요약

트랜잭션 데이터를 정렬(ordering)하고 데이터 가용성(availability)을 보장하는 것에 특화된 데이터 분산 저장 시스템 (블록체인)

사용하는 어플리케이션과 관련이 있는 클라리언트에게 트랜잭션 실행과 유효성 검증의 책임이 있음

합의(컨센서스) 규칙과 유효성 검증 규칙을 분리

합의 참여자들은 트랜잭션의 내용을 살펴볼 필요가 없음 - 블록 검증 문제를 데이터 가용성 문제로 줄임

전체 블록을 다운로드 받지 않고도 선형 이하의 복잡성을 통해 확률적으로 가능함

블록 유효성 검증의 부담을 줄이는 것은 결국 전체 블록체인을 다운받지 않더라고 새로운 트랜잭션에서 완전한 합의에 도달할 수 있는 것을 의미 - 확률적 데이터 가용성 검증 기술을 사용

'가상의' 사이드체인 시스템으로 비유할 수 있음


2. 기술적 특징

블록 헤더만을 다운로드 받는 라이트 클라이언트들은 트랜잭션의 목록이 트랜잭션 유효성 규칙을 따른다고 가정함

이레이져 코딩(erasure coding) - 에러를 고쳐주는 코드로 k개의 메세지를 충분히 큰 n개로 늘려, n개 중 k’개의 메세지만 가지고도 원본 메세지를 복원할 수 있게 하는 기법

랜덤 샘플링 사용

전체 데이터를 부분을 이용하여 복원하고 세부 항목들은 원래 데이터와 비교해 연산결과와 거짓증명을 검증함


3. 노드 종류와 블록체인 모델

a. 컨센서스 노드: 합의 메커니즘에 참여함

b. 스토리지 노드: 데이터를 블록체인에 저장함

c. 클라이언트 노드: 트랜잭션 데이터를 발행하고 수집함


4. 블록 유효성 규칙

❐ 규

데이터 가용성에 대한 안정성 확보: 만약 하나의 정직한 노드가 블록이 가용하다고 인식하면, 적어도 하나의 정직한 노드는 전체 블록 데이터를 갖고 있거나 최대 지연 속도인 k × δ를 가지고 전체 블록 데이터를 가질 수 있음 (여기서 δ는 최대 네트워크 지연 속도)

데이터 가용성에 대한 합의: 만약 하나의 정직한 노드가 블록이 가용하다고 인식하면, 모든 다른 정직한 노드들도 그 블록을 최대 지연 속도인 k × δ를 가지고 그 블록을 수용하게 됨 (여기서 δ는 최대 네트워크 지연 속도)


5. 어플리케이션 모델

스마트 컨트랙트는 컨센서스 참여자들 보다는 사용자 클라이언트에 의해 실행됨

어플리케이션 규칙은 전체가 오프체인에서 어플리케이션의 클라이언트들에 의해 설정되고 합의됨, 또한 어느 프로그래밍 언어나 환경에서 작성될 수 있음

따라서 어플리케이션 상태 자율성을 확보하는 것은, 어플리케이션 사용자들이 다른 관계없는 (혹은 의존적인) 어플리케이션을 통해 메세지를 실행하지 않는 것을 의미함


6. 프로토타입과 몇몇 예시

a. 통화(currency) 어플리케이션

클라이언트들이 엘립틱 커브 공개 키(elliptic curve public key) 주소 간에 금액의 이동을 트랜잭션을 배포할 수 있음

트랜잭션은 송신자의 공개 키, 금액의 규모를 명시하여 전송하고 수신자의 주소로 서명됨

키-값 저장소에서, 키는 공개 키이고 값은 유효한 트랜잭션 이후에 업데이트되는 각각의 공개 키에 해당하는 가치를 말함


b. 이름 신청 어플리케이션

잔액이 가장 위에 있는 트랜잭션을 연결되어 있는 통화 어플리케이션을 통해 기록관의 공개 키로 보내 클라이언트들이 잔액을 사용하여 이름을 신청할 수 있게 함

잔액이 충분하다면 신청하는 트랜잭션을 보내 특정 이름을 공개 키에 적용되게 신청하고 잔액을 차감함

이름 신청 어플리케이션은 각각의 공개 키의 잔액이 우선적으로 보이는 하나의 키-값 저장소와, 각각의 공개 키에 등록된 이름과 공개 키에 대응하는 값을 담은 또 다른 키-값 저장소를 가짐


c. 무작위 사이즈의 특정한 키-값 페어를 키-값 저장소에 추가해주는 테스트 목적으로 사용되는 어플리케이션


추가로 기술적인 내용을 참고하려면 원문 https://arxiv.org/abs/1905.09274 을 참고해주세요



거짓, 데이터 가용성 검증 Fraud and Data Availability Proofs

1. SPV(Simple Payment Verification, 간단 지불 검증)이라고도 알려져 있는 라이트 클라이언트는 대다수의 블록 생성자들이 정직하다고 가정함

라이트 클라이언트들이 풀 노드의 거짓 증명을 받아 확률적 샘플링 기술과 같이 적용하게 함으로 블록 안의 데이터들이 다운로드될 수 있다는 것을 확인하고 대다수가 정직할 것이라고 짐작하지 않아도 됨


2. 거짓, 데이터 가용성 증명은 온체인 데이터가 가용하고 유효하다는 것을 보장하면서 블록체인의 온체인 확장성을 가능하게 해주는 핵심 기술임


3. 온체인 용량 vs. 보안성의 기회비용에 대한 선택

라이트 노드들이 풀 노드들로부터 유효하지 않은 블록들의 거짓 증명을 받고 검증하는 것을 가능하게 만든다면

최대 네트워크 딜레이 안에 거짓 증명을 생성하여 전파할 수 있는 정직한 풀 노드가 하나라도 있다는 짐작하에

라이트 노드 또한 유효하지 않은 블록을 거부할 수 있음


추가로 기술적인 내용을 참고하려면 원문 https://arxiv.org/pdf/1809.09044.pdf 을 참고해주세요



안정적으로 블록체인 바탕 레이어 확장 Securely Scaling Blockchain Base Layers

1. 탈중앙화, 보안성과 공개 유효성을 훼손하지 않으면서 탈중앙화 블록체인 네트워크의 베이스 레이어를 확장하고자 함


2. 체인 스페이스(Chainspace) - 노드가 평행적으로 트랜잭션의 합의에 도달하고 진행하게 함으로 블록 생성을 늘리고 온체인 처리율을 증가시키는 블록체인 샤딩(sharding) 시스템

어플리케이션 개발자들이 조정된 객체에서 작동하고 있는 스마트 컨트랙트를 명명하고 호출하는 과정에서 분배된 렛져(ledger) 적용을 가능하게 하고 렛져가 작동하고 확장하는 방식의 디테일을 압축함

인프라 노드의 네트워크가 유효한 객체를 관리하고 키가 변하지 않도록 보장: 오직 유효한 트랜잭션만 적용됨


3. 거짓, 데이터 가용성 증명 시스템 System of fraud and data availability proofs

온체인 데이터에 부담을 증가시키지 않으면서 합의에 참여하는 노드들의 활동을 효율저긍로 검증함

유효하지 않은 블록들은 효율적으로 제한됨

모든 사용자들이 모든 트랜잭션을 다운받을 필요가 없음


4. 레이지렛져 - 합의 레이어가 실행 레이어로부터 분리되어있게 설계된 블록체인

합의는 데이터의 가용성 증명을 통해 데이터의 가용성을 확인하는 역할만 함

트랜잭션은 오프체인에서 일어남

노드들이 블록을 검증하기 위해 온체인 트랜잭션을 실행할 필요성을 제거함


5. 컨투어(Contour) - 소프트웨어 이진법 투명성을 위해 비트코인 블록체인 위에 적용된 확장성 확보 설계 (실행 레이어가 필요없음)

어떠한 협동 비용도 필요없이 보안성을 제공해주는 솔루션

❐ 중앙 주체를 선택해 승인을 허용해주는 방식이나 시빌 어택으로부터 자유로운 로그 서버들을 구축하는 방식

Screen Shot 2022-04-06 at 16.43.57.png 컨투어의 전반적인 구조

추가로 기술적인 내용을 참고하려면 원문 https://discovery.ucl.ac.uk/id/eprint/10117245/1/thesis.pdf 을 참고해주세요

keyword
작가의 이전글셀레스티아에 대하여