Signerネットワーク構築ガイド#20
Conversation
ae9e41b to
b7df131
Compare
| ``` | ||
| <署名付きgenesisブロック> | ||
| ``` | ||
|
|
There was a problem hiding this comment.
集約署名が、ジェネシスブロックのブロックヘッダーのdouble-SHA256ハッシュ値と集約公開鍵に対して有効なSchnorr署名であることを付記してください。
| - `xfield`: メタデータを管理する項目。 | ||
| - `xfieldType`: `xfield`項目のメタデータの種類を明示する項目。`1`が集約公開鍵を意味する。 | ||
| - `immutablemerkleroot`: `scriptSig`を除いて算出したマークルルート。 | ||
| - `proof`: Signerが承認したブロックの閾値署名。 |
There was a problem hiding this comment.
| - `proof`: Signerが承認したブロックの閾値署名。 | |
| - `proof`: Signerが承認したこのブロックのSchnorr署名。 |
| - `featuresHex`: `features`項目のHex値。 | ||
| - `xfield`: メタデータを管理する項目。 | ||
| - `xfieldType`: `xfield`項目のメタデータの種類を明示する項目。`1`が集約公開鍵を意味する。 | ||
| - `immutablemerkleroot`: `scriptSig`を除いて算出したマークルルート。 |
There was a problem hiding this comment.
| - `immutablemerkleroot`: `scriptSig`を除いて算出したマークルルート。 | |
| - `immutablemerkleroot`: トランザクションリストのマークルツリーのルートハッシュ |
脚注で、トランザクションのハッシュの計算にトランザクションインプットのscriptSigは含まれていない旨記載してください。
| > 010000000000000000000000000000000000000000000000000000000000000000000000c30fc7bfabe904aecc6db258736b0f52150a43aa3b09bf27fdcb12677684003013c741355a4217988fca4948326a9e737c9899eb7958f3081c1f8e40b18db4c18046d762012102b45d04c7fabe51857c3d4dfb34f2aece4cc58c9d3a43ecc8517ac38bf9598bb9405737a9e12ccff7b4810195837295481b93a5ef6bd7dd50d36843ae3c0e77f6cb4dfed21293738adc40024f2fc2f4545fe3a00dc54165d9e480c189bb2450df8a01010000000100000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100f2052a010000001976a914a02d5bb5a1be6b923adf53d079b6e9ede53e4ef988ac00000000 | ||
| ``` | ||
|
|
||
| 署名付きgenesisブロックは以下のような構造になっています。 |
There was a problem hiding this comment.
ブロック自体だと、トランザクション数やトランザクションのTXIDのリストも含まれるので、以下はブロックヘッダーの情報ですね。↑のブロックからブロックヘッダーを抽出してここで説明するのが良いかと思います。
| ``` | ||
|
|
||
| 署名付きgenesisブロックは以下のような構造になっています。 | ||
| - `hash`: 集約公開鍵に対して有効なdouble-SHA256ハッシュ値形式のSchnorr署名の値。 |
There was a problem hiding this comment.
多分、RPCが返してる値を参考にしてるのかもしれないですが、ブロックヘッダーにhashは含まれません。構造は、
https://github.com/chaintope/tapyrus-core/blob/master/doc/tapyrus/signedblocks.md#block-structure-expansion-for-signed-blocks
の表に、↑のデータをそれぞれ当てはめて説明するのがいいかと思います。
|
|
||
| 以下が実際に生成したgenesisブロックのJSON形式のオブジェクトです。`xfieldType`に集約公開鍵を意味する`1`が指定され、`xfield`に集約公開鍵が指定されています。後に続くブロックはこの集約公開鍵により署名の検証が行われます。 | ||
| ```javascript | ||
| { |
There was a problem hiding this comment.
CLIの実行結果だと思うので、CLIのコマンド含めて書いた方が、どうやったらこのJSONが取れるのか分かっていいかと思います。
There was a problem hiding this comment.
このときはまだSIgnerのセットアップしかしていないため、tapyrusノードが建っていない状態なのでコマンドを例示しないことにしたのですが、tapyrus-cliの例示もするべきでしょうか?
#3 Signerネットワーク構築ガイドを作成しました。