Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フィー・スナイピングとその対策

 フィー・スナイピングとその対策

GBECの解説動画の資料です:
https://goblockchain.network/2021/08/fee-sniping/

shigeyuki azuchi

August 24, 2021
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. フィー・スナイピングとその対策


    View Slide

  2. 1
    フィー・スナイピングとは?

    マイナーが意図的に過去のブロックをマイニングして、

    該当ブロックをマイニングした別のマイナーの手数料を奪うこと

    ● 一見ムダにみえるような攻撃のように思えるけど?

    ○ ブロックをマイニングすると、マイナーは
    6.25 BTCの報酬(2021年7月現在)と

    ブロック内のトランザクションの手数料を報酬として受け取る。

    ○ マイニング報酬は約4年に一度、半減する(半減期)。

    ○ 将来的に報酬で手数料の占める割合が増した場合、

    過去のブロックのトランザクションが、現在mempoolにある

    トランザクションよりも大幅に高い手数料を払っている場合、

    過去ブロックを再マイニングするインセンティブが発生する。

    View Slide

  3. 2
    緩和策

    nLocktimeを利用したトランザクションの再配置の防止

    Tx

    Version

    Inputs

    Outputs

    nLocktime

    【nLocktimeの仕様】

    ● インプットのnSequenceが最大値(0xffffffff)でない場合

    nLocktimeの制限が有効になる。

    ● nLocktimeにはトランザクションをブロックに

    格納できる最小時間を設定する。

    最小時間より前のブロックには格納できない。

    ○ nLocktime < 500,000,000の場合は、ブロック高として解釈

    ○ それ以上の場合は、UNIXタイムスタンプとして解釈

    ウォレットがトランザクション作成時に現在のブロック高を設定することで、

    フィースナイピングによりトランザクションを過去ブロックに

    再配置できないようにする。


    View Slide

  4. 3
    nSequenceの使用へ

    Tx

    Version

    Inputs

    Outputs

    nLocktime

    TxIn

    OutPoint

    scriptSig

    nSequence

    【nSequenceの仕様】

    ● nLocktimeが絶対時間によるタイムロックの

    仕組みなのに対し、nSequenceは相対時間による

    タイムロックを提供する

    ● OutPointで参照するUTXOが、ブロックに

    格納されてから設定した期間、トランザクションを

    ブロックに格納できなくなる。

    ● nSequenceの下位16 bitでロック期間を設定

    (ブロック高 or 時間:23bit めがタイプフラグ)

    ウォレットがトランザクション作成時に、インプットが参照するUTXOのブロック高と

    現在のブロック高の差分のブロック数をnSequenceに設定することで、

    nLocktimeと同様の対策が可能。

    nSequenceを利用する他のコントラクト・プロトコルとの違いをなくすことで、

    プライバシーの向上を狙う。


    View Slide

  5. 4
    宣伝

    ブロックチェーン技術概論 理論と実践(2021年、講談社)

    https://www.amazon.co.jp/dp/406524093X


    1. ブロックチェーン技術の原点 

    2. ブロックチェーンの概要 

    3. スマートコントラクトと分散台帳 

    4. ブロックチェーンを構成する暗号技術の基礎 

    5. ビットコインのシステム構成と仕組み 

    6. ビットコインの仕組みの詳細 

    7. P2Pネットワーク

    8. さまざまなノード実装 

    9. トークンの表現と利用 

    10. ブロックチェーンのスケーラビリティ 

    11. 暗号技術とスマートコントラクト 

    12. ブロックチェーンと匿名化技術 

    13. ブロックチェーンを利用したシステム構成 

    14. ブロックチェーン特有のリスク 

    15. ブロックチェーンのビジネスへの導入 


    View Slide