編集者注: この記事は以下から引用しました編集者注: この記事は以下から引用しましたアンビラボ (ID:secbitlabs)
ゼロ知識証明もその一つで、非常に興味深い理論がいくつかあり、長い間模索した結果、何か書いて皆さんと議論したいと思っています。この記事は、「ゼロ知識証明の探索」シリーズの 3 番目です。全文は約 8,000 ワードで、いくつかの数式が含まれています。
この記事はGithubに更新されました
And what, Socrates, is the food of the soul? Surely, I said, knowledge is the food of the soul.
この記事はGithubに更新されました
— プラトン
副題
「知識ゼロ」 vs. 「信頼性」
ゼロ知識証明を紹介する多くの記事で、次の 3 つの特性が見られます。
完全性 - 完全性
健全性 - 信頼性
ゼロ知識 —— 知識ゼロ
しかし、この機能の背後にある意味と洞察を詳しく説明した記事はほとんどありません。存在する"シリーズ(2) 「シミュレーション」を理解する
記事の中で「シミュレーター」という概念を紹介しました。多くの紹介記事では「シミュレーション」についての言及を避けていますが、「セキュリティ」を定義する重要な武器であるため、「シミュレーション」はセキュリティプロトコルの中核であると言えます。
Rather than giving a list of the events that are not allowed to occur, it (the definition of zero-knowledge proof) gives a maximalist simulation condition.
— Boaz Barak
通常、最初にいくつかのセキュリティ イベントをリストし、次に「システムが安全であれば、リストされたセキュリティ イベントはいずれも発生しない」という方法でセキュリティを定義します。
暗号学者ボアズ・バラクの言葉を借りて翻訳すると、「ゼロ知識証明」は、起こってはいけない事象のリストを与えることで定義されるのではなく、最も極端な「シミュレーション条件」を直接与えるものです。
いわゆる「シミュレーション条件」とは、「現実世界」と区別できない「理想世界」を「シミュレーション」という手法で実現することであり、理想世界には知識がないので結論づけることができる。現実世界は「知識ゼロ」で満たされるということ。
私たちは、次期対話型システム(セキュリティプロトコル)の「完全性」「信頼性」「知識ゼロ」の3つの特性を分析し続けます。
健全性: アリスは知識がなければボブの検証に合格できません。
完全性: アリスは知識があればボブの検証に合格できます。
ゼロ知識: アリスは、対話中に知識に関する情報を一切開示しません。
「信頼性」と「完全性」の間には、ある種の「対称性」があることがわかります。信頼性は悪意のあるアリスが必ず失敗することを保証し、完全性は正直なアリスが必ず成功することを保証します。
「完全性」を証明するのは簡単です。アリスが正直でボブが正直である限り、誰もが幸せです。これは、コードを書き、テスト ケースを入力して、それで終わりにするようなものです。
「信頼性」をどのように定義すべきか考えてみましょう。この健全性命題の逆は、(現実世界では) アリスがボブの検証に合格できる場合、アリスは知識を持っている必要があります。または: アリスはそれを知っています...「秘密」!
次の問題は、アリスが「秘密」を知っていることをどうやって証明するかということです。
これも難しそうですよね?マシンが「秘密」を知っていることを証明する必要がある場合、最も簡単な方法はマシンのハードディスクまたはメモリ内で「秘密」を見つけることですが、これでは秘密が暴露されてしまいます。マシンがブラックボックスだったらどうなるでしょうか?それともアリスはどうですか?私たちには読心術がないので、彼女の心の秘密を推測することはできません。
「知ること」をどう定義するか?
「知識ゼロ」は、検証者ボブが「知識」に関連する情報を「抽出」する(計算)能力を持たないことを保証します。引き出せない「知識」は存在しないわけではありません。 「信頼性」は知識の「存在」を保証します。
「知識ゼロ」の保証は、「知識」が存在する場合にのみ意味を持ちます。
この記事では「信頼性」と「知ること」について説明します。「知識」をさらに分析するために、まず、非常に簡潔で広く使用されているゼロ知識証明システム、シュノア プロトコルを導入します。このプロトコルは、いわゆる Σ-Δ プロトコルと呼ばれる大きなクラスのセキュリティ プロトコルを表しており、Schnorr プロトコル拡張も「』 [1] 基幹技術の一つ。
副題
コンパクトシュノアプロトコル
sk = a
PK = aG
アリスは秘密の番号 a を持っています。この番号を「秘密鍵」と考えることができ、それを楕円曲線グループ上の点 a*G (aG と略します) に「マッピング」します。この点を「公開鍵」とみなします。
「写像」という言葉に注目してください ここで「準同型性」の概念を簡単に紹介します。楕円曲線グループ有限体間には準同型写像関係が存在します。有限体を表すために記号 Zq を使用します。素数 q は有限体のサイズを指し、0、1、2、...、q-1 の整数のセットを指します。楕円曲線上では、0G、G、2G、...、(q-1)G としてマークされた基点 G を渡すことによって「循環グループ」を生成できます。これは正確に q 個の曲線点のセットです。任意の 2 つの曲線点は、G + G = 2G、2G + 3G = 5G という「特別な二項演算」を実行するだけで済みます。この二項演算は「加算」に似ており、交換と結合の法則を満たしているようです。したがって、それを表すために + 記号を使用します。このグループが循環グループと呼ばれる理由は、グループの最後の要素 (q-1)G に G を加えたものが、グループの最初の要素 0G に折り返されるためです。
有限体上の任意の整数 r が与えられると、巡回群内の対応する点 rG を見つけるか、スカラー倍算によって r*G を表すことができます。しかし、逆計算は非常に「難しく」、離散対数問題として知られる「暗号問題」です [2]。
つまり、楕円曲線巡回群上の点 R が任意に与えられた場合、有限体のどの整数が R に対応するかを計算することは非常に困難です。有限体が 256 ビットなど十分に大きい場合、計算することができます。この逆算は不可能であると考えてください。

