ゼファーネットのロゴ

鏡を通して: Aztec Connect を使用したクロスチェーンの封印入札オークション

日付:

2023 年 2 月 21 日 マイケル・チュー

編集者注: この作品は、web3 のすべてのオークションに関する進行中のシリーズの一部です。 第1部 は、オンチェーン オークションの設計に特有の技術的な課題 (および機会) の概要でした。 第2部 市場を一掃し、ガス戦争を回避するための作品でした。 第3部 および 第4部 封印された入札オークションの XNUMX つの実装を紹介することによって、オークション理論がどのように実践に変換されるかを調べます。 

このシリーズの過程で、オークション理論とオンチェーンで構築できるものとの間のギャップを埋めるためのさまざまな戦略を探求してきましたが、それぞれに独自のニュアンスがあります。 特に、私たちは実装に焦点を当てました 封印された入札、セカンドプライス (Vickrey) アート、木材、広告スペースの販売に何十年も使用されてきたオークション。 しかし、それらが実装されていることはめったにありません 信頼できない 部分的には、プライベート入札の実装が難しいため、スマート コントラクトを使用します。 パブリック ブロックチェーンの透明性により、不正行為を防ぐことができます。 仲介 入札の検閲またはオークション結果の操作から; しかし、ユーザーのプライバシーを保護するための新しいソリューションを見つけなければならない開発者にも課題を課しています。 

以前のオークションの実装では、オンチェーンの入札を非公開にするために XNUMX つのアプローチを使用しました。担保付オークション)は、過剰担保化(入札者が入札で必要とされるよりも多くの担保をロックする)を使用して入札値を隠し、資本効率を犠牲にしてプライバシーを保護します. これにより、XNUMX 番目の設計 (卑劣なオークション)、これは CREATE2 ブロックチェーン上の他の転送の中で入札をカモフラージュするオペコード。 しかし、実証分析によると、このアプローチは、イーサリアムで通常取引される金額から逸脱した非常に大きな入札を隠すのには効果的ではないことが示されました。 

この投稿では、新しいクロスチェーン アプローチ (と呼ばれる) で戻ります。 AztecConnectオークション)は、追加の担保を必要とせずに、あらゆる規模の入札にプライバシーを提供できます。 複数のブロックチェーンに依存することで、単一のチェーンだけでは不可能な機能が実現し、開発者が独自のプロトコルを実装する際に考慮すべきさまざまな利点とトレードオフのセットが提供されます。 私たちの場合、Aztec Connect を使用して、Ethereum L1 決済の利点を維持しながら、Aztec の ZK ロールアップの匿名性を活用しています。 

実装を追加しました オークション動物園 以前のオークションの実装とともに、GitHub のリポジトリ。 これらに基づいて構築し、アイデアを共有していただければ幸いです。 フィードバックをお送りください.

機能

最初に、 ヴィックリー オークション: 入札者は非公開の入札 (伝統的に単一のアイテムに対して) を封印された封筒に入れて競売人に提出します。 最高入札者が落札しますが、XNUMX 番目に高い入札額を支払います。 これらの特性をオンチェーンに変換するために、私たちの新しいオークションは以前と同じ青写真に従います: 入札は「入札段階」で担保化され、コミットされます。 「公開フェーズ」。 公開フェーズが終了すると、オークションは終了し、落札者は XNUMX 番目に高い入札額 ( ヴィックリー 支払いルール)。 私たちのオークションの実装は、入札段階で入札を非表示にする方法が異なります。今回は、大規模な入札でも資本効率の良いメカニズムを使用します。 

「分割」による入札の非表示

OverCollat​​eralizedAuction では、プライバシーは、正確な入札値を隠すために過剰担保に依存していました。 SneakyAuction では、CREATE2 オペコードを使用して非表示にすることで、入札のプライバシーを実現することができました。 意図 入札トランザクションの –– トランザクションの価値は公開されていますが、トランザクションは通常の ETH 送金と区別がつきません。

