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

ブロックチェーンへのコミットメントの記録方法

 ブロックチェーンへのコミットメントの記録方法

GBECの解説動画の資料です:
https://goblockchain.network/2021/06/blockchain_commitment/

shigeyuki azuchi

June 10, 2021
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. ブロックチェーンへの

    コミットメントの記録方法


    View Slide

  2. コミットメントとは?

    ある値を秘密にしたまま、その値にコミットできる暗号プリミティブ

    値は、それが変更されないようコミットされた後に明かされる


    さまざまな暗号プロトコルで利用されている:

    ● ゼロ知識証明

    ● MuSig

    ● Verifiable Secret Sharing

    ● HTLC

    ● Confidential Transaction



    コミットメントスキームを構築する手法:


    ● 暗号学的ハッシュ関数

    ● Pedersen Commitment

    (離散対数問題)


    View Slide

  3. 2
    OP_RETURNを使ったコミットメントの記録

    OP_RETURN→任意のデータの記録が可能なBitcoinのopcodeの1つ


    OP_RETURN <任意コミットメント値>


    OP_RETURN(データ)を含むトランザクションをブロックチェーンに

    記録することで、データの存在証明などに利用可能。


    大量のデータの記録や手数料の節約のため、

    Merkle Tree化してルートハッシュのみを記録するというアプローチも。


    https://opentimestamps.org/



    View Slide

  4. 3
    Pay to Contract

    Pay to Contractは契約への支払いを通じたコミットメント

    支払いと契約(ドキュメント)の記録を同時に行う





    契約ドキュメント
    ボブの公開鍵

    Pub
    B
    = x
    B
    G
    H(契約 || Pub
    B
    )
    Pub = H(契約 || Pub
    B
    )G + Pub
    B
    対応する秘密鍵は、 

    H(契約 || Pub
    B
    ) + x
    B
    契約に基づいた支払い、支払いと記録をアトミックに行いたい場合に、

    支払い先のアドレスを契約データと相手の公開鍵から導出する。


    オンチェーン上は通常の支払い(P2PKH)なので、

    余分なオンチェーンスペースを消費しない。

    ※RGBなどの拡張プロトコルで
    OP_RETURNを使わずにPay to contractを使用するケースも

    View Slide

  5. 4
    Sign to Contract

    コミットメントをアドレスではなく、デジタル署名に適用する仕組み

    【通常のECDSA署名】

    1. nonce kを選択

    2. R = kGを計算

    3. r = R.x (mod n)とする

    4. s = k-1(m + r * x)

    5. (r, s)がECDSA署名データ


    【Sign to ContractのECDSA署名】

    1. nonce kを選択

    2. R = kGを計算

    3. e = k + H(R || 契約)を計算

    4. Q = R + H(R || 契約)Gを計算

    5. q = Q.x (mod n)とする

    6. s = e-1(m + q * x)

    7. (q, s)がECDSA署名データ


    署名のPublic NonceのRと契約から新たなPublic Nonce Qを生成する。

    契約データを開示してもkが秘匿されていれば秘密鍵xは計算できない。


    Pay to Contractと同様、余分なオンチェーンスペースは消費しない。契約データを失って資金を喪失するリスクなし。


    ※ xは秘密鍵、mは署名対象のメッセージ


    View Slide