こんにちは。ちょうど昨日からの2日間、イスラエルのテルアビブでScaling Bitcoinというビットコインのカンファレンスが開かれていました。Scaling Bitcoinはビジネス面やガバナンスの話ではなく、ビットコインの技術開発に関する議題に特化した毎年開催のカンファレンスで、去年は東京で開催されました。


今日の記事では今回のプレゼンテーション一覧とそれぞれの内容を簡単に要約してみます。もし「次回はこの議題について詳しく解説してほしい」などあればリクエストください。頑張って勉強します。(☆のマークのものが個人的には好きですが、全部記事にするわけではありません)

発表者名がちゃんと載っている公式サイトのスケジュール表はこちら:

Scaling Bitcoin 2019 “Yesod” - September 11th-12th Tel Aviv
Bitcoin Scalability Workshops for Engineering and Academic community.

むちゃくちゃ長いのでご了承下さい。

1日目

Invited Talk: A Survey of Progress in Succinct Zero Knowledge Proofs: Towards Trustless SNARKs

ゲストスピーチで、ゼロ知識証明に関する最近の進歩をまとめたスピーチでした。ゼロ知識証明に関しては、いずれちゃんとコラムを書きたいと思います。

Threshold Scriptless Scripts

「スクリプトレス・スクリプト」というのは、ビットコインのスマートコントラクト言語であるScriptを一切仕様せず、トランザクションと署名を駆使してスマートコントラクトのような機能を実現することです。あるチェーンの資産と別のチェーンの資産の所有権を交換するアトミックスワップなどが好例です。Thresholdはn人中t人が集まれば署名できるが、その他の人は無意味な情報しか持たないという、最近大石さんが紹介していたシャミア秘密分散法のような性質のものを言います。シュノア署名実装後ではなく、現行のECDSA方式で今でもThreshold Scriptless Scriptを使えるよという話でした。

☆Developing secure Bitcoin contracts with BitML

BitMLビットコインのスマートコントラクトを書いたり検証するための言語で、そういう意味では以前紹介したMiniscriptなどと近い機能を果たすもの。検証段階では、様々な条件でコインが取り出せなくなったりしないかなどを検証することができる。Covenantsの実装などでスマートコントラクトを書くことが増えると重要性が増してくる分野の1つのソリューション。

ZkVM: zero-knowledge virtual machine for fast confidential smart contracts

「ゼロ知識仮想マシン」と言われてもピンと来ませんが、送金やスマートコントラクトの秘匿化ができるサイドチェーンの話です。他にもビットコイン関連の新しい技術が盛りだくさんでバズワードの巣窟のような感じですが、アグレッシブな開発ができるセカンドレイヤーならではの先進性です。(僕もあんまり理解できてません。)

☆Scriptless Lotteries on Bitcoin from Oblivious Transfer

トラストレスな宝くじをスマートコントラクトではなくトランザクションの署名の手順を工夫して効率よく実現する話です。コントラクトの内容が表に出ることもないのでプライバシー面でのメリットもあります。スクリプトなしで比較的複雑なことが実現できるという内容が面白い。

TxProbe: Discovering Bitcoin's Network Topology Using Orphan Transactions

ビットコインのネットワークのトポロジー(形状)が気になった発表者が、オーファントランザクション(入力が不正なもの)の扱い方に関する情報漏えいバグを利用して数時間で95%の精度でテストネットのノードがどう繋がっているかの地図を作成した研究結果でした。バグ自体は修正されていますが、全体図が意図的に見えにくいビットコインのネットワーク図(テストネット)を見ることができて興味深いです。

☆Bandwidth-Efficient Transaction Relay for Bitcoin

ビットコインのノードは大した処理能力も並外れた保存容量も必要ありませんが、運用する上で一番厳しい条件は帯域幅(通信量)かもしれません。外部からの問い合わせに応じないプライベートノードでも月に18GBも通信しているので、特に発展途上国などではISPによって速度制限をかけられる場合があります。この発表者は、セキュリティ面や速度面、プライバシー面を妥協せずにいかに必要な帯域幅を減らせるか、という研究でした。Erlayという方式を使えば、無駄な通信を大幅に減らすことができ、もし望めばその分多くのノードと接続することができる、とのことです。

☆BIP: OP_SECURETHEBAG

OP_SECURETHEBAGは現在提案されている新たなオペコード(スクリプトの関数)で、Covenantの一種なのですが、これを使えば送金手数料が高いときにトランザクションを「予約」したり(1つのトランザクションを発行し、手数料が安くなったときにそこから多くの宛先に展開される→承認数は最初のトランザクションから数えても大丈夫)、Channel Factoriesでのライトニングチャネルの生成も同様に効率化したり、Vaultsの運用を簡単にするなどが期待されている技術です。

Elastic Block Caps

トランザクション手数料が急騰した場合にブロックサイズの上限が一時的に緩和されるようにする提案で、平時には元に戻るもの。過去にも似たような提案がいろいろされてきたが、発表者曰くこれのほうが優れているのでは、とのこと。個人的には「上限を上げるにはハードフォークが必要(※事実)」「その後またハードフォークやソフトフォークで調整すればよい」「毎年20%ずつ増加などのハードフォークも考慮すればよい」との発言から実現可能性は低いと感じた。

