"use strict";(self.webpackChunkvac_dev=self.webpackChunkvac_dev||[]).push([[7969],{98190:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(87462),i=(r(67294),r(3905));const a={layout:"post",name:"Building Privacy-Protecting Infrastructure",title:"Building Privacy-Protecting Infrastructure",date:new Date("2022-11-04T12:00:00.000Z"),authors:"oskarth",published:!0,slug:"building-privacy-protecting-infrastructure",categories:"research",image:"/img/building_private_infra_intro.png",discuss:"https://forum.vac.dev/t/discussion-building-privacy-protecting-infrastructure/161"},o=void 0,c={permalink:"/rlog/building-privacy-protecting-infrastructure",source:"@site/rlog/2022-11-04-building-privacy-protecting-infrastructure.mdx",title:"Building Privacy-Protecting Infrastructure",description:"What is privacy-protecting infrastructure? Why do we need it and how we can build it? We'll look at Waku, the communication layer for Web3. We'll see how it uses ZKPs to incentivize and protect the Waku network. We'll also look at Zerokit, a library that makes it easier to use ZKPs in different environments. After reading this, I hope you'll better understand the importance of privacy-protecting infrastructure and how we can build it.",date:"2022-11-04T12:00:00.000Z",formattedDate:"November 4, 2022",tags:[],readingTime:18.595,hasTruncateMarker:!0,authors:[{name:"Oskar",twitter:"oskarth",github:"oskarth",key:"oskarth"}],frontMatter:{layout:"post",name:"Building Privacy-Protecting Infrastructure",title:"Building Privacy-Protecting Infrastructure",date:"2022-11-04T12:00:00.000Z",authors:"oskarth",published:!0,slug:"building-privacy-protecting-infrastructure",categories:"research",image:"/img/building_private_infra_intro.png",discuss:"https://forum.vac.dev/t/discussion-building-privacy-protecting-infrastructure/161"},prevItem:{title:"Waku for All Decentralized Applications and Infrastructures",permalink:"/rlog/waku-for-all"},nextItem:{title:"Waku Privacy and Anonymity Analysis Part I: Definitions and Waku Relay",permalink:"/rlog/wakuv2-relay-anon"}},u={authorsImageUrls:[void 0]},l=[],s={toc:l};function p(e){let{components:t,...r}=e;return(0,i.kt)("wrapper",(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"What is privacy-protecting infrastructure? Why do we need it and how we can build it? We'll look at Waku, the communication layer for Web3. We'll see how it uses ZKPs to incentivize and protect the Waku network. We'll also look at Zerokit, a library that makes it easier to use ZKPs in different environments. After reading this, I hope you'll better understand the importance of privacy-protecting infrastructure and how we can build it."))}p.isMDXComponent=!0},3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),f=l(r),d=i,y=f["".concat(u,".").concat(d)]||f[d]||p[d]||a;return r?n.createElement(y,o(o({ref:t},s),{},{components:r})):n.createElement(y,o({ref:t},s))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:i,o[1]=c;for(var l=2;l<a;l++)o[l]=r[l];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"}}]);