넓은 정의에 따르면 EVM 스마트 계약은 공유 가능한 분산 데이터베이스에 배포된 이벤트 중심의 상태 저장 컴퓨터 프로그램입니다. 이 설계는 원래 분산화와 보안을 보장하기 위한 것이었습니다. 각 노드는 스마트 계약의 모든 작업을 수행해야 하며, 각 계약의 상태 변경은 실시간으로 기록되어 블록체인에 지속적으로 저장되어야 하며, EVM 스마트 계약은 각 트랜잭션이 그러나 체인의 상태가 복잡해짐에 따라 개별 노드가 이러한 상태를 관리하고 동기화하는 것이 점점 더 어려워지고 있으며, 특히 여러 스마트 계약에 빈번한 업데이트가 필요한 경우 상태 잠금 충돌이 발생할 위험이 있습니다. (잠금 충돌) 및 상태 동기화가 더 두드러집니다.
이러한 맥락에서 로그 기반 스마트 계약은 기존 아키텍처의 한계를 뛰어넘는 새로운 패러다임이 되었습니다. 체인에서 계약 상태 저장소를 분리하고 이를 변경할 수 없는 메시지 로그에 숨김으로써 이 아키텍처는 확장성을 향상시킬 뿐만 아니라 전체 노드의 계산 부담을 크게 줄입니다. AO Holographic State는 이 새로운 패러다임의 전형적인 대표자입니다. 이는 Arweave의 영구 저장 및 분산 컴퓨팅을 사용하여 보다 투명하고 확장 가능한 스마트 계약 실행 방법을 만듭니다.
로그 기반 스마트 계약이란 무엇입니까?
로그 기반 스마트 계약은 기존 스마트 계약과 다릅니다. 기존 스마트 계약은 상태 중심이며 모든 변경 사항에 대한 기록을 유지하지 않고 현재 시스템의 최신 상태를 직접 저장합니다. 로그 기반 스마트 계약은 계약을 실시간으로 저장하지 않습니다. 대신 사용자의 상호 작용 로그(또는 트랜잭션 이벤트 로그)를 기록하여 상태의 동적 계산을 구동합니다. 이는 모든 스마트 계약 상호 작용(예: 트랜잭션, 상태 업데이트 등)이 불변 로그를 생성하고 이러한 로그가 영구 저장소 계층에 영구적으로 저장됨을 의미합니다. 현재 상태를 쿼리해야 하는 경우 모든 노드는 이러한 로그를 통해 현재 계약 상태를 다시 계산하기만 하면 됩니다.
- 상호 작용 로그 : 스마트 계약의 각 작업이나 트랜잭션은 로그를 생성합니다. 이 로그는 이벤트 기반 프로그래밍의 이벤트 트리거와 유사하게 계약의 상태 변경을 기록합니다.
- 동적 상태 재구성 : 컨트랙트의 현재 상태는 직접 저장되지 않고, 관련 로그를 모두 읽고 계산하여 얻습니다. 스마트 계약의 상태는 로그를 읽어 언제든지 재구성할 수 있습니다.
- 불변 저장 계층 : 로그는 일반적으로 장기 저장을 위해 특별히 설계된 불변 저장 계층인 Arweave에 저장되어 모든 로그 기록이 영구적이고 변조될 수 없도록 보장합니다.
이더리움 확장 솔루션인 Optimistic Rollup 의 검증 메커니즘도 이 로그 기반 스마트 계약 아키텍처와 다소 유사합니다. Rollup 하위 체인은 트랜잭션 배치를 생성하여 이더리움 메인 체인에 제출하지만 전체를 저장하지는 않습니다. 계약 상태를 유지하지만 상태 재구성 및 검증을 구동하기 위해 ""상태 루트" 및 "트랜잭션 로그"를 전달합니다. 메인 체인에는 서브 체인이 제출한 간단한 거래 인증서만 있으며, 7일 문제 해결 메커니즘을 통해 상태가 확인됩니다. 누구나(이론적으로는 현재 OP만 화이트리스트를 확인할 수 있음) 제출된 거래 로그를 통해 상태를 다시 계산하고 이의를 제기할 수 있습니다.
AO 기록 상태 변경 로그 - 홀로그램 상태
홀로그램 상태는 분산 컴퓨팅을 위한 무제한 확장성을 제공하는 AO의 핵심 혁신입니다. AO는 계산 자체의 상태에 대한 합의에 도달하는 대신 상호 작용 로그가 Arweave에 저장되도록 하여 상태의 "홀로그램"을 생성합니다.
기존 아키텍처에서는 각 노드가 전체 계약 상태를 저장해야 하며 시간이 지남에 따라 상태 저장에 대한 필요성이 계속 증가합니다. 이러한 병목 현상을 극복하기 위해 AO 홀로그램 상태 아키텍처가 탄생했습니다. AO 홀로그램 상태는 고유한 로그 기반 방법을 사용하여 계약의 모든 상태 변경을 기록하여 상태의 일관성과 무결성을 보장하는 동시에 복잡한 처리를 단순화합니다. 상호작용 시나리오. 프로세스 상태는 주로 Arweave에 저장된 상호 작용 로그에 암시되어 있으며, 이는 모든 참가자가 결정적으로 계산할 수 있습니다. 이 접근 방식을 사용하면 직접 모니터링되지는 않지만 프로세스 상태를 독립적으로 확인할 수 있고 네트워크 전체에서 일관성을 유지할 수 있습니다. Arweave의 불변 스토리지 기능을 활용하여 확장성을 보장하고 계산 오버헤드를 줄이는 동시에 분산형 컴퓨팅을 향상시키려는 AO의 노력을 강조합니다.
이는 또한 홀로그램 상태의 "무한한 확장성"을 반영합니다. 계약의 과거 상태 변경 로그 만 기록되고 요청 시 상태가 재구성됩니다 . 노드는 지속적으로 실시간 계산을 수행할 필요가 없으므로 컴퓨팅 소비가 줄어듭니다. 자원.
로그 기반과 상태 기반
참고: 이 장에서는 새로운 계약 솔루션을 소개하고 객관적인 사실을 설명합니다. 어떤 솔루션이 더 나은지 선택하려는 경향은 없습니다.
데이터 로그 저장 차이점
이더리움은 계약의 과거 상태 변경 로그를 저장하지 않나요? 이더리움은 계약의 과거 상태 변경 로그도 저장하지만 처리 방법은 AO 홀로그램 상태 아키텍처와 크게 다릅니다.
이더리움 노드는 전체 네트워크의 현재 상태 트리(MPT 트리, Merkle Patricia Tree)를 유지하며, 새로운 트랜잭션이 블록으로 패키징되어 실행될 때마다 상태 트리가 즉시 업데이트되어 각 전체 노드가 저장해야 합니다. 그리고 이 상태 트리를 유지합니다. 상태 트리는 계정의 상태 업데이트(예: 잔액, 임시값, 스마트 계약 저장 변경 등)를 기록하고 이러한 업데이트를 블록의 상태 루트(상태 루트)에 기록합니다. 로그는 트랜잭션 영수증에 저장되는 추가 정보일 뿐이며 상태 트리의 어떤 부분에도 영향을 주거나 기록하지 않습니다.
Ethereum은 모든 거래 및 관련 이벤트를 기록하지만 이 데이터는 계약의 특정 상태 변경과 동일하지 않습니다. 로그는 원래 이벤트 모니터링 및 쿼리 기능을 위해 설계되었습니다. Ethereum의 로그는 일반적으로 상태 데이터 보다는 이벤트 데이터를 기록합니다. 이벤트는 스마트 계약의 emit
키워드를 통해 생성될 수 있으며, 이러한 이벤트는 외부 애플리케이션의 쿼리를 용이하게 하기 위해 트랜잭션 실행 중에 일부 중요한 정보만 기록합니다. 이러한 이벤트에는 계약 저장 변수나 계약 상태의 세부적인 변경 사항이 포함되어 있지 않으므로 Ethereum의 로그를 사용하여 AO 홀로그램 상태와 같은 계약 상태를 재구성할 수 없습니다.
계약 상태를 재구성하려면 모든 과거 트랜잭션의 재생과 상태 트리 재구성에 의존해야 합니다. 따라서 AO 홀로그램 상태는 이더리움의 로그보다 더 많은 정보를 저장하게 되므로 본질적으로 하드디스크 저장공간을 희생하여 메모리 및 실시간 컴퓨팅의 부담을 줄이려는 전략이다. EIP-4844가 "blobs" 임시 데이터 유형을 도입하더라도 이더리움의 데이터 저장 비용은 너무 높기 때문에 Rollup이 더 낮은 비용으로 더 많은 데이터를 이더리움 메인 체인에 제출할 수 있습니다. 그러나 Blob 데이터는 약 18일 동안 합의 레이어 노드에 저장된 후 삭제되는데 , 이는 영구 로그 저장 및 영구 추적성의 개념에 부합하지 않으므로 단기적으로는 이 패러다임이 적용되지 않을 수 있습니다. 샤딩 업그레이드 후 채택 및 기타 공개 기업용 체인은 더 저렴하고 쉽게 확장 가능한 하드 디스크 스토리지를 가능하게 하고 메모리와 컴퓨팅 리소스를 확보하는 스토리지 체인인 Arweave를 상속할 수 있습니다.
상태 인플레이션 및 내결함성 문제
이더리움의 설계는 국가 인플레이션이라는 숨겨진 문제로 이어집니다. 각 풀 노드는 모든 컨트랙트와 계정의 최신 상태를 실시간으로 유지해야 하기 때문에 상태 데이터는 블록 데이터와는 달리 정적이며 영구적으로 저장된 후 자주 읽고 쓸 필요가 없습니다. 상태 데이터는 여러 번 읽고 써야 합니다. 상태 데이터의 양이 늘어날수록 읽고 쓰는 부담은 점점 더 무거워집니다.
전체 상태 트리를 직접 저장하는 이더리움과 비교하여 홀로그램 상태는 로그를 통해 전역 상태에 대한 의존도를 줄입니다. 상태 저장소를 실시간 메모리에서 하드 디스크로 이동함으로써 노드는 전역 상태를 실시간으로 업데이트하고 유지할 필요가 없지만 필요에 따라 상태를 재구성하여 상태 업데이트를 개별 로그 기록으로 나눌 수 있습니다 .
이 설계 개념은 몇 가지 중요한 이점을 제공합니다. 첫째, 로그 기반 모델은 모든 작업이 로그를 기반으로 순차적으로 실행되어 상태 변경의 일관성과 검증 가능성을 보장하므로 상태 충돌 및 경쟁 조건의 발생을 줄입니다. 둘째, 로그 기반 스마트 계약은 자연스럽게 상태 역추적을 지원하고, AO 홀로그램 상태는 더 낮은 오버헤드로 상태 재구성을 실현하여 스마트 계약을 더욱 내결함성 있고 투명하게 만듭니다.
비동기식 블록체인 DeFi의 어려움
제가 말해야 할 것은, 특히 DeFi 분야에서 실제 적용 관점에서 볼 때 AO와 같은 비동기식 블록체인은 확장성 측면에서 이론적 이점을 가지고 있지만 비동기식 블록체인의 이더리움과 동일하게 유지된다는 것입니다. 왜냐하면 구성성은 여전히 어렵기 때문입니다. 특정 시점에 일관된 상태에 도달하려면 여러 행위자가 조정되어야 하며, 이를 위해서는 모든 트랜잭션의 순서와 종속성에 대한 정확한 조정이 필요합니다. 네트워크의 특정 노드에서 트랜잭션 처리가 지연되면 다음과 같은 문제가 발생할 수 있습니다. 전반적인 트랜잭션 로직이 잘못되었거나 상태가 일관되지 않습니다. 비동기식 환경에서 동시에 발생하는 DeFi 거래는 이중 지출 이나 상태 혼란과 같은 문제가 발생하기 매우 쉽습니다. 이는 실제로 생태학적 DeFi 애플리케이션의 보안과 신뢰성에 위협이 됩니다.
로그 기반 스마트 계약은 이러한 문제를 어느 정도 완화할 수 있습니다. 로그 기반 아키텍처를 통해 트랜잭션 실행은 여러 노드에서 비동기적으로 처리될 수 있으며, 각 트랜잭션의 변경 사항은 로그 시스템을 통해 기록됩니다. 트랜잭션의 실행 순서는 노드마다 차이가 있으며, 결국 시스템은 역추적 로그를 통해 올바른 상태를 재구성할 수 있습니다. 또 다른 큰 장점은 장애 복구입니다. 로그 드라이버를 통해 시스템은 각 트랜잭션 단계의 세부 정보를 기록할 수 있으며, 트랜잭션이 실패하면 로그를 사용하여 이전의 올바른 상태로 롤백하거나 비동기 보상을 수행할 수 있습니다. 이 메커니즘은 특히 동시 트랜잭션이 많은 환경에서 DeFi 시스템의 높은 내결함성을 위해 매우 중요합니다. 로그 기반 설계는 전체 안정성에 영향을 주지 않고 일부 트랜잭션이 실패할 수 있도록 허용하지만 로그 추적을 통해 최종 일관성을 보장합니다. 또한 공급망 관리 시나리오에서 로그 기반 스마트 계약은 전체 프로세스 상품 추적 및 검증을 실현할 수 있습니다. 생산, 운송, 창고 등 각 상품의 상태 변화는 로그를 통해 기록되고 전체 과정을 명확하게 표시할 수 있습니다. 제품의 수명주기.
결론
오늘날 빠르게 발전하는 블록체인 기술 분야에서 로그 기반 스마트 계약 아키텍처는 기존 아키텍처의 상태 관리 및 확장성 문제를 해결하기 위한 새로운 관점을 제공합니다. AO 홀로그램 아키텍처는 체인에서 상태 저장을 분리하고 계약 상태 변경을 변조할 수 없는 상호 작용 로그에 기록함으로써 컴퓨팅 리소스 소비를 줄일 뿐만 아니라 시스템의 확장성을 크게 향상시킵니다.
로그 기반 스마트 계약의 핵심은 로그 기반 접근 방식을 통해 상태의 동적 계산 및 재구성을 보장함으로써 전역 상태의 실시간 유지 관리 필요성을 줄이는 것입니다. 이 설계를 통해 노드는 필요에 따라 계약 상태를 재구축하여 상태 확장으로 인한 스토리지 및 컴퓨팅 부담 문제를 피할 수 있습니다. 동시에 계약 자체는 로그 순서에 따라 실행되어 상태 충돌과 경쟁 조건을 효과적으로 줄이고 계약 실행의 일관성과 투명성을 향상시킵니다.
블록체인 애플리케이션이 점점 복잡해짐에 따라 로그 기반 스마트 계약은 향후 분산 컴퓨팅에서 중요한 추세가 될 것이며 개발자에게 비동기식 블록체인의 구성성 문제를 해결할 것으로 예상되는 새로운 아이디어를 제공할 것입니다.