Develop with pleasure!

福岡でCloudとかBlockchainとか。

TumbleBitに代わる新しいPayment Channel Hubプロトコル「Anonymous Atomic Locks」

Scaling Bitcoin 2019復習シリーズ第二弾は、Payment Channelの最近の研究といえばこの人、Pedro Moreno-Sanchezの「A2L: Anonymous Atomic Locks for Scalability and Interoperability in Payment Channel Hubs」 動画:https://youtu.be/Uh6Ywxrobzw?t=44…

Watchtowerと連携したLightning Networkウォレットのバックアッププロトコル「Açai」

Scaling Bitcoin 2019復習シリーズ第一弾は、「Açai: a backup protocol for Lightning Network wallets」 動画:https://youtu.be/PM95oNcOAlU?t=9411 スライド:https://telaviv2019.scalingbitcoin.org/files/acai-a-backup-protocol-for-lightning-netwo…

高速で秘匿性の高いスマートコントラクトをサポートするZkVM

Scaling Bitcoin 2019予習シリーズ第5弾は、「ZkVM: zero-knowledge virtual machine for fast confidential smart contracts」。おそらく内容はStellarが開発している↓のZkVMの話だと思われる。 https://github.com/stellar/slingshot/tree/main/zkvm ZkVM…

フルノードのストレージ負担を削減しつつIBDの支援を可能にするSecure Fountain Architecture(SeF)

Scaling Bitcoin 2019予習シリーズ第4弾は、カリフォルニア大学の「SeF: A Secure Fountain Architecture for Slashing Storage Costs of Blockchains」。ホワイトペーパーは↓ https://arxiv.org/pdf/1906.12140.pdf ブロックチェーンのフルノードはジェネシ…

複数の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は…

ブラインドマージマーニング(BMM)の仕様を定義したBIP-301

ブラインドマージマーニング(BMM)の仕様がBIP-301として定義された↓ https://github.com/bitcoin/bips/blob/master/bip-0301.mediawiki マージマイニングの仕組みについては、以下の記事が分かりやすい。 btcnews.jp このBIPでは、サイドチェーンのマイナ…

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

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

Tor v3 hidden service等128bitより大きなアドレスをサポートするための新しいaddrv2メッセージを定義したBIP-155

Bitcoinのノードは、接続しているリモートピアにgetaddrメッセージを送信すると、リモートピアが知っているノード情報をaddrメッセージで返してくれ、addrメッセージによって、ネットワーク上の分散ピアが発見できる。 このaddrメッセージでは、各ノードのネ…

スマートコントラクト用の高水準言語BitMLを利用した安全なBitcoinベースのスマートコントラクト開発

Scaling Bitcoin 2019のスケジュールが公開されたので、予習シリーズを開始! 第一弾は「Developing secure Bitcoin contracts with BitML」のペーパーの内容↓ https://arxiv.org/pdf/1905.07639.pdf スマートコントラクトの開発用ツールはEthereum方面は充…

MoneroでスクリプトレスなPayment Channelを実現するためのDLSAGリング署名スキーム Part2

Part1でDLSAGの仕組みについて整理したので↓ techmedia-think.hatenablog.com 続いて、DLSAGを利用して、Payment Channel Networkを構築する際に必要な構成要素を順番に見ていく。 MoneroでPayment Channel 上記のDual-Keyアウトプットを使った払い戻しトラ…

MoneroでスクリプトレスなPayment Channelを実現するためのDLSAGリング署名スキーム Part1

ベースの考え方であるLSAGについて整理したので↓ techmedia-think.hatenablog.com 本丸のDLSAGとDLSAGを利用したPayment Channelの仕組みについて見ていく。 https://eprint.iacr.org/2019/595.pdf Moneroの課題 BitcoinがBitcoin ScriptをEthereumがSolidit…

Linkable Spontaneous Anonymous Group(LSAG)リング署名の仕組み

こないだ開催されてたMonero Conference 2019でPedro Moreno-Sanchez*1がMoneroでPayment Channel Networkを実現するためのプロトコルについて発表していた↓ https://youtu.be/AsJaMw-3gGE?t=30157 ホワイトペーパーは↓ https://eprint.iacr.org/2019/595.pd…

チェーン上のトランザクションの新たな参照方法の標準TxRefを定義したBIP-136

提案は結構前からあったみたいだけど先月マージされたBIP-136↓ https://github.com/bitcoin/bips/blob/master/bip-0136.mediawiki Bitcoinでトランザクションを識別する際は、基本的にトランザクションのハッシュのエンディアンを逆にしたTXIDを使用する。フ…

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

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

