Skip to content

Signer Networkの概要記事作成#17

Open
oshikawatkm wants to merge 5 commits into
chaintope:masterfrom
oshikawatkm:feature/signer_network_overview
Open

Signer Networkの概要記事作成#17
oshikawatkm wants to merge 5 commits into
chaintope:masterfrom
oshikawatkm:feature/signer_network_overview

Conversation

@oshikawatkm

@oshikawatkm oshikawatkm commented Jul 15, 2022

Copy link
Copy Markdown
Contributor

#3 Signer Networkの概要記事を作成しました。

@oshikawatkm oshikawatkm force-pushed the feature/signer_network_overview branch 3 times, most recently from 1963c43 to 8554bee Compare August 1, 2022 06:15
Comment thread _pages/guide/signer-network-overview.md Outdated
---

本記事ではSignerが用いる閾値署名方式とブロック生成の概要について解説します。
Tapyrus Signerはあくまで参照実装であり、有効なSchnorr署名が作成が可能であれば、必ずしもTapyrus Signerを利用する必要はありません。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Tapyrus Signerはあくまで参照実装であり、有効なSchnorr署名が作成が可能であれば、必ずしもTapyrus Signerを利用する必要はありません。
Tapyrus Signerは参照実装であり、有効なSchnorr署名が作成が可能であれば、必ずしもTapyrus Signerを利用する必要はありません。

Comment thread _pages/guide/signer-network-overview.md Outdated
本記事ではSignerが用いる閾値署名方式とブロック生成の概要について解説します。
Tapyrus Signerはあくまで参照実装であり、有効なSchnorr署名が作成が可能であれば、必ずしもTapyrus Signerを利用する必要はありません。

## 秘密分散共有法

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

秘密分散共有法→秘密分散法に統一しましょう。

Comment thread _pages/guide/signer-network-overview.md Outdated
Tapyrus Signerはあくまで参照実装であり、有効なSchnorr署名が作成が可能であれば、必ずしもTapyrus Signerを利用する必要はありません。

## 秘密分散共有法
秘密分散共有法とはシャミアが提案したShamir’s Secret Sharing Scheme(ssss)、複数の秘密情報を複数の管理者が協力して管理する方法です。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同時期にブラークリーも発表してるのでシャミアのとするのはやめといた方が良いかと思います。また、この文脈だと管理者というよりは、参加者や当事者という表記の方が良いかと思います。

Comment thread _pages/guide/signer-network-overview.md Outdated
ディーラーが秘密情報をn個のシェアに分割し、n人の管理者に対し、それぞれの管理者に対応したシェアを分配します。


## 検証可能秘密分散法(Verifiable Secret Sharing)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 検証可能秘密分散法(Verifiable Secret Sharing)
## 検証可能な秘密分散法(Verifiable Secret Sharing)

Comment thread _pages/guide/signer-network-overview.md Outdated

## 検証可能秘密分散法(Verifiable Secret Sharing)
通常の秘密分散共有法では、ディーラーから配布されたシェアがその管理者に対応したシェアであるか、または悪意をもったディーラーが誤ったシェアを分配していないか、管理者は判断することができないことが問題となります。
その対策を行った方法に検証可能秘密分散(VSS)があります。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
その対策を行った方法に検証可能秘密分散(VSS)があります
そのような問題に対処するために提案されたのが、検証可能な秘密分散法(VSS)で、Feldmanが提案した方式などが有名です

Comment thread _pages/guide/signer-network-overview.md Outdated
有名なものにFeldmanの検証可能な秘密分散法があります。

### Feldman’s Verifiable Secret Sharing Scheme(Feldman’s VSS, Feldmanの検証可能な秘密分散法)
Feldmanの検証可能な秘密分散法は、ssssにおいてディーラー(マスター秘密鍵生成者)から受け取ったシークレットシェアが本当にssssの曲線上の点であるか検証できるようにする手法です。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ssssと出てくると?となるので、シャミアの秘密分散法という表記の方が良いかと思います。

Comment thread _pages/guide/signer-network-overview.md Outdated
ディラーは多項式の各係数のコミットメントを計算し、管理者に対して公開します。各管理者はコミットメントを用いて自分のシークレットシェアが正しいものであるか検証することができます。

## 閾値署名方式 {#threshold-signature-scheme}
Tapyrus Signer Network(TSN)の署名アルゴリズムは、"Provably Secure Distributed Schnorr Signatures and a (t, n) Threshold Scheme for Implicit Certificates"[^1]に基づいています。この署名方式では、n人の署名者のうちt人が協力しなければ署名が発行されません。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Tapyrus Signer Network(TSN)の署名アルゴリズムは、"Provably Secure Distributed Schnorr Signatures and a (t, n) Threshold Scheme for Implicit Certificates"[^1]に基づいています。この署名方式では、n人の署名者のうちt人が協力しなければ署名が発行されません
Tapyrus Signer Network(TSN)の署名方式は、"Provably Secure Distributed Schnorr Signatures and a (t, n) Threshold Scheme for Implicit Certificates"[^1]に基づいています。この署名方式では、n人の署名者のうちt人が協力しなければ有効な署名が作成されません

