TechFlow Logo
ログイン/ 登録
ETHガス
Gwei
恐怖
gas
「フィルター」されたBitcoinのインスクリプションに関するPRコメント欄で、開発者たちはどのような賛否両論を展開しているのか?

「フィルター」されたBitcoinのインスクリプションに関するPRコメント欄で、開発者たちはどのような賛否両論を展開しているのか?

2024.01.18
共有先
マインクラフトの「禁止」をめぐる議論について、本稿は開発者の賛成・反対両論をまとめる。

整理:gloria

編集:GaryMa、Wu Talk Blockchain

背景

2023年9月、ビットコイン開発者Luke DashjrはBitcoin CoreのGitHubリポジトリにPR(プルリクエスト)を提出し、「datacarriersize」を更新して「インスクリプション(銘文)」のような新しいタイプのスクリプトデータを運ぶ取引をフィルタリングしようとした。この背後にある価値観は、「インスクリプション」取引がバグ攻撃に該当するという考えであり、修正・禁止すべきであるというものだ。

デフォルトでは、Bitcoin Coreは未確認取引におけるOP_RETURN出力の数および埋め込まれたデータ量に制限を設けており、そのデフォルト値は80バイトである。-datacarriersizeオプションを設定することで、ユーザーはこのデータ量の制限を変更できる。しかし現時点では、このオプションはOP_RETURN出力にのみ適用される。

本PRの変更により、-datacarriersizeを設定したユーザーはOP_RETURN出力内のデータ量だけでなく、witness(署名情報)データ内に埋め込まれるデータ量も制限できるようになる。

ただし、このPRはwitnessデータ内に存在する「任意の」埋め込みデータを包括的に識別する方法を実装したものではない(なぜなら現在、それを確実に行う方法は存在しない)。主にインスクリプションデータで用いられるOP_FALSE OP_IF ... OP_ENDIF構造をチェックしている。この構造は通常、インスクリプションデータを処理するために使用される。

このPRについて多くの開発者が議論を行ったが、Bitcoin Coreのコードメンテナーachow101は2024年1月5日に正式にこのPRをクローズした。achow101は最後に次のように述べている:(Lukeが提案した)このPRは明らかに論争的であり、現状では全員が納得できる結論に達する見込みがない。このような状況下で引き続きオープンにしておき、絶え間ないやり取りによる膠着状態を維持する理由はないと判断した。

Bitcoin Coreのもう一人のコードメンテナーであるgloriaが、この話題に対する開発者の賛否両論の立場をまとめたものについて、Wu Talk Blockchainが翻訳・編集したのが以下である。

「インスクリプション」禁止を支持する意見

1、「インスクリプションはゴミ取引であり、これを禁止すべきだ」

このような取引はオーディナル(ordinals)、NFT、データ搬送、あるいは金融以外の用途に使われている。この種のトラフィックは「ゴミ取引」であり、高取引量と手数料によって、ビットコインの支払い用途が損なわれている。

● このようなゴミ取引により、ビットコイン本来の用途がますます使いづらくなっている。

● データ挿入はtaprootスクリプトの欺瞞的かつ悪用的な利用である。

● ランダムなバイト列を埋め込むことができるのは「バグ」である。

● ビットコインが通貨であるならば(そして実際にそうである!)…非通貨的な取引は可能な限り減らされるべきである。

● オーディナルを称賛する人々はイーサリアム寄り/反ビットコイン過激派であり、「ビットコイン文化を変えなければならない」と叫ぶ人々は単なる時間の無駄な荒らしである。

● これはネットワークの誤用であり、ビットコインは金融取引のために設計されており(ホワイトペーパー、名称、コードがそれを示している)、データ保存は想定された用途ではない。

● これにより「ネットワークの混雑」「より高い手数料または遅延した処理時間」が生じており、これは一種の「DDoS攻撃」である。

● 問題はインスクリプションそのものではなく、高額な手数料にある。

● ビットコインネットワークは、ゴミ取引攻撃から即座に保護される必要がある。

2、「インスクリプションおよび埋め込みデータはネットワークに損害を与える」

このような取引はノード運用者のコストを増大させ、何らかの形でネットワークに損害を与えている。

● このPRが対象としている取引こそが、一般のノード運用者が耐え難いコスト負担の一因となっている。

● これらの取引はノード運用コストを増加させることで、ネットワークの非中央集権性に影響を及ぼす。

● これにより、ブロックチェーン上に不釣り合いかつ過剰な大量データが直接保存されることになる。

3、「禁止はユーザーのニーズに応えるものである」

明確に、ユーザーには特定のニーズやユースケースが存在するため、Bitcoin Coreはそのオプションを提供すべきである。そうでなければ、人々は自分でパッチを作成して実行することになり、それは安全ではない可能性がある。

● ノード運用者は、あらゆる現代的な形式のデータ搬送を無視できる組み込みオプションを必要としている。そうすれば、各自でノードに手動でパッチを当てる必要がなくなる。

● 開発者がノード運用者をこうした攻撃から守るために支援しなければ、彼らは防御のために不適切な手段に訴えることになるかもしれない。

