Develop with pleasure!

福岡でCloudとかBlockchainとか。

Lightning network

複数のPayment Channelのアトミックな更新を可能にする「Atomic Multi-Channel Update」

Scaling Bitcoin 2019予習シリーズ第三弾は、「Atomic Multi-Channel Updates with Constant Collateral in Bitcoin-Compatible Payment-Channel Networks」。ホワイトペーパーは↓ https://eprint.iacr.org/2019/583.pdf 著者の1人のPedro Moreno-Sanchezは…

LNの支払い経路の計算をアウトソースするトランポリンペイメント

Scaling Bitcoin 2019予習シリーズ第二弾は、「Improving routing in the Lightning Network with Trampoline Payments」について。 特にホワイトペーパーが出てる訳でも無いので、確かな内容は分からないんだけど、おそらく現在BOLTにプルリクが出されてい…

LNでインボイスを必要としないSpontaneous Paymentの2つの実装方法

通常Lightning Networkの決済では、支払先が予めインボイスを作成し、それを支払元に送ることで支払いがスタートする。このインボイスにはLNでマルチホップ決済をするにあたって、支払先のノードIDやコントラクトを構成する際に必要な情報(プリイメージのハ…

c-lightningのPluginの作り方

c-lightning 0.7から任意の言語でPluginを書けるようになった↓ blockstream.com 現在、C、Python、Golang、JavaでPluginを書くためのライブラリが提供されている。 c-lightningのPlugin Pluginを利用することでc-lightningが提供する機能を拡張することがで…

Tapscript上で限定的に署名済みトランザクションのインプットの参照先をリバインド可能にする提案 bip-anyprevout

bip-taprootやbip-tapscriptが定義されたが、これに関連してLightning Networkのeltooを実現するための提案も出てきてるので見てみる↓ https://github.com/ajtowns/bips/blob/bip-anyprevout/bip-anyprevout.mediawiki eltooは、LNにおいて旧状態がブロード…

LNDに実装されたStatic Channel Backup

先日リリースされたLND 0.6-beta↓ Release lnd v0.6-beta · lightningnetwork/lnd · GitHub で新しくStatic Channel Backup機能が導入された。 通常のオンチェーンの場合であれば、全てのトランザクションはチェーン上に記録されているためバックアップは簡…

Atomic Swapを拡張してオプション、証拠金、先物取引などを可能にするAtomic Swaptions

Atomic Swapプロトコルは第三者を信頼することなく、異なるブロックチェーン間で暗号通貨の交換を可能にするプロトコル。単なる暗号通貨の交換だけでなく、オプションや先物のようなデリバティブ資産の保有を希望する参加者向けにAtomic Swapプロトコルを拡…

lndで実装されているBIP-39に代わるシード管理方式「aezeed」

lndでBIP-39*1の欠点を修正するために実装されたシードの新しい管理方式「aezeed」について↓読んでみた。 https://github.com/lightningnetwork/lnd/tree/master/aezeed 2018年3月のSF Bitcoin Devsで@roasbeefがlnd v0.4-betaの紹介した際にも触れられてる…

SchnorrベースのScriptlessな「Multi-Hop Locks」の実現方法

techmedia-think.hatenablog.com techmedia-think.hatenablog.com と書いたので、残ったSchnorrベースのMulti-Hop Locksについても書いておく。 (Multi-Hop Locksのコンセプトについては最初の記事参照) SchnorrベースのMulti-Hop Locksは署名アルゴリズム…

ECDSAベースのScriptlessな「Multi-Hop Locks」の実現方法

Scaling Bitcoin 2018のセッションの1つでもある、LNなどで利用されているペイメントチャネルネットワークの新しいプリミティブである「Multi-Hop Locks」について、以前一方向準同型関数を使った実装方法について書いたが↓ techmedia-think.hatenablog.com…

安全性とプライバシーを強化するペイメントチャネルネットワーク「Multi-Hop Locks」

LNではHTLCを使って仲介者を経由したマルチホップ決済を可能にしている。例えばアリス→キャロルのオフチェーン決済をボブとマイクを経由して行うケースでは以下のような決済フローになる。 最初に受信者のキャロルがランダムな値Rとそのハッシュ値H(R)を生成…

ペイメントチャネルへの資金のチャージ/引き出しを行うSplicing

Lightning Networkはオフチェーン決済を行う2者が資金を両者のマルチシグにデポジットするトランザクション(Funding Tx)をオンチェーンにブロードキャストし、そのデポジットした額(キャパシティ)の範囲内でオフチェーン決済を行う。キャパシティを超え…

ECDSAベースのScriptless Lightning Network

少し時間が空いたけど、Scriptless Scripts with ECDSAのホワイトペーパーについて techmedia-think.hatenablog.com techmedia-think.hatenablog.com と見てきたので、最後のLightning Networkへの適用について見てみる。 Lightning Networkのベースとなるの…

LNのオフチェーンコントラクトの更新をシンプルにするプロトコル「eltoo」

Lightning Networkのコア機能は、二者間のオフチェーンでの決済時に新しい残高について合意し、(古い状態のコミットメントトランザクションをブロードキャストすると資金を失うというペナルティを与えることで)古い状態がオンチェーン上に展開できないよう…

LNの強化:コントラクト違反時の防衛強化とSigned Sequence Commitment

Lightning Networkのセキュリティ強化およびクライアントをよりスケーラブルにするための強化案について@roasbeef ‏がBPASE 2018で発表した内容↓(スライド 、トランスクリプト)について見てみる。 www.youtube.com トピックとしては コントラクトの違反が…

Lightning Networkで古いCommitment Txを取り消すRevocation Key

以前、Lightning Networkを構築する際のPayment Channelの仕組みについて書いた↓ techmedia-think.hatenablog.com プリイメージを使ったコミットメントトランザクションの取消 このPayment Chanelを使ったオフチェーンの決済には、悪意あるユーザによって最…

Lightning Networkを使ったクロスチェーン取引

Bitcoin MagazineのLightning Networkを使ったクロスチェーン取引の拡張についての記事が出てた↓ので見てみる。 bitcoinmagazine.com Atomic Swap そもそもBitcoinとアルトコインの相互運用というのは、別に新しいことではなく、2013 年にTier Nolanが紹介し…

双方向Payment ChannelでのHTLCsの利用

techmedia-think.hatenablog.com techmedia-think.hatenablog.com と続いて最後の第3部では、オフチェーンである双方向Payment ChannelでどうやってHTLCsを使った取引を行うかという点について解説されてる↓ bitcoinmagazine.com Lightning Network 前回ま…

HTLCsを利用した中間者を経由するBitcoinの支払い

前回の双方向Payment Channel↓に続いて、Bitcoin MagazineのLightning Network記事の第二弾であるHTLCsを使ったネットワークの作成部分についてみてみる。 techmedia-think.hatenablog.com bitcoinmagazine.com ネットワーク 前回の記事でアリスとボブの間で…

双方向のPayment Channelの仕組み

Bitcoin MagazineのLightning Networkの記事をベースに双方向Payment Channelの仕組みについて理解する。 bitcoinmagazine.com 双方向Payment Channelの構成要素 unconfirmed transaction 最初のCommitment Transactionを作成する際、入力となるOpening Tran…