26-7-4 스팀의 스마트콘트랙트 도입 시도에 대한 내용

in AVLE 일상last month

@blaze.apps 가 새로운 스팀 스마트 콘트랙트에 대한 보고를 올려왔습니다. 스팀의 발전을 위해 스마트 콘트랙트가 필요하다는 이야기가 증인 디스코드에 올라왔었는데 어제 이에 관한 보고가 올라왔습니다. @blaze.apps는 이미 한참 전부터 스팀에 스마트 콘트랙트를 올리는 방법을 시도하고 있었는데 이제 구체화된 것 같습니다 .

내용은 아래에서 참고하실 수 있습니다.

https://steemit.com/steem-dev/@blaze.apps/steem-virtual-machine-update-goodbye-cosmos-sdk-hello-layer-2-on-revm

한글로 번역을 하고 AI에게 요약및 평가를 시켰습니다. 아래를 보시기 바랍니다.
이런 시도가 계속되고 있다는 것이 스팀에 여전히 희망이 있다는 것을 의미한다고 하겠습니다.


1. 본문 번역 (Translation)

일부 유저분들은 제가 STEEM에 스마트 컨트랙트를 도입하기 위해 진행해 온 작업을 팔로우하고 계셨을 것입니다. 오늘 저는 제가 내린 중대한 결정과 그 이유, 그리고 대신 무엇을 구축했는지에 대한 상세한 내용을 포함한 주요 업데이트를 공유하고자 합니다. 요약하자면, Steem 가상 머신(SVM)은 이제 자체 합의 프로토콜 없이 Steem 블록체인에 직접 앵커링된 레이어 2(Layer 2)로 전환되었으며, 1~2주 내에 오픈소스로 공개됩니다.

Cosmos SDK 방식을 포기한 이유

원래 계획은 SVM을 Cosmos SDK 체인으로 구축하는 것이었습니다. 하지만 깊게 들어갈수록 아키텍처가 제 방향과 충돌했습니다.

  • 불필요한 검증인(Validator) 세트: Cosmos 체인은 자체 검증인, 자체 스테이킹 토큰, 자체 슬래싱(Slashing) 경제학 및 거버넌스가 필요합니다. 즉, 보안 예산을 제로에서부터 부트스트랩해야 합니다. 하지만 Steem은 이미 검증된 블록 생성, 정렬, 최종성(Finality)을 가지고 있습니다. 그 위에 두 번째 합의 레이어를 만드는 것은 보안이 아니라 중복입니다.
  • 운영 오버헤드: 검증인을 모집하고, 업그레이드를 조율하며, IBC(체인 간 통신)를 관리하고, 거대한 프레임워크의 포크를 상류(Upstream)와 동기화하는 것은 풀타임 팀이 매달려야 하는 작업량입니다. STEEM 커뮤니티가 실제로 실행하고 검증할 수 있는 길이 아니었습니다.
  • 신뢰 문제의 악화: 소규모의 새로운 검증인 세트는 Steem의 기존 증인(Witness) 인프라보다 신뢰도가 떨어집니다. 사용자가 이미 사용 중인 체인보다 신뢰도가 불분명한 5명의 검증인을 더 신뢰할 이유가 없습니다.

그래서 저는 이를 폐기하고 더 간단한 질문을 던졌습니다. "Steem에서 EVM 컨트랙트를 실행하기 위해 필요한 최소한의 기계 장치는 무엇인가?" 답은 "합의 프로토콜은 전혀 필요 없고, 실행(Execution) 장치만 있으면 된다"였습니다.

새로운 아키텍처: 합의 프로토콜이 없는 레이어 2

설계는 극도로 단순하며, 이 단순함이 곧 보안 모델입니다.

Steem L1 (정렬 + 타임스탬프 + 데이터 가용성)
        │  custom_json 오퍼레이션
        ▼
