이더리움 재단은 사용자가 요청한 작업의 승인에만 의존하는 대신 트랜잭션의 최종 결과에 강제 가능한 조건을 붙일 수 있도록 하는 트랜잭션 어설션을 검토하고 있다. 재단의 Trillion Dollar Security 이니셔티브의 일환인 이 연구는 트랜잭션 안전성의 공백을 겨냥한다. 유효한 서명이 있다고 해서 결과 잔액, 권한 또는 계정 제어가 서명자의 의도와 일치한다는 보장은 없기 때문이다.

핵심 요점

  • 제안된 검사는 실행 중 트랜잭션 결과를 평가하고, 서명된 규칙을 위반하는 작업을 되돌린다.
  • 보호 효과는 잠재적으로 침해된 트랜잭션 빌더와 별도로 승인된 규칙에 달려 있다.
  • 이 연구는 지갑 안전 정책, 위임형 에이전트 및 솔버 워크플로를 지원할 수 있지만, 도입이 발표된 것은 아니다.

목차

트랜잭션을 승인해도 손실이 발생할 수 있는 이유

이더리움은 사용자가 승인한 요청을 실행 시점에 이용 가능한 코드와 상태에 적용해 실행한다. 이 조건은 사용자가 확인한 내용과 다를 수 있다. 예를 들어 실행 전에 프록시 구현이 변경될 수 있고, 트랜잭션 순서에 따라 스왑에 적용되는 가격이 달라질 수 있다.

재단은 오해를 유발하는 요청과 원치 않는 결과를 구분한다. Bybit 및 BadgerDAO 공격에서는 침해된 프런트엔드가 사용자가 승인한다고 생각한 내용과 다른 서명 요청을 제시했다. 반면 요청이 정확히 표시되더라도 경제적으로 손실을 초래하는 결과가 발생할 수 있다.

재단이 든 사례는 약 5,040만 달러 상당의 aEthUSDT가 관련된 Aave 및 CoW 담보 스왑이다. AAVE 유동성이 얕았고 CoW의 가스 한도가 적용되면서 검증된 호가량은 약 329 aEthAAVE에 그쳤다. 가격 영향이 99.9%라는 경고가 표시되고 전체 가치를 잃을 수 있다는 확인까지 있었지만, 사용자는 서명했고 약 36,000달러 상당의 토큰을 받았다.

이 차이는 트랜잭션 설명을 개선하는 것만으로는 충분하지 않은 이유를 보여준다. Clear Signing은 사용자가 요청된 작업을 이해하도록 돕는다. 시뮬레이션은 선택된 체인 상태를 기준으로 예상 효과를 산출한다. 하지만 어느 하나만으로 실제 발생하는 결과에 독립적인 조건을 부과하지는 못한다.

항목세부 내용
TXTRACE트랜잭션의 순 상태 변경과 발생한 이벤트를 열거한다.
TXDIFF지정한 주소와 스토리지 슬롯의 시작 값 및 최종 값을 가져온다.
EVENTDATACOPY검사할 수 있도록 이벤트 데이터를 메모리로 복사한다.
배포 정보제안된 상태 변경 데이터에는 새로 배포된 컨트랙트와 해당 코드 해시가 포함된다.

트랜잭션 어설션이 결과를 확인하는 방식

어설션은 작업이 실행된 뒤 읽기 전용 로직을 사용해 트랜잭션의 시작 상태와 최종 상태를 비교한다. 해당 조건은 트랜잭션에 포함되어 작업과 함께 서명된다. 조건이 충족되지 않으면 작업이 되돌려진다.

가능한 규칙으로는 최소 수령량, 지출 한도, 신규 토큰 승인 제한 또는 계정 제어 로직의 보존 등이 있다. 제안된 검사 기능은 잔액뿐만 아니라 스토리지, 코드, 새로 배포된 컨트랙트 및 발생한 이벤트까지 포괄한다.

기존 컨트랙트 검사 기능도 이미 특정 결과를 보호한다. Uniswap은 지정된 최소 수령량보다 적은 스왑을 거부할 수 있으며, Safe 가드는 실행 후 계정 상태를 검사할 수 있다. 한계는 가시성이다. 이러한 검사는 무엇을 확인할지 미리 예상해야 하며, 일반적으로 다른 컨트랙트가 노출하는 인터페이스에 의존한다. 예를 들어 프록시는 구현 주소를 보여주는 함수를 제공하지 않아도 된다.

네이티브 어설션은 일반 가드가 확인할 필요성을 예상하지 못할 수 있는 변경 사항을 포함해 트랜잭션의 전체 순효과를 검사할 수 있도록 한다. 그러나 더 넓은 가시성은 규칙이 신뢰할 수 있을 때만 유용하다. 악성 프런트엔드가 자체 공격을 허용하는 조건을 제공할 수 있으므로 정책은 독립적으로 승인된 의도, 계정 정책 또는 보호된 프로토콜 로직에서 비롯되어야 한다.

제안된 구현으로 확인할 수 있는 정보

네이티브 트랜잭션 어설션에 관한 재단의 발표는 EIP-7906을 확정된 설계가 아닌 가능한 구현안으로 설명한다. 이는 검증 단계와 작업 단계를 순서대로 배치하는 EIP-8141의 프레임 트랜잭션을 기반으로 한다. EIP-8141은 Hegotá에 예정되어 있지만, EIP-7906은 포함 검토 단계에 도달했을 뿐 해당 업그레이드에 포함된다고 확정된 것은 아니다.

이 방식에서는 읽기 전용 POST_TX 프레임이 실행 종료 시점에 결과를 검사한다. 제안된 데이터 접근 명령은 EVM 전체에서가 아니라 해당 프레임 안에서만 작동한다.

정보에는 모든 중간 쓰기 내역이 아니라 순효과가 표시된다. 스토리지 슬롯이 여러 차례 변경되면 시작 값과 최종 값이 나타나지만, 원래 값으로 복원된 슬롯은 표시되지 않는다. 따라서 최종 상태를 강제하는 것과 모든 실행 단계를 모니터링하는 것의 차이를 중요하게 봐야 한다.

검사에 실패하면 실행 본문은 되돌려지지만, 트랜잭션은 실패한 상태로 블록에 남는다. 가스 지불자는 여전히 소비된 가스 비용을 내야 하므로, 의도적으로 실패하는 트랜잭션이 빌더에게 실행 작업을 무상으로 부과하는 것을 방지한다.

지갑과 프로토콜에 필요한 변경

이 제안은 검사 메커니즘을 제공할 뿐, 이를 자동으로 사용하도록 요구하지는 않는다. 사용자의 트랜잭션을 보호하려면 지갑이 트랜잭션 구성 과정에 자체 안전 정책을 포함해야 하며, 빌더가 이를 생략할 수 있도록 내버려둬서는 안 된다. 해당 정책은 지갑 자체 시뮬레이션에서 도출하거나 상시 적용되는 계정 규칙으로 설정할 수 있다.

프로토콜의 경우 보호 대상 기능에 접근하기 위한 조건에 보호 기능을 포함해야 한다. 어설션을 지원하는 트랜잭션을 제출하는 것만으로는 충분하지 않다. 호출에는 프로토콜이 요구하는 구체적인 검사가 담겨 있어야 한다. 이에 따라 호출자의 통합 요건이 달라지며, 이미 배포된 불변 컨트랙트에는 이러한 접근 검사를 사후에 추가할 수 없다.

이러한 의존성은 잠재적으로 강력한 EVM 기능과 사용자에게 보장되는 보호를 구분한다. 효과적인 보호를 위해서는 타당한 조건과 그 조건을 일관되게 필수로 적용하는 소프트웨어가 모두 필요하다.

에이전트와 솔버 워크플로가 얻을 수 있는 것

위임형 에이전트는 권한뿐만 아니라 결과 측면에서도 제약을 받을 수 있다. 에이전트가 사용할 수 있는 컨트랙트나 지출할 수 있는 금액의 한도에 더해 각 트랜잭션이 최종적으로 남기는 결과에 관한 요건을 추가할 수 있다.

솔버 기반 실행에서는 프로토콜이 허용 가능한 결과를 정하면서 솔버가 경로를 선택하도록 할 수 있다. 이 보장은 단일 네트워크의 트랜잭션에 한정되며, 여러 체인에 걸친 경로까지 포괄하지는 않는다.

어설션은 사용하지 않은 토큰을 반환하고 남은 승인을 취소하는 등 워크플로의 정리 작업도 확인할 수 있다. 재단은 설계를 계속 발전시키면서 지갑 및 프로토콜 팀의 의견을 구하고 있다. 따라서 이러한 활용 사례는 발표된 제품 기능이 아니라 연구 방향이다.

결론

네이티브 트랜잭션 어설션은 이더리움 트랜잭션 안전성의 일부를 요청 해석에서 결과 강제로 옮길 수 있다. 실질적인 가치는 신뢰할 수 있는 정책과 이를 적용하는 지갑 및 프로토콜의 도입 여부에 달려 있다.

더 많은 뉴스 읽기

FinanceVelix 뉴스 더 보기

면책 조항

이 FinanceVelix 기사는 일반적인 정보 제공을 위한 것이며, 개인별 금융·투자·법률·세무 자문이 아닙니다. 암호화폐 가격은 빠르게 변동할 수 있으며 투자한 자금 전부를 잃을 수 있습니다. 사실은 게시 시점에 이용 가능한 자료를 반영하며 이후 변경될 수 있습니다. 중요한 정보는 독립적으로 확인하고 필요한 경우 자격을 갖춘 전문가와 상담하십시오. 자산, 회사 또는 서비스를 언급한다고 해서 이를 추천하는 것은 아닙니다.