web-dev-qa-db-ja.com

Keybaseが以前の証明のハッシュに署名するのはなぜですか?

私は、Keybase上のユーザーと他のIDのセット(Twitter、GitHubなど)との間に検証可能な接続を確立する方法を大まかに理解しています Keybaseworks 。これを達成するためのステップの1つは、接続されている各アカウントにこの接続の証明に署名して公開することです。その証明の一部は、「彼の以前の署名のハッシュ」(これは以前の証明のハッシュを意味すると思います)で構成されています。

Keybaseアーキテクチャのこの要素の目的は何ですか:以前の証明の署名ハッシュは何を達成しますか?

1
orome

すでに素晴らしいコメントがあるようですが、それらを要約して、不足している部分を追加しましょう。

以前の証明を現在の証明にハッシュするのはなぜですか?

[〜#〜] ismsdev [〜#〜] ですでに示されているように、keybaseは基本的に、追加専用のデータ構造である不変のログを構築しています。前の証明を組み込むことによって、現在のステートメントに署名するだけでなく、前のステートメントの知識も安心させるという考え方です。

なぜそのようなチェーンは良いことですか?

付加のみのデータ構造にはいくつかの優れた特性があります。シーケンスは固定されており、これは簡単に証明および検証できます。次のようなチェーンがあるとします。
A -> B
ここで、Aは最初の証明であり、BAのハッシュを組み込んだ証明です。後でXAの間に「起こった」という証明Bを追加したい場合は、Aのハッシュを埋め込んで後継。ただし、フォークされたチェーンは次のようになります。
X <-A-> B
本当にXをチェーンの一部にしたい場合は、代わりにXのハッシュを組み込んだ新しいB'を作成する必要があります。 A。これは次のようになります。
A-> X-> B'さて、これにより、B(署名)の既存の証明が間違ったものになります。 、署名されたコンテンツが変更されたため。したがって、頭がBではなくB'になっているため、人々はこれを検出できます。これをより明確にするために、次のような長いチェーンがある場合:
A-> B-> ...-> Zの場合、現在の要素のみを記憶することで、チェーン全体の要素が変更されていないことを確認できます。チェーンの頭。チェーンのいずれかの時点で何かが変更された場合、後続のすべての要素と最上位の要素(のハッシュ)を再作成する必要があります。したがって、チェーン、つまりヘッド署名を継続的に公開するサービスの場合、これを覚えておくだけで済み、チェーンが変更されると(おそらく新しい要素が追加されると)、すでに持っているヘッドからすべてを確認する必要があります。その後、新しいものを覚えておいてください。
詳細に興味がある場合は、Keybaseがアプローチの詳細を説明しています ここ

ビットコインブロックチェーンへのコミットについて...

さて、上で説明したことはビットコインなしでもすでに成り立っています。しかし、なぜ今ビットコインチェーンにもプッシュするのですか?基本的に、ビットコインのユーザー/クライアントは、ビットコインチェーンが追加専用のログ、公開されたタイムスタンプ付きの台帳であることを継続的にチェックおよび検証しています。これにより、大規模なグローバルコミュニティによって保護されているイベントの公開された封印されたログが得られます。現在、人々は、データに安全かつ取消不能なタイムスタンプを付けるために、ハッシュなどのデータをブロックチェーンにコミットすることでこれを悪用し始めました。ここで重要なのは、サービス所有者として自分で公開するsigチェーンとは対照的に、履歴を書き換えることができないということです。 Keybaseユーザーの場合、これは次のことを意味します。任意の時点で、Keybaseサービスを通じて利用可能なヘッドハッシュと、その時点でビットコインブロックチェーンにハッシュされたヘッドハッシュが分岐した場合、何かが怪しいことになります。キーベースの人々はこれを「正直になるか、捕まえる」と呼んでいます。 Webページはいつでも変更される可能性があるため、Webページに投稿するだけではこれを実現できません。ただし、ビットコインブロックチェーンは(ほとんど*)変更できません。

(*)もちろん、ビットコインも完璧ではありませんが、大規模な履歴書き換えを実現する確率や攻撃はごくわずかです(51%の攻撃を参照)。

だからビット画像は何ですか

全体像は、Keybaseのような企業が、作成者/サービス所有者に与える必要のある信頼の量を最小限に抑える暗号ソフトウェアの構築に多大な努力を払っているということです。オープンソースコードによる透明性の確立に加えて、sigチェーン、ハッシュなどを公開することで、顧客はサービスを信頼していなくても使用できます。アイデアは、サービスプロバイダーとしてのあなたはあなたの顧客をだますことができないということです。

長い答えでしたが、問題が解決することを願っています。そのようなことについて話すとき、言及する必要があるいくつかの文脈があるとちょうど感じました。

1
user3363866