{"id":37246,"date":"2019-05-21T07:00:47","date_gmt":"2019-05-21T04:00:47","guid":{"rendered":"https:\/\/forklog.com\/en\/?p=37246"},"modified":"2025-08-29T14:16:36","modified_gmt":"2025-08-29T11:16:36","slug":"what-is-a-zero-knowledge-proof","status":"publish","type":"post","link":"https:\/\/forklog.com\/en\/what-is-a-zero-knowledge-proof\/","title":{"rendered":"What is a zero-knowledge proof?"},"content":{"rendered":"<div id=\"cards_wrapper\">\n<div class=\"single_card\">\n<p id=\"card_counter_1\" class=\"card_counter\"><span class=\"card_counter_span\">1<\/span><\/p>\n<p><strong>What is a zero-knowledge proof?<\/strong><\/p>\n<div class=\"card_description\">A zero-knowledge proof is a cryptographic protocol that allows one party (the prover) to convince another party (the verifier) that a statement is true without revealing any additional information about it\u2014neither the content nor the source from which the prover learned of its truth. The definition was first proposed by MIT researchers Shafi Goldwasser, Silvio Micali and Charles Rackoff in the 1985 paper <a href=\"https:\/\/dl.acm.org\/citation.cfm?id=22178\" target=\"_blank\" rel=\"noopener noreferrer\">The Knowledge Complexity of Interactive Proof Systems<\/a>.<\/div>\n<\/div>\n<div class=\"single_card\">\n<p id=\"card_counter_2\" class=\"card_counter\"><span class=\"card_counter_span\">2<\/span><\/p>\n<p><strong>How does it work? <\/strong><\/p>\n<div class=\"card_description\">\n<p>Imagine you are in a room with a blindfolded person. On the table lie two balls\u2014one white and one black. You must convince the other person (the verifier) that the balls are of different colours without revealing which is which. <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-73401\" src=\"https:\/\/forklog.com\/wp-content\/uploads\/white-black-ball-e1558373311893.png\" alt=\"What is a zero-knowledge proof?\" width=\"820\" height=\"307\">To do so, ask them to hide both balls under the table. Then ask them to show just one so you can see it. Next the ball is hidden again and the verifier may show either the white or the black ball. You can prove the claim because you can tell whether they swapped the balls beneath the table.<\/p>\n<p>Yet the verifier cannot be fully certain, as luck or trickery could still be at play. This is addressed by repeating the experiment n times. With each round the chance of guessing correctly by accident halves: after five repetitions the probability of deception is 1 in 32, after ten rounds\u20141 in 1,024, and after twenty\u2014roughly 1 in 1,000,000.<\/p>\n<p>Through repetition you can reach the desired level of assurance, though absolute certainty remains unattainable.<\/p>\n<\/div>\n<\/div>\n<div class=\"single_card\">\n<p id=\"card_counter_3\" class=\"card_counter\"><span class=\"card_counter_span\">3<\/span><\/p>\n<p><strong>What is a zero-knowledge proof used for?<\/strong><\/p>\n<div class=\"card_description\">\n<p>One obvious application in cryptocurrencies is verifying that a user has enough funds for a transaction without revealing to the network who the user is or how much is in the account.<\/p>\n<p>The protocol can also be used wherever data security is required (for example, for personal information) or for conducting financial transactions.<\/p>\n<p>A zero-knowledge proof can serve as a tool for verifying data and users, granting privileged access and establishing trusted connections.<\/p>\n<\/div>\n<\/div>\n<div class=\"single_card\">\n<p id=\"card_counter_4\" class=\"card_counter\"><span class=\"card_counter_span\">4<\/span><\/p>\n<p><strong>What types of zero-knowledge proofs exist? <\/strong><\/p>\n<div class=\"card_description\">\n<ul>\n<li>interactive (the verifier questions the prover in real time);<\/li>\n<li>non-interactive (no direct communication between verifier and prover is required; the former can verify the claim after the fact).<\/li>\n<\/ul>\n<p>Zero-knowledge proofs can also be divided into two groups depending on whether there is a phase in which several verifiers fix the authenticity of the claim\u2014the so\u2011called trusted setup using a Boolean function.<\/p>\n<p>For some protocols, such as <a href=\"https:\/\/z.cash\/ru\/technology\/zksnarks\/\" target=\"_blank\" rel=\"noopener noreferrer\">zk-SNARKs<\/a> (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge), this is a necessary condition. Verifiers generate a special secret that is destroyed immediately after the trusted setup. If the secret persists, data on the network can be forged, negating the advantages of the protocol.<\/p>\n<p>There are protocols that do not require a trusted setup (for example, <a href=\"https:\/\/medium.com\/coinmonks\/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d\" target=\"_blank\" rel=\"noopener noreferrer\">zk-STARK<\/a> (Zero-Knowledge Scalable Transparent Arguments of Knowledge)).<\/p>\n<\/div>\n<\/div>\n<div class=\"single_card\">\n<p id=\"card_counter_5\" class=\"card_counter\"><span class=\"card_counter_span\">5<\/span><\/p>\n<p><strong>What are the advantages of zero-knowledge proofs?<\/strong><\/p>\n<div class=\"card_description\">\n<ul>\n<li>greater user privacy <a href=\"https:\/\/forklog.com\/en\/news\/what-is-blockchain-2\">in public blockchains<\/a> and other networks;<\/li>\n<li>stronger information security by replacing inefficient methods of authentication and verification;<br \/>\nhigher throughput and better scalability for blockchains.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"single_card\">\n<p id=\"card_counter_6\" class=\"card_counter\"><span class=\"card_counter_span\">6<\/span><\/p>\n<p><strong>What are the drawbacks of zero-knowledge proofs?<\/strong><\/p>\n<div class=\"card_description\">\n<ul>\n<li>significant computational demands;<\/li>\n<li>the possibility of compromise during a trusted setup;<\/li>\n<li>potential vulnerability to quantum computing.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"single_card\">\n<p id=\"card_counter_7\" class=\"card_counter\"><span class=\"card_counter_span\">7<\/span><\/p>\n<p><strong>Which projects use zero-knowledge proofs?<\/strong><\/p>\n<div class=\"card_description\">\n<p>The privacy-focused cryptocurrency ZCash uses a modified zk-SNARKs protocol. The same protocol was partially implemented on the Ethereum network in the Byzantium hard fork. Ethereum developers are considering additional applications of the technology.<\/p>\n<p>The startup QEDIT developed an SDK (Software Development Kit) that implements zero-knowledge proofs on existing blockchains to increase transaction privacy while preserving validation by nodes. The project has already received the <a href=\"https:\/\/ec.europa.eu\/info\/research-and-innovation\/funding\/funding-opportunities\/seal-excellence_en\" target=\"_blank\" rel=\"noopener noreferrer\">European Commission\u2019s Seal of Excellence<\/a>, and its partners include VMWare, Ant Financial and Deloitte.<\/p>\n<p>StarkWare created solutions based on the zk-STARKs protocol that can also be deployed on existing networks. The project has attracted funding from Vitalik Buterin, Pantera Capital, Intel Capital, Sequoia Capital and other investors.<\/p>\n<p>The Dutch bank ING released a modified version of a zero-knowledge proof\u2014<a href=\"https:\/\/www.ingwb.com\/media\/2667860\/zero-knowledge-range-proofs.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Zero-Knowledge Range Proof<\/a> (ZKRP). This protocol can prove that a client\u2019s salary is within the range required for a mortgage without revealing the actual amount.<\/p>\n<p>Subscribe to ForkLog on Telegram: <a href=\"https:\/\/t.me\/forkloglive\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ForkLog Live<\/a> \u2014 the full news feed, and <a href=\"https:\/\/telegram.me\/forklog\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ForkLog<\/a> \u2014 the most important stories and polls.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A zero-knowledge proof is a cryptographic protocol that lets a prover convince a verifier that a statement is true without revealing any additional information about it. The notion was first proposed by MIT researchers Shafi Goldwasser, Silvio Micali and Charles Rackoff in the 1985 paper The Knowledge Complexity of Interactive Proof Systems.<\/p>\n","protected":false},"author":1,"featured_media":37247,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"select":"1","news_style_id":"1","cryptorium_level":"3","_short_excerpt_text":"A zero-knowledge proof lets a prover convince a verifier a statement is true without revealing anything else.","creation_source":"human_written","_metatest_mainpost_news_update":false,"footnotes":""},"categories":[2113],"tags":[2120,2115,1142,1179],"class_list":["post-37246","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cryptorium","tag-101-anonymity","tag-101-technical-foundations","tag-cryptography","tag-layer-2-solutions"],"aioseo_notices":[],"amp_enabled":true,"views":"99","promo_type":"1","layout_type":"1","short_excerpt":"A zero-knowledge proof lets a prover convince a verifier a statement is true without revealing anything else.","is_update":"","_links":{"self":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/37246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/comments?post=37246"}],"version-history":[{"count":1,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/37246\/revisions"}],"predecessor-version":[{"id":37248,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/posts\/37246\/revisions\/37248"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/media\/37247"}],"wp:attachment":[{"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/media?parent=37246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/categories?post=37246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/forklog.com\/en\/wp-json\/wp\/v2\/tags?post=37246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}