別のアプローチは、入札を複数のリンクできないトランザクションに分割することによって、入札の価値を難読化することです。 競売人が 100 ドル、200 ドル、300 ドルの小切手を 600 枚受け取り、それぞれに不可視インクで署名されているとします。 XNUMX つすべてが同じ入札者によって署名され、XNUMX ドルで入札できた可能性があります。 または、それぞれ XNUMX 人の入札者が署名した XNUMX つの別々の入札である可能性もあります。 または、XNUMX 人の入札者がいて、そのうちの XNUMX 人が入札を XNUMX つの小切手に分割した可能性があります。 小切手の金額が公開されている場合でも、署名が明らかになるまで、基礎となる入札額は隠されています。

このオンチェーンを翻訳すると、入札者は、リンクできないウォレットアドレスから複数の支払いトランザクションで入札担保を送ることができます。 各トランザクションで、ハッシュ コミットメントを提供します。これを後で開いて、断片をリンクして戻すことができます。たとえば、コミットメントは次のように計算されます。 keccak256(totalBidValue, bidderId, nonce)、同じ支払い bidderId および totalBidValue 同じ入札の一部です。 ランダム nonce 値は、入札が力ずくで回収されるのを防ぎます。

基本的な概念は、入札者のプライバシーを保護する方法としては理にかなっていますが、このアプローチの欠点は、入札者が、入札に使用する予定の金額で資金提供された、リンクされていない複数のウォレット アドレスを持っている必要があることです。 これを実際に達成するのは難しい場合があります。Chainalysis や TRM などの組織的なフォレンジック ツールは言うまでもなく、アマチュアの Etherscan による調査を回避するためにも注意が必要です。

さらに悪いことに、入札を公開すると、使用されたすべてのアドレスが恒久的にリンクされます。 したがって、後続のオークションに入札するには、リンクされていないアドレスの新しいセットが必要になります。 この問題を解決するために、Aztec Connect という別のツールを使用します。 

匿名入札用の Aztec Connect

アステカコネクト ユーザーが Aztec の ZK ロールアップのプライバシーから Ethereum L1 上のスマート コントラクトにアクセスできるようにするフレームワークです。 イーサリアムのロールアップ プロセッサ コントラクトは、互換性のある呼び出しを行うことができます 橋渡し契約 特定のインターフェイスに準拠しているため、Aztec ユーザーは、エスクローされた資産を使用してこれらの契約と対話できます。 ブリッジ コントラクトは通常、L1 上の既存の DeFi プロトコルに接続されます。 たとえば、ブリッジは次の目的で実装されています。 Uniswap, 保養地, エレメントファイナンス.

Aztec Connect がオークションに提供する重要なプロパティは、 匿名: Aztec Connect トランザクションを開始した Aztec アカウントは、オブザーバーから隠されています。 匿名性により、前のセクションで説明したリンクされていないアドレスを使用してスキームをエミュレートできます。 入札を公開しても、入札に使用された Aztec アカウントは公開されないため、プライバシーを侵害することなく、同じアカウントを複数のオークションで使用できます。 

コミットメントの伝達

入札を行うには、匿名性だけでは十分ではありません。ハッシュ コミットメントを各支払いに関連付ける必要もあります。これは、後で公開フェーズで開始できます。 それを思い出してください 担保付オークション、コミットメントはパラメータとして コミット入札</code< 関数。コミットメントと担保額をストレージに記録します。で 卑劣なオークション、担保は未展開に送信されます CREATE2 契約、 住所 そのうちのハッシュコミットメントとして機能します。 

Aztec Connect ブリッジ コントラクトでは、すべてのクロスチェーン コールはブリッジの convert 関数 (以下を参照)。 通常、アセット パラメータは呼び出しの意図を明確にします。 リド橋たとえば、入力資産が ETH の場合、 convert 関数はそれをラップされた stETH に変換します。 入力アセットがラップされた場合 stETH convert 関数はそれを ETH に変換します。 オークション コントラクトに入札するには、入札者は convert 入力資産としてETHを使用して機能します(支払いごとにXNUMX回)。 

のインターフェース convert 関数 (アステカから ドキュメント)

