厳選!知っておきたい市場ニュース!!

ライトニングネットワーク内のビットコインが安全と言える仕組みを理解する

ライトニング・ネットワーク内にデポジットされた資金が盗まれるという、一部界隈の懸念を具体的な仕組みの説明によって払拭しました。こちらの記事を見ていただくことで、なぜ資金が安全と言えるのかを理解していただくと同時に、その仕組みを理解して頂くことができます。


前回のライトニング・ネットワークのチャネル内の仕組みと基礎に引き続き、今回もライトニング・ネットワークに関して執筆致します。内容は、テレグラムの「Tokyo Dragons Den」グループ内での大石氏による発言とコミュニティー内の発言をまとめたものになります。

前回の記事を読まれていない方はこちら

 

ライトニング・ネットワークで資金を盗む方法

ライトニング・ネットワークに関して「チャネル内の資金が盗まれる」という話があります。

結論から言うとその心配はありません。

それはなぜか?

まずは「チャネル内の資金が盗まれる」という話の前提から説明します。

ライトニング・ネットワークは、チャネル内の残高に対してお互いが電子署名を確認することで、送金しているように見えるというのは前回の記事で図を用いて説明させて頂きました。

さて、ここで悪意のあるAがいたと仮定しましょう。

ここにライトニング・ネットワークによる決済に対応したスターバックスがあります。

Aはコーヒー代金をBTCで決済しました。ここで悪意のあるAさんは、BTCで決済する前のチェーンに遡り履歴をオンチェーン(ブロックチェーン内)にブロードキャストしてチャネルを閉じて確定しようとしています。Aさんは過去にすべての残高に電子署名しているので、どの残高であってもブロードキャストをして確定させることができてしまいます。

これが「チャネル内の資金が盗まれる」という話の前提になります。

あたりまえですが、これでは使い物にならず最新の残高だけが有効でないと困ってしまいます。そのような悪意のある行動に対して、チャネルのクローズ方法に工夫をすることで防止しています。

 

協力的なクローズと非協力クローズ

悪意のあるものによるダブルスペンド(2重払い)を防止するために、チャネルのクローズ方法に工夫があることをお伝えしました。

チャネルには2種類の閉じ方、協力的クローズ非協力クローズがあります。

協力的なクローズは、ブロードキャストされた残高に対してABが合意することでクローズします。このクローズ方法であれば、最新の残高履歴が確認されるので協力クローズでは不正はおきません。

問題は、ダブルスペンドを目的とした古い残高をブロードキャストした後に、非協力クローズによって一方的にチャネルを閉じるというものです。しかし、非協力クローズのTX(トランザクション)には、タイムロックがかかる仕組みになってます。タイムロックがかかったTxは、48時間や2週間などあらかじめ定められた期間が経過しないと有効にならない仕組みです。もしその時間が経過すると、不正TXがマイニングされ成功してしまいます。

しかし、その48時間とか2週間の猶予の間に不正TXがブロードキャストしていることを検知してカウンターTXを出すことで、カウンターTXが先にマイニングされチャネル内のBTCを総取りできるような仕組みになってます。つまり、善意で不正Txを検知したものには正のインセンティブを提供し、悪意あるものにはチャネルのBTCを全て失う負のインセンティブを提供しています。

これが冒頭でお伝えした、チャネル内の資金が盗まれる心配は無いという理由です。

しかし、この不正TXをどのように検知するのかという課題があるのも現実です。

 

不正トランザクション(Tx)を検知する方法

悪意あるものによる不正TXはどのように検知するのか?

基本的には、ブロードキャストされてくるTXを全てウォッチしている必要が有ります。これはフルノードであれば必ず全てのTxを検知しているので、フルノードでライトニング・ネットワークを走らせているひと(またはフルノードに接続してつかうウォレット)にとっては何ら問題になりません。

Point:これはフルノードを運用するインセンティブになります。先日、国内で暗号通貨ウォレットを提供しているGincoもフルノードの運用を代理で行うことを発表しました。これから大手などの参入もどんどん増えてきそうですね。

不正Txの対処にかかる労力が大変という声が聞こえてきそうですが、基本的に不正Txの対処はライトニング・ネットワークのソフトウェアが自動的に行うので、ユーザーへの負担は全くありません。

問題はモバイルウォレットです。

実際に筆者の経験ですが、ウォレットに関しては数日以上オフラインの場合が多いです。その間にチャネルがクローズされ、タイムロック期間内にカウンターTx発行できないという問題があります。

それを防ぐために、ウォッチタワーというのが出てきます。

これは普通のフルノードですが、これに自身のチャネル情報を登録しておくことで、不正TXを発見した場合に代理でカウンターTXを発行してくれます。これはLND(*1)などのソフトウェアに実装される見込みで、今年の春くらいには使用できるようになるはずです。

*1 LND:Lightning Labs(ライトニング・ラボ)が開発しています。詳細はこちら

 

質問と回答

以下のような質問と回答がコミュニティー内でありましたので共有します。

Q:チャネルの状態を最新のものから巻き戻していけないので、バックアップが絡むと問題が複雑になりますよね。古いバックアップに戻してはいけない=バックアップを持っていることはある種のリスクになってしまいます。実際に少し前までは、Lightningのバックアップはどうしたらいいですかと質問すると、「バックアップは取るな!」という回答も見かけました。バックアップファイル(ある時点のチャネル状態)を持っているだけでは、決してそれはバックアップとして機能せず、必ずそれが最新であることを保証しなければなりません。個人ならば、それは個人の記憶やメモで補えるかもしれません。しかし、チャンネルの状態は、自分だけでなく相手方も変える権限がある。というか誰でも変えられる(routing)はずで、厄介では。

大石氏

そうですねバックアップの問題はややこしいです。自分のバックアップが最新なのかどうかを確かめる必要が常にでてきますね。おっしゃるようにルーティングノードは厄介ですね。いまのところ効率的な回答はなく。ただ、プロトコルレベルで、最新のステートだけをもてばよく過去の履歴はもたないで大丈夫な方法も提案されています。

 

LINE@ – 友達追加 –

おかげさまで現在お友達が1057名を突破しました。仮想通貨の最新情報や重要なファンダ情報などを「プッシュ通知」にて誰よりもはやくお届けします。

CoinPicks Labってなに?

関連記事

  1. ビットコインにおけるウォレット構造

  2. 暗号資産の分析概要と結果 – Bitcoin(BTC)

  3. ビットコイン発行上限を迎える2140年以降のマイニングインセンティブについて考える

  4. ERC998について学びユースケースを考える

  5. ライトニングネットワークのチャネル内の仕組みと基礎

  6. ERC223についての基礎学習

  7. ERC1155について学びユースケースを考える

  8. ビットコインにおけるUTXOとは

  9. 秘密鍵と公開鍵とアドレス

今井 涼二

今井 涼二

CoinPicks Admin // CoinPicks Lab Admin // CoinPost専属ライター

プロフィールを表示 →

新着記事

  1. Ethereumに対する潜在的な意見|282人によるアンケート
  2. ブロックチェーンのレイヤー構造について知ることで理解を深める
  3. ERC998について学びユースケースを考える
  4. BlockTower Capital|レイヤー1プロトコルへの投資は過大評価され…
  5. ERC1155について学びユースケースを考える
  6. StarkExchangeとは
  7. StarkDEXとは?
  8. LEOとBNBの比較 – THE BLOCK PART2
  9. LEOとBNBの比較 – THE BLOCK
  10. ビットコインの需要の高まり – THE BLOCK

Bitcoin – Lab

Ethereum – Lab

Q&A – Lab

PAGE TOP