見出し画像

【完全保存版】Banana Walletについて学ぼう!


1 Banana Walletの概要について

Banana Walletは、アプリケーション向けのプラグイン可能なSDKです。

アプリケーションに、ユーザーにとって安全シームレスな体験を提供するための基盤を提供することがビジョンです。

Banana Walletを使用すると、アプリケーションユーザーはアプリケーション内に使いやすく非預託型安全ウォレットを作成できます。

翻訳者注
「非預託型」とは、特定のアセットの所有権を第三者の機関やサービスプロバイダーに委ねず、ユーザー自身が直接管理・コントロールするという意味です。

chatGPT-4

このウォレットはERC-4337(アカウントの抽象化)ゼロ知識証明(ZKPs)を利用しています。

2 ウォレットのデプロイ

ユーザーがTouch-IDを使用して認証すると、ウォレットがデプロイされます。

大まかな流れは、次のようになります。

フロントから「Banana Wallet」による接続を試みます。

Touch IDによる認証を行います。

なお、Touch IDではない方法による認証可能です。

このようにしばらく待ちます。

しばらくすると、ウォレットデプロイされます。

3 ウォレットデプロイ時の内部処理について

バックエンドではスマートコントラクトウォレットチェーン上にデプロイされ、Secure Enclave内キーペアが生成されます。

プライベートキーに対応する公開キーは、すべての署名付きトランザクションを検証するためにウォレットに格納されます。

詳しくは、こちらの記事をご確認ください。

4 トランザクションの実行について

以下のような流れになります。

「Touch ID」により、トランザクションの署名を行います。

なお、Touch IDではない方法による署名も可能です。

すると、このようにトランザクションが無事、送られます。

5 トランザクション実行時の内部処理について

ユーザーがトランザクションを開始すると、トランザクションはWebAuthnを介してデバイスのSecure Enclaveに署名のために送信されます。

https://engineering.mercari.com/blog/entry/2019-06-04-120000/

署名されたトランザクションはその後、スマートコントラクトウォレットに送信され、対応する公開キーによって検証されます。

詳細は、こちらの記事をご確認ください。


サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