Pallas와 Mithril 이해하기: Cardano 인프라로의 여정
Source: Dev.to
위의 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. 현재는 번역할 본문이 없으므로, 번역이 필요한 부분을 복사해서 알려 주세요.
Introduction
이 글에서는 Cardano 생태계의 Pallas와 Mithril 프로젝트에 대해 제가 배운 내용을 정리합니다.
Mithril 코드베이스를 살펴보고 기여하기 전에, 제 이해를 정리하고 올바른 멘탈 모델을 가지고 있는지 확인하고 싶었습니다. 목표는 Cardano 인프라스트럭처에서 일하는 블록체인 엔지니어가 되는 것입니다.
Cardano의 메인넷 및 핵심 노드 소프트웨어는 Haskell로 구현되어 있습니다. Haskell은 강력하지만, 특히 Rust와 같은 다른 언어를 사용해 Cardano와 직접 상호작용하려는 개발자들에게 높은 장벽을 만들곤 합니다. Cardano 데이터 포맷, 네트워크 프로토콜, 혹은 트랜잭션 구조를 저수준에서 이해하려면 보통 Haskell 코드를 읽고 cardano-node가 내부적으로 어떻게 동작하는지 파악해야 합니다. 여기서 Pallas가 등장합니다.
Source:
Pallas: Cardano용 Rust 라이브러리
Pallas는 Cardano의 데이터 형식과 프로토콜을 Rust 친화적인 방식으로 재구현한 Rust 라이브러리 모음입니다. 개발자는 Haskell을 직접 작성하거나 깊이 이해하지 않고도 Cardano 메인넷과 상호작용할 수 있습니다. 대신 Rust를 사용해 블록을 디코딩하고, 트랜잭션을 검사하며, 트랜잭션을 생성하고, Cardano 노드와 통신할 수 있습니다.
Modules
| Module | Responsibility |
|---|---|
| primitives | 트랜잭션, 블록, 값, 스크립트, 메타데이터 등 Cardano 데이터 타입 정의 |
| codec | 직렬화 및 역직렬화 처리 (주로 CBOR) |
| network | Cardano 노드 간 통신 프로토콜 구현 |
| txbuilder | Cardano 트랜잭션 구성 지원 |
| traverse | 시대에 구애받지 않는 블록 및 트랜잭션 검사 방법 제공 |
| hardano | Cardano 노드 저장 포맷과의 상호 운용 |
| crypto | Cardano에서 사용되는 암호화 유틸리티 |
| math / utxorpc | 지원 유틸리티 및 상호 운용 계층 |
이 모든 모듈은 하나의 핵심 아이디어에 집중합니다: Rust에서 Cardano 데이터와 프로토콜을 올바르게 표현하고, 인코딩·디코딩하며, 상호작용하는 방법. Pallas 덕분에 Rust 개발자는 지갑, 인덱서, 익스플로러, 분석 서비스 및 기타 인프라 구성 요소를 Haskell 코드에 의존하지 않고 구축할 수 있어, Cardano 생태계에서 시스템 수준 개발에 대한 진입 장벽을 크게 낮출 수 있습니다.
Mithril: Cardano 상태의 효율적인 검증
Pallas가 개발자들이 Cardano와 상호작용하도록 돕는 한편, 또 다른 큰 과제가 남아 있습니다: 검증과 동기화. 처음부터 Cardano 데이터를 완전히 검증하려면 클라이언트는 일반적으로 매우 방대한 블록체인 데이터를 다운로드하고 검증해야 합니다. 실제로 많은 애플리케이션이 전체 노드나 신뢰할 수 있는 서버에 의존하는데, 이는 모든 데이터를 로컬에서 다운로드하고 검증하는 것이 느리고 자원 집약적이기 때문입니다. Mithril은 이 문제를 해결합니다.
핵심 개념
- 스냅샷 – 특정 시점의 Cardano 체인 상태를 압축한 표현.
- 인증서 – 전체 ADA 스테이크 중 큰 비율을 대표하는 스테이크 풀 운영자들이 이 스냅샷을 승인했음을 보여주는 작은 암호학적 증명.
클라이언트는 스냅샷과 인증서를 모두 다운로드한 뒤, 로컬에서 인증서를 검증합니다. 인증서가 유효하면, 클라이언트는 해당 스냅샷이 그 시점에 Cardano 네트워크가 합의한 체인 상태를 나타낸다고 신뢰할 수 있습니다.
Note: Mithril은 개별 트랜잭션이나 UTXO를 재검증하지 않습니다; 그 작업은 이미 Cardano 노드가 수행합니다. Mithril은 전체 트랜잭션 히스토리가 아니라 결과 상태에 대한 합의를 검증합니다.
장점
- 빠른 부트스트랩 – 클라이언트가 전체 체인을 다운로드하지 않고도 블록체인 상태를 사용할 수 있습니다.
- 인프라 및 저장 비용 감소 – 저장 및 전송해야 할 데이터 양이 줄어듭니다.
- 스테이크 기반 보안 – 신뢰는 단일 중앙 서버가 아니라 Cardano의 스테이크 가중 모델에서 파생됩니다.
이러한 특성 덕분에 Mithril은 인프라 도구, 인덱서, 연구 시스템 및 향후 상호운용성 솔루션에 특히 유용합니다.
관련 주제 (간략히 언급)
브리지, 사이드체인, 오라클, 그리고 체인 간 상호운용성은 Mithril과 밀접하게 관련되어 있지만, 블록체인 시스템과 보안 모델에 대한 더 깊은 이해가 필요합니다. 저는 나중에 이 주제들을 공부할 계획입니다.
향후 작업
다음은 제가 앞으로 할 일입니다:
- Mithril 프로젝트 구조를 깊이 파고들기.
- 각 모듈이 어떻게 작동하는지, 왜 존재하는지, 시스템이 엔드‑투‑엔드로 어떻게 운영되는지 이해하기.
- Mithril 프로젝트에 기여하고 블록체인 엔지니어로 성장하기.