AsicBoost と SegWit に関する技術的な議論

AsicBoost と SegWit に関する技術的な議論

AsicBoost と SegWit に関する議論は以前より静かになっていますが、それでも技術的な観点から説明してみたいと思います。

  1. AsicBoostとは

  2. AsicBoost と SegWit の関係は何ですか?

これら 2 つのことについて話す前に、キーワード挖矿を無視することはできません。まずはマイニングについてお話ししましょう。

鉱業

ビットコインのマイニングの仕組み: ビットコインのマイニングの仕組みでは SHA256 アルゴリズムが使用されますが、SHA256 アルゴリズムはブロック全体に対して実行されるのではなく、ブロック ヘッダー (ブロック ヘッダー) に対してのみ実行されます。次の図はブロックの構成を示しています。

上の図から、どのフィールドが結合され、ハッシュされてブロック ハッシュが取得されるかがわかります。背景が黄色のフィールドはブロック ヘッダーで、次の内容が含まれます。

  1. バージョン番号

  2. 前のブロックのハッシュ

  3. マークル根

  4. タイムスタンプ

  5. ビット(難易度)

  6. ノンス

マイニングのラウンドでは、バージョン番号、前のブロックのハッシュ、難易度はすべて固定されています。マイナーが行う必要があるのは、現在のブロックのハッシュ値を変更するために Nonce を継続的に変更し、現在の難易度よりも低いBlock Header見つけることだけです。

しかし、Nonce のビット数は4 バイトしかないため、Nonce に使用できる検索空間は十分ではありません。ブロック ヘッダーの各フィールドが占めるビット数:

4 バイトの Nonce は、検索確率空間が2^32であることを意味し、4G ハッシュ操作で走査でき、単一のマイニング マシンで瞬時に完了できます。

Nonce の検索スペースが不十分な場合は、 timestampMerkle rootのみを変更できます。タイムスタンプは前方または後方に調整できますが、調整後の検索スペースはまだ不十分です。

マイナーは、Coinbase トランザクション、トランザクション順序、またはその他の方法を変更して新しいMerkle Rootを取得し、Nonce 2 を再度32回走査します。マークルルートは 32 バイトなので、検索空間は十分に大きいです。

ビットコインマイニングを要約すると、

簡単に言えば、ビットコインのマイニングとは、Nonce を継続的に変更してブロック ハッシュを変更し、現在の難易度よりも低いブロック ヘッダーを見つけることです。しかし、Nonce の検索空間は小さすぎます。 2 32 回のハッシュ後に対応するブロック ヘッダーが見つからない場合は、Merkle ルートを変更して再計算する必要があります。

上記ではビットコインのマイニングの仕組みについて簡単に説明しましたが、 AsicBoostについてはどうでしょうか?

アシックブースト

AsicBoostは、 SHA256的计算Block Header结构に関連するアルゴリズムです。ブロック ヘッダー ハッシュを計算するときは、SHA256 計算の前に 128 バイトにパディングする必要があります。上記のブロック ヘッダーは 80 バイトのみであり、残りの 48 バイトを 128 バイトに埋める必要があります。

128 bytesのハッシュを計算するプロセスは 2 つのステップに分かれており、最初の 64 バイトが一緒に計算され、最後の 64 バイトが一緒に計算されます。

このようなパディングされたBlock Header hash次のとおりです。

 SHA256=F(チャンク1)+B(チャンク2)
チャンク1=(バージョン)+(前のハッシュ)+F28(マークルルート)
チャンク2=B4(マークルルート)+タイムスタンプ+ビット+ノンス+パディング

上記と組み合わせると、ブロックハッシュを計算するときに次の現象が発生します。

Nonce の値が変更されるたびに、 Chunk1 の値は変更されません。つまり、 Nonce が変更されるたびに、 B(Chunk2)を再計算し、最後に計算されたF(Chunk1)と組み合わせるだけで済みます。

これはマイニングを最適化する方法です。最適化後、各ラウンドで検索可能なスペース内の Nonce が変更され、SHA256 を計算する式は次のようになります。

