트랜잭션 단언, 결과를 보고 되돌리는 안전장치

Strawmap Hegotá (2027) · transaction assertions

트랜잭션 맨 끝에 읽기 전용 검사 단계를 붙여 잔액이나 저장소가 조건과 다르게 바뀌었으면 실행 결과를 통째로 되돌립니다. 지갑이 사용자 계정에 일어날 수 있는 일의 범위를 온체인에서 강제할 수 있게 됩니다.

왜 필요한가

지금은 트랜잭션에 서명한 뒤에는 그 트랜잭션이 실제로 무엇을 하는지 제한할 수단이 없습니다. 일반 사용자나 지갑 앱이 실행될 코드를 모두 찾아 읽고 분석하기도 매우 어렵습니다. 그래서 대부분은 내용을 모른 채 서명(블라인드 서명)을 합니다. 제안서는 이렇게 도난당한 암호자산의 누적액이 중간 규모 국가의 연간 GDP를 넘는다고 짚습니다. 이 제안은 코드를 미리 읽는 대신 결과를 보고 막는 길을 택합니다. 트랜잭션 맨 끝에 읽기 전용 검사 단계를 두고 새 명령어(TXTRACE)로 이 트랜잭션이 바꾼 잔액, 저장소, 코드, 논스와 남긴 이벤트를 읽습니다. 지갑이 조건을 붙여 두면 어긋났을 때 실행 본문이 통째로 되돌아가므로, 사용자가 자기 계정에 일어날 수 있는 일의 범위를 스스로 정할 수 있습니다. 이 항목은 프레임 트랜잭션(EIP-8141)의 네 번째 모드로 설계되어 프레임 트랜잭션과 함께 가야 합니다. 2026년 9월 ACDE #246에서 헤고타(Hegotá) 포함 검토 대상에 올랐고 10월 ACDT #100에서 bogota-devnet-1에 넣어 검증하기로 했습니다. Strawmap은 헤고타 칸에 두고 있지만 어느 포크에 들어갈지는 예상일 뿐 확정이 아닙니다.

어떻게 동작하나

  1. 검사 단계를 맨 뒤에 붙입니다 지갑이나 디앱이 프레임 트랜잭션 끝에 ASSERT 모드 프레임을 둡니다. 이 프레임은 상태를 바꿀 수 없는 읽기 전용으로 실행되고 한 번 나오면 그 뒤 프레임은 모두 ASSERT여야 합니다.
  2. 바뀐 것을 읽습니다 본문 실행이 끝난 뒤 TXTRACE 명령어로 트랜잭션 전과 지금의 차이를 읽습니다. 잔액, 저장소 슬롯, 코드, 논스가 어디서 어떻게 바뀌었는지와 발생한 이벤트를 항목별로 조회합니다.
  3. 조건에 어긋나면 되돌립니다 검사가 실패하면 실행 본문 전체가 되돌아가고 로그도 버립니다. 트랜잭션은 블록에 남고 수수료를 내는 쪽은 실패 시점까지 쓴 가스를 냅니다.

관련 EIP

← 로드맵