ホーム
用語集
ゼロ知識証明

ゼロ知識証明

上級者

zkプロトコルとも呼ばれるゼロ知識証明は、証明者と検証者の間で行われる検証方法です。ゼロ知識証明システムでは、証明者は検証者に対し、情報そのものを明かすことなく、特定の情報(数学の方程式の解など)の詳細知識を持っていることを証明できます。これらの証明システムは、現代の暗号技術者がプライバシーとセキュリティのレベルを向上させるために利用されます。

ゼロ知識証明の概念は、1985年にShafi GoldwasserとSilvio Micaliが発表したMITの論文で明らかにされました。彼らは、数やその数についての一切の付加的情報を開示することなく、その数が持つ性質を証明することが可能であることを示しました。この論文では、証明者と認証者の間のやり取りにより、与えられた定理を証明するのに必要な情報量を削減できるとの数学的重要性を持つ発見も紹介されました。

zk証明では、完全性と健全性に関する2つの基本的要件を満たす必要があります。完全性とは、高い確率で正確な関連情報の知識を証明する証明者の能力を指します。証明が正当であるためには、証明者が実際に情報を所有していることを検証者側が確実に判断できなければなりません。最後に、真に「ゼロ知識」であるためには、証明において問題の情報が証明者と検証者の間で伝達されることなく、完全性と健全性の両方を満たす必要があります。

ゼロ知識証明は、主にプライバシーとセキュリティが重要となるアプリケーションに使用されます。例えば、認証システムではゼロ知識証明を使用し、証明書や身元を直接明かすことなく認証できます。簡単な例としては、コンピューターシステムのパスワードを公開することなく、その人がパスワードを持っていることを認証する場合の利用が挙げられます。

実世界でのゼロ知識証明の顕著なユースケースの1つは、暗号資産とブロックチェーン技術の分野で見られます。Zcashなどのプライバシー重視の暗号資産は、Zero-Knowledge Succinct Non-Interactive Argument of Knowledge(zk-SNARK)として知られるゼロ知識証明の一種を使用して、プライバシーレベルを高めたブロックチェーントランザクションを提供しています。Ethereumも2017年のByzantiumアップデート以来、zk-SNARK証明に取り組んでいます。