安土さんの技術ブログに先を越されてしまいましたが、今月初めにビットコインのUXを向上するeasypaysyというプロトコルのホワイトペーパーが発表されました。
easypaysyが改善しようとしているのはビットコインアドレスという仕組みのUXなのですが、似た機能としてSamourai Walletが実装したPayNymsというものがあります。今回のコラムでは双方の特徴を紹介し比較します。
EASYPAYSY
ビットコインアドレスは使い回しが推奨されない上に、人間にとって読みづらいです。実際、送金のたびにドキドキする人も多いでしょう。また、頻繁に送金する相手から毎回新しいアドレスを教えてもらうのも面倒です。easypaysyはこれらの問題を改善するために可読性の高い「アカウント」を使って扱いやすさとセキュリティを両立しようと提案されたプロトコルです。
技術的な詳細は冒頭で紹介した安土さんのブログに任せて、ここでは概要を説明します。
easypaysyを使うと、ユーザーは自身が保有する鍵2つを使った2-of-2マルチシグアドレスから送金することで次のようなアカウント名を取得できます:
btc@cancel-mind.exhibit/motion
この場合はBIP39のワードにエンコードされてますが、数字だと
btc@543847.636/577
となり、形式はアカウント名を取得するトランザクションについての
ブロックチェーン@ブロック番号.トランザクション順位/チェックサム
です。
チェックサムは本当は4単語(3桁の数字4組)ありますが、最初の単語を入力するだけで本体の誤りを検出することができます。本当に心配なら、4単語すべてを使って検証することもできます。
このアカウント名が指し示すトランザクションにOP_RETURNを使って格納されている識別子に、「どのような種類のトランザクションを受け付けるか」が決めてあります。最初に2-of-2マルチシグアドレスを使ってアカウントを取得する理由はここにあり、それは公開された2つの公開鍵に「認証鍵」「受け取り鍵」という機能を持たせるためです。
考案者が提案する4種類は以下です:
「単純にそのアドレスに送る」
「直接連絡してアドレスをもらう(認証鍵を使った署名つき)」
「送金者が受け取り鍵を活用し相手の新しいアドレスを生成して送金する」
「(同上+受信に気づきやすくなる工夫がある)」
つまり、easypaysyはbtc@abandon-chair.table/jazzのようなアカウント名を受け取るだけで、どのように送金を行えばいいかの情報まで受け取ることができるプロトコルで、指定された支払い方法によってはウォレットが支払先のアドレスを勝手に新規生成してくれるものです。(「受け取り鍵」はここで活用されています。)
したがって、簡単に言えばeasypaysyはブロックチェーン上のアカウントと、そのアカウントのへの送金方法を示すプロトコルです。
ちなみに、送金先のアドレスを生成するというのは新鮮に感じますが、ビットコインではあまり流行っていないステルスアドレスの仕組みを使っています。ネットの海を探したら2014年の大石さんのスライドが見つかりました。