Schnorr プロトコルは、有限体と巡回群の間の一方向マッピングを最大限に活用し、最も単純なゼロ知識証明セキュリティ プロトコルを実現します。アリスは、PK に対応する秘密鍵 sk を持っていることをボブに証明します。
ステップ 1: ゼロ知識を保証するために、アリスは乱数 r を生成する必要があります。この乱数は、ボブによる秘密鍵の抽出から保護するために使用されます。この乱数も楕円曲線グループ rG にマッピングする必要があります。
ステップ 2: ボブは、チャレンジに乱数を提供したいと考えています。これを c と呼びます。
ステップ 3: アリスはチャレンジの数に応じて z = r + a * c を計算し、同時に z をボブに送信し、ボブは次の式でそれを確認します: z*G ?= R + c*PK = rG + c*(aG )
3 番目のステップで z を「準同型」にチェックするボブの計算プロセスを確認できます。この式が成り立つ場合、アリスが秘密鍵 a を持っていることが証明できます。
しかし、なぜ?
z の計算と検証のプロセスは非常に興味深いもので、いくつかの重要なテクニックがあります。
まずボブは「ランダムな」チャレンジ番号を与える必要があり、次にボブは楕円曲線上で z を準同型的にチェックします。チャレンジ番号 c を未知数とみなすと、r+a*c=z は 1 次元方程式とみなすことができます。ここで、r と a は方程式の係数です。 c が不明であるという前提の下で、r + a*x = r' + a'*x が成立する場合、Schwatz-Zippel の定理 [3] によれば、r=r' および a=a となることに注意してください。 』の両方が成立している。つまり、c が未知であるという前提の下では、アリスが z を計算してボブを騙すために別の異なる r'、a' のペアを見つけることはほとんど不可能です。このランダムなチャレンジ番号 c は、r と a の制約を実装します。ボブはランダムに数値を選択しますが、アリスは事前に数値を知らないため、アリスは秘密鍵 a を使用して z を計算する必要があります。ここで重要なのは、c は乱数でなければならないということです。
また、プロトコルの最初のステップで生成される乱数 r により、a の機密性が保証されます。なぜなら、秘密の合計は、「一貫性分布」に準拠する乱数に加算されても、依然として「一貫性分布」に準拠するからです。
副題
知識がゼロであることを証明する
Schnorr プロトコルが、より弱い「ゼロ知識」特性「SHVZK」をどのように証明するかを見てみましょう。
注: ここで証明するのは、Special Honest Verifier Zero-Knowledge (SHVZK) のみです。 SHVZK は、契約におけるボブの行動が不合理であってはならないことを要求しています。たとえば、ボブは契約に従い、第 2 ステップでベルトコンベアに行って新しい乱数を取得し、それをすぐに使用する必要があります。通常の意味では、「知識ゼロ」はボブに何の要件も課さないため、これは弱い特性であると言われます。現在の Schnorr プロトコルは完全な「ゼロ知識」を証明することはできませんが、いくつかのプロトコル手順を追加することで完全なゼロ知識という目標を達成できます。詳細についてはここでは説明しません。興味のある読者は [4] を参照してください。この問題については、後でフィアット・シャミール変換について説明するときに再度説明します。
まず、「シミュレータ」は「理想世界」をシミュレートします。理想世界では、Zlice と Bob の間の会話がシミュレートされます。Zlice は Schnorr プロトコル sk についての知識を持たず、Bob は公開鍵 PK を持っています。下の図を見てください。ボブは、Schnorr プロトコルの 2 番目のステップで乱数 c を生成する必要があります。ここには追加の要件があります。つまり、ボブは外部の「乱数」から「正直に」乱数を取得することしかできません。ベルトコンベア」では、各乱数は事前に k 回「コイン」を投げて生成された 2^k の範囲内の 1 回限りの分散乱数でなければなりません。ボブは他の方法で乱数を生成できないため、ボブには正直であることが求められます。
Zlice がボブを騙す方法は次のとおりです。