SHA256=F(チャンク1)(変更なし)+B(チャンク2)`

基本的にすべてのマイニングマシンはこの最適化を行っていますAsicBoostこの最適化に基づいたアイデアをさらに拡張し、別の最適化方法を見つけました。

Chunk 1変更せずにそのままにしておくことができるので、 Chunk 2変更せずにそのままにしておく方法はありますか?前の式から、 Merkle Rootの最後の 4 ビット、タイムスタンプ、および Nonce が変更されない限り、 Chunk 2変更されずに維持できることがわかります。

Merkle Rootの最後の 4 桁が同じであることがわかったら、同じタイムスタンプと nonce を持つ別の最適化式を取得できます。

SHA256=F(チャンク1)`+B(チャンク2)(変更なし)

タイムスタンプについては、マイニングのラウンド中に基本的に変更されませんが、Nonce は 2 32以内の検索空間でトラバースされます。残る問題は、最後の 4 桁が同じである十分な数の Merkle Root を見つけることです。これにより、Nonce がトラバースされるたびに後半部分の計算結果を再利用できるため、計算が効果的に削減され、ブロック ハッシュが見つかる確率が高まります。

前述のように、トランザクションの順序を変更したり、Coinbase を変更したりすることで新しい Merkle Root を取得できるため、衝突を通じて最後の 4 桁が同じ Merkle Root を見つけることができます。衝突によって最後の 4 桁が同じハッシュが見つかる確率はどれくらいでしょうか? 「誕生日のパラドックス」(最後の 4 バイトが同じである確率は、32 ビットが同じである確率)によれば、その確率は次のようになります。

衝突が約 77,000 回発生すると、ハッシュの最後の 4 桁が同じになる確率は 50% になります。このような衝突によって確率はどの程度高まるのでしょうか? AsicBoost のホワイト ペーパーに記載されている結果は次のとおりです。

この最適化により、理論的には衝突効率が 20% 向上し、マージ パフォーマンスが約 7% 向上します。 AsicBoost 、チップ (ハードウェア) だけでなくソフトウェアでも実装できます。 Merkle Rootを変更する方法:

  1. Coinbaseの取引を変更すると、ホワイトペーパーではそれが十分に効率的ではないと考えている

  2. もう一つの方法は、マークルツリーの順序を更新することである。

  3. …他の方法

AsicBoost攻撃ではなく、 Bitcoin ブロック ヘッダーと SHA256 アルゴリズムに基づいた最適化であることがわかります。

AsicBoostには技術的な最適化が1つだけあります

AsicBoost は現在の Bitcoin プロトコルを破壊したり、使用できないブロックを生成したり、Bitcoin にセキュリティ上の問題を引き起こしたりしないことは明らかです。
SHA256 アルゴリズムに基づく最適化も、ビットコインの歴史の中で何度か登場しています。
1. 上記のようにNonceを変更する場合、前半のF(Chunk1)を再計算する必要はない。
2. 後半の最初の3ラウンドも最適化できます。ms3stepsを参照してください。
3. …
4. アシックブースト

全てのソフトウェアやシステムは最適化される可能性を秘めており、ビットコインマイニングの歴史は効率を継続的に最適化するプロセスであると言えます。
优化攻击どのように定義すればよいでしょうか?これは考える価値のある質問です。 SHA256 の最初の 64 ビットの計算を最適化することは許可されていますが、最後の 64 ビットの計算を最適化することは攻击に該当しますか?

AsicBoost 、元の Bitcoin マイニングに基づいてハッシュ衝突の確率を高め、より適切なBlock Headerを見つけ、ブロック ヘッダーを見つける確率を高める最適化アルゴリズムです。それは脆弱性ではありません。

ビットコインのマイニングの効率を向上させる技術があれば、攻撃者がマイナーに対して技術的優位に立たないように、マイナーがこの技術をできるだけ早く適用できるようになることを願っています。結局のところ、コンピューティング能力はビットコインのセキュリティの基盤です。攻撃者がマイナーよりも技術的に進んでいる場合、ビットコインが攻撃される可能性が大幅に高まります。

AsicBoostを紹介した後、 AsicBoostと SegWit の関係性を見てみましょう。

SegWit と AsicBoost

SegWit (Segregated Witness) は分離された検証です。その適用によりTXが変更されます。新しいTX IDを採用します: Witness ID

