ダウンロード
メニューを閉じる -

RSK のブロック報酬スムージング

文:Sergio Demian Lerner(RSK チーフ・サイエンティスト)

Bitcoin のセキュリティは、累積難易度が最も高い(通常は最長)チェーンを拡大しようとするマイナーのために存在している経済的誘因に依存しています。最近はこれらの経済的誘因が、ブロック補助金と取引手数料で構成されるブロック報酬によってもたらされています。しかしこの補助金(12.5 BTC)は、ブロック当たりの平均取引手数料(0.4 BTC)を大きく上回ります。 ビットコインの補助金は4年ごとに半減し、BTC 増価の逆転が発生しないので、経済的誘因は取引手数料にのみ依存することになります。現在のセキュリティレベルを維持するためには、30倍の取引コストが必要になる可能性があります。これは Bitcoin でも問題になるのでしょうか?取引手数料のみに依存した Bitcoin セキュリティは可能でしょうか?Bitcoin はこの新たな時代に順応するためにソフトフォークやハーフフォークが必要になるのでしょうか?私が2014年の Bitcoin 不安定要因に気づいたのはフロントアタックを発表したときでした。Carlsten ら(2016)はこの問題を掘り下げて分析していますが、満足のいく解決策を見つけることはできませんでした。これは Bitcoin だけの問題ではなく、マネー発行が経時的に減少する各暗号通過も直面する問題です。

しかし今のところ Bitcoin については心配いりません。この問題が発生するのは10~20年以上後です。最近、この問題は再び調査されるようになってきており、分析において、問題の強調最小化の両方が行われています。

RSK ブロック報酬

RSK は開始当初から、取引手数料にのみ依存して存続するという問題に直面していたため、異常に高額な手数料に対応できるように準備しておく必要がありました。RSK は最初の生産準備完了サイドチェーンであり、マージ・マイニングを使用してコンセンサスを形成しています。RSK マイナーは、RSK フルノードの実行に対する経済補償と、ノード更新時の変更レビューに対する経済補償を期待します。

Ripple など他の分散型台帳の中には、ブロック生成者に支払うコインを発行しないものもありますが、それらの台帳の背後にある組織は、各自がブロック生成者になれるだけの十分なコインをあらかじめマイニング(プレマイン)するか、または、代替チャンネルによって第三者生成者向けに補償を提供します。一方、RSK はコイン発行もなくコイン・プレマインもないという最も厳しい状況に直面しています。RSK は、他のブロックチェーンで将来使用される新たな技術に対応するためのテストベッドを示しており、補助金のないブロックチェーンが持続できる方法の事例となることを目指しています。これらの新しい技術の1つにブロック報酬スムージング(「手数料スムージング」とも呼ばれる)があり、RSK では2016年の最初のリリースからこのスムージングを導入しています。

Blockstream の CEO である Adam Back 氏は最近、Bitcoin の長期的なセキュリティ予算についての協議の中で、スムージングに言及しました。「長期的な低補助金時代の考え方としては他にも、ブロックチェーン・インターバルで手数料を平均化して手数料収入を円滑化するというものがあります。

https://twitter.com/adam3us/status/1097031151921713152

なぜ手数料スムージングが必要なのかを理解するために、この件を掘り下げてみましょう。手数料スムージングは、より平等な方法でマイナー間にマイニング手数料を分散させるコンセンサスルールで、過去のブロック報酬に応じて各マイナーへの支払いが行われます。この関数は線形または非線形であり、通常は、累積手数料のさまざまな低域フィルターになります。RSK では、α=0.1 を含む非常にシンプルな IIR である平滑化関数を採用しています。マイナーが高さ N でブロックを解消する場合、ブロック取引手数料の10%と、これまでのすべての未払い累積マイナー料の10%が補償されます。つまり、「共有」アカウントが存在しており、各マイナーがそこに取引手数料を投入して10%を受け取るということです。

RSK デザインが報酬スムージングを組み込んだ理由はいくつかあります。1つ目の理由は、マイナーが個人のブロックガス限界の設定をより柔軟に行えるようになり、ブロック報酬に大きな不利益をもたらすことなくブロック生産遅延を防止できることです。2つ目の理由は、ブロックチェーンを拡大しようとする誘因(インセンティブ)は必ず、過去のブロックの再マイニングによって支払い済み手数料を獲得しようとする誘因を上回るので、手数料スムージングが必要になるためです。高さ N でのブロック1つにおける取引 T で、手数料として100コインが支払われる場合を考えると、平均ブロック報酬はわずか10コインです。マイナーにとって最善の戦略は、取引 T を獲得し、同じ高さ N でブロック1つのマイニングを試行し(報酬100コインと10コインの比較)、残りのマイナー(同じことをすることも選択する)をあきらめさせるだけの十分な長さになるまで、各自のセルフィッシュ・チェーンの子ブロックのマイニングを継続することです。取引手数料が高くなると、より大きな取引プールの利益を確保するためにマイニングが細分化されます。これによって、マイニング T のチャンスが拡大すると同時に、十分な量の確定ブロックを確保できます。不思議なことに、マイニング・ネットワークの分散化が進むほど、このような取引によって生じる混乱状態が悪化します。例えば、平均ブロックインターバルが10分であるブロックチェーンの場合、個別ハッシュレートが総ハッシュレートの1%を占めるマイナーが100人いたら、ネットワークは、最終収束まで複数のブロックに対して100倍遅くなるおそれがあります。このネットワークは2日間も不安定になるのです!この期間、ブロックチェーンも不安定になります。1件の支払いに対する1件のブロック確定を待っているマーチャントは、支払が元に戻されるのを目にする可能性が高くなるのです。

マイナー細分化攻撃

手数料が高額である取引の拡大は、サービス妨害攻撃の試みと見なされる可能性があります。このような取引は、生真面目なマイナーによってブロックチェーンを戻すための賄賂と見なされることがありますが、実際にはマイニングを細分化するためのエサです。別の補完的な保護対策もありますが、この種の攻撃に対する主な暗号通過ネットワーク保護対策は報酬スムージングです。ここで過去の事例に戻って、平均ブロック報酬が10コインである場合の100コインの賄賂について考えてみましょう。RSK では、高さ N でのブロックの報酬は19コインで、その後のブロックの報酬は18.1コインになります。現在、セリフィッシュマイナーがこの攻撃を有益なものにするには、他のマイナーの10倍以上のハッシュパワーが必要になります。

導入可能な補完的保護対策が2つあります。RSK はまず、DECOR という報酬共有コンセンサス・プロトコルを導入します。DECOR によって、ブロック報酬が兄弟ブロック間(1つ以上存在する場合)で平等に分けられます。これにより細分化攻撃の動機が減退します。その理由は、マイナー全員が同一ブロックをマイニングすると、ブロックチェーンが最大10のブロック兄弟を参照できるため、ブロック報酬の11分の1程度しか得られない可能性があることをマイナーが認識しているためです。つまり RSK ネットワークを妨害するには、平均ブロック報酬の110倍の賄賂が必要になるということです。

2つ目の補完的保護対策は、RSK は現在導入していませんが、取引ガス価格を最低ガス価格の数倍に制限することです(つまり10倍の拡大)。私は類似対策を Bitcoin 向けとして2013年に提案しました。許容された最低取引ガス価格を各ブロックが公表するので、RSK はこれを簡単に導入できます。しかし、ブロックによって消費されないブロックガスがある状態にネットワークが陥った場合、最高ガス価格の設定では問題を完全に解決できません。T の手数料が高いと、ガス価格は高くならないものの、ガスの消費量が高くなる可能性があります。

賄賂を贈るマイナー

報酬スムージングは、攻撃者がスマートコントラクト・プラットフォームを使用してほぼ万能の賄賂マイナーに贈ることができるため、究極の解決策にはなりません。私は2014年に、どのようにしてマイナーが誠実な行動から外れて賄賂を受け取る可能性があるのかを示す手段として、「Eternal Choice for the Dark Side Attack(ECDSA)」(悪質な攻撃者にとっての無限の選択)という理論を発表しました。 McCorry 氏ら(2018)はありとあらゆる理論的な賄賂攻撃を発表しました。しかし、スマートコントラクトをベースとする賄賂を取り上げるために必要な理解度と発表レベルが重要で、賄賂の監視と賄賂への対応をプログラミングする必要があります。そうすることでスマートコントラクトをベースとする賄賂攻撃の実行が困難になります。マイナーは賄賂契約を認識し、対応方法を理解しておく必要があります。しかしながら賄賂攻撃は回避できないものです。プラットフォームによるマイナーへの支払いが可能な場合、スマートコントラクトを実行して同じマイナーに支払いを行うこともできるのです。これは、コンセンサスをプログラミングした際に用いたプログラム言語と、スマートコントラクトに使用されているプログラム言語はいずれも「チューリング完全」であるためです。支払いを希望する誰かが支払いを受けたい別の誰かに対して行う支払いを阻止することはできません。 チューリング完全のスマートコントラクト・プラットフォームは、別のブロックチェーンのマイナーに賄賂を贈るために使用できるので、特定のプラットフォームにおいて言語能力を制限するには不十分なのです。例えば、RSK と Ethereum を使用して Bitcoin マイナーに賄賂を贈ることができます。その場合は当然、調整がさらに難しくなります。

長期的な解決策とは、分散化攻撃の背後にあるゲーム理論を各マイナーに確実に理解させることで、分散化攻撃を阻止するという対策です。このゲーム理論とは、全員がブロックの再マイニングを行って賄賂を得ようとすると、全員が負けるというものです。大半のマイナーが誠実だが、一部のマイナーが賄賂を得ようとした場合、その一部の悪意あるマイナーが負けます。誠実なマイナーが多数派から少数派になるという展開が発生する機会を減らすために、RSK では報酬スムージング・コントラクトを展開できます。このコントラクトでは、トークンではなく RBTC に使用している同一の IIR が再現されます。さらに、賄賂の共有はシェリングポイントとなるので、このコントラクトで受け入れられた賄賂があればそれを返却する方法についても、マイナーに教育しています。

サマリ

異常に高額な手数料を支払わせる取引が原因で特定のブロックチェーンに対して生じる、既知の潜在的なネットワーク不安定化問題があります。この問題は特に、RSK などの Bitcoin サイドチェーンに関連しています。RSK はこの問題に対する保護対策として、ブロック報酬スムージングを導入します。ブロック報酬スムージングには、マイニング競争における連携の奨励などといった付加的な利点もあります。この保護機能は明白な手数料に対して機能しますが、スマートコントラクトを利用して賄賂が支払われるという一般的な事例に対しては、積極的なネットワーク監視と継続分析が必要になります。