2020年12月3日 3 min read

HTLCの問題点を一部改善したPTLCとその応用

HTLCの問題点を一部改善したPTLCとその応用
Photo by A Colgan / Unsplash

ライトニングネットワークの基礎となっている、ノード間の送金バケツリレーを実現するHTLC (Hashed Timelock Contract)というスマートコントラクトが存在します。現在のライトニングネットワーク(LN)に欠かせない技術ですが、その構造的な問題がいくつかかなり前より指摘されていました。その代わりとしてにわかに脚光を浴びているのがPTLC (Point Timelock Contract)です。HTLCが「ハッシュ」を使用して送金の中継を実装していたところを、PTLCでは中継ノードごとに秘密鍵を加算していくことで実装します。PTLCを使ったライトニングネットワークが実現した場合の利点と、PTLCの応用可能性を見ていきましょう。

HTLCとは

本コラムの読者のみなさんにはおなじみのライトニングネットワークの仕組みに欠かせないのがHTLCです。LNでの送金は、トランザクションごとに受け手がプリイメージという秘密情報を生成し、そのハッシュ値をインボイスに含めて支払者に送ります。支払者は、支払いを行うと、支払った証明としてプリイメージを受け取り、そのチャネルの最新状態を更新します。支払い経路上に他に中継ノードが存在する際は、それらのノードとも、プリイメージの受領・最新状態の更新、というプロセスを行っています。まさにこの送金途中の状態の管理にHTLCを使うことで、資金の不渡りを防いでいます。

3つのノードを中継する送金だと:
送金→送金→送金→送金→受領↴
完了←完了←完了←完了←プリイメージ
⇔方向の矢印がHTLC

PTLCが解決しようとするHTLCの問題は、送金経路上全てのHTLCが同じプリイメージとプリイメージハッシュに依存することから来ています。例えば、ワームホール攻撃という攻撃は、経路上の2箇所のノードが情報を共有している場合(所有者が同じ場合など)、先にプリイメージを受け取ったノードが送金者に近い方のノードにプリイメージを直接渡すことで、その中間のノードが受け取るはずだった手数料を奪うことができます。また、この状況はプライバシーの問題にもつながり、同一のプリイメージハッシュをもつ支払いは同一の支払いと考えられるため、複数のノードを持っている主体による送金経路の推定などデータ収集が容易になります。さらには、以前紹介したプリイメージの支払証明としての「本人性」の問題があります。(支払った本人以外も知っている可能性がある)

PTLCとは

PTLCとは、HTLCで利用されていたプリイメージとハッシュの代わりに、秘密鍵のような「ペイメントポイント」と定数「スカラー」を利用することで、HTLCでは行えなかった様々な処理を実現します。まず、HTLCにおいては各ノード間(ホップ)において、単純に同一のプリイメージを回覧していたためワームホール攻撃などが可能になっていましたが、PTLCにおいては各ホップにおいて秘密鍵の加算を使用しています。どの中継ノードも鍵が1つ足りないから、送金を解決する段階で順にもらっていくイメージです。

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to ビットコイン研究所.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.