場合によっては、アセットだけでは、呼び出しの意図した動作を判断するのに十分ではありません。 の ユニスワップ ブリッジたとえば、ユーザーは Uniswap v3 でプライベートにトークンを交換できます。 これを行うには、ユーザーは path つまり、どの資産プールに対してスワップするか –– ETH を DAI に売却する最良のレートを取得するには、30 bps プールを使用して ETH を USDC に取引し、次に 1 bps プールを使用して USDC を DAI に取引することをお勧めします。 このトレード パスを指定するには、ユーザーは使用する 30 つのプールの中間トークン (USDC) と手数料層 (1 bps と XNUMX bps) を提供する必要があります。 

  convert 機能 auxData パラメータは、この「補助データ」がブリッジに渡される方法です。 ただし、 auxData 64ビットのみです! (これは、呼び出しデータのサイズとプルーフ コストの間のトレードオフの成果物です。 auxData より長い証明時間とより高いガスコストが必要になります。 64 ビットは、ほとんどのユースケースで妥当なバランスをとっています) これは、ブリッジが補助データをどのように使用するかについて倹約する必要があることを意味します: Uniswap ブリッジは、トークンと料金階層をそれぞれ数ビットだけを使用して表すことによってパスをエンコードします (エンコード方式は説明された こちら).

私たちの最初の本能は、 auxData 私たちのハッシュコミットメントのために。 しかし auxData は 64 ビットしかなく、暗号的に安全であるには十分ではありません。 ここでは、巧妙なエンコードのトリックは機能しません。コミットメントを圧縮しようとすると、そのセキュリティが危険にさらされます。 の制限を回避するために、 auxData、私たちは創造的になる必要があります。 

仮想資産と転用 inputValue

その他 auxData、唯一の他のパラメータ convert 任意のデータをエンコードするために使用できる inputValue –– Aztec Connect トランザクションで使用されている入力資産の量。 しかし、使用できますか inputValue ハッシュコミットメントをエンコードするには? 暗号的に安全なハッシュ コミットメント (約 256 ビット) をエンコードするパラメータの場合、ビッダーは たくさん どのような入力資産が使用されているかにかかわらず、実際の金銭的価値を持つ資産は問題外です。 

幸いなことに、Aztec Connect には次の概念があります。 仮想資産、Aztec ネットワークがサポートしていないアセットを表すために使用されます。 私たちのユースケースにとって最も重要なことは、ブリッジが 任意の金額 仮想資産の convert 電話。 これにより、Aztec Connect を介してハッシュ コミットメントを通信するための次の XNUMX つのトランザクション プロセスが導かれます。

  1. 最初のトランザクションでは、入力資産は ETH であり、出力資産は仮想です。 入札者は ETH 担保を入金し、(2256 – 1) 見返りとしての仮想資産の単位。 ストレージ スロットが更新され、ハッシュ コミットメントが「進行中」であることを示します。
  2. 1 番目のトランザクションでは、入力資産はステップ XNUMX で受け取った仮想資産です。 inputValue ハッシュ コミットメントとして解釈され、現在のタイムスタンプとともに保存されます。 

Aztec Connect オークションのライフサイクル

入札者は ETH を入金し、仮想資産を受け取ります。 

ビッダーは、前のステップで受け取った仮想資産の一部を焼き付けることで、ハッシュ コミットメントを記録します。 

この XNUMX 段階の手順により、サイズの制約を回避します。 auxData 各支払いを安全なハッシュ コミットメントに関連付けます。 このアプローチの欠点は、支払いごとに XNUMX つのトランザクションが必要になることです。 

比較方法 

Aztec Connect オークションの実行可能な実装ができたので、これを以前の XNUMX つの実装 (OverCollat​​eralizedAuction と SneakyAuction) と比較できます。特に、ガスのコスト、ユーザー エクスペリエンス、およびプライバシーを調べます。 

ガス代

AztecConnectAuctionの createAuction, endAuction, withdrawCollateral 関数は、以前の実装に匹敵するガスコストを持っています。 入札をコミットして明らかにするコストは、担保が分割される部分の数に比例します。 次の表は、XNUMX つの部分に分割された入札の推定ガス コストを示しています。

担保付オークション 卑劣なオークション AztecConnectオークション
オークションを作成する 132,625 112,296 113,507
コミット入札 46,120 21,000 (ETH 転送のコスト) 179,656 (入札は XNUMX 回の支払いに分割)
公開入札 33,728 135,741 47,939 (入札は XNUMX 回の支払いに分割)
終了オークション 57,652 87,340 53,513
引き出し担保 30,426 65,825 50,019