マークルツリーを利用したハッシュベースのアキュムレータ「Utreexo」

BitcoinのUTXOセットを管理するにあたって、そのストレージ要件を大幅に削減すると期待されているアキュムレータ。昨年のScaling Bitcoinでは、スタンフォード大学のBenedikt BünzがRSAを利用したアキュムレータを紹介した↓ techmedia-think.hatenablog.com …

Bitcoinネットワークの安全性を向上させるための新しいトランザクションリレープロトコル「Erlay」

先日、Gleb Naumenko, Pieter Wuille, Gregory Maxwell, Sasha Fedorova, Ivan Beschastnikhらが発表したBitcoinの新しいトランザクションリレープロトコル「Erlay」について論文読んでみた↓ https://arxiv.org/pdf/1905.10518.pdf 現在のトランザクションリ…

Grinでオフチェーン決済するためのPayment Channelプロトコル「Elder Channel」

Mimblewimbleを実装したGrinにはBitcoinのようなスクリプト機能は存在しない。コインの所有権は、秘密鍵の役割をするPedersen CommitmentのBlinding Factorの値を知っているかどうかで、UTXOを使用する際はその値を使った電子署名が求められる。Mimblewimble…

c-lightningのPluginの作り方

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

BitcoinへCovenantsの導入を提案するbip-coshv

Bitcoinは通常ロックスクリプトにロックされたコインをアンロックできるアンロックスクリプトを提供できれば、そのコインはどこにでも送金できる。これに対し、あるコインをアンロックした場合、そのコインの送付先を限定する仕組みがCovenantsだ。つまりあ…

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

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

TaprootのアウトプットのスクリプトTapscriptに適用される新しいスクリプトルールを定義したBIPドラフトbip-tapscript

TaprootのBIPドラフトについて書いた↓ techmedia-think.hatenablog.com ので、続いてそのTaprootのアウトプットで使用されるスクリプト = Tapscriptに適用されるスクリプトの新しいルールの提案「bip-tapscript」↓について見てみる。 https://github.com/sip…

BitcoinにTaprootを導入するBIPドラフトbip-taproot

先日、Bitcoinの開発者MLでPieter WuilleがTaproot、Schnorr署名およびマークルブランチをベースとしたコインの使用ルールである新しいSegwitバージョン1のアウトプットタイプを提案した↓ https://github.com/sipa/bips/blob/bip-schnorr/bip-taproot.mediaw…

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プロトコルを拡…

A scalable drop-in replacement for merkle trees at Scaling Bitcoin 2018

Scaling Bitcoin 2018復習シリーズ。今回は、昨年もBullet Proofsなど発表したスタンフォード大学のBenedikt Bünzによる「A scalable drop-in replacement for merkle trees」の発表で、内容的にはマークルツリーの代わりにRSAアキュムレータを利用したUTXO…

担保付き債務を表現するHashed Time-Locked Collateral Contract(HTLCC)を定義したBIP-197

トラストレスかつ仲介機能(中抜き)を排除した方法で超過担保付き商品を作成するためにAtomic Swapを利用したAtomic Loansを提案するペーパー↓ https://arxiv.org/pdf/1901.05117.pdf ブローカー抜きに借り手と貸し手の間でローン契約を結ぶ際に、担保を設…

BEAMが提供する監査機能

MimblewimbleではPedersen Commitmentにより取引する量が秘匿され、さらにスクリプトがなくPedersen CommitmentのBlinding Factorがそのコインの所有権を証明するキーになる。そのため、Perdersen Commitmentを見ただけでは誰から誰へのいくらの送金なのかは…

OP_CODESEPARATORは廃止の流れか?

Bitcoin開発者の1人であるMatt Coralloが提案するコンセンサスルールのクリーンナップ↓ https://github.com/TheBlueMatt/bips/blob/cleanup-softfork/bip-XXXX.mediawiki まだBIPにはなってないが、このクリーンナップの内容の1つがOP_CODESEPARATORの廃止…

Grinで作るAtomic Swapとアウトプットへのタイムロック条件の適用

techmedia-think.hatenablog.com について整理したので、今回は応用編ということでAtomic Swapや、タイムロックの仕組みをアウトプットと組み合わせた(BitcoinのOP_CLTV使うようなイメージ)条件付きのタイムロック支払いのコントラクトの構成方法について…

Grinでコントラクトを作る際の基本要素

MimblewimbleとGrinのトランザクション構成が把握できたので↓ techmedia-think.hatenablog.com 今回は↓を参考にGrinでどんなコントラクトを作る際に使える基本要素についてまとめる。 https://github.com/mimblewimble/grin/blob/master/doc/contracts.md Mi…