こんにちは、らいう(変態物理です)
以前にモナレッジを作った経緯とか思いとか
という記事を書いたのですが、これはどちらかというと思い的な部分が強かったので、今回は技術的視点からこのサービスの良いところを考えてみます。
もちろん、細かいところはまだまだガバガバだと思いますが、コンセプト的な視点で書いていきます。
最大のメリット
僕の個人的な感想ですが、Bitcoinをはじめとして暗号資産で一番の素晴らしい点は、「クライアント側に秘密鍵があること」 だと思っています。
もちろん、これまでにもクライアント側に秘密鍵を持つようなタイプのアプリケーションはしますが、(元来の用途ではなかったとしても)一般的なユーザが利用する頻度が高いwebにおいてもクライアントで秘密鍵を持つことができるようになったということはとてもインパクトの大きかったことだと思っています。
これにより、クライアント側でデジタル署名を作成し、バックエンドでは署名を検証することでユーザを認証するという方法を使うことができます
※余談
暗号に精通している方ならここで
- 署名の作成者は署名検証者ならわかるが、署名の送信主体がわからない
と思うかもしれません。
たしかにそうです。一般に、この問題に対処するために認証局がありますね。しかし、その認証局事態の署名は?と永遠に無限ループになるので本質的に認証局の信頼性みたいなものは難しい議論です(もちろんあった方がいいと思いますが、原理的に、極論ではということもあります。実用上認証局があることのメリットはめちゃめちゃでかいと私も思っています)
付随したメリット
先ほど説明したように、クライアント側に秘密鍵を持つことでうれしいことがあります
ユーザを認証するためにバックエンドが必要とする情報は公開鍵と署名で原理的には可能になると考えられます。
もちろん、先ほど言ったように署名の作成者は検証できますが、送信者は検証できないという問題がありますが、ナンスを署名に含めることでよりよい手法になることが、https://ci.nii.ac.jp/naid/110002725959
この論文により提案されている。
この論文での内容と、https通信を組み合わせればクライアントサーバ間では適切にナンス交換ができるため、幾何かID & パスワードの認証よりも安全かといえるかもしれません。
もちろん、前提として保障されているものがありながら、かつそれも完全ではないのですが実用上であればという意味ですが。
また、もう一つメリットを上げるとすれば、お金を扱うサービスなのにサーバ側にクライアントが保存すべき情報が無いことでしょう。クレカなどを利用する場合ではユーザはクレカ情報を入力しなければいけませんが、このサービスではユーザが直接、著者に対して送金をするので比較的安全だと思われます。
おわりに
と、いろいろかきましたが、自分自身あまり上手に説明できている気がしていません(ごめんなさい)。かつ、なるべく正しく表現しようと頑張っていますが、自分の知識そのものが間違っている可能性もあるかもしれないという不安もあります。
間違い等がありましたら、やさしくまさかりを投げていただけると嬉しいです