プロローグ: Zlice には sk の知識がないことに注意してください。この時点では、Bob の乱数カルーセルにはいくつかの乱数が事前に配置されています。


ステップ 2: Zlice は再び乱数 z を生成し、R'=z*G - c*PK を計算し、R' を Bob に送信します。
ステップ 3: この時点で、Bob は乱数コンベア ベルトから c を取得し、c を Zlice に送信します。この c は、最初のステップで Zlice によって生成された c とまったく同じであることに注意してください。
ステップ 4: Zlice は 3 番目のステップで生成した乱数 z を Bob に送信し、Bob は Schnorr プロトコルの検証式に従って検証を実行し、この式が完全に成立していることを確認できます。
Schnorr プロトコルを「現実世界」で比較することができ、どちらの世界でもボブは検証に合格できます。
しかし、違いは次のとおりです。
「理想世界」ではズリチェには sk がありませんが、「現実世界」ではアリスには sk があります。
「理想世界」では、z は乱数であり sk は関与しませんが、「現実世界」では、z は sk を使用して計算されます。
「理想世界」では、ズライスは超能力を使ってボブの乱数を置き換えますが、「現実世界」では、アリスはボブの乱数ベルトコンベアを見ることができず、ベルトコンベア上の数字を変更することもできません
Q
ここで、次のように考えてください。
(2分後…)
答えはいいえだ。
アリスが事前に乱数を知っていれば、シミュレータの Zlice がやったように、アリス (現実世界) はボブを騙すことができます。
副題
エンカウンターシミュレータ
実は、「信頼性」と「知識ゼロ」という二つの性質は、別の次元でも対称性を持っています。信頼性は悪意のあるアリスが必ず失敗することを保証し、知識がゼロであることは悪意のあるボブが決して成功しないことを保証します。興味深いことに、この対称性はシミュレートされた「理想世界」に反映されます。
信頼性の定義を分析してみましょう。アリスの知識不足により、ボブの検証は失敗します。その逆の命題は次のとおりです。ボブの検証の成功により、アリスは知識を持っている必要があることがわかります。
超能力が発揮できる「理想の世界」でアリスの知識をテストするため、私たちは再びシミュレーターに向かいました。
繰り返しになりますが、並行世界には「理想世界」と呼ばれる世界と「現実世界」と呼ばれる二つの世界があると想像してください。理想世界の興味深い点は、それが「シミュレーター」によってシミュレートされていることです。シミュレーターは、超能力を持つ NPC を理想世界に配置できます。今回はアリスの2人のアバターが「理想世界」と「現実世界」に同時に置かれます。
「あなた」がボブの役割を果たし、話しているアリスが本当に「信頼できる」かどうかを知りたいとします。したがって、あなたを「理想の世界」に置き、超能力を持つ NPC の助けを借りて、反対側のアリスの知識を「抽出」することができます。
何何?プロトコルはゼロ知識であることを証明したばかりではないでしょうか?知識がゼロということは、ボブが「知識」の断片をまったく抽出できないことを意味します。ここで黒板を叩くと、「知識ゼロ」は「現実世界」向けです。私たちが今議論しているのは、魔法のような「理想の世界」です。
繰り返しになりますが、「理想世界」では超能力を持つNPCを使ってアリスの知識を引き出し、「現実世界」のアリスが不正行為をできないようにすることができます。浮気したアリスを想像してみてください。アリスは知識を持っていないはずです。知識がなければ、NPC が「理想の世界」から何かを抽出することは不可能です。
ただし、「現実世界」ではNPCは使えず、当然アリスの知識も見ることができず、「知識ゼロ」の性質に抵触するものではない。 2 つの世界の出来事は「区別できない」ため、「現実世界」ではアリスは知識を持っているはずだと結論付けることができます。
アイデアを整理します。対話型セッションでアリスが不正行為をできないことを証明するにはどうすればよいでしょうか?このインタラクティブ セッションには、「理想的な世界」をシミュレートできる「シミュレーション アルゴリズム」を定義する必要があります。このアルゴリズムには、「エクストラクター」と呼ばれる特別な役割があり、先ほど説明した NPC であり、「スーパー パワー」を渡すことができます。アリスの知識を「抽出」するが、相手には「気づかせない」。超能力は不可欠であることに注意してください。これは「」にありますシリーズ(2) 「シミュレーション」を理解する
』 シミュレータが超能力なしで不正行為を行う能力を持っている場合、それはプロトコルが「信頼できない」(Unsoudness)ことを証明するのと同じであると説明されています。同様に、「抽出者」が超能力なしで情報を抽出する能力を持っている場合、それはプロトコルがゼロ知識ではないことを証明することと同じです (Not-zero-knowledge)。
これは特定の対話システムの証明に依存しますが、先ほど説明した Schnorr プロトコルから始めましょう。
副題
知識の証明:「知識の証明」
Schnorr プロトコルの「信頼性」を証明し、このスーパー NPC が「理想的な世界」でアリスの秘密鍵をどのように抽出するかを見てみましょう。そして、この「スーパーパワー」はまだ「過去に戻った」のです。
ステップ 1: アリスは乱数 r を選択し、R=r*G を計算し、R を「抽出器」に送信します。