Comment thread _pages/guide/signer-network-overview.md Outdated
Signer Networkのブロック生成はラウンド制で行います。
ラウンドが開始する前に、ラウンドロビン方式で1つのSignerノードをラウンドマスターとして選出します。
ラウンドマスターは、候補ブロックを生成し、他のSignerノード(ラウンドメンバー)に候補ブロックを公開します。
候補ブロックを受信したラウンドメンバーは確認をおこない、候補ブロックの賛成・反対を判断し、各判断に対応したシークレットシェアを用いて署名を付与する。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
候補ブロックを受信したラウンドメンバーは確認をおこない、候補ブロックの賛成・反対を判断し、各判断に対応したシークレットシェアを用いて署名を付与する
候補ブロックを受信したラウンドメンバーはブロックの有効性を検証し、候補ブロックの賛成・反対を判断し、各判断に対応したシークレットシェアを用いて署名を付与します

Comment thread _pages/guide/signer-network-overview.md Outdated
3. 他のSignerノードに新しいブロックを公開(Redis Pub/Subを使用)
4. 署名発行プロトコル([以下](#signature-issuing-protocol)で説明)
5. ブロックの公開
- ブロックがNGの場合、警告を記録

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- ブロックがNGの場合、警告を記録
- ブロックが無効な場合、警告を記録

Comment thread _pages/guide/signer-network-overview.md Outdated
4. 署名発行プロトコル([以下](#signature-issuing-protocol)で説明)
5. ブロックの公開
- ブロックがNGの場合、警告を記録
- ブロックがOKの場合、次のステップへ

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- ブロックがOKの場合、次のステップへ
- ブロックが有効な場合、次のステップへ

Comment thread _pages/guide/signer-network-overview.md Outdated
- commitments: コミットメントの配列。コミットメントはsecp256k1曲線点でありxとyの座標を持ちます。
- Blockvss[2]: 賛成のシークレットシェア。secp256k1曲線のスカラー値をhex形式で表したものです。
- Blockvss[3] 反対のVSSの追加データのオブジェクト。フィールドのプロパティは賛成のVSSのデータのオブジェクトと同じです。
- Blockvss[4] 反対のVSSのシークレットシェア。secp256k1曲線のスカラー値をhex形式で表したものです。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PositiveとNegativeは賛成、反対ではなくて、楕円曲線の点についての話かと。

https://github.com/chaintope/tapyrus-signer/blob/master/doc/setup.md#user-content-fn-5-c108ba59e166a68adf31890a76c2c071

Comment thread _pages/guide/signer-network-overview.md Outdated
## 秘密分散法
秘密分散法とはブラークリーとシャミアによって同時期に独立して提案された、複数の秘密情報を複数の参加者が協力して管理する方法です。
一つの秘密情報を分割した情報である**シェア**を複数の参加者に配布し、特定の数のシェアが集まれば、元の秘密データを復元できるという手法です。
ディーラーが秘密情報をn個のシェアに分割し、n人の参加者に対し、それぞれの参加者に対応したシェアを分配します。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

最後の一文は、VSSの方の説明に移動しましょうか。

Comment thread _pages/guide/signer-network-overview.md Outdated
通常の秘密分散法では、ディーラーから配布されたシェアがその参加者に対応したシェアであるか、または悪意をもったディーラーが誤ったシェアを分配していないか、参加者は判断することができないことが問題となります。
そのような問題に対処するために提案されたのが、検証可能な秘密分散法(VSS)で、Feldmanが提案した方式などが有名です。

### Feldman’s Verifiable Secret Sharing Scheme(Feldman’s VSS, Feldmanの検証可能な秘密分散法)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

↑では検証可能な秘密分散法(Verifiable Secret Sharing)となっているので、Feldman’s VSS, Feldmanの検証可能な秘密分散法を先にして英語は括弧書きにしましょう。


### Feldman’s Verifiable Secret Sharing Scheme(Feldman’s VSS, Feldmanの検証可能な秘密分散法)
Feldmanの検証可能な秘密分散法は、通常の秘密分散法においてディーラー(マスター秘密鍵生成者)から受け取ったシークレットシェアが本当に秘密分散法の曲線上の点であるか検証できるようにする手法です。
ディラーは多項式の各係数のコミットメントを計算し、参加者に対して公開します。各参加者はコミットメントを用いて自分のシークレットシェアが正しいものであるか検証することができます。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ディラーは多項式の各係数のコミットメントを計算し、参加者に対して公開します。各参加者はコミットメントを用いて自分のシークレットシェアが正しいものであるか検証することができます。
ディーラーは多項式の各係数のコミットメントを計算し、参加者に対して公開します。各参加者はコミットメントを用いて自分のシークレットシェアが正しいものであるか検証することができます。

Comment thread _pages/guide/signer-network-overview.md Outdated
詳しくは[こちら](http://cacr.uwaterloo.ca/techreports/2001/corr2001-13.ps)をご参照ください。

## BlockVSSの構成 {#blockvss-structure}
BlockVSSは「正」と「負」の2種類のVSSを持っています。一つは候補ブロックに賛成するための署名を生成するシークレットシェアで、もう一つは反対するための署名を生成するシークレットシェアです。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
BlockVSSは「正」と「負」の2種類のVSSを持っています。一つは候補ブロックに賛成するための署名を生成するシークレットシェアで、もう一つは反対するための署名を生成するシークレットシェアです。
BlockVSSは「正」と「負」の2種類のVSSを持っています。一つは候補ブロックに賛成するための署名を生成するシークレットシェアで、もう一つは反対するための署名を生成するシークレットシェアです。

反対はしないです。

@oshikawatkm oshikawatkm force-pushed the feature/signer_network_overview branch from b74ac4b to 0aca60f Compare August 19, 2022 07:05
@oshikawatkm oshikawatkm requested a review from azuchi August 19, 2022 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants