コアなビットコイナーは秘密鍵の管理にうるさかったり、一家言ある人が多いというイメージはありませんか?少なくとも自分の印象ではWeb3系の人たちよりよほど秘密鍵の生成や管理に関心がある気がします。
ビットコイナーの一部の間ではマルチシグによって自身のコールドストレージのセキュリティを強化する人も見られるようになりました。しかし通常のシードフレーズとは異なり、複数のシードフレーズとスクリプト文のデータなどを用意し別々の場所で安全に保管するのが煩雑なのも間違いありません。
他にはシャミアの秘密分散法という知名度の高い手法を使って1つのシードフレーズを複数の「シェア」に分割し、それらのシェアを使ってn-of-mのマルチシグを擬似的に再現することも考えられます。実際には1つのシードフレーズを復元するので狭義のマルチシグトランザクションにはなりませんが、比較的シンプルな手法で(ビットコイン以外のブロックチェーン系のウォレットで)人気があります。
例えば友人や親戚にシェアを1つ預けてソーシャルリカバリーできるようなウォレットの多くはこのスキームになっています。数人に結託して裏切られないように注意しましょう。
さて、ビットコイナーはできる限り検証可能な方法で乱数を生成し、シードフレーズを導出したほうが良いという立場を取りがちですが、シャミアの秘密分散法でシェアを生成するのはさすがに電子機器を使う必要がありそうですよね。
ところが、実はその必要はないのです。かなり時間をかけて手計算したり表と照らし合わせる必要はありますが、Codex32という手順書に従えばシェアの分割や誤り検出・誤り訂正、秘密の復元といった処理が紙とペンで実行できるのです!
今日はちょっとだけ中身を覗いて見ましょう。MITライセンスで提供されているので、上記のリンクからダウンロードして利用できます。デザインも優れているのでせめて見てみてください!
ちなみにシャミアの秘密分散法を用いたビットコインウォレットについて広く普及している規格はありませんので、本番利用はある程度リスキーかつ不便だと思ったほうが良いです。(不便承知でやってみる遊びだと思ってください)
・ボルベル(ホイールチャート)を使った見事な設計
・生成時に利用するサイコロの出目の偏りを検出し修正するためのワークシート
・アドレスの導出やトランザクションの作成、署名はまだできない