저자 | 비탈릭 부테린
저자 | 비탈릭 부테린
두 개의 롤업 솔루션 A와 B가 있고 Alice가 롤업 A의 일정량의 토큰을 롤업 B의 동일한 토큰으로 교환하려고 한다고 가정합니다. 누군가 이미 이 문제에 대한 해결책을 제안했으며 롤업 A와 롤업 B가 모두 스마트 계약을 완전히 지원한다면 이 가정은 탈중앙화 방식으로 실현될 수 있습니다. 다만, 본 글에서는 롤업 B만이 스마트 컨트랙트를 완벽하게 지원하는 경우(그리고 롤업 A는 단순 거래만 처리할 수 있는 경우) 크로스 롤업 전송을 구현하는 방법을 제안한다.
제안
제안
교환 중개자 Ivan이 있다고 가정합니다(구현 시 선택할 수 있는 중개자가 많습니다). Ivan은 롤업 A에서 IVAN_A(자신이 완전히 제어하는 계정)를 소유하고 있습니다. 동시에 Ivan은 롤업 B의 스마트 계약 IVAN_B에도 일부 자금을 예치했습니다.
스마트 계약 IVAN_B에는 다음과 같은 규칙이 있습니다.
➤ 어떤 사용자가 트랜잭션을 전송하면(토큰 트랜잭션 값 TRADE_VALUE를 계정 IVAN_A로 전송), (대상 주소 B DESTINATION도 트랜잭션에 메모로 첨부됨) MIN_REDEMPTION_DELAY 블록의 최소 상환 지연 후 사용자 A 트랜잭션은 다음을 수행할 수 있습니다. 계좌 IVAN_B(이전 이체 증명 포함)로 반환되면 거래가 DESTINATION 주소로 출금 대기합니다.
➤ 특정 지연 시간(예: 하루)을 기다린 후 이체를 롤업 A로 묶는 배치 및 인덱스 순서로 인출이 처리됩니다.
➤ Ivan이 자신의 계정 IVAN_A에 돈이 입금되었음을 알게 되면 개인적으로 TRADE_VALUE * (1 - 수수료) 토큰을 DESTINATION에 보낼 수 있습니다. 그는 기록을 유지하고 계약의 자동 전송 조항이 트랜잭션을 트리거하는 것을 방지하는 IVAN_B 메서드를 사용하여 트랜잭션을 전송함으로써 이를 수행할 수 있습니다.
예상되는 동작은 간단합니다.
➤ Alice는 IVAN_A 계정으로 트랜잭션을 보냅니다(N 토큰과 ALICE_B 메모 포함).
➤ Ivan은 TRADE_VALUE * (1 - 수수료) 토큰을 IVAN_B를 통해 ALICE_B에 보냅니다.
두 번째 트랜잭션은 첫 번째 트랜잭션 직후에 발생합니다. Ivan이 첫 번째 거래와 두 번째 거래 사이의 타임스탬프 차이가 매우 작다는 것을 증명할 수 있다면 계약에는 수수료를 올릴 수 있는 규칙도 있습니다.
첫 번째 레벨 제목
자본 비용
이 체계의 주요 제한 사항은 IVAN_B가 모든 거래 발신자에게 지불되도록 많은 자금을 보유해야 한다는 것입니다. 특히 다음과 같은 상황이 발생한다고 가정합니다.
➤ 트레이드 캡을 TRADE_LIMIT로 설정합니다(그래서 IVAN_A로 보낸 트레이드가 한도 값 > TRADE_LIMIT를 초과하면 트레이드가 무효화됨)
➤ 각 롤업 배치는 최대 TXS_PER_BATCH 트랜잭션을 포함할 수 있습니다.
앨리스는 롤업 A의 다음 트랜잭션 배치가 처리되기 전에 처리되지 않은 트랜잭션이 얼마나 남아 있는지 확인하고, 계약 IVAN_B의 자금에서 이러한 트랜잭션의 총 가치를 빼고, 나머지 금액이 충분한지 확인할 수 있습니다. 출금은 순차적으로 처리되기 때문에(위에서 설명한 대기 메커니즘의 목적임) Alice는 출금 거래 요청을 처리하기 전에 다른 출금 요청을 처리하는 계약에 대해 걱정할 필요가 없습니다.
각 배치의 최대 트랜잭션 크기는 TRADE_LIMIT * TXS_PER_BATCH이므로 IVAN_B 계약에는 최소한 이 정도의 ETH가 필요하며 처리를 위한 트랜잭션을 포함하려면 추가 자금이 필요합니다. 예를 들어 트랜잭션 한도가 0.1 ETH TRADE_LIMIT = 0.1 ETH이고(큰 트랜잭션을 여러 개의 작은 트랜잭션으로 나눌 수 있기 때문에 트랜잭션 한도를 상대적으로 낮게 설정할 수 있음) 각 배치에서 1000개의 트랜잭션을 처리할 수 있다고 가정합니다. TXS_PER_BATCH = 1000 . 그러면 계약 IVAN_B는 100 ETH를 보유해야 합니다.
0.1 ETH 이상을 거래하는 모든 사용자는 블록 공간을 낭비해야 하므로 이 설계에는 암묵적 수수료도 있습니다. 이것은 자본 요구 사항과 비교됩니다. 즉, 사용자가 블록 공간의 절반을 소비하면 자본 요구 사항이 두 배가 되고 그 반대의 경우도 마찬가지입니다. 적절한 균형을 유지하려는 경우 묵시적 수수료는 시장의 명시적 수수료보다 몇 배나 적습니다.
첫 번째 레벨 제목
주목
위의 설계는 다음과 같은 가정을 기반으로 합니다. 롤업 A의 트랜잭션에는 코멘트 필드가 있으며 이를 통해 앨리스는 토큰을 받을 대상 주소로 ALICE_B를 지정할 수 있습니다. 롤업에 이 기능이 없으면 다음 솔루션을 사용할 수 있습니다. Alice는 롤업 B에서 순차적으로 등록된 계약에 ALICE_B 계정을 등록하고 순차적으로 할당된 ID를 얻을 수 있습니다(따라서 Alice의 ID는 이전에 등록된 사용자 수와 동일함).
첫 번째 레벨 제목
롤업 B에서 롤업 A로의 트랜잭션
Alice가 롤업 B에서 롤업 A로 토큰을 전송하는 경우 동일한 메커니즘을 사용할 수 있지만 역할은 반대입니다.
➤ Alice는 IVAN_B에게 토큰을 보냅니다.
➤ 약간의 지연 후 토큰을 돌려받을 권리가 부여됩니다.
ECN의 번역 작업은 중국 이더리움 커뮤니티에 양질의 정보와 학습 자료를 전달하는 것을 목표로 하고 있으며, 기사의 저작권은 원저자에게 있으며, 전재 시 원문의 출처와 ETH 중국 웹사이트를 명시해야 합니다. 장기 재인쇄의 경우 승인을 위해 eth@ecn.co에 문의하십시오.
기사의 내부 링크를 얻으려면 "원문 읽기"를 클릭하십시오!
원본 링크:https://ethresear.ch/
ECN의 번역 작업은 중국 이더리움 커뮤니티에 양질의 정보와 학습 자료를 전달하는 것을 목표로 하고 있으며, 기사의 저작권은 원저자에게 있으며, 전재 시 원문의 출처와 ETH 중국 웹사이트를 명시해야 합니다. 장기 재인쇄의 경우 승인을 위해 eth@ecn.co에 문의하십시오.
