Original알아보자

Aleo의 혁신적인 블록체인 데이터 저장 솔루션

BenftBenft2024-10-18 15:49


영지식 증명의 개념은 1985년에 발표된 논문 "The Knowledge Complexity of Interactive Proof Systems"에서 처음 소개되었습니다. 하지만 이 혁신적인 기술이 블록체인에서 실제로 사용되기 시작한 것은 최근 몇 년 사이의 일입니다.

Zcash는 영지식 증명을 활용하여 계좌 잔액의 프라이버시를 제공하는 최초의 체인 중 하나입니다. 비트코인과 같은 전통적인 암호화폐는 거래 세부 정보가 블록체인에 공개되는 반면, Zcash는 사용자가 자신의 거래를 숨길 수 있어 외부 관찰자에게 완전히 불투명하게 만듭니다. Zcash는 zk-SNARKs(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)라는 영지식 증명 시스템을 사용하여 당사자가 기본 데이터를 공개하지 않고도 계산의 유효성을 검증할 수 있도록 합니다.

최근에는 여러 zkEVM 호환 Layer-2 체인이 영지식 암호화 기술을 통해 이더리움의 확장성 문제를 해결하고 있습니다. 이들은 zk-rollups를 사용해 여러 상태 변화를 오프체인에서 처리한 뒤, 거래와 증명의 요약을 온체인에 게시함으로써 거래 수수료를 크게 줄입니다. 그러나 이러한 체인들은 주로 확장성을 위한 목적으로 영지식 기술을 사용합니다.

Aleo는 기본적으로 프라이버시를 제공하면서 일반적인 프로그래밍이 가능한 Layer-1 블록체인입니다. Aleo는 프라이버시와 확장성을 동시에 지원하는 최초의 블록체인 중 하나로, 본 기사에서는 Aleo의 데이터 저장 방식을 살펴보고 개발자들이 어떤 정보를 공개하고 어떤 정보를 비공개로 설정할 수 있는지에 대해 논의하겠습니다.

Aleo 상태 저장

프라이버시를 기본으로 제공하는 Aleo는 애플리케이션 상태 저장을 위해 레코드 모델을 사용합니다. 이는 비트코인의 UTXO 모델과 유사하지만, 추가적인 암호화가 포함되어 있습니다. Aleo는 개발자가 원할 경우 애플리케이션 상태를 공개할 수 있는 옵션도 제공합니다. 공개 상태는 이더리움에서처럼 계정 모델을 사용하여 저장됩니다.

레코드를 통한 비공개 상태 저장

레코드는 임의의 페이로드를 포함할 수 있는 기본 데이터 구조로, 사용자 자산이나 애플리케이션 상태를 인코딩하는 데 사용됩니다. 레코드는 프로그램의 전역 상태에서 특정 상태를 나타내며, 예를 들어 계정의 잔액이나 신원 문서 등을 포함할 수 있습니다.

Aleo의 레코드는 다음과 같은 형식으로 직렬화됩니다:


레코드는 Aleo에 배포된 프로그램에 연결되어 있으며, 소유자만이 레코드의 상태를 변경할 수 있는 권한을 가집니다. 기본적으로 비공개로 저장되며, 온체인에서 암호문 형태로 저장됩니다.

매핑을 통한 공개 상태 저장

Aleo의 공개 상태는 매핑 형태로 저장되며, 이는 키-값 쌍으로 구성됩니다. 누구나 Aleo 네트워크를 통해 Aleo 탐색기와 같은 도구를 사용하여 매핑의 상태를 조회할 수 있습니다.

프라이버시 상태 전환

Aleo에서는 비공개 및 공개 저장 상태를 모두 지원하여, 상태를 비공식에서 공개로, 또는 그 반대로 전환할 수 있는 흥미로운 기능이 제공됩니다.

예를 들어 포커 게임에서는 카드를 플레이어에게 나누어준 후 섞인 덱의 상태는 처음에는 비공식적으로 유지해야 합니다. 이후 "플랍" 단계에서 상위 3장의 카드가 공개될 때, 이 카드의 상태는 공개되어야 합니다.

뷰 키

Aleo는 각 계정에 대해 뷰 키(view key)라는 고유한 기능을 제공합니다. 뷰 키를 사용하면 자신의 계정의 모든 거래를 복호화할 수 있습니다. 이는 레코드를 지출할 권한을 부여하지 않기 때문에 개인 키와는 다릅니다.

공개 상태 vs. 비공개 상태

애플리케이션 상태를 공개 또는 비공개로 저장하는 선택은 프로그램의 특정 사용 사례에 따라 달라져야 합니다. Aleo는 단순히 완전히 비공식적이거나 공개적인 방식이 아니라, 개발자에게 선택권을 제공하는 이중 접근 방식을 지지합니다.

게다가 실제 응용 프로그램은 종종 공개 정보와 비공식 정보의 조합에 의존합니다. 예를 들어 투표의 경우, 유권자는 자신의 투표가 비공식적이기를 원하지만, 집계는 결과에 대한 신뢰를 위해 공개되어야 합니다.

Aleo는 프로그래밍 가능한 프라이버시를 강조하는 몇 안 되는 Layer-1 블록체인 중 하나입니다. 개발자는 자신의 프로그램의 특정 상태를 공개 또는 비공식적으로 설정할 수 있으며, 이는 다른 블록체인에서는 쉽게 구축할 수 없는 흥미로운 응용 프로그램을 가능하게 합니다.

지금 Aleo에서 개발을 시작하려면 GitHub를 방문하고 개발자 문서를 확인하세요.