Celestia Whitepaper
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 을 참고해주세요
1. SPV(Simple Payment Verification, 간단 지불 검증)이라고도 알려져 있는 라이트 클라이언트는 대다수의 블록 생성자들이 정직하다고 가정함
❐ 라이트 클라이언트들이 풀 노드의 거짓 증명을 받아 확률적 샘플링 기술과 같이 적용하게 함으로 블록 안의 데이터들이 다운로드될 수 있다는 것을 확인하고 대다수가 정직할 것이라고 짐작하지 않아도 됨
2. 거짓, 데이터 가용성 증명은 온체인 데이터가 가용하고 유효하다는 것을 보장하면서 블록체인의 온체인 확장성을 가능하게 해주는 핵심 기술임
3. 온체인 용량 vs. 보안성의 기회비용에 대한 선택
❐ 라이트 노드들이 풀 노드들로부터 유효하지 않은 블록들의 거짓 증명을 받고 검증하는 것을 가능하게 만든다면
최대 네트워크 딜레이 안에 거짓 증명을 생성하여 전파할 수 있는 정직한 풀 노드가 하나라도 있다는 짐작하에
라이트 노드 또한 유효하지 않은 블록을 거부할 수 있음
추가로 기술적인 내용을 참고하려면 원문 https://arxiv.org/pdf/1809.09044.pdf 을 참고해주세요
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 을 참고해주세요