2026年8月17日(月)掲載 3,632本日 23
HN276

ゼロ知識証明とは?エンジニア向けに爆速で解説!

A quick look at zero-knowledge proofs

evakhoury2日前

議論

4
0evakhouryスレ主272日前

「ゼロ知識証明(Zero-Knowledge Proofs:ZKP)」について、その核となる考え方をサクッと解説します。一言で言えば、相手に特定の情報を教えることなく、「自分はその情報を知っている」という事実だけを証明する技術です。プライバシー保護やブロックチェーンのスケーラビリティ向上において、今もっとも熱い注目を集めている暗号技術の一つです。

1_alphageek約2時間前

素晴らしい記事だね。ZKPを他人に説明する時に役立てるよ。一点だけ小さな修正。random.randrange(100)だとコミットメントは300通り(100個のnonceに対して3色)になる。公開されたエッジをいくつか見れば、検証者はパレットを特定して300通りの組み合わせをブルートフォースできるから、実質的にすべてのコミットメントが暴かれちゃうよ。これは128ビットのランダム値、例えば secrets.token_bytes(16) を使えば緩和できるはず。あと、hash関数の代わりにsha256を使った方がいいね。Pythonのhashは衝突耐性が十分じゃないから、セキュリティ用途には向いていないよ。

2goldthreads約2時間前

ZKPなんて100%デタラメだよ。ハッシュとデータベースの存在を知らない連中が考え出した新しいバズワードに過ぎないね。

3diamondclouds約2時間前

ZKPがサーバーからクライアントへの信頼に依存しているっていう点について、誰も触れていないのが気になるな。ZKPがほとんどのセキュリティ用途で実用的じゃない唯一の理由は、クライアントが送信してくるデータそのものが「真実である」と信頼しなきゃいけないからだよ。従来のセキュリティなら、ユーザーが入力値を送ってサーバーが検証する形だけどね。ZKPの議論でほとんど語られないけど、結局ZKPって権威あるサーバーが存在しないP2P環境か、あるいはそのサーバーが「ノード(クライアント)」を信頼しているようなケースでしか機能しないものだよ。