いうカンファレンスが行われました。セキュリティに関する取り組みの最先端を知ろうという試みです。仕組みや最新の研究について詳しくなるための一助になれることを願います。本日は、ハードウェアウォレットについて、安全や改善点の最新研究をお伝えします。ハードウェアウォレットの現在ハードウェアウォレットは、キーを安全に保管しつつ、コインを送信したり、署名したりする機能があります。すべての入力はユーザーが意図したものでなくてはなりません。対応するアドレスがあれば、コインを受け取ることもできます。ウォレットによってはマルチシグに対応しているでしょう。価値の有無はともかく、草コインにも対応しているかもしれません。便利な機能として、coinjoin、カスタムスクリプト、サイドチェーンをサポートしていれば、便利なウォレットとして使えます。ライトニングは素晴らしい仕組みですがトリッキーな側面もあり、出力と入力が束になるため、難しい部分もあります。重要な部分としては、外部からの入力があることです。coinjoinを素朴に実装した場合、コインが盗まれる可能性があります。ライトニングに絞って話を続けたいと思います。詳しい仕組みについては、ここでは割愛します。coinjoinトランザクションに署名し、プロトコル内で失敗した場合はリトライをすること。トランザクションをブロードキャストできるよう、署名を返すことなどです。トランザクションの署名が失敗する可能性があり、そういった場合は同量の入力でリトライするのが一般的です。悪意を持ったウォレットのことを考えてみましょう。サーバーなどではなく、一般的なユーザーが使うクライアントアプリケーションです。2つの入力を取り込むケースを考えます。このときハードウェアウォレットは、実はどの入力が誰のものか、正確に判別することができません。したがって署名するときには、他のソフトウェアを信頼するだけになっています。1つに関してユーザー部分を書き換え、それに対しハードウェアウォレットに署名をさせます。coinjoinトランザクションが失敗したように見せかけ、同じトランザクションを再送します。このとき、2番目のユーザー入力も書き換えます。ハードウェアウォレットには、どの入力が自分の入力だったのか判別する方法が無いため、これを異常なものと認識することができないのです。proof)が必要です。して、所有権の証明が提案されています。すべての入力に対し証明を行うことを可能とし、それにはキーで署名する必要があるというものです。これによって、coinjoinトランザクションに対する支払いには必ず自分の所有権を示す必要が生じるため、サービス拒否攻撃(DoS)が防げます。証明に関して、ハードウェアウォレット自体でのみ署名できるようにし、そして一意のトランザクション識別子も持ちます。ラウンドに持ち越すことはできず、所有している証明にもなります。MuSig集約にも拡張可能です。https://github.com/satoshilabs/slips/blob/slips-19-20-coinjoin-proofs/slip-0019.md課題Schnorr署名については議論が必要でしょう。キー集約にあたり、署名は単一キーのものになりますが、これは大きくなります。おけるプライバシーの漏洩が考えられます。他の参加者よりもサイズが大きな署名が存在することで、ラウンド間で同じユーザーのことを特定しやすくなるからです。固定サイズの証明を作れる可能性があり、それが解決策になりえるかもしれません。ライトニングの支払いを行ったり受け取ったりするためには、常に接続されている必要があります。チャネルがオープンになっているか、あるいは閉じているか、エラーになったのかを知るため、ブロックチェーンを監視しなくてはなりません。ライトニングプロトコルには多くの秘密情報があります。secrets)などです。それぞれ、チャネルに資金を送るため、チャネルを更新するため、そして以前の状態を無効にしたり、他の関係者に提供したりするという役割があります。これらすべてのキーをハードウェアウォレットに保管することは、簡単でしょうか。簡単ではない、というのが現在の状況です。セキュリティについて考えるときは、ハードウェアウォレット以外の部分についてはハッキングされうると想定します。攻撃者はユーザーと同時にチャネルを開き、資金を送るトランザクションを送信し、コミットメントトランザクションを再送し、チャネルをオープンにするとしましょう。仮想的なチャネルを使って資金を盗まれてしまうというケースを考えると、安全のためには、チャネルが実際に開いていることを証明しなければなりません。すべてのブロックをハードウェアウォレットに渡す必要があり、トランザクションがブロックに含まれていないことを確認するのも簡単ではありません。ブルームフィルターを使うことも可能ですが、送金証明やライトクライアントは必ずしもユーザーフレンドリーではない、というのもまた事実です。フィルターはハードウェアウォレットに役立つので、ブロック全体を解析して、ブロックが閉じられたかを確認するべきでしょう。https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015623.htmlまとめ以上、ハードウェアウォレットに関する最新研究の発表を簡単にまとめさせていただきました。ご興味がある方は、ここでは書ききれなかった内容もあるので、講演資料や書きおこしをご覧になって頂くことをお勧めします。記事中の表現については講演資料を筆者なりに読み解きつつ、前後で独自の解説を加えておりますが、なにぶん新しい技術に関する内容ですので、もしも間違いなどございましたらお気軽にご指摘くださいませ。和樹クラウド業界で働くエンジニア、アイルランド在住。被害を受けたが、ブロックチェーンのセキュリティに興味を持ち続けている。いったイベント立ち上げなど、コミュニティ活動も実績あり。Hashgraph」も解説コメントを残す返信をキャンセルする。検索:仮想通貨についての不明点、回答いたします。