A Tale of Two Trees: One Writes, and Other Reads, Scaling Oblivious Accesses to Large-Scale Blockchains

SPVクライアントからの接続を受けるノードにおいて、ブロックチェーンスマホのコラムで紹介したTEE(CPUやメモリ内のデバイスに読み出せない暗号化領域)を利用してSPVクライアントのプライバシーを守るアイデアでした。

Applying Private Information Retrieval to Lightweight Bitcoin Clients

こちらもSPVクライアントのプライバシーを守る新しいプロトコルの提案。

Wasabi Wallet関連の人物から、CoinJoinについてのプレゼン。どのようにしてブロックチェーン分析のヒューリスティックを撹乱するのか、どのように使うのかなど。

Prism: Scaling Bitcoin to Physical Limits

ビットコインの機能をブロックの提案、ブロックの投票、トランザクションに分離することによってTPSがビットコインの1万倍のブロックチェーンが作れるよという話。

BackPackers: A New Paradigm for Secure and High-performance Blockchain

こちらもTPSを上げる系の話で、トランザクションの伝播などを改善する実験の話のようです。(書き起こしが白紙だったので詳細わかりません)

2日目

☆Improving routing in the Lightning Network with Trampoline Payments

ライトニングネットワークでは支払い経路を計算する必要があるが、ネットワーク図を全部持っていない軽量クライアントなどはトランポリンペイメントを利用してトラストレスに他のクライアントに経路計算をアウトソースできる。最適な経路を選択するのも大事。(書き起こしがありません)

PISA: Arbitration Outsourcing for State Channels

オンチェーン上でのステートチャネルの紛争解決をアウトソースする提案、こちらも時間不足&書き起こし不在で詳細は確認できていませんがライトニング関連です。

☆Outpost: A Responsive Lightweight Watchtower

ライトニングのウォッチタワーのストレージコストを軽量化するためにブロックチェーン自体を利用する提案のようです。上記と同様、詳細は見ていません。

☆Açai: a backup protocol for Lightning Network wallets

こちらはむしろウォッチタワーにバックアップを預けておいて、ウォレット内のデータ破損に備えるという趣旨のプロトコルのようです。上記と同様、詳細は見ていません。でも気になります。

Rainbow Network: Synthetic Assets on Lightning

ライトニングネットワークで合成資産(例えばBTC/JPYを持ちながらLTC/BTCを持っていたらLTC/JPYを持っているのと同じ)を扱うことに関する発表。上記と同様、詳細は見ていません。

☆Atomic Multi-Channel Updates with Constant Collateral in Bitcoin-Compatible Payment-Channel Networks

複数のペイメントチャネルを同時にアップデートすることができるようになり、LN上に必要な金額が減ったり(資本効率の話)、LNでクラウドファンディングのようなものも実現できる技術の話。

Plasma Cash: Towards more efficient Plasma Constructions

Plasma Cashというサイドチェーンプロトコルの話。時間不足で詳細はチェックしていません。

A2L: Anonymous Atomic Locks for Scalability and Interoperability in Payment Channel Hubs

2つ上のプレゼンと同じ発表者で、ペイメントチャネルハブを利用するときのパフォーマンス向上とタイムロック以外のスクリプトの不使用による他チェーン(スクリプト言語を持たないモネロなど)とのインターオペラビリティを実現する発表。

☆Recovering Payment Channel Midstates Using only The User's Seed

ライトニングウォレットのデータ損失時にウォッチタワーにバックアップしておいた状態を復元する提案はいくつかありますが、このプレゼンはウォレットのシードだけでも未決済の状態を復元する方法の提案です。ウォッチタワーの代わりにオフラインになる可能性が非常に低いペイメントハブ(事業者など)を利用してデータをバックアップします。

Proof of Necessary Work: Succinct State Verification with Fairness Guarantees

(ブロックヘッダにSNARKsを利用してチェーンの有効性をゼロ知識証明する部分以外、全然わからなかったので解説できません。。)

☆Proof-of-Verification for Proof-of-Work: Miners Must Verify the Signatures on Bitcoin Transactions

マイナーがちゃんとトランザクションを検証しているかを確認するために、Proof-of-verificationという「検証した」証明を導入してはという話。帯域幅や演算処理のコストも追加でかからないカラクリがあるなど、面白かったです。

☆SeF: A Secure Fountain Architecture for Slashing Storage Costs of Blockchains

現在フルノードは各自ジェネシスブロックからの全てのブロックを保持しているが、SeFではストレージの負担を軽減するためにどのフルノードも一部のデータのみを保持し、必要に応じて(新しいノードが誕生した際などに)送受信してブロックチェーンの全体像を復元することを可能にする。

まとめ

簡単にまとめると、ライトニング関連のテーマと、スクリプトレスがトレンドだったかと思います。☆が付いているものでも付いていないものでも、興味があるプレゼンがあれば、ぜひコメントでリクエストして下さい。