同様に、Witnesses ID はWitness Merkle Treeに対応し、 Winess Merkel Rootが存在します。しかし、 Winess Merkel Rootどこに書いてあるのでしょうか?答えはCoinbaseです。

SegWitプロトコルでは、Coinbase は新しい出力を追加します。新しい出力は次のとおりです。

出力データ = WITNESS_COMMITMENT_HEADER + ser_uint256(uint256_from_str(hash256(ser_uint256(witness_root)+ser_uint256(witness_nonce))))
スクリプト = CScript([OP_RETURN, 出力データ])

新しく追加された出力には、スクリプトで構成された OP_RETURN + WITNESS 情報 + Witness Merkle Rootハッシュが含まれます。

Witness Merkle Rootの計算にはCoinbaseは含まれないため、Coinbase とWitness Merkle Root間の相互変更によって発生する無限ループを回避できます。

これにより問題が発生します。 SegWitでトランザクションの位置が変更されると、 Witness Merkle Root変更されます。 Coinbase には、Coinbase の変更に影響を与えるWitness Merkle Root情報を含める必要があります。 Coinbase の変更により、ブロック全体の Merkle Root が変更されます。

SegWit で使用される AsicBoost がトランザクションの順序を変更して新しい Merkle Root を取得する場合、 Witness Merkle RootMerkle Root同時に計算する必要があるため、 AsicBoostの効率が低下します。

これは、SegWit が AsicBoost に与える影響です。しかし、重要な事実を無視することはできません。SegWit とAsicBoost SegWitに排他的ではありません。

ブロック ヘッダー構造が変更されない限り、 AsicBoost最適化は引き続き存在し、有効です。

SegWit でMerkle Rootを取得するために Coinbase を変更する方法はWitness Merkle Root Coinbase TX が含まれていないため、現在のプロトコルで Coinbase を変更するのと同じ効果があります。

SegWit と AsicBoost は相互に排他的ではなく、SegWit に AsicBoost の最適化が存在しないことを意味するものではありません。 SegWitでのAsicBoostの使用は、エンジニアリングの面でも最適化できます。Merkle Root の計算にはハッシュの計算も必要であり、Merkle Root の計算中にブロック ハッシュの計算が随時ブロックされる可能性があります。並列計算はより良い最適化方法でしょう。並列計算の場合、 Merkle Root取得するためにCoinbase変更することでもたらされる効率の低下は特に顕著ではありません。

要約する

AsicBoost の仕組み:

ブロック ヘッダーを計算するときに、Merkle ルートが 2 つの部分に分割され、同じ Merkle ルートの最後の 4 ビットを使用してブロック ハッシュを計算すると、マイニングの効率が向上します。

セグウィット:

SegWit ではWintess TX IDの使用が必須であり、その後新しいWitness Merkle Rootが存在します。 Witness Merkle Root Coinbase に書き込まれますが、Coinbase 自体はWitness Merkle Rootに書き込まれません。ソフトフォークのため、ブロックヘッダーの構造は変更されていません。

上記に基づいて、以下の結論を導き出すことができます。

AsicBoost は本質的には、ブロック ヘッダー構造と SHA256 アルゴリズムに基づいた最適化です。

AsicBoostとSegWitは相互に排他的ではない

ブロック ヘッダー構造と SHA256 アルゴリズムが変更されない限り、 AsicBoost常に存在します。

SegWitはAsicBoostでの取引のやり取り方法に影響を与えるだろう

SegWit では、トランザクション順序が変更されるたびに Coinbase が変更され、 Merkle Rootの再計算が必要になります。トランザクションの順序を変更すると、 Witness Merkle RootMerkle Rootが変更されます。

AsicBoostを設計するより良い方法があれば、それはSegWitでも機能するだろう

トランザクション順序を変更して Merkle Root を更新する方法の効率は低下しますが、エンジニアリング最適化 AsicBoost を使用する方法は依然として効果的です。例えば並列コンピューティング

AsicBoostはマイニングを最適化する方法にすぎず、ブロックの構造は変更されていないため、SegWit ではAsicBoost最適化がなくなることはありません。 G Maxwell 氏は電子メールで、ブロック ヘッダーを変更してAsicBoostが使用できないようにする方法を提案しました。この提案に反対はしませんが、不必要だと思います。マイナーが最後の 64 バイトの計算を最適化することを許可されないのであれば、最初の 64 バイトの計算を最適化することも禁止されるべきではないでしょうか?さらに、将来的には同様の最適化が行われる可能性があります。それらはすべて禁止されるべきでしょうか?

与えられた条件の下で、人間は常に元の方法 B よりも優れた方法 A を見つける方法を見つけます。人類の歴史は、効率性の継続的な改善の歴史です。

私が見たWeiboの投稿をシェアします:

<<:  Antbleed脆弱性の発見はビットコインマイニングコミュニティに波紋を巻き起こした

>>:  ビットコインウォレットの漏洩によりユーザーが70ビットコインを失う

推薦する

ビットコインは実際には極端な「中央集権化」を追求したもので、「分散化」は単なる見せかけに過ぎない

ビットコイン ブロックチェーンは、集中化された形式で論理的に完全な一貫性、つまりコンセンサスを実現し...

グレイスケール:ビットコインは今年新たな高値を記録するだろう

最近、グレイスケールは2月のレポートを発表し、ビットコインが今年後半に新たな史上最高値を記録する可能...

イーサリアム: 価値あるインターネット金融サンドボックス

クレイジーな解説:ダニエル・カウリーは、CoinDeskの元特別編集者で、現在はマイクロペイメントプ...

ウォールストリートニュース:中国の買い手が再び力強い購入を行い、ビットコインの価格は短期的に10%上昇した

過去1か月間価格が安定していたビットコインは、中国人の買い手が大量に流入したため、短期的には価格が1...

エバン・インターナショナル、誤解を招くような発言や財務情報をめぐり集団訴訟を起こされる

ビットコイン採掘機メーカーのEbang Internationalは、同社の財務および事業活動に関し...

【ファイルコインウィークリーレポート-59】キャリブレーションネットワークが複数回リセット、テスト開始時期は未定

スティーブン・リーとアイリスが共同編集【プロジェクト紹介】 Filecoin は、クラウド ストレー...

海外メディア:米財務省は3.5兆ドルの予算調整法案に新たな暗号化規則を盛り込むことを望んでいる

8月31日、バイデン政権は民主党に対し、今後の3.5兆ドルの予算調整計画に暗号通貨取引に関するさらな...

初期の採掘モデルに関する研究:サトシ・ナカモトはチームではなく単独で作業する傾向があった

ビットコインのオリジナルのマイニングモデルを研究している研究者、セルジオ・ダーメイン・ラーナー氏は最...

Hyperledger の新プロジェクト Iroha がブロックチェーン モバイル アプリケーション市場への参入を支援

日本のIT大手日立とソラミツなどのスタートアップ企業が開発したブロックチェーンプロジェクトが、ハイパ...

ロシア 1G 無料 PHP 仮想ホスト 安定した高速ウェブサイト構築の第一選択肢

今日のインターネット時代では、個人のウェブサイトやブログを持つことが多くの人にとって必要になっていま...

株式市場は3兆元を蒸発させ、Filecoin先物は急騰、誰がこの穴を埋めるのでしょうか?

昨日は、主要A株3指数が終始下落して始まり、午後には上海総合指数が3,200を下回り、3,200ポイ...

昨日ビットメインに何が起こったのか、パート 5 (メインランド アークの謎)

昨日Bitmainに何が起こったのですか?詹克団が顧客の機械を拘束し、従業員に職場復帰を要求するなど...

ブロック報酬が半分になった後、マイナーにとってBCHとBTCのどちらがより魅力的でしょうか?

ビットコインの誕生以来、マイナーは常にビットコイン エコシステムの最も重要な部分でした。歴史上最初の...

世界のハードフォークの歴史:BCH内部の混乱の全容とリプレイ防止の謎

11月に入り、BCH は新たなアップグレードを予定しています。これは誰もがすでに慣れていることですが...

DAO事件はブロックチェーンが社会問題を避けられないことを示している

Baozou Timesのコメント: DAOプロジェクトの失敗は、新しいテクノロジーが必ずしも順風満...