ステップ 4: 抽出器は z に問題がないことを検出すると、スーパーパワーを起動し、第 2 ステップの前の時間を逆転させます。
ステップ 5: 抽出者は、別のランダムなチャレンジ番号 c' を再びアリスに送信します。このとき、アリスは 2 番目のステップに戻り、既視感がありますが、時間が戻ったという事実を認識することはできません。
ステップ 6: アリスは z' を再度計算し、それをチェックのために抽出器に送信します。
ステップ 7: エクストラクターは z と z' を持っているので、アリスが所有する秘密鍵 a を直接計算して「知識の抽出」を実現できます。
この時点で、基本的には「信頼性」が証明されたことになります。信頼性と知性ゼロの「対称性」について少し感じませんか?
注: すべての信頼性のために抽出アルゴリズムの存在が必ずしも必要なわけではありません。抽出器を使用して信頼性を証明する証明システムは「Proof of Knowledge」と呼ばれます。
副題
ECDSA シグネチャ攻撃の解釈
ブロックチェーン システムのあらゆる場所で見られる ECDSA 署名スキームも、単純なゼロ知識証明システムです。楕円曲線デジタル署名方式 ECDSA は Schnorr プロトコルに非常に近く、Schnorr プロトコルに基づく署名方式は 1991 年に「Journal of Cryptography」[5] に掲載されました。 1991 年に米国標準協会 (NIST) がデジタル署名アルゴリズムを選択したとき、エレガントな Schnorr 署名スキームが実際に特許を取得したため、NIST は別の署名スキーム DSA (デジタル署名アルゴリズム) を提案し、その後、このスキームは楕円をサポートしました。その後ECDSAと呼ばれます。サトシ・ナカモトがビットコインを考案したとき、署名アルゴリズムとして ECDSA を選択しましたが、その曲線は NIST 標準で推奨されている楕円曲線である secp256-r1 ではなく、secp256-k1 を選択しました。川や湖での噂のせいで、NIST が楕円曲線パラメータの選択を改ざんし、一部の機関が未知の方法を使用して離散対数問題を解決し、その結果、「現実世界」で超大国になる能力を手に入れた可能性があります。おそらくサトシ・ナカモトも当時ビットコインを設計した際にこのことを考慮し、安全性が若干劣ると思われるsecp256-k1のような曲線を意図的に選択したのではないかと多くの人が疑っています。
ECDSA 署名を逆アセンブルし、対話型の方法で ECDSA に似た認証スキームを定義してみましょう。対話については、以下の図を参照してください。
ステップ 1: アリスは依然として乱数 k を選択し、k を楕円曲線にマッピングして点 K を取得し、それをボブに送信します。
ステップ 2: ボブは 2 つの乱数 c と e を生成し、アリスに与える必要があります。
ステップ 3: アリスは s を計算してボブに送信し、ボブは s の計算プロセスが正しいかどうかを検証します。
注: ECDSA 署名スキームに精通している読者のために、ここで簡単に説明します. Bob によって生成された c は、署名されたメッセージのハッシュ値 Hash(m) に対応し、e は変換関数 F(K) によって生成されます。このうち、F(.) は、楕円曲線上の点の x 座標をとり、(mod q) を通すことで得られます[6]。
ECDSA の署名方式にはセキュリティ上の重大なリスクがあると言われており、2 つの署名で同じ乱数を使用すると、署名者の秘密鍵が漏洩してしまいます。実際、Schnorr 署名方式にも同じ問題があります。
Sony PlayStation 3 のエンジニアが ECDSA ライブラリ関数を呼び出したとき、乱数が入力されるべきパラメータの位置に定数を渡しました。暗号化に精通したハッカーが、この重大なバックドアを発見しました。 2011 年 1 月、魔法少年 Geohot が Sony PS3 のマスター秘密キーを公開しました。これは、誰でも簡単にゲーム コンソールの root 権限を取得できることを意味します。その後、ソニーは激怒しました... (続報はオンラインで検索できます)
k = (c - c')/(s - s')a = (k * s - c)/e
アリスが 2 つの対話で同じ K を使用する場合、ボブは 2 つの異なる c と c' を送信して s と s' を取得し、次の式で秘密鍵 a を計算できます。
では、この「セキュリティバックドア」をどのように見るべきでしょうか?皆さん、考えてみてください。このセキュリティ バックドアは、以前に証明した Schnorr プロトコルの信頼性の証明とほぼ同じです。このアルゴリズムは、まさに ECDSA 認証プロトコルの「信頼性」証明における「抽出」アルゴリズムです。ただ、信頼性の証明において、アリスが同じ乱数kを使って二度認証するためには、「抽出者」が「時間逆転」という超能力を使う必要がある。
しかし、ソニーの PS3 システムでは、乱数は未知のエンジニアによって固定値に書き込まれました。これはハッカーに直接「超能力」を与えるのと同等であり、これは「現実世界」でのことです。言い換えれば、ハッカーは「過去に戻る」ことなく「エクストラクター」を実装できるということです。
念のために言っておきますが、これは反復不可能な乱数だけの問題ではありません。代わりに、乱数は暗号的に安全な乱数である必要があります。
1: z1 = r1 + c1*a2: z2 = r2 + c2*a
「線形合同」の原理を使用して擬似乱数発生器によって乱数 r が生成された場合、r の値は変化し続けますが、それでも「知識抽出」を防ぐことはできないと想像してください。線形合同アルゴリズムが r2= d*r1 + e (mod m) であると仮定すると、Schnorr プロトコルの 3 番目のステップに戻ります。
攻撃者がアリスに 2 つの連続した署名を作成するよう依頼した場合、r2 を r1 に代入すると、攻撃に対する 2 つの未知数 (r1、a)、z1、z2、c1、c2、d、e を解くための 2 つの線形方程式が存在します。が知られており、この連立方程式は中学数学の知識だけで解けます。
これは Schnorr プロトコル (または ECDSA プロトコル) の「設計上の欠陥」ではなく、むしろ Schnorr プロトコルのより繊細な設計であり、原理的にプロトコルの信頼性を保証するものであることに注意してください。一目で「簡潔さ」を実現するために、同様の技術が暗号プロトコルで頻繁に使用されます。しかし、プロトコルの内部メカニズム、特に「理想世界」と「現実世界」の区別が明確でない場合、ユーザーはさまざまな派手な「セキュリティの抜け穴」を簡単に導入してしまう可能性があると言わざるを得ません。
安全で信頼性の高いソフトウェアを作成できる責任あるプログラマーとして、何を知っておく必要があるでしょうか?もちろん、セキュリティ プロトコルの設計メカニズムを完全に理解することが最善ですが、ほとんどの場合、これは非現実的です。一般に、私たちはさまざまな暗号化ツールを「ブラック ボックス」として使用しますが、これでは十分ではない可能性があります。
「安全の定義」とは何ですか?
「理想世界」における「超能力」とは一体何なのか?
副題
ブレインホール: 私たちはシミュレートされた世界に住んでいますか?