ファウンドリーの単体テストと Aztec Connect に基づいた、さまざまな操作の概算ガス コスト ガスの見積もり

ユーザーエクスペリエンス

AztecConnectAuction は以前の実装 (入札段階、公開段階、オークション終了) と同様のフローに従いますが、クロスチェーンの運用に伴ういくつかの UX の癖があります。 

売り手は、資産をブリッジしたり、Aztec トランザクションを行う必要はなく、オークションが終了すると L1 で支払われます。 一方、入札者は、Aztec でいくつかのアクションを実行し、Ethereum で他のアクションを実行します。

  • 入札は Aztec Connect を介してコミットされ、担保されます。 つまり、入札者は、入札前に Aztec で ETH を保持しているか、ブリッジ オーバーしている必要があります。
  • 入札はイーサリアムで公開されます。 入札を明らかにするには、比較的大量のコールデータが必要です ( inputValue トリックだけでは不十分です)、そのため、イーサリアムで直接行う必要があります。 
  • オークションが終了すると、入札者はイーサリアムまたはアステカのいずれかに担保を引き出すことができます。 入札者は、 withdrawCollateral オークション契約上の機能。 ETH を L2 に保持したい場合 (将来のオークションに入札するためなど)、Aztec Connect トランザクションで Aztec アカウントに出金できます。 

最後に、さらに XNUMX つの実際的な複雑さがあります。まず、入札にコミットするには、担保ごとに XNUMX つの Aztec Connect トランザクションが必要です。 フロントエンドでこれを抽象化して、よりシームレスなエクスペリエンスを実現する単一のユーザー インタラクションにすることができます。 第 XNUMX に、これらのトランザクションは、プライバシーを最大化するために入札期間全体に分散する必要があります。 このタスクをボットに委任して、入札者に代わってトランザクションを送信することができます。

全体として、販売者のユーザー エクスペリエンスは、以前の実装とほぼ同じです。 入札者のエクスペリエンスはより複雑です。入札するには複数のトランザクションを行う必要があり、オークションの過程で Ethereum と Aztec の両方とやり取りする必要があります。 

個人情報保護

AztecConnectAuction が以前の XNUMX つの実装よりも優れている点の XNUMX つは、資本効率を損なうことなく、価値の高いオークションのプライバシーを適切に提供できることです。 OverCollat​​eralizedAuction では、入札自体が多額の担保を必要とする場合、過剰担保化のコストが悪化します。 SneakyAuction では、プライバシーは外生的な ETH 送金に依存しており、通常、高額の入札を隠すには十分な大きさではありません。 

SneakyAuction と同様に、AztecConnectAuction でも、入札者は入札を過剰に担保してプライバシーを強化することができます。 入札プライバシーは、同時オークションの数にも比例します。XNUMX つのオークションが同時に入札フェーズにある場合、一方のオークションの入札は他方のオークションのノイズとして機能します。 入札期間中、入札者は匿名のままで、入札総数は非公開です。 

とはいえ、AztecConnectAuction には独自の注意事項があります。 入札者は、プライバシーを侵害する可能性があるオンチェーンの痕跡に注意する必要があります。

  • 支払いのタイミング: 人間の入札者は、入札のプライバシーを弱める可能性のある方法で支払いのタイミングをうっかりとる可能性があります (たとえば、支払いを立て続けに行ったり、数日にわたって同時に支払いを行ったりするなど)。 
  • 流入額と支払額: 入札の直前または入札中に Aztec に入金すると、その資金がオークションの入札に使用される可能性があります。 入札者は、流入、支払い金額、およびタイミングの間の相互作用を考慮する必要があります。 たとえば、Aztec に 10 ETH を入金した後、すぐに 5 ETH、3 ETH、2 ETH の支払いが行われた場合、これらの支払いが同じ入札の一部であるという疑いが簡単に生じる可能性があります。 

これらの考慮事項は、オークションに固有のものではありません。 プライベート ブロックチェーンとパブリック ブロックチェーンの間で資産を橋渡しすることは、本質的にプライバシー漏洩の可能性をもたらします (Aztec の ドキュメント クロスチェーン プライバシーのニュアンスに関する詳細を提供します)。 良いニュースは、このオークションのような Aztec 互換アプリケーションの急増により、資産を行き来するのではなく、Aztec に長期的に保持する理由が増えることです。 アステカのより多くの活動は、その成長します プライバシー セット、より多くの活動を生み出すAztec上に構築されたアプリケーションの価値命題を強化します – 好循環.

***

このオンチェーンの封印入札オークションへの進出により、Aztec のプライベート ロールアップを活用して入札活動を匿名化することで、私たちは Ethereum L1 の壁の外に連れ出されました。 密閉入札オークションの XNUMX つ目のレシピ (匿名性と担保の分割) には、独自のプライバシー特性とニュアンスがあり、それを以前の設計と比較しました。

私たちのオークションの実装は、数少ない実装の XNUMX つです。 ネイティブクロスチェーン 複数のブロックチェーンにまたがる動作に依存するスマート コントラクト プロトコルは、単一のチェーンだけでは不可能な機能を実現します。 クロスチェーン インフラストラクチャが成熟し続けるにつれて、さまざまなブロックチェーンの独自の機能を利用するネイティブなクロスチェーン プロトコルが出現することが予想されます。 私たちの封印された入札オークションが、ここで可能なことについて何らかのインスピレーションを与えてくれることを願っています。

謝辞: Aztec Connect に関する多くの質問に答えてくれた Aztec チーム (Joe Andrews、Josh Crites) に感謝します。 コードをレビューしてくれた Matt Gleason と Noah Citron。 また、Daejun Park、Joseph Bonneau、Scott Kominers、Sonal Chokshi、Tim Roughgarden に、この投稿に関する貴重なフィードバックを提供していただきました。 編集してくれた Stephanie Zinn に感謝します。 

***

ここに示されている見解は、引用された個々の AH Capital Management, LLC (「a16z」) の見解であり、a16z またはその関連会社の見解ではありません。 ここに含まれる特定の情報は、a16z が管理するファンドのポートフォリオ企業を含む第三者の情報源から入手したものです。 a16z は、信頼できると思われる情報源から取得したものですが、そのような情報を独自に検証しておらず、情報の現在または永続的な正確性、または特定の状況に対するその適切性について表明するものではありません。 さらに、このコンテンツにはサードパーティの広告が含まれる場合があります。 a16z はそのような広告を確認しておらず、そこに含まれる広告コンテンツを推奨していません。

このコンテンツは情報提供のみを目的として提供されており、法律、ビジネス、投資、または税務に関するアドバイスとして信頼されるべきではありません。 これらの問題については、ご自身のアドバイザーにご相談ください。 証券またはデジタル資産への言及は、説明のみを目的としたものであり、投資の推奨または投資顧問サービスの提供を構成するものではありません。 さらに、このコンテンツは、投資家または将来の投資家による使用を目的としたものではなく、a16zが管理するファンドへの投資を決定する際にいかなる状況においても信頼されない場合があります。 (a16zファンドへの投資の申し出は、私募覚書、サブスクリプション契約、およびそのようなファンドの他の関連文書によってのみ行われ、その全体を読む必要があります。)言及、参照、または記載されているのは、a16zが管理する車両へのすべての投資を代表するものではなく、投資が有益である、または将来行われる他の投資が同様の特性または結果をもたらすという保証はありません。 アンドリーセンホロウィッツが管理するファンドが行った投資のリスト(発行者がa16zに公開を許可していない投資、および公開されているデジタル資産への未発表の投資を除く)は、https://a16z.com/investmentsで入手できます。 /。

記載されているチャートおよびグラフは、情報提供のみを目的としており、投資を決定する際に信頼することはできません。 過去の実績は将来の結果を示すものではありません。 内容は、示された日付の時点でのみ話されています。 これらの資料に記載されている予測、推定、予測、目標、見通し、および/または意見は、予告なしに変更される場合があり、他の人が表明した意見と異なる場合があります。 その他の重要な情報については、https://a16z.com/disclosuresを参照してください。

スポット画像

最新のインテリジェンス

スポット画像