Crypto Walletってどうやって作るのか?
というかそもそもCrypto Walletとは何か?何ができればCrypto Walletと呼べるのか。Crypto Walletの満たすべき最低限の振る舞いを調べることでCrypto Walletとは何かという問いに答えれるのではないだろうかということで、Crypto Walletの必要最低限の要件を調べる。
Hackanoonの記事によるとSatoshi Nakamotoによって実装された最初のBitcoinのWalletには新しいアドレス(key pair)の生成と送金機能しかなかったようだ。 モダンなCrypto Walletに求められているのは下記の機能が最低限とのこと。
・モバイル機器への対応 - 現在、世界には50億人以上の携帯電話ユーザーがいます。家庭用PCの時代は終わり、モバイルファーストのパラダイムは、暗号財布にモバイル版、できればアダプティブなウェブサイトではなく、アプリケーションを持つことを要求しています。
・使いやすいインターフェース - すべてのユーザは、アドレスをコピーペーストするか、QRコードをスキャンすることで暗号を送信できなければなりません。現在、すべての決済アプリは非常にユーザーフレンドリーで、数回のクリックやタップで送金することができます。競争力を維持するために、暗号財布も同じようなステップを必要とする必要があります。
・アクセスのしやすさ - アプリを開くのに数秒しかかからないことも必要です。短いPINコード、FaceID、または指紋を設定する必要があります。
・多くの暗号通貨をサポートすること - 今でこそ標準的な要件ですが、数年前までは非常にエキゾチックな機能でした。
・秘密鍵をお金にエクスポートする - 持っているのが理にかなっていると思われるかもしれませんが、一般的なウォレットのすべてがそれに対応しているわけではありません。
・ デバイスでの暗号化 - 誰もデバイスの中に入って秘密鍵がわからないようにするためです。
これらの機能を持っていれば今時のWalletとのことだが加えてNFTを閲覧できたり他にも色々と便利な機能が備わっていることが多い印象。
custodialなWalletは漏洩した時のリスクが高すぎるので自分たちではやりたくないな。
ごちゃごちゃ書いたけどCrypto Walletの作り方としてはSatoshi Nakamotoの最初に実装したアドレス生成と送金機能をBlockchainの公開APIを使って実装すればいいだけっぽい。ただしモダンなウォレットを作るにはそれを遥かに超える機能と実装コストがかかりそうである。