SSI を理解する

SSI (Self-Sovereign Identity) という言葉を見聞きしたり、自分も発したりするようになったけど、SSI って何？正しく理解してる？と問われるとうーんとなったので、SSI の起源から調べたメモ。

# SSI の起源
SSI の原典を読まないと始まらない。[Christopher Allen が 2016 年 4 月 25 日のブログ投稿で Self-Sovereign Identity の背景と定義の小論文を公開している](http://www.lifewithalacrity.com/2016/04/the-path-to-self-soverereign-identity.html)。これが真の起源かどうかは分からないが、Self-Sovereign Identity に関する他のブログなどからの参照のされっぷりからして、これが原典的な扱いになっていると考えてよさそう。という訳で、この小論文を読む。

# The Path to Self-Severeign Identity

## Identity

Identity とは人間独特の概念。自覚しているものの言葉では言い表せない「己」。文化に関係なく、世の誰もが理解できる概念。デカルトの「我思う、故に我あり」を引用している。

次に述べているのは今の社会で起きていること。国や企業は運転免許や社会保障番号、その他国が発行するクリデンシャルを identity でひとまとめにしている。これは、国がクリデンシャルを取り下げたり、当人が国外に出たりすると identity を失う可能性があるという問題を孕んでいる。デジタル世界（<span style="color:#826f06;">要はインターネットのことだろう</span>）においても、この中央集権型の管理による問題はあるし、インターネットのドメインごとで identity がバラバラで分断された状態になっている。実世界に対するデジタル世界の重要さが益々増えると、identity の概念を再考する余地が生まれる。私たちはこの機会に identity を言葉では言い表せない「己」と再び結びつけられるかもしれない。この再考された identity は近年 Self-Sovereign Identity と呼ばれている。

## Identity の進化

インターネット上の identity は 4 つのステージを経て発展してきた。

| ステージ | Identity | 特徴 |
| --- | --- | --- |
| 1 | Centralized Identity | 単一の権威・階層によって統制されている identity |
| 2 | Federated Identity | 複数の権威の連合によって統制されている identity |
| 3 | User-Centric Identity | ユーザーまたは単一の権威が複数の権威にまたがって統制できる identity |
| 4 | Self-Sovereign Identity | ユーザーがあらゆる権威にまたがって統制できる identity |

## SSI の定義

実際のところ SSI とは何なのか？一致した見解が何もないというのが事実である。この小論文は正にその問いに対する会話を始めるためのものであり、とっかかりとなることを期待している。

SSI は user-centric identity の先を行くものだが、ユーザーが identity 管理の中心にあるべきだという立場は同じである。SSI は user-centric identity が求めていたユーザーの identity が様々な場所で通用する互換性やユーザーの同意に基づく identity の使用だけでなく、その digital identity がユーザーによって完全に支配され、それによってユーザーの自律性が担保されることを求めている。そのために SSI は可搬的でなくてはならない。ある一つのサイトや場所に縛ることのできないものである。

SSI は一般ユーザーが、個人を自分自身の証明や個人の能力・団体への所属などのクレームを作れるようなものでなければならない。そのクレームは他の人や団体によって主張される当ユーザーの情報を含めることもできる。

SSI の生成において個人が守られるように注意しなければならない。SSI は経済的・その他の損失や権力による人権の濫用を防ぎ、本人であり続けたり自由に他者と交流できる個人の権利を守らなければならない。

SSI についてはこの短い説明では足りない、もっと多くの要件がある。いかなる SSI も従わなければならない一連の原則が SSI の姿をより網羅的に定めてくれる。この小論文では次の 10 個の原則を提案する。

### SSI の 10 原則

Identity の原則については様々な人々が書き残している。最初期の [Kim Cameron の Laws of Identity](https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/ms996456(v=msdn.10)?redirectedfrom=MSDN) に対して、前述の Respect Network のポリシーや W3C Verifiable Claims Task Force FAQ は digital identity に関する新たな観点を与えている。これら全ての思想を総動員して SSI に特化した原則にまとめた。これらの原則は真に必要なものに関する議論の出発点と考えてほしい。これらの原則は SSI の核心であるユーザーによる管理を確実なものにしようとしている。しかし、identity が良いことにも悪いことにも使える両刃の剣になり得ることも分かっている。したがって identity システムは透明性、公平性、共通資産の維持という側面と個人の保護という側面の双方を等しく扱わなくてはならない。

#### Existence

ユーザーは独立した存在でなければならない。いかなる SSI も究極的には identity の核心である、言葉では言い表せない「己」に立脚している。それは完全にデジタルの形式で存在することはできない。これこそ誰もが認める自己の肝心な点に違いない。SSI は既に存在する「己」のごく一部の側面のみを公開しているに過ぎない。

#### Control

ユーザーは自らの identity を操らなければならない。ユーザーが自らの identity の最高権威であるには、内容がよく理解された安全なアルゴリズム群によって identity とそのクレームの継続的な正当性が保証されなければならない。ユーザーはいつでも自らの identity を参照・更新・隠蔽できるべきだ。ユーザーは自らの意思でみんなによく知られた存在になるか誰からも知られない存在になるか選択できなければならない。これはユーザーが自らの identity に関する全てのクレームを操作できるという意味ではない。あるユーザーに対して他のユーザーらがクレームを作ることはできる。ただし、それらはそのユーザーの identity の主要な部分であるべきではない。

#### Access

ユーザーは自らが所有するデータにアクセスできなければならない。ユーザーはいつでも自らの identity に含まれるクレームやその他のデータの全てを容易に検索できなければならない。そこにユーザーから隠されたデータやユーザーからデータを隠す門番がいてはならない。これはユーザーは自らの identity に関わる全てのクレームを必ず修正できるという意味ではない。ユーザーは自らの identity に関わる全てのクレームを把握できているべきだということだ。また、他のユーザーのデータに対しても同等のアクセス権をもっているという意味でもない。自分のデータのみに対する話だ。

#### Transparency

システムとアルゴリズムは中身が見える状態でなければならない。Identities のネットワークを管理・運用するためのシステムは、それらがどのように機能し、どのように管理・更新されているかが分かるようにオープンでなければならない。アルゴリズムは誰でもそれらがどのように動くのか検査できるべきだ。そのために、アルゴリズムはよく知られた無料のオープンソースの形をとり、どの特定のアーキテクチャからもなるべく独立しているべきだ。

#### Persistence

Identities は長期に渡って存続しなければならない。理想的には identities は永遠に、あるいはユーザーが望む限り存続すべきだ。秘密鍵は更新されないといけないかもしれないし、データは変更されないといけないかもしれないが、identity 自体は残り続ける。ただ、インターネットという変化の激しい世界ではこの目標は不適切極まりないかもしれない。少なくとも、identities は新たな identity システムで置き換えられるまでは存続しないといけない。これは「忘れられる権利」を否定するものであってはならない。ユーザーは本人が望めば identity を破棄できるべきだし、それに合わせてクレームもやがて適切に修正されたり削除されるべきだ。そのために identity とその identity に関するクレームはしっかりと分離されていなければならない。それらの関連性は永続的なものではない。

#### Portability

Identity に関する情報はサービスは可搬でなければならない。Identities は一つのサードパーティによって保持されてはならない。たとえそれがユーザーの利益を最優先に活動すると期待できる信頼された存在であってもだ。問題は存在しているものは消え得るということだ。インターネットにおいては大抵はいずれ消えていく。運営制度が変わることもあれば、ユーザーが他の運営制度のシステムへ移動することもある。可搬な identities はユーザーがいかなる状況においても自らの identity を管理し続けられることを保証する。また、identity の永続性も改善できる。

#### Interoperability

Identities は可能な限り広く通用すべきである。限られた特定の領域でのみ通用するだけでは価値がない。21 世紀の digital identity システムの目標は、グローバルな identities を作るために国際的な境界を越え、ユーザーの管理権限を損うことなく広く利用可能な identity 情報を作ることだ。Persistence と autonomy（<span style="color:#826f06;">原則にはないが、existence と control と access のことか？</span>）のおかげで、広く利用可能な identities は継続的に利用可能となる。

#### Consent

ユーザーは自らの identity の使用に対して合意しなければならない。どの identity システムも identity とそのクレームを共有できるように組まれ、互換性のあるシステムは共有する機会を増やす。しかし、データの共有はユーザーが合意したときのみ実施されなければならない。雇用主や信用調査機関、友人など他のユーザーがクレームを発行する場合においても、ユーザーがそれらに合意しなければクレームは有効にはならない。この合意は対話形式で行われないかもしれないが、ユーザーが内容を理解した上で慎重に行われるものでなければならない。

#### Minimalization

クレームの開示は最小限に留めなければならない。データが開示されるときは目下のタスクを完了するために必要最低限のデータが開示されるべきである。例えば、年齢制限の確認が必要なときは実際の年齢を開示すべきではないし、年齢が必要なときは生年月日まで開示すべきではない。選択的な情報開示の他、[range proofs](https://www.ingwb.com/binaries/content/assets/insights/themes/distributed-ledger-technology/a-survey-on-zero-knowledge-range-proofs-and-applications.pdf) やその他のゼロ知識証明の技術によってこの原則に従うことはできる。しかし、名寄せ・関連付けを完全に防ぐのは非常に困難（おそらく不可能）だ。可能な限りプライバシーを保護するためにこの原則に従うのが我々が取り得る最善の策だ。

#### Protection

ユーザーの権利は保護されなければならない。ある identity ネットワークからの要求とユーザー個人の権利が競合する場合、その identity ネットワークは要求を取り下げて個人の自由と権利を保護する過剰さをもって然るべきだ。これを確実にするために、検閲を受けず権力に屈さない独立を維持したアルゴリズムによって非中央集権的に identity 認証が実行されなければならない。

# 感想

これはあくまで SSI の原則なので、インターネット上でのユーザーの権利の保護を訴えている。しかし、SSI がその identity の主としている人はインターネットとは切り離された実社会に存在している（とても不便かもしれないが、人はインターネットなしでも生きていける）。SSI は人が（常に）インターネットと接続していることを暗に前提としているが、人がインターネットに接続するラストマイルは国・企業・権威団体による中央集権型のシステムで構成された世界だ。結局、人は「良き市民」でないと理想的な世界に足を踏み入れることができないのが現状だ。もちろん、本人がインターネットへの接続を失っても、インターネット上で当人の identity は保護され続けるだろうが、本人がその恩恵を享受できないのであれば、それは意味がないだろう。いずれはインターネットに接続できる権利が基本的な人権に含まれるようになるのかな。