![見出し画像](https://assets.st-note.com/production/uploads/images/111319314/rectangle_large_type_2_481a8ec0ac035b3a26c92d15472e3ac6.png?width=800)
【完全保存版】Banana Walletについて学ぼう!
1 Banana Walletの概要について
Banana Walletは、アプリケーション向けのプラグイン可能なSDKです。
![](https://assets.st-note.com/img/1689905561764-Rr1r0a0TuF.png?width=800)
アプリケーションに、ユーザーにとって安全でシームレスな体験を提供するための基盤を提供することがビジョンです。
Banana Walletを使用すると、アプリケーションユーザーはアプリケーション内に使いやすく、非預託型で安全なウォレットを作成できます。
翻訳者注
「非預託型」とは、特定のアセットの所有権を第三者の機関やサービスプロバイダーに委ねず、ユーザー自身が直接管理・コントロールするという意味です。
このウォレットはERC-4337(アカウントの抽象化)とゼロ知識証明(ZKPs)を利用しています。
![](https://assets.st-note.com/img/1689905892168-athecj4dq6.png?width=800)
2 ウォレットのデプロイ
ユーザーがTouch-IDを使用して認証すると、ウォレットがデプロイされます。
大まかな流れは、次のようになります。
フロントから「Banana Wallet」による接続を試みます。
![](https://assets.st-note.com/img/1689906041704-31G9ETmljY.png?width=800)
Touch IDによる認証を行います。
なお、Touch IDではない方法による認証も可能です。
![](https://assets.st-note.com/img/1689906115286-TP7sPqV4H2.png?width=800)
このようにしばらく待ちます。
![](https://assets.st-note.com/img/1689906163376-DGaplLAePq.png?width=800)
しばらくすると、ウォレットがデプロイされます。
![](https://assets.st-note.com/img/1689906193112-bYdAqsfdev.png?width=800)
3 ウォレットデプロイ時の内部処理について
バックエンドではスマートコントラクトウォレットがチェーン上にデプロイされ、Secure Enclave内でキーペアが生成されます。
プライベートキーに対応する公開キーは、すべての署名付きトランザクションを検証するためにウォレットに格納されます。
詳しくは、こちらの記事をご確認ください。
4 トランザクションの実行について
以下のような流れになります。
![](https://assets.st-note.com/img/1689906340278-ALXJINOKC6.png?width=800)
「Touch ID」により、トランザクションの署名を行います。
なお、Touch IDではない方法による署名も可能です。
![](https://assets.st-note.com/img/1689906390869-AxA9xWfVQ4.png?width=800)
すると、このようにトランザクションが無事、送られます。
![](https://assets.st-note.com/img/1689906415504-nrtMc2wjrY.png?width=800)
5 トランザクション実行時の内部処理について
ユーザーがトランザクションを開始すると、トランザクションはWebAuthnを介してデバイスのSecure Enclaveに署名のために送信されます。
![](https://assets.st-note.com/img/1689907235602-vAPX2Z0X5t.png?width=800)
署名されたトランザクションはその後、スマートコントラクトウォレットに送信され、対応する公開キーによって検証されます。
詳細は、こちらの記事をご確認ください。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