brunch

You can make anything
by writing

C.S.Lewis

by Astin Apr 08. 2022

셀레스티아 백서

Celestia Whitepaper

레이지렛져 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) - 소프트웨어 이진법 투명성을 위해 비트코인 블록체인 위에 적용된 확장성 확보 설계 (실행 레이어가 필요없음) 

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

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

컨투어의 전반적인 구조

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

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari