Ethereum의 일반 경제 추상화
이더리움 애호가(ID: ethfans)이더리움 애호가(ID: ethfans), 저자: Kevin Britz, 번역 및 교정: Zeng Mi & A Jian, 승인을 받아 Odaily에서 재인쇄함.
지난 2년 동안 Astro Wallet(최근 Coinbase에서 인수)에서 우리는 다양한 형태의 경제적 추상화 작업을 해왔습니다. 우리는 오늘날 dApp이 직면한 많은 사용자 경험 문제에 대한 지침을 제공하기를 바라며 블록체인 업계의 더 많은 동료들과 연구 결과를 공유하고 싶습니다.
정의
정의
이 용어의 광범위한 사용을 고려할 때 논의를 시작하기 전에 명확한 정의를 제공하고자 합니다.
경제적 추상화 - 모든 블록체인 자산을 원자적으로 사용하여 블록체인 트랜잭션 및 트랜잭션 작업 자체를 시작하기 위한 트랜잭션 수수료를 지불할 수 있는 기능.
의미를 더 명확히 하기 위해 몇 가지 예를 살펴보겠습니다.
사용자는 USDC를 전송하려고 하지만 지갑에 거래 수수료를 지불할 ETH가 없다는 사실로 인해 어려움을 겪습니다.
보조 제목
구성
실제로 대부분의 블록체인에서 경제적 추상화는 수수료 추상화와 토큰 추상화라는 두 가지 구성 요소로 나뉩니다. 두 가지를 모두 달성할 수 있다면 우리는 완전한 경제적 추상화를 갖게 됩니다.
처리 수수료의 추상화 - 트랜잭션 시작에 대한 처리 수수료를 지불하기 위해 블록체인의 모든 자산을 원자적으로 사용할 수 있습니다.
일반적으로 블록체인 프로토콜은 네트워크의 보안을 보장하기 위해 특정 기본 토큰(예: Ethereum)에 의존해야 합니다. 일부 프로토콜은 수수료를 지불하기 위해 토큰 사용을 지원하는 한 수수료의 추상화를 실현할 수 있다고 생각하지만 이는 대부분의 프로토콜에 적합하지 않습니다. 아래의 구현 섹션에서는 이더리움과 같은 프로토콜 위에 수수료 추상화를 구축하는 방법에 대해 논의합니다.
토큰 추상화 - 트랜잭션을 완료하기 위해 블록체인의 모든 자산을 원자적으로 사용할 수 있는 기능입니다.
첫 번째 레벨 제목
성취하다
보조 제목
기본 빌딩 블록
이더리움에서 이러한 핵심 기능을 구현하는 핵심은 스마트 계약 지갑을 사용하는 것입니다. 기존의 주소 기반 지갑에는 이러한 기능이 없지만 스마트 계약을 통해 로직을 추가하여 새로운 핵심 기능을 구현할 수 있습니다.
수수료 위임 — 즉, 송금인 대신 다른 지불인에게 거래 수수료를 지불하도록 지정합니다.
오늘날 대부분의 스마트 계약 지갑은 Gas repeater를 사용하여 수수료 위임을 구현합니다. 사용자는 거래 수수료를 지불하기 위해 이더리움을 자신의 스마트 계약 지갑에 직접 입력할 필요는 없지만 메시지에 서명하여 거래 릴레이를 완료할 수 있습니다(릴레이는 메시지를 트랜잭션에 패키지한 다음 메시지를 다음과 같이 보냅니다. 보낸 사람) 거래). 사용자의 계정은 실제로 스마트 계약이기 때문에 지갑이 계약 호출을 확인할 수 있는 한 두 접근 방식 모두 작동합니다.
다중 작업 트랜잭션 - 즉, 단일 트랜잭션 내에서 여러 원자 함수 호출이 완료됩니다.
보조 제목
수수료 추상화 구현
다중 작업 트랜잭션을 사용하여 표준 가스 중계기 아키텍처에 또 다른 메시지 전송 프로토콜 계층을 구성하여 처리 수수료의 추상화를 실현할 수 있습니다. 아래에서 프로토콜이 추가 기능을 제공하기 위해 지갑을 확장하는 방법을 설명하기 위해 간단한 사례를 사용합니다.
0단계: 클라이언트 지갑은 일련의 작업 [1…n]으로 구성된 트랜잭션을 전송하려고 합니다.
1단계: 클라이언트 지갑은 가스 중계자에게 전송하려는 거래와 거래 수수료를 지불할 자산을 알려줍니다.
2단계: 중계자는 사용자가 지정한 자산(수수료 지불에 사용됨)으로 계산된 중계 사용자가 요청한 거래에 대한 가격을 지정하는 서명된 견적 메시지로 응답합니다.
3단계: 클라이언트 지갑은 특정 가치의 자산을 리피터로 전송하는 추가 작업을 추가합니다.
4단계: 최종적으로 [1…n+1] 작업으로 구성된 트랜잭션은 서명된 제안 메시지와 함께 중계자에게 다시 전송됩니다.
5단계: 중개자는 트랜잭션 및 견적 메시지를 확인한 다음 트랜잭션을 블록체인으로 보냅니다.
보조 제목
토큰 추상화 구현
다중 작업 거래의 축복이 있으면 토큰 추상화를 실현하기 쉽고 주요 어려움은 거래 분석에 있습니다. 클라이언트 지갑은 거래에서 작업을 수행할 때 어떤 자산이 소비(또는 수령)되고 얼마가 소비(또는 수령)되는지 알기 위해 기본 거래를 분석할 수 있어야 합니다.
우리는 위의 분석을 실행하기 위해 Astro에 수정된 이더리움 노드를 구축했지만, 이것은 대체로 알고리즘 문제가 아닌 엔지니어링 문제이므로 독자의 연습문제로 남겨둡니다.
첫 번째 레벨 제목
함께 맞추자!
이제 우리는 수수료와 토큰의 추상화를 동시에 실현했으며, 이 둘의 결합으로 경제적 추상화를 실현할 수 있습니다!
또한 즉각적인 승인과 같은 다른 유연한 기능을 추가할 수 있으므로 자산을 사용하기 위해 0x 및 Uniswap과 같은 계약을 승인하기 위해 더 이상 별도의 트랜잭션을 보낼 필요가 없습니다. 이는 또한 자산의 필요한 금액(전체가 아닌)을 지출하기 위해 트랜잭션을 승인하기만 하면 되므로 사용자 보안을 향상시킵니다.
이 트랜잭션이 궁극적으로 포함하는 작업 목록을 추상적으로 보여주는 이 순서도를 통해 서론에서 다소 복잡한 예를 명확하게 설명할 수 있습니다. 보시다시피 사용자는 0x 프로토콜(ETH)에 대한 수수료, 0x 릴레이어(ZRX)에 대한 수수료, 크립토키티 판매자(DAI)의 입찰가 및 트랜잭션 라우팅을 위한 가스 릴레이어에 대한 수수료를 모두 한 번에 지불할 수 있습니다. 지갑의 USDC에 의존하는 것으로 충분합니다.
이 기사를 검토해 주신 Clinton Bembry, Linda Xie, Aparna Krishnan 및 Clay Robbins에게 감사드립니다.