初めて「シミュレーター」を読んだとき、真っ先に思い出したのは映画「マトリックス」でした。私たちが生きる「現実世界」は、あるシミュレーターによってシミュレートされた「理想の世界」である可能性があり、私たちが見るもの、聞くもの、知覚するものはすべて「シミュレート」されています。 「現実世界」では、私たちはマトリックスの中で生きています。しかし、私たちはこのことに気づいていません。
春秋時代や戦国時代には、荘子も同様の問題を考えていました。
昔、荘周は自分が蝶になる夢を見たが、その蝶はとても鮮やかだった。 Zhizhiへの自己言及と!周瑜は知りません。急に感じたら一週間くらいに感じます。周志夢が胡死なのかどうかは分かりませんが?胡蝶の夢は周瑜?周氏と胡氏にはそれぞれ違いがあるはずだ。これを実体化といいます。
—— 『荘子 物の平等』
わかりやすく説明すると、「荘子はある日眠りに落ち、軽やかに舞う蝶になっている夢を見た。目が覚めると、自分はまだ荘子だった。夢の中で、蝶は自分が荘子であることを知らなかった」とあります。そこで荘子は、夢の中で自分が蝶になったのか、それとも夢の中で蝶が荘子になったのか考えました。その夢が十分に現実的であれば...
「バットの中の脳」とは、アメリカの哲学者ギルバート・ハーマンによって提案されたアイデアです。人間の脳を容器に入れ、ワイヤーで接続し、さまざまな電気信号入力をシミュレートすることで、脳は自分が容器の中で生きていると考えるのです。現実世界、世界で。
この考えは哲学者デカルトの『第一の哲学的瞑想』[7]に由来しており、その中で彼はすべてを疑うべきであり、すべての人間の知識、数学、幾何学、そして認識された世界を一つ一つテストする必要があると主張しています。しかし、彼は、「私は考える、ゆえに私は存在する」以外のすべての知識は信頼できない可能性があることを発見しました。なぜなら、私たちの脳は「超能力」を持つ邪悪な悪魔に騙される可能性があるからです。
2003年、オックスフォード大学の哲学教授ニック・ボストロムは、「我々はコンピュータ・シミュレーションの世界に生きているのか?」という論文を厳かに書きました。 「[8]。次の 3 つの事実のうち少なくとも 1 つが真実であると考えてください。
人類文明は完全に滅亡した。
人類の文明は現実世界を完全にシミュレートできる技術レベルに達しているが、なぜか神の役割を果たす新たなシミュレート世界を創造しようとする者は誰もいない。
現在の人類の文明は、シミュレートされた世界に住んでいます。
シリコンバレーの起業家イーロン・マスク氏は公開インタビューで、「私たちが基本的な現実世界に住んでいる」確率は「10億分の1」にすぎないと語った。つまり、私たちはコンピュータゲーム(模擬世界)の中に住んでおり、模擬世界の外にはこの世界を開発・操作するプログラマーが存在し、私たち一人ひとりがゲームキャラクター(NPC)であると彼は考えています。
iPhone の脱獄と自動操縦に飽きた魔法少年ジオホットは、今年 3 月の「サウス・バイ・サウスウエスト」カンファレンスで「シミュレーションの脱獄」と題した講演を行った [9]。彼は、私たちはシミュレートされた世界に住んでおり、いわゆる神は外の世界で生き生きと働いているプログラマーであると信じています。彼らは私たちの「現実の世界」を作成するようにプログラムされています。もちろん、彼らは複数のコピーを開始した可能性があります。世界。ただし、彼らは外側の「シミュレートされた世界」にも住んでいる可能性があります。
もし私たちがシミュレートされた世界に住んでいるとしたら、地球上のどこかにバックドア「シミュレーション・トラップドア」を見つけて、「シミュレータ」の超能力を手に入れ、信じられないほどの「秘密の知識」を引き出すことができるかもしれません。
私たちの世界が本当にプログラムでシミュレートされているとしたら、そのプログラムにはバグがあるかもしれないし、もしバグがあるなら、そのバグを利用して刑務所から脱出し、「理想の世界」を飛び出して外の世界に到達できるかもしれない。コードファーマーの神について話しましょう。
これは冗談ですか?以下は、Zhihu [10] に関する段落からの抜粋です。
世界が仮想であるなら、どのような例がそれを証明できるでしょうか?
1. 巨視的には豊かで多彩な素粒子があるのに、微視的にはすべてまったく同じであるのはなぜですか?写真も全く同じですが、ピクセルも全く同じものです
2. 光の速度にはなぜ上限があるのですか?機械の動作速度には限界があるため
3. プランク定数はなぜ存在するのですか?マシンデータの精度には限界があるため
4. 微視的な粒子はすべて確率雲であるのはなぜですか?これは、システムがループに陥るのを避けるために追加されるランダムな摂動です。
5. なぜパウリの除外原則があるのですか?システムが採用しているデータ構成は多次元配列であるようです
6. 量子コンピューターはなぜ非常に高速に動作し、すべての可能性を瞬時に試せるのですか?これは基本的にホストのインターフェイスを呼び出すためです。
7. 量子のもつれはなぜ存在するのですか?これは実際には同じオブジェクトを参照する 2 つのポインターです。
9. なぜ時間には始まりがあったのですか?システムには起動時間があります
つづく
つづく
暗号プロトコルの設計は綱渡りのようなもので、「知識ゼロ」と「信頼性」を同時に実現するには、プロトコルの内容を完全にランダムにし、「知識」が参加できるようにする必要があります。プロトコルの相互作用において。プロトコルが適切に設計されていないか、正しく実装されていない場合、システムのセキュリティの崩壊につながります。例えば、ゼロ知識が破壊されて不用意に「知識」が漏洩したり、信頼性が破壊されて誰でも証拠を偽造できるようになる可能性があります。さらに、この種のセキュリティは、従来のコードの基礎となるメカニズムの脆弱性よりもはるかに深刻であり、発見するのがより困難です。厳密に数学的な議論の場合、これは不可欠であると思われます。
If you would be a real seeker after truth, it is necessary that at least once in your life you doubt, as far as possible, all things.
私たちの世界は本当に「三体文明」によってシミュレートされているのでしょうか?この可能性も否定できず、私たちはさまざまなこだわりを真剣に見直す必要があるのかもしれません。でも、だから何?少なくとも私の「思い」は本物です。
あなたが真実の真の探求者であれば、人生で少なくとも一度は、できる限りすべてのことを疑ってください。