SVM 노드 (단일 Rust 바이너리)
  1. 블록 스트리머  — 가역 불가능한(Irreversible) Steem 블록만 추적
  2. 오퍼레이션 필터 — SVM 트랜잭션 및 브릿지 입금 추출
  3. revm 실행기   — 전체 이더리움 가상 머신 (Prague 룰 적용)
  4. RocksDB 상태   — 원자적(Atomic), 크래시 세이프, 결정론적
  5. eth_* JSON-RPC  — MetaMask / Foundry / ethers.js 즉시 호환

  • 사용자는 Steem의 custom_json 오퍼레이션 내에 래핑된 일반적인 서명된 이더리움 트랜잭션을 제출합니다.
  • 모든 SVM 노드는 동일한 가역 불가 Steem 블록을 동일한 순서로 고정된 EVM을 통해 재생(Replay)하므로, 모든 노드가 독립적으로 바이트 단위까지 동일한 상태(State)를 도출해 냅니다. 투표할 필요가 없습니다. 합의는 프로토콜이 아니라 재생에 따른 수학적 결과입니다.
  • 재오organization(Reorg) 없음: 노드는 Steem의 가역 불가 지점(Irversibility point)을 지난 블록만 처리하므로, 모든 SVM 블록은 생성되는 즉시 최종 확정됩니다. 항상 latest = finalized입니다.
  • Steem 블록당 하나의 EVM 블록이 생성되며(~3초 주도), 엔드투엔드 확정에는 약 45~60초(Steem의 가역 불가 지연 시간)가 소요됩니다.
  • 허가 없는(Permissionless) 포함: 트랜잭션은 편의상 제 RPC 릴레이어를 통해 흐르지만, 누구나 자신의 Steem 계정에서 custom_json으로 원시 트랜잭션을 래핑할 수 있습니다. 저를 포함해 누구도 트랜잭션이 포함되는 것을 막을 수 없습니다.
  • 실행 엔진이 주요 이더리움 인프라에서 사용하는 Rust EVM인 revm이기 때문에, 이는 'EVM 유사'가 아닌 완전한 EVM 명령어 세트입니다. 이더리움에서 실행되는 모든 Solidity 컨트랙트가 수정 없이 여기에서 실행됩니다.

코드베이스 내부 구조

노드는 약 5,000라인의 단일 Rust 바이너리와 포괄적인 테스트 수트로 구성되어 있으며, 모든 요소가 독립적으로 검증 가능합니다.

컴포넌트역할
Steem 스트리머여러 Steem API 엔드포인트 간의 자동 페일오버 및 재시도 기능과 함께 last_irreversible_block을 추적합니다.
오퍼레이션 필터SVM 트랜잭션과 브릿지 입금을 추출합니다. 잘못되거나 적대적인 오퍼레이션은 로깅 후 결정론적으로 건너뛰므로, 그 어떤 것도 체인을 중단시킬 수 없습니다.
EVM 실행기Prague 하드포크 규칙에 고정된 revm입니다. 레거시(EIP-155), EIP-2930, EIP-1559 트랜잭션을 디코딩하며 서명에서 발신자를 복구하므로, 오직 자신의 키로만 자금을 소비할 수 있습니다.
상태 데이터베이스각 블록의 상태 변경, 기록, 영수증 및 동기화 높이가 하나의 원자적 WriteBatch로 커밋되는 RocksDB입니다. 언제든 kill -9로 노드를 종료해도 안전하게 재개됩니다.
블록 유도기각 Steem 블록을 EVM 블록으로 변환합니다. 입금이 먼저 발행되고, 트랜잭션은 Steem 순서대로 실행되며, 고정된 바이너리 직렬화를 통해 블록 해시가 계산됩니다.
JSON-RPC 서버잔액, 블록, 영수증, 로그, eth_call, eth_estimateGas, eth_sendRawTransaction 등 완전한 eth_* 읽기/쓰기 표면을 제공하여 MetaMask와 Foundry가 즉시 작동합니다.
브릿지 인 (입금)메모(Memo)에 자신의 EVM 주소를 적어 게이트웨이 계정으로 STEEM을 전송하면, 해당 주소로 18개 소수점의 wSTEEM이 발행됩니다.
브릿지 아웃 (출금)콜데이터(Calldata)에 자신의 Steem 사용자명을 적어 번(Burn) 주소로 wSTEEM을 전송하면, 트랜잭션 서명 자체가 출금을 승인합니다. 지급은 전체 감사 가능성을 위해 번 트랜잭션 해시를 메모로 담아 도착합니다.
지급 워커트랜잭션당 및 시간당 한도 설정, 엄격한 1:1 지급 멱등성(Idempotency), 데드 레터 큐(Dead-letter queue)를 갖추고 있습니다. 버그가 발생할 것을 전제하고 피해를 제한하도록 설계되었습니다.
멀티시그 스택2-of-3 게이트웨이 서명자 시스템입니다. 제안자(Proposer)는 단독으로 브로드캐스트할 수 없으며, 독립된 인프라의 공동 서명자(Co-signer)가 자체 노드를 통해 모든 번(Burn) 내역을 재검증한 후 두 번째 서명을 추가합니다.
운영 툴링헬스체크 엔드포인트, 브릿지 불변성 검사기(total_supply == 입금량 − 가스 소모량을 지속적으로 체크), 런북, systemd 유닛 및 Docker/compose 패키징을 포함합니다.

테스트 진행 상황

저는 "나를 믿어라" 식의 소프트웨어를 배포하지 않습니다. 모든 주장은 기계에 의해 검증되었습니다.

  • 결정론 두 차례 증명: 두 개의 완전히 독립된 노드가 라이브 Steem 메인넷에서 제네시스부터 동기화하여 바이트 단위까지 동일한 블록 해시를 생성했고, 4,700블록 구간 전체에서 동일한 JSON-RPC 응답을 제공했습니다.
  • 크래시 안전성 증명: 동기화 도중 반복적으로 강제 종료(Force-kill)를 시도했으나, 매번 정확히 커밋된 높이에서 깨끗하게 재개되었습니다.
  • 적대적 테스트 수트: 잘못된 JSON, 가비지 헥스 데이터, 잘못된 체인의 트랜잭션, 중복 재생, 초과 페이로드, 가짜 입금 등 생각할 수 있는 모든 공격을 단일 블록에 채워 넣었으나, 독립된 노드들이 정확히 유효한 트랜잭션만 포함한 채 동일하게 블록을 유도해 냈습니다.
  • 실제 툴 호환성: Foundry로 컴파일된 컨트랙트가 배포 및 실행되며, cast로 빌드된 트랜잭션도 원시 서명된 트랜잭션과 동일하게 실행됩니다. 입금 → 배포 → 상호작용 → 출금의 전체 라이프사이클이 테스트에서 커버됩니다.

25개 이상의 자동화 테스트가 오프라인에서 전체 파이프라인을 실행하므로, 누구나 cargo test 명령어 하나로 모든 것을 검증할 수 있습니다.

1~2주 내 오픈소스 공개 📅

현재 마지막 테스트 단계를 진행 중입니다. 장시간 무인 운영, 라이브 MetaMask 엔드투엔드 흐름, 멀티시그 게이트웨이를 통한 브릿지 강화 작업을 거치고 있습니다. 이 숙성 과정이 끝나면(지금으로부터 1~2주 뒤), 노드, 브릿지, 서명자 스택, 운영 툴, 설치 가이드, 트러스트 모델 문서 등 전체 코드베이스가 오픈소스로 공개됩니다.

제가 가장 중요하게 생각하는 점은, 합의가 곧 재생(Replay)이기 때문에 누구나 권한(Permission) 없이, 스테이킹 없이, 키 없이 검증 노드를 운영할 수 있다는 것입니다. 클론하고, 빌드하고, 동기화하면 체인의 모든 잔액을 독립적으로 확인할 수 있습니다. 독립적인 검증자가 많을수록 시스템은 강력해집니다. 레포지토리가 열리면 노드 실행을 부탁드릴 예정입니다.

이것이 STEEM에 가져올 변화는 Solidity 스마트 컨트랙트, DeFi 프리미티브, NFT, 그리고 이더리움의 전체 툴링 생태계입니다. 이 모든 것이 우리가 이미 사용하는 체인 위에서 정산 및 보안을 보장받으며, STEEM 자체를 가스 토큰으로 사용하게 됩니다.


2. 핵심 요약 (Summary)

  1. 아키텍처 선회: 기존 Cosmos SDK 기반의 독자 체인 개발 방식을 전면 폐기하고, Steem의 기존 보안 및 데이터 가용성(DA)을 100% 활용하는 합의 프로토콜이 없는 순수 실행형 레이어 2(L2)로 방향을 전환함.
  2. 단순성과 결정론: 별도의 합의 과정(투표 등) 없이, Steem 메인넷의 '가역 불가능한 블록'에 기록된 custom_json 트랜잭션을 모든 노드가 동일한 순서로 재생(Replay)하여 완벽히 일치하는 상태(State)를 도출함.
  3. 완전한 이더리움 호환성: 이더리움 메인넷 인프라와 동일한 Rust 기반 revm(Prague 룰)을 채택하여 Solidity 컨트랙트, MetaMask, Foundry 등의 툴체인을 수정 없이 그대로 지원함.
  4. 일정 및 참여: 테스트 수트 및 멀티시그 브릿지 안정화 검증을 거쳐 1~2주 내에 전체 코드를 오픈소스로 공개할 예정이며, 누구나 무허가(Permissionless)로 검증 노드를 띄울 수 있음.

3. 주관적 평가 (Evaluation)

긍정적인 점 (Strengths)

  • 영리한 보안 부트스트랩: 신생 체인의 가장 큰 약점은 초기 검증인(Validator) 세트의 빈약한 보안성과 경제적 비용입니다. 이 프로젝트는 Steem L1을 데이터 가용성(DA) 레이어로 활용함으로써 보안 비용을 사실상 '0'으로 만들고 중복 투자를 없앴습니다. 극단적인 미니멀리즘 설계가 돋보입니다.
  • 견고한 툴체인 선택: 이더리움 패러다임에서 가장 성능이 좋고 검증된 패러다임 중 하나인 revmRocksDB 조합을 선택하여 5,000줄 남짓한 코드로 신뢰성 높은 EVM 환경을 구현했습니다. 개발 호환성이 매우 높을 것으로 기대됩니다.
  • 결정론과 크래시 안전성 확보: 독립된 두 노드의 바이트 단위 해시 일치 확인 및 강제 종료 후 복구 테스트 등, 메인넷 출시 전에 필요한 필수적인 적대적 테스트를 철저히 수행한 점은 신뢰도를 높입니다.

잠재적 리스크 및 고려사항 (Risks & Limitations)

  • 최종성(Finality) 지연 속도: 노드가 Steem의 가역 불가 지점(last_irreversible_block)만 추적하므로, 블록 확정에 45~60초가 소요됩니다. 1초 미만의 최종성을 제공하는 최신 L2 생태계(Arbitrum, Optimism 등)와 비교했을 때 UX 측면에서 다소 느리게 느껴질 수 있습니다.
  • 브릿지 신뢰 모델의 한계: 출금(Bridge out) 시 2-of-3 멀티시그 게이트웨이 방식을 채택하고 있습니다. 이는 완전한 무신뢰(Trustless) 솔루션이 아니며, 결국 공동 서명 인프라를 관리하는 주체들에 대한 신뢰(Federated Bridge)에 의존합니다. 자산 규모가 커질 때 이 멀티시그의 보안과 다변화를 어떻게 해결할지가 장기적인 핵심 과제가 될 것입니다.
Sort:  

High-Yield Curation by @steem-seven

Your content has been supported!


Maximize your passive income!
Delegate your SP to us and earn high rewards

Click here to see our Tiered Reward System

Vote Proposal 100Vote Witness @seven.witMeet Speak on Steem

We are the hope!

S7VEN Banner

스팀도 변화하려 ㅈ시도하는군요.

#avle #jsup

내부적으로는 뭔가 변화를 시도하려고 하는데 여전히 실제 행동으로 이어지는 것은 쉽지 않은 것 같습니다.