サッとぶ

日々の徒然。自分用メモなど。

ChatGPTにゼロ知識証明について聞いてみた

この動画を見てもよくわからなかったのでChatGPTに聞いてみた。

 

youtu.be

 

Q.

コンピューターサイエンスについて調べています。ゼロ知識証明について説明して下さい。

A.

コンピューターサイエンスは、コンピューターシステムやそのアルゴリズムを理解するための科学的な分野です。ゼロ知識証明とは、特定の事実を証明するために、証明者がその事実を提示するだけで、その事実の内容を隠すことができる証明方法のことを指します。このような証明方法は、セキュリティー上の利点があります。例えば、秘密情報を扱うシステムでは、その秘密情報を安全に扱うために、ゼロ知識証明が使われることがあります。

Q.

ゼロ知識証明の簡単なコードをpythonで示して下さい。

A.

実際のコードは複雑になりますが、以下に簡単な例を示します。

# Aは証明者、Bは鍵を知っている人

# Aが事実を証明する
def prove_fact(fact):
  # 事実を暗号化する
  encrypted_fact = encrypt(fact)
  # Bに暗号化された事実を送信する
  send_to_B(encrypted_fact)

# Bが証明を確認する
def verify_proof():
  # 暗号化された事実を受け取る
  encrypted_fact = receive_from_A()
  # 鍵を使って暗号を解除する
  fact = decrypt(encrypted_fact)
  # 事実が正しいかどうかを確認する
  return check_fact(fact)

この例では、Aが事実を暗号化してBに送信し、Bが鍵を使って暗号を解除して事実を確認するという流れになっています。このように、ゼロ知識証明では、証明者が事実の内容を隠しつつ、その事実を証明することができます。

Q.

prove_fact()メソッドとverify_proof()メソッドを使用する例を示して下さい。

A.

以下に、prove_fact()メソッドとverify_proof()メソッドを使用する例を示します。

# Aが事実を証明する
prove_fact("私はAです")

# Bが証明を確認する
result = verify_proof()

# 証明の結果を表示する
if result:
  print("証明された事実は正しいです")
else:
  print("証明された事実は正しくありません")

この例では、Aが「私はAです」という事実を証明し、Bがその証明を確認します。証明が正しければ、「証明された事実は正しいです」と表示されますが、証明が間違っている場合は「証明された事実は正しくありません」と表示されます。


----------

最初コードが吐き出された時は「うおー!さすがChatGPTだぜ!」と思ったが、コードをよく見ると、なんだか色々と足りなそう。追加で質問してみるも。。。

Q.

prove_fact()メソッドとverify_proof()メソッドに必要なライブラリをimportして下さい。

A.

Error in body stream


----------

こんな風になる。途中まではコードを出してくれてるのだが、突然消えて上記の文言が表示される。

最近ChatGPTにコードを出してもらうと、こんな状態が頻発する。

そして、ここから更に質問すると。。。

Q.

send_to_B()メソッドの実装部分を示して下さい。

A.

Too many requests, please slow down

 

こんな感じで、質問を受け付けなくなる。

一旦ログアウトして再ログインすれば少し動作するも、すぐに同じ状態になる。

3~4日ぐらい前からこんな感じなんだけど、俺だけ?

使い過ぎなんだろうか?

あと回答文が出るスピードも遅くなってる気がする。以前は読むスピードより速くスラスラーっと流れるように表示されていたが、最近は読むスピードよりも遅く表示されるので、待ちが発生するようになった気がする。

ユーザー数が増えたせい?それともOpenAIが1チャット当たりの負担を軽減する為に出力スピードを低下させてる?

 

画像はイメージ