Skip to content
This repository was archived by the owner on Feb 9, 2026. It is now read-only.
Open
32 changes: 32 additions & 0 deletions sutera/14_network-personal-auth_ja-jp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

# Personal Authentication of Sutera Network

ここではSuteraネットワークが個人を認証する要素について説明します。

## イントロダクション

第一に、Suteraネットワークでは全ての参加者がゼロトラストにあたるため、個人が自分を証明するためにデジタル署名を利用します。

## デジタル署名と個人ユーザーのつながり

Suteraネットワークのデジタル署名には公開鍵署名が使用されます。

各ユーザーのIDは、各ユーザーが生成した公開鍵となります。

このため理論上は2^256人分のユーザー登録を行うことができ、他のユーザーとIDが重複することが確率的にほぼゼロになります。
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.

公開鍵が取りうる値の場合の数 (2^256) は、厳密には衝突耐性と関係しません
例えばEd25519なら、Hとして使われるSHA-256の強衝突耐性や現像計算困難性に言及しないといけないからです
また、"almost" という語はwell-definedな場合があるのにも気をつけましょう

そこらへんに気をつけて、ここらへんの

  • 十分膨大な数のユーザーを登録可能
  • Suteraの仕様では公開鍵の衝突を無視していることと、その妥当性

あたりはもっっと膨らませて書いてほしいです.ᐟ.ᐟ.ᐟ
このidea記事で一番言及しなければいけないことがここなので……

出典の明示されたWikipedia記事/支持されている論文/権威のある機関の記事 などは引用しても問題ありません

Copy link
Copy Markdown
Author

@KernelVR KernelVR Jul 13, 2024

Choose a reason for hiding this comment

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

これは公開鍵ではなく秘密鍵のサイズが0x20-bytesのため2^256としています。
またもちろんEd25519は法があるので必ず組み合わせが2^256通りあるはずがありませんが、ここは私は未検証なので詳しくは知りません。
そしてEd25519のHはSHA-512です。


そして各ユーザーは個人のデジタル署名によって自身を証明することができ、なりすましをすることが困難になります。

ここで重要なのは、公開鍵を生成するためには秘密鍵が必須ですが、生成された秘密鍵は各ユーザーのローカルにのみ保存され外部に公開されることは絶対にありません。

## SuteraIdentity

前述した各ユーザーのIDが単なる16進数では個人を認識することが困難であるため、SuteraではSuteraIdentityと呼ばれる認証子が存在します。
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

  • SuteraではSuteraIdentityと呼ばれる認証子を利用しています。
  • SuteraにはSuteraIdentityと呼ばれる認証子が存在します。

のどちらかだと自然な文章になると思います!


デジタル署名の将来的な変更のために、認証子はバージョンがあります。

またフォーマット中に{display_name}のような人間にとって読みやすくなるような要素は認証には関与しません。

|バージョン|フォーマット|例|
|-----|-----|-----|
|v1|`{type}@{display_name}.sutera-identity-v1.{verifying_key}`|`suteravr-bloom@SuteraVR.sutera-identity-v1.${TODO: SuteraVR's public key here}`|