● 私は自分のmempool(メモリプール)ポリシーを管理したい。どの取引がゴミ取引で、どの取引がそうではないかを自分で決めたい。

● マイナーがビットコインを単なる許可不要・改ざん不可のブロックチェーンではなく「通貨」と考えていれば、通貨ネットワークを機能させるためにゴミ取引をフィルタリングするだろう。そのため、マイナーはこの機能を望んでいるはずだ。

4、「これは単にdatacarriersizeを仕様通りに動作させる修正にすぎない」

我々はOP_RETURN内のデータ搬送を制限している。これはすべての取引に埋め込まれる任意データの方法に適用されるべきである。それが元々の-datacarriersizeの「意図」であったため、これは「バグ修正」である。

● luke-jrは、segwitおよびtaproot導入後に-datacarriersizeが他のデータ搬送方法に更新されなかったことをバグとみなしており、これをバグ/脆弱性として定義している。

● Bitcoin Coreはすでに、83バイトを超える任意データおよびインスクリプションの挿入を規格化しており、これはこの制限を回避するハッキング手法であるため、これはバグ修正である。

● ゴミ取引は過去10年以上にわたり、コードのさまざまなレイヤーでフィルタリングされてきた。このPRが行っているのは、既存のdatacarriersize制限を別の形式のデータ搬送にも適用するだけであり、明らかに予期せぬバグである。

● 取引に保存される任意データに制限をかけないのなら、データキャリア制限の意味は何なのか?

● この標準化ルールの目的は、元のscriptPubKeyに含まれるデータだけではなく、あらゆる形式の任意データに向けられている。

「インスクリプション」禁止に反対する意見

1、「これではインスクリプションを阻止できない」

これはインスクリプションを阻止しない。インセンティブ互換性がないため、マイナーや(もちろん)インスクリプションユーザー自身がこのようなポリシーを採用する可能性は低く、結果としてこうした取引を阻止する効果はほとんどない。

● Oceanプールだけがこれを使用していて、相対的に小さなプールであれば、効果はない。広く展開されても、簡単に回避できる。

● 長期的には、これはマイナーにとってインセンティブ互換性がない。

● マイナーはその収益源を放棄する可能性は低い。こうした取引を検閲することは、プライベートmempoolの発展を促すことになる。

● オーディナル取引は最終的にmempoolを迂回してブロックチェーンに記録されるため、このPRは問題の解決や緩和に何の役にも立たない。

● ある意味で、これはこうした取引を監視しないだけでなく、使用自体を阻止しようとする試みであり、最善の場合でもこうしたノードを迂回する結果となり、最悪の場合はマイナーに直接取引を送る慣行につながり、採掘の中央集権化に深刻なリスクをもたらす。

● インスクリプション愛好家は、ネットワーク上の少数のノードがインスクリプションをフィルタリングしないようにすることで、インスクリプションの伝播を維持できる。

● 明らかに、フィルタリングされたmempoolから作成されるブロックテンプレートの総報酬は、すべての未確認取引から作成されるテンプレートよりも低くなる。つまり、インスクリプションをフィルタリングするマイナーは自らの収益を減らしており、フィルタリングしないマイナーに利益を与えている。

2、「すべての埋め込みデータを検出するコードは書けない」

一般的に、任意データを埋め込む取引を完全に防ぐことは不可能である。インスクリプションは多種多様なデータ埋め込み方法の一つにすぎず(これらを完全に網羅することは永遠にできない)。むしろ、ネットワークリソースへのコストが最小限の最も効率的な方法を残しておくほうがよい。

● 現在および将来のすべてのデータ搬送方法をフィルタリングする汎用的な方法は存在しない。これにより、極めて重要なコードパスにおいて終わりのない猫とネズミのゲームが引き起こされる。

● すべてのデータ埋め込みを阻止しようとすると、コードはますます複雑になる。毎回そのようなことが起きるたびに、メンテナーは「ゴミ取引を止めるために迅速に対応せよ」という大きな圧力を受ける。

● 私の知る限り、witness(署名情報)内に任意データを保存することを、より悪い行動を助長したり正当なユースケースを破壊することなく阻止する合理的な方法は存在しない。

3、「この変更は有害である可能性がある」

このPRはデフォルトのmempoolポリシーを変更するものであり、独立系ノード運用者やネットワークに害を及ぼす可能性がある。

● 挖掘されるはずの取引を除外することはノードにとって有害である。取引の中継とmempoolを持つ意義は、次のブロックの姿を予測できることにある。非常に明確な(たとえ馬鹿げていても)経済的需要がある取引を意図的に除外することは、この能力を損なう。

● 最終的に、このパッチを実行するユーザーはインスクリプションを含むブロックを依然として処理する。それにより自身の手数料推定が損なわれ、ブロック検証が遅くなり、他のノードに対する有用性が低下するだけである。

● 通常、デフォルトポリシー

TechFlow公式コミュニティへようこそ

Telegram購読グループ:https://t.me/TechFlowDaily

Twitter公式アカウント:https://x.com/TechFlowPost

Twitter英語アカウント:https://x.com/BlockFlow_News

お気に入りに追加
SNSで共有