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ビットコインを失う

推薦する

BCH組織は11月のハードフォークの準備を開始

News.bitcoin によると、Bitcoin Cash のアップグレード計画が近づいており、関...

HECO のトップスターが BSC に転向。 Huobiは岐路に立たされている。リーリンはどうするのでしょうか?

ウー・サイード著者 |コリン・ウーこの号の編集者 |コリン・ウーリー・リンが自由を取り戻したとき、H...

HuobiのDu Junがビットコイン業界でナンバーワンになった経緯

8月13日に開催された2015年北東アジアインターネット・電子商取引会議において、中国最大のビットコ...

オランダで2日間で小包爆弾4個が発見され、脅迫者はビットコインでの支払いを要求した

14日のフォックスニュースによると、オランダ全土で2日間で小包爆弾4個が発見された。警察は、これはビ...

21Inc、デジタル通貨マイニングルートに関する特許を申請

最も資金力のあるビットコイン企業である21Incは最近、特定のデジタル通貨マイニングルートに関する...

アルゼンチン中央銀行総裁:中央銀行は、仮想通貨が外国為替管理の回避に使用されないようにし、投資家を教育するために「注意を払っている」

ペッシェ氏は、ブロックチェーンベースの計算単位はお金の反対であるため「暗号通貨という名前は適切ではな...

米国政府は17万ビットコインを誰に売却したのでしょうか?

11月10日、Coindeskによると、ニューヨークのビットコイン取引所itBitは、先週開催され...

あと1ヶ月ですか? ! 13のスポットビットコインETF提案の最新の進捗状況のレビュー

業界関係者は自信に満ちており、来月、米証券取引委員会( SEC )がビットコインETFのスポット承認...

BTCCは5大陸に100のノードを展開

BTCC は本日、ビットコイン ネットワークをサポートするために 5 大陸にわたる 100 個のノ...

プーチン大統領、ロシアにおけるブロックチェーンの応用について議論するためヴィタリック・ブテリン氏と会談

ヴィタリック・ブテリン氏とロシアのウラジミール・プーチン大統領は「あるCEOの集まり」で「短い会話」...

視点:0622 ビットコインは一時的に底を打ったが、大きな反発が来ている。反発は4660前後に達する可能性がある

ビットコインは今日4180付近まで急落したが、一時的に底を打って大きな反発が来ている。底打ちは一時的...

意見:半減期は強気だが、BTCへの賭けはもはや魅力的ではないかもしれない

ビットコインの現在の上昇は、2つの強気な物語が重なり合う中で起こっている。8週間以内に新規供給が半分...

弁護士の解釈:最高裁の判決はビットコインなどの法的保護を強化し、今後立法化やさらなる司法解釈が行われる可能性がある

7月22日、最高人民法院と国家発展改革委員会は共同で関連意見を発表し、デジタル通貨、オンライン仮想財...

業界全体への宣戦布告:米国 SEC はどのようにして 12 を超えるトークンを証券として特定したのか?

最新のニュースでは、米国SECがニューヨークの連邦裁判所で仮想通貨取引所Coinbaseを訴え、SO...

ビットコイン取引所運営者のムルジオ、マネーロンダリング疑惑を否定

11月19日のCoinDeskによると、ビットコイン取引プラットフォームCoin.mxの元運営者アン...