ここ 2 週間の作業は、DApp でのコントラクト デプロイメントについて考えることに重点を置いており、ほとんどの時間は、zkRollup Layer2 のコントラクト開発を学習し、そのネットワーク設計特性を研究しています。その中でも、StarkNet によって設計された Cairo プログラミング言語は、アプリケーションが豊富な DApps の開発を改善し、Gas 消費量を桁違いに削減するのに役立ちます。
StarkNet では、すべてのアドレスが契約アドレスであり、外部アカウント (EOA) の概念はありません。そのウォレット アカウントは、ユーザーが署名してデプロイした「アカウント契約」で構成され、秘密鍵の署名のみで転送を操作できます。この「アカウント契約」について。これは非常に興味深いアイデアです。イーサリアムのメインネットでは、EOA とコントラクト アカウントが歴史的な問題の 1 つであることはわかっています。EIP86 ドラフトから EIP-2938 ドラフトに至るまで、それらはすべて EOA からアカウント ロジックを抽象化することに取り組んでいます。そのロジックをスマートコントラクトが管理するアカウントに適用することで「スマートコントラクトウォレット」を実現します。
StarkNet の主流ウォレット ソリューションである Argent X は、「スマート コントラクト ウォレット」の実装です。コミュニティは、開発者がローカルまたは独自に展開された DApps でスマート コントラクト ウォレットを実装するのに役立つ、対応する JS SDK も提供します。
マルチシグネチャ コントラクトに注目すると、サービスとしてのスマート コントラクト ウォレットがインジェクト プロバイダーの役割よりも注目され、使用回数が多いことがわかります。その中で最も人気のあるサービスは Gnosis Safe です。 *。しかしその結果、独立したウォレットとしてのスマート コントラクト ウォレットは、特に L1/L1s スキームでは広く使用されておらず、従来の EOA ウォレット (メタマスクなど) と競合することができません。
*注意: ここで、Gnosis Safe によって提供されるウォレットはマルチ署名コントラクト プログラミング パラダイムであり、EIP86 および EIP-2938 で言及されているコントラクト アカウントの抽象化ではありません。
私の意見では、スマート コントラクト ウォレットには明らかな技術的および経験的な利点がありますが、資産の多い L1/L1s ネットワークではコントラクトのさらなる複雑さとセキュリティ リスクが生じ、ニーモニックを覚える手間を変えることはできません (スマートコントラクトウォレットの権限を設定する必要があるため)、ユーザーはその技術的な利点を認識できません。ユーザーがサードパーティ確認を使用してスマート コントラクト ウォレットの権限を取得できるようにする Argent Guardians に代表される革新的な製品に加えて、ほとんどのユーザーはそれをオープン アセットまたは追加の確認として、マルチシグネチャ コントラクトのコンテキストでのみ使用します。管理モード。
StarkNet に似たレイヤー 2 ネットワークでは、スマート コントラクト ウォレットに歴史的負担がないため、DApp に技術的なアーキテクチャ上の利点を一般公開できる可能性があります。
実際、イーサリアムのレイヤー 2 ネットワーク、特に zkRollup ネットワークの開始により、スマート コントラクト ウォレットを使用して、ユーザーが L1 The EOA を使用できるようにするマルチレイヤー アセット リレー ネットワーク (マルチレイヤー アセット リレー ネットワーク) を設計できるようになります。アカウントはすべてのアプリケーション層資産を制御します。
Multi-layer Asset Asset Relay Network (以下、MARN) は私の製品ビジョンであり、現在の現実には存在しませんが、この記事の残りの部分では、MARN とは何か、なぜ MARN が必要なのかについて説明します。
1. 大規模ユーザーの製品要件
Checks Finance DApp の開発における最初の要件に戻ると、次の機能をサポートする必要があります。
- 非外部ウォレット SDK : ユーザーはサードパーティのウォレットをダウンロードする必要がなく、DApp で直接ウォレットを作成できます。
- 非保管ウォレット モデル: ユーザーは秘密鍵を私のサービスの外や第三者に預ける必要はありませんが、ユーザーがウォレットの制御を取り戻すための実行可能なプロセスを提供する必要があります。
- ガス料金なし: ユーザーはガス料金を支払ったという意識がありません。ガストークンを取得するための便利なチャネルがないため、新規ユーザーにとっては特にこれが必要です。
- 迅速なブロック確認: ユーザーは、ブロックチェーン トランザクションを操作する際に行き詰まったり、待ち時間が長くなったりしません。
- 安全で優れた資産流動性: ユーザーは、安全かつ迅速で豊富な取引深度を備えた幅広いブリッジ契約を通じて資産を移転できます。
市場に出回っているほとんどの DApps を観察したところ、4 番目と 5 番目のポイントでは良い仕事ができることがわかりました。しかし、最初の 3 つのポイントでは、主に暗号ネイティブ ユーザーを対象としているため、一般に、これらのチームは費用をあまりかけません。最適化を検討するにはコストが高すぎます。
これらの問題により、Web3 に参入するユーザーの規模が大幅に制限されていることは間違いありません。問題が根本的に解決されない限り、Web3 製品が次のサイクルで桁違いのユーザー増加を達成できるかどうか、私自身を納得させるのは困難です。
問題 1 ~ 3 を解決するために、私は業界で可能な解決策を探し始めました。
まず第一に、ウォレット ソリューションは、最初に通過する必要がある重要なしきい値です。現在、DApp 開発者にとって、おそらくいくつかの人気のあるウォレット ソリューションがあります。
- 外部ウォレット接続: 最も一般的ですが、新規ユーザーにとっては参入障壁が最も高くなります。この文書ではこのシナリオについては考慮しません。
- ローカル ウォレット SDK: 統合は簡単ですが、ユーザーがアプリ データを削除すると秘密キーを取得できなくなり、損失の大きなリスクに直面します。
- マネージド ウォレット サービス: DApp アプリケーション ロジックをバイパスし、管理のために秘密キーを Secrets Service に直接アップロードし、トランザクション署名にローカル SDK を使用するマネージド ウォレット サービス。一部のサービスは秘密キーのエクスポートをサポートできます。
大規模ユーザー製品向けのソリューションのうち、現在ほとんどの製品で採用されているのが3番目のホステッドウォレットソリューションであり、Web3AuthやMagicLinkなどがこの種のソリューションの代表的な製品です。ユーザーがメールボックス、携帯電話、またはその他のソーシャル ログイン方法を使用して秘密キーを管理および取得できることは明らかです。このようにして、十分な外部ユーザーを呼び込むことができますが、その欠点も非常に明白です。これは潜在的なセキュリティ リスクをもたらします。 、これは AWS の秘密キー ストレージ サービスに限定されるものではなく、マネージド ウォレット プラットフォームの設計にセキュリティ リスクを伴う可能性もあります。
第二に、現在、ガス料金ゼロの設計にはいくつかの主流のパラダイムがあります。
- トランザクション作成時にガス リレイヤーを使用してユーザーのガスをプロキシします。GSN または OpenZeppelin が提供するガス リレイヤーを使用してメタ トランザクション (メタ トランザクション) を作成します。
- L2 ソリューション (IMX や StarkNet など) を使用して Gas をプロキシします。スマート コントラクト ウォレットを通じてメタトランザクションを作成すると、メッセージを受信するトランザクション当事者コントラクトがユーザーに代わって Gas 料金を支払うことができます。
- ロボット EOA を使用してサーバー側でユーザーのリクエストをプロキシします。このソリューションは最も単純ですが、追加のセキュリティ リスクが発生し、ユーザーと契約の間の実際のトランザクションを表示できません。
ガスリレーの追加手数料と基本ガス料金を考慮すると、後者 (L2 ソリューション) を使用して DApp 契約を展開する方が、明らかにより効果的で低コストの方法です。それらの中には、一部の L2 ソリューションは、Gas 料金の支払いに特定の ERC-20 トークンの使用をサポートしています (zkSync2.0 など)。このような料金モデルは DApp 経済モデルの一部となり、発行するガバナンス トークンの価値が高まります。 、DeFi Kingdoms Crystalvaleがやったのと同じように。
まとめると、大規模ユーザー向けの製品設計では、上記の要件を同時にサポートできる製品設計のアイデアを見つける必要がありますが、現時点では、Layer2 ソリューションを使用することがより実現可能であると考えられます。
2. 外部アカウント (EOA) に関する問題
レイヤ 2 ソリューションを使用すると、スマート コントラクト ウォレットに基づいたメタトランザクションを簡単に実装できます。StarkNet を例に挙げると、そのウォレットの実装はスマート コントラクト ウォレットですが、明確な制御権限が必要であるため、製品設計のアイデアはArgent X は引き続き EOA ウォレット メタマスクの概念に従います。ウォレットが初期化されるとき (StarkNet の場合、アカウント コントラクトをデプロイするとき)、ウォレットのニーモニック ワードを記憶する必要があります。
これにより、混乱しやすい概念が浮かび上がります。DApp はいくつのネットワークをサポートし、ユーザーはいくつの EOA ウォレットを作成する必要があるのでしょうか。
残念ながら、市場に出回っているほとんどの DApps は、この愚かだが無力な考え方に従っています。私はこの製品設計を「マルチウォレットの悪夢」と呼んでいますが、ユーザーの観点から見ると、Web3 製品と Web2 製品の違いを理解することは役に立たないだけでなく、ユーザー側で製品を使用する際のセキュリティ リスクを大幅に増大させます。
私は、この無力な方法が EOA ウォレットの現在の設計思想に沿ったものであることを理解していますが、他方で、そのような権利と責任の設計は非常に明確であり、契約チームとウォレット開発チームは必要ありません。ユーザーが秘密鍵を紛失したというミスの代償を支払うため。しかし、スマートコントラクトウォレットから、よりわかりやすく自然な方法を見つけることができるはずだと思います。
簡単な仮説は、スマート コントラクト ウォレットが特定の L1 EOA ウォレットを介して動作することを許可できるかということです。あるいは、ガイド コントラクト ウォレットをマルチシグネチャ ウォレットの特権オペレーターとして設計し、信頼できる L1/L2 アカウントを EOA オペレーターとして設定して、緊急メンバー権限でこのコントラクトの日常的な操作を変更できるようにすることはできますか?
実際のところ、スマート コントラクト ウォレットがもたらす無限の想像力、EOA ウォレットが提供するプログラム可能性は、代理店のガス料金のメタトランザクションをサポートするだけでなく、ウォレットを EOA の単一キーから完全に解放することもできます。これが Web3 が大規模に適用されるための必要条件の 1 つであると思います。
3. マルチレイヤアセットリレーネットワーク(MARN)についての考え方
Checks Finance が日本市場向けにリリースしたモバイル DApp をコーディングする前に、ある質問について繰り返し考えました。将来、携帯電話に数百の DApp が存在し、それらが複数の異なるネットワークに展開されたら、どうすればよいでしょうか?財布を管理するにはどうすればよいですか?
MetaMaskを使用してすべてのウォレットをリンクしますか? DeFi、ゲーム、NFT取引市場など、すべてのDAppsで私たちの資産は同様に重要ですか?私たちの資産はすべてインターネット上に公開され、誰でも閲覧できるようになるのでしょうか?財布を失くすことを許しますか?これらの疑問は私の心に残り、長い間消えることができませんでした。
これらの質問は、答える必要がある同じ 2 つのコアを示しています。
- 理想的な Web3 製品とは一体何でしょうか?
- 複雑な資産をどのように管理すればよいでしょうか? (会員カード、ポイント、小銭、貯金、資金、株式)
私たちはマルチチェーンとマルチレイヤーの Web3 の世界にいます。これが長期間続くことは間違いありません。つまり、NFT プレーヤーはメインネット上で MetaMask ウォレットを操作し、フィットネス愛好家はメインネット上で MetaMask ウォレットを操作することになります。ソラナ StepNの日常活動に参加するDeFiユーザーは、異なるネットワークを行き来し、同時に数十のEOAウォレットを所有し、複雑な資産タイプを管理することになり、DAOはネットワーク間の資産契約になります。
しかし、Web3 が実際に世間の注目を集め、ユーザーが桁違いに増加したとき、DApps とウォレットはその地位を維持できるでしょうか?
私の意見では、レイヤー2やその他のアプリケーションレイヤーが徐々に発展するにつれて、ウォレットは間違いなくより断片化され、それに応じてウォレットに保管されている会計資産も断片化するでしょう。もし全てのウォレットがEOAウォレットになれば、現在の何百倍も深刻な「複数ウォレットの悪夢」が起こることは間違いありません。
しかし、実体経済のすべての資産を Web3 に移行すると、一部の資産の重要性が他の資産に比べて著しく低いことがわかります。財布の小銭が失われるのは許容しますが、銀行の貯金が失われるのはおそらく許容できないでしょう。シンプルで使いやすいウォレットは市場である程度の地位を占めることになり、広く使用されている MetaMask などの EOA ウォレットとは異なり、一部の人気のある DApps に組み込まれる可能性があります。
「アプリケーション層」に分散されたこれらの「重要度の低い」ウォレットは、権限のネットワークによって作成できると思います。この予備的なアイデアでは、これを多層アセットリレーネットワーク (マルチレイヤーアセットリレーネットワーク) と呼んでいます。
MARN は、L1 EOA ウォレットを通じて L2 (または LN) スマート コントラクト ウォレットを作成および制御し、これらの LN ウォレットをその資産キャッシュ レイヤーにできることを意味します。
これは、L1 → LN 通信を通じて、ユーザーが 1 つのウォレットを使用し、すべての契約ウォレットを管理し、秘密鍵エスクローに依存せずに、一部の LN ウォレットを支配するための回復オペレーターの使用をサポートできることを意味します。 。
たとえば、ユーザーが DApp にログインすると、コントラクト ロジックのほとんどは L2 (StarkNet など) に基づいており、ユーザーのウォレット コントラクトを自動的に作成し、オペレーターの秘密キーをローカルに (ローカル キャッシュとして) 記録できます。この契約を作成するとき、ユーザーは L1 外部アカウント (MetaMask でログイン) を提供し、代替メールボックスまたは特定の回復オペレーターを提供する必要があります。このようにして、ユーザーのローカル秘密キーが失われた場合、L1 EOA アカウントの通信、またはバックアップ メールボックスの認証は、スマート コントラクト ウォレットによる新しいオペレーターの変更に役立ちます。つまり、ローカルでランダムに作成されたオペレーターは回復可能です。 、交換可能。製品設計の観点から、この種の回復はユーザーには認識されず、ユーザーが秘密鍵を覚えているかどうかに関係なく、いつでも LN ウォレットを操作できます。
この設計により、LN ウォレットの資産を L1 EOA ウォレットの資産キャッシュとして使用することができ、特定の通信を使用することで、ユーザーはいつでも L1 から LN ウォレットの資産を引き出すことができます (StarkNet の場合、この動作は30 分未満で完了) 一方、これにより、コントラクト ウォレット内の資産のセキュリティが強化され、柔軟なクロスレイヤー権限管理が可能になります。
MARN は明らかな利点をもたらしました: ユーザーにとっては、複数の EOA ニーモニックを記録する必要がなくなり、LN サービスについての認識がなくなりました; Secrets Service のコストとセキュリティのリスクは、複数の目的に役立つと言えます。
MARN の最終的な設計目標は、ユーザーが単一の外部ウォレットを使用して、マルチレイヤー ネットワーク全体でシームレスな権限制御と資産転送を実現できるようにすることです。この目標の観点から見ると、LN はアプリケーション サービスの優先インフラストラクチャであるべきです。これは、レイヤー 2 テクノロジーにより、クロスチェーン ブリッジを作成するアプリケーション開発者にセキュリティ リスクを引き渡すことなく、クロスチェーン資産のセキュリティを最大限に保証できるためです。契約書(アクスィーに起こったことのように)。
現時点では、私はこのコンセプトについてまだ初期段階にいますが、ユーザーにシームレスで安全なウォレット体験を提供したいと考えて、このアイデアを Checks Finance L2 の DApp コーディングに実装しました。 MARN についても、同様のアイデアや建設的な提案がある場合は、Twitter で私と議論することを歓迎します。また、このアイデアの具体的な実践を Mirror で徐々に更新し、最終的な製品とコードをオープンソースにする予定です。
次のサイクルでは Web3 の大規模な適用が起こるかもしれないという予感があります。この重大な世界的変化を目撃するために BUIDL を続けていきましょう。