Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JCBA2018年3月度勉強会ライトニングネットワーク

 JCBA2018年3月度勉強会ライトニングネットワーク

2018年3月28日に日本仮想通貨事業者協会(JCBA)勉強会にて、「ライトニングネットワーク」について話させていただきました。
https://cryptocurrency-association.org/study/

Shu Kobuchi

March 28, 2018
Tweet

More Decks by Shu Kobuchi

Other Decks in Programming

Transcript

  1. © CUBE SYSTEM INC. 2018 ブロックチェーンの社外での活動 2 ブロックチェーン推進協会(BCCC) ・金融部会、スマートシティー部会で情報収集と交流 ・技術応用部会のハンズオンにてエンジニア養成

    仮想通貨ZEN社会実験に参加 ・日本円と価値をペグさせたZENトークンの売買で価値が乖離しな ことと、イーサリアムプライベートネットワーク上で正常に送金で きたことを確認 ブロックチェーン大学校受講 ・エンジニアコースでブロックチェーン開発者の育成 ・ビジネスコースで事業企画者の育成 ブロックチェーンハブコーポレート会員 当社は2016年7月という早い時期から参加しています ・講義受講での知識習得 ・コーポレート会員情報交換会等での交流 ・開発者コミュニティ会合での開発者交流 ビヨンドブロックチェーン法人正会員 2017年10月末にオープンソースで公開された BBc-1(Beyond Blockchain One)の開発と活用を行います ・業界第一人者の斉藤賢爾氏が代表理事 ・履歴交差による存在証明 ・ドメインでのネットワーク分離
  2. © CUBE SYSTEM INC. 2018 先進的なブロックチェーンの取り組み 3 Lightning Networkによるマイクロペイメント ・IoT/M2Mでの大量トランザクションをブロックチェーンで処理するのに期待

    弊社の小渕が稼働させているライトニングノード “ORANGEBEAM” https://lnmainnet.gaben.win/ 日本の中では、早い段階でライトニングノードに取り組めている Bitcoin 1st Layer (On-chain) Bitcoin 2nd Layer (Off-chain) 第三者信頼を必要としない マイクロペイメントチャネル
  3. © CUBE SYSTEM INC. 2018 自己紹介 4 小渕 周(Shu Kobuchi)

    [email protected] 所属 株式会社キューブシステム 経営企画本部 技術戦略室 (2018年4月から経営戦略本部 技術戦略室) ブロックチェーンの研究開発を担当 https://www.cubesystem.co.jp/ 経歴はミスビットコイン藤本真衣氏の記事をご覧ください https://goo.gl/tEo8MZ ビットコインとか勉強会/暗号通貨輪読会 https://cryptocurrency.connpass.com/ 運営メンバー ビットコインとか勉強会に2回登壇 オープンソースカンファレンス東京2018Spring登壇 仮想通貨・ブロックチェーンコミュニティの他、 Web系オープンソースコミュニティにも参加 藤本真衣氏ブログ記事
  4. © CUBE SYSTEM INC. 2018 ビットコインの送金について 6 ・BTCを誰から誰にいくら送ったという取引情報がトランザクション(Transaction:TX) ・UTXOが二重使用されないように、ブロックという名の新聞に載せて使用済みになったことをみ んなに知らせる

    ⇒ ブロックをブロードキャストする ・Proof of Work(PoW:作業証明)により、改ざん防止 ・マイナーは電気代をかけてハッシュ計算を行う「マイニング」によりブロックを生成 ・現在、ブロック生成報酬は12.5BTC ・ブロック報酬に加え、マイナーはブロックに含めた取引のトランザクション手数料を報酬と合算 でもらえる Transaction IN OUT Transaction 0 1 IN Transaction 0 OUT 未使用:UTXO(Unspent Transaction Output) 使用済
  5. © CUBE SYSTEM INC. 2018 ビットコインの手数料 7 ・ブロック生成で得られるビットコイン報酬と手数料の例 #515000の場合は、ブロック報酬 12.5

    + 手数料合計 0.63025779 = 13.13025779BTC https://blockchain.info/block/0000000000000000003ca88d20895d2535f304cca8afb08e7 e5503fcac1da752 参考)混雑時
  6. © CUBE SYSTEM INC. 2018 ビットコインのスケーラビリティ問題 8 ・ブロックの平均生成間隔は10分に1つ ・ビットコインのブロックサイズは1MBで、取引データが含まれる ・つまり、平均して10分に1MB分の取引承認しかできない

    ・ビットコイン送金が多く行われると、取引承認がなかなかできない送金詰まり ・例えば、5,000円分のビットコイン決済をするのに、ネットワーク手数料2,000円
  7. © CUBE SYSTEM INC. 2018 Bitcoin Cashのスケーラビリティ解決法 9 ・2017年8月1日にUAHF(User Activated

    Hard Fork)により、BitcoinからBitcoin Cashがハード フォーク ・Bitcoin Cashはブロックサイズを1MBから8MBに引き上げてスケーラビリティ問題を解決 ・Bitcoin Cashより前にあったBitcoin Unlimitedはブロックサイズ上限を撤廃するアイデア ・ビッグブロックという考え 2017/8/1 ハードフォーク Bitcoin ブロックサイズ 上限:1MB スモールブロック Bitcoin Cash ブロックサイズ 上限:8MB ビッグブロック ビットコイン・ブロックチェーンのイメージ
  8. © CUBE SYSTEM INC. 2018 ・全世界のノードで、トランザクション(TX)やブロックをバケツリレーで転送し合っている (2018年3月時点でノード数が1万以上) ノードのエクスプローラ: https://bitnodes.earn.com/nodes/live-map/ ・ビットコインネットワークは、ネットワークの管理者はいないPeer

    to Peer(P2P) 用語の確認 ・ノード:ネットワーク上のポイント。Bitcoinネットワークの場合は、Bitcoin Coreなどのソフ トウェアをインストールしたコンピュータのこと。LightningノードはBitcoinノードに併用して使 うため、同一コンピュータ内にインストールする ・ブロードキャスト:トランザクション(TX)やブロックをオンチェーンに流しバケツリレーさせ ること ビットコインネットワーク上のデータの動き 10 TX TX TX Block ノード: TXやBlockの検証をして 正しければ、 自分の台帳に取り込む マイナー 送金者 Block Blockが採掘できたら ネットワークに流す (ブロードキャスト) TX 送金時には TXをネットワークに流す (ブロードキャスト)
  9. © CUBE SYSTEM INC. 2018 Bitcoin Core開発者の考え 11 ・Bitcoinのリファレンス実装したソフトウェアを「Bitcoin Core」と呼ぶ

    ・オリジナルのBitcoinを「Bitcoin Core」と呼ぶことがある ・ソフトウェア開発者をCore Developerと呼ぶ ・Core開発者らの考えは以下の通り ・ブロックサイズを引き上げると、ブロック転送の遅延が起きやすくなる ・ブロック転送の遅延が起きると、ブロックチェーン分岐が起きやすくなる ・その問題を解決するために、ビッグブロック高速ネットワーク網が形成されて、中央集権化され る ・非中央集権のビットコイン思想が崩れてしまうのでは? ・ビッグブロックではない手法でスケーラビリティ問題を解決したい
  10. © CUBE SYSTEM INC. 2018 Coreのスケーラビリティ解決をする基本的なアイデア 12 ・ブロックチェーンへの書き込みを減らす ・何回か送金があった後の差額だけブロックチェーンに書き込む Alice

    例)Aliceはクリーニング屋を営んでおり、Bobはパン屋を営 んでいて、お互い店を利用する Bob 利用した店 送金者 受取者 支払額 パン屋 Alice Bob ¥1,500 クリーニング屋 Bob Alice ¥2,500 パン屋 Alice Bob ¥2,000 相殺するならAliceがBobに¥1,000払えばよい
  11. © CUBE SYSTEM INC. 2018 オンチェーン・オフチェーンについて 13 オフチェーン ・ビットコインブロックチェーン上の仮想的なネットワーク ・ライトニングネットワークの他に、サイドチェーンなどもオフチェーン

    ・ビットコインブロックチェーンが1つに対し、オフチェーンはいくつものネットワークがある ・異なるネットワーク間は行き来ができない Bitcoin 1st Layer (On-chain) Bitcoin 2nd Layer (Off-chain) セカンドレイヤー オフチェーン ブロックチェーン直接 オンチェーン Bitcoin ノード Lightningノードは Bitcoinノードがない と稼働しない Lightning ノード Bitcoin ノード Bitcoin ノード Lightning ノード チャネルという 通信経路
  12. © CUBE SYSTEM INC. 2018 マイクロペイメントチャネルから説明の流れ 14 単方向マイクロペイメントチャネル ・二者間の取引で、片方向への支払いが可能 ・ユーザがサービス事業者へ支払いをする場合などに活用

    ・チャネルには有効期限が存在い、有効期限が切れればユーザへ全額返金 ・有効期限内にチャネルをクローズする必要あり 利用用途:動画の視聴を1秒単位で課金、Wi-Fiの使用量に応じて課金などマイクロペイメント 双方向マイクロペイメントチャネル HTLC (Hashed Timelock Contract) HTLCを利用した双方向ペイメントチャネル この応用の一つがライトニングネットワーク Alice Bob Alice Bob Alice Bob Carol Alice Bob Carol
  13. © CUBE SYSTEM INC. 2018 単方向マイクロペイメントチャネル 15 ・ライトニングネットワークに入る前に単純モデルの単方向マイクロペイメントチャネルから解説 山崎重一郎, 安土茂亨,

    田中俊太郎『ブロックチェーン・プログラミング 仮想通貨入門』, 講談社, 2017, P.291 「図11.1 単方向ペイメントチャネルの流れ」を元に編集 オフチェーン オンチェーン Alice Bob ボブの公開鍵 Aliceへの送金 トランザクション (未使用) オープニング トランザクション 払い戻し用 トランザクション 払い戻し用 トランザクション オープニング トランザクション オープニング トランザクション コミットメント トランザクション (1, …, n) コミットメント トランザクション (n) コミットメント トランザクション (n) チャネルの確立 残高の 更新 チャネル クローズ ① ② ③ ④ ⑤
  14. © CUBE SYSTEM INC. 2018 単方向マイクロペイメントチャネル 16 プロセス ・チャネルの確立 ①オープニングトランザクションの作成

    AliceとBobの2-of-2マルチシグ(Bobの公開鍵を取得) ②払い戻し用トランザクションの作成 ロックタイムを設定 途中でBobが応答しなくなったときは、ロックタイムが過ぎる(有効期限が切れる)と、 オンチェーンにブロードキャストすることでAliceはBTCを取り戻すことができる (有効期限後にAliceが署名してブロードキャスト) ③オープニングトランザクションのブロードキャスト AliceがオープニングトランザクションをBobに渡し、Bobはブロードキャスト チャネルを確立 ・残高の更新 ④コミットメントトランザクションの作成 AliceとBobが取引を行うたびに発生するトランザクション 毎回完結の送金情報を作成するのではなく、AliceとBobの最終送金結果を持っている Bobが署名すれば、いつでもブロードキャストできる状態になる ・チャネルのクローズ ⑤コミットメントトランザクションのブロードキャスト 最後に受け取ったコミットメントトランザクションに署名し、 オンチェーンにブロードキャストすると、チャネルはクローズされる
  15. © CUBE SYSTEM INC. 2018 HTLC (Hashed Timelock Contract) 17

    中間者を介した取引 ・AliceからBobにチャネルが貼られている ・BobからCarolにもチャネルが張られている ・AliceからCarolにチャネルは貼られていないが、送金したい ・Bobを仲介すれば、送金できそう Alice Bob Carol 中間者のBobがお金を持ち逃げしない仕組みが必要
  16. © CUBE SYSTEM INC. 2018 HTLC (Hashed Timelock Contract) 18

    ・単方向でオンチェーンだけで完結できる取引を考える 山崎重一郎, 安土茂亨, 田中俊太郎『ブロックチェーン・プログラミング 仮想通貨入門』, 講談社, 2017, P.308 「図11.4 HTLCでの取引の流れ」を元に編集 オンチェーン Alice Bob AliceからBob Bobから Carol Aliceから Bob ① ② ③ ④ ⑤ Carol Secret R Hash R HTLC TX A1 IN:Alice OUT:どちらかの条件を満たす宛先 (a)Secret R and Bobの秘密鍵 (b)2週間経過後、Aliceの秘密鍵 HTLC TX B1 IN:Bob OUT:どちらかの条件を満たす宛先 (a)Secret R and Carolの秘密鍵 (b)2週間経過後、Bobの秘密鍵 HTLC TX C1 IN:B1のOutput(a) OUT:Carol HTLC TX B2 IN:A1のOutput(a) OUT:Bob
  17. © CUBE SYSTEM INC. 2018 HTLC (Hashed Timelock Contract) 19

    プロセス ・アリスからボブへの支払いを保証 ①Secretの作成、Secret Hashの連携 CarolはCarolしかしらないSercretを作成し、Secret HashをAliceに連携 ②HTLCトランザクションを作成し、ブロードキャスト Aliceは受け取ったSecret Hashを用いて(a)(b)の条件を持ったScriptPubkeyを設定し、送付 (a)SecretがわかればBobの秘密鍵で入手可能…Bobへの支払いのため (b)一定期間が過ぎればAliceの秘密鍵で入手可能…BobがSecretを渡さない場合の資金回収の ため ・BobからCarolへの支払い ③HTLCトランザクションを作成し、ブロードキャスト BobがSecretとCarolの秘密鍵で入手可能となるトランザクションを作成 ④HTLCトランザクションを作成し、ブロードキャスト Carolはビットコインを受け取るため、Bobが作成したHTLCトランザクションをインプット として、ブロードキャスト そうすることで、BobとAliceはSecretを確認でき、AliceはCarolへビットコインが渡ったこ とを知り、Bobがビットコインを入手できる状態となる ・AliceからBobへの支払い ⑤HTLCトランザクションを作成し、ブロードキャスト BobはSecretを用いて、Aliceが作成したHTLCトランザクションのビットコインを入手
  18. © CUBE SYSTEM INC. 2018 ライトニングネットワーク 20 双方向でHTLCを行う方式を応用したのがライトニングネットワーク ・経由する第三者が信用できなくても、送金可能な仕組み ・中継者にはインセンティブとしてごくわずかな手数料を払うのが良いとされる

    ・ネットワーク上の任意の参加者同士がペイメントチャネルを直接開いていなくても、資金の 送金が可能 ・一つのノードから複数のノードに対してチャネルを貼れる ・2018年3月27日時点で、ノード数は1,000を超え、チャネル数は2,300を超える https://lnmainnet.gaben.win/ ・当初危惧されていたハブ(ノード)の中央集権化はなく、分散ネットワークが形成できている Alice Bob Carol David Edward メインネットのノードとチャネルの様子
  19. © CUBE SYSTEM INC. 2018 参考文献 21 ・山崎重一郎, 安土茂亨, 田中俊太郎『ブロックチェーン・プログラミング

    仮想通貨入門』, 講談社, 2017 ・加嵜長門, 篠原航『ブロックチェーンアプリケーション開発の教科書』, マイナビ出版, 2018 ・東晃慈ほか『ビットコイナー反省会』, YouTube, 2017-2018 https://www.youtube.com/channel/UCRP9Ij6gL9IViB7MS3Ez9aw Lightning Network(ライトニングネットワーク) を実際に体験してみよう with大石さん https://www.youtube.com/watch?v=YIgcuprvuos Lightning Network Q&A放送 with 大石哲之さん https://www.youtube.com/watch?v=fm9-Dw9BvMI SegWit, Lightning, MAST ビットコインの最重要技術を改めて考える with ハウインターナショナル安土さん https://www.youtube.com/watch?v=jtRn6cFVc68 オンチェーン、オフチェーンって何? ビットコイナー養成所Ep23 https://www.youtube.com/watch?v=CFrlNoCJzJQ