Video wird geladen...
Video konnte nicht geladen werden
Self Disclosure Privacy using ZK Proofs, Demonstrated & Executed Directly on Cardano Preview I built a demo where a customer buys a beer and proves they are 18 or over, without ever showing their ID. No name. No birth year. No photo. Just maths. Two beers were ordered. Two... show more
21,534 Aufrufe • vor 6 Monaten •via X (Twitter)
72 Kommentare

Still learning about zk proofs, but excited to be sharing many more demo's and scenario's on Cardano when I get time :)

Nice experiment! Could you please help me to define the roles on your model? User orders two beers …that’s easy. I like to know who is the trust registry, issuer and verifier.

Issuer is the authority that verified the customer's birth year and issued a cryptographic credential (e.g. a government ID office). Holder is the customer. They generate the ZK proof locally on their device, their birth year never leaves their phone. Verifier is the Plutus V3 smart contract I deployed on Cardano. It checks the Groth16 proof on-chain and only learns "age ≥ 18: yes/no", nothing else. Trust Registry is the verification key embedded in the validator. It defines which issuer's credentials are

Thanks, Dave! What I was missing was the issuer component, and now that point is clear. Over the last few years, I’ve come across many rather wild concepts around “issuers.” But in practice, without an issuer at government level, there is very little we can do. In the EU, we also have to comply with eIDAS, which brings a broader framework and many additional requirements. That said, the tool you created is very nice. You may also want to look at It also uses ZKPs and is built modularly, which makes it possible to tailor the entire solution to the relevant use case.

Bro says dont judge my aiken as he changes the game 😂😂

I am joking here, but it would be funny if #cardano became the dominant chain used for bar hopping, porn web sites, and strip clubs. Maybe this is our niche.

Haha it's true though, restrictions by age

👀

Wait, so can we use this as KYC in DeFi? As long as we have a reliable handling CEX KYC now acting as Issuer we can do this easily on Cardano?

@DanogoFinance If there is an external party willing to validate the age then from what I understand yes. Of course this is a super basic example and is by no means a production ready implementation.

@DjediMindTrick Hei Dave! Very nice! In layman terms does that mean that onve there has been a valid age verification “by a trusted third party “ then that wallet is verified for ever, and all it needs to show is “yup I am old enough, here is the taransaction that says I am old enough” (?)

@DjediMindTrick Yeah exactly this :)

@CardanoMitch Thanks for this Dave this is exactly what I've been trying to explain to people about ZK proofs

@CardanoMitch No worries was cool to do!

@DenicioBernier Does it still work after 5 beers?

@DenicioBernier Works better the more beers you have :)

@DenicioBernier Alcohol induced zero knowledge

Nice one Dave 👏

Awesome work🖤🦇

This is brilliant Dave. Exactly what Cardano was made for. Well done!

Cheers Frank, I thought it was a good real-world use-case

Agreed. Asking for too much information in RWA is bugbear of mine. It's harvesting for profit. If asked for phone number, name or email when I'm buying something I either refuse or go elsewhere. I give money, they supply goods. Simple. The customer should be in control.

Very many transactions in Thailand, no matter what it is, bank, hotel, hospital they ask to see a passport. I have never understood why. They have enough information to verify me without this intrusion.

Electronic payment in some shops they ask to take a photo of the transaction from my phone! I mean. Wtaf. Then they give a paper receipt!

wow haha, well now it's on the blockchain :)

Another rwa use case. Instead of scanning each item individually at checkouts we should be able to push a full trolley through a scanner that would identify its contents and give the option of instant pay or verify click to pay.

This would also allow instant stock check on items, reordering levels, profit margin, sales figures in real time, trends, footfall figures, the possibilities are endless without imposing on your customer. In fact making customer experience quicker, simpler and possibly cheaper

Love this Dave. The verification side is exactly right — the chain only needs to know "yes" or "no." The harder problem is issuance how does the credential get created in the first place without a centralised authority holding your ID? That's what we're solving in Lovelace with Identus DID + Halo2 on-device. The proof never leaves the phone. Not even to our servers. Same end result as your beer demo, but the ID check happens once, privately, and then never again - anywhere.

Sounds interesting!

I'll open source it asap. Intended to be anyway.

My man

Very fun

Love this. Well done 👍

@morganschofield Weird. This turned me on.

Yes but how do they prove they are the person connected to the digital ID - I dont understand how this can work unless there is some kind of biotmetric connection to a former verification process ?

As mentioned this is a very basic example as a starting point to show its possible to validate on Cardano using smart contracts :) facial scanning, biometrics etc can be added to compliment this

I think it is a great example and highlights the many use cases in digital identify and supply chain management etc which is where Cardano should be focussing - but one of the biggest hurdles with real world cases is that you ultimately have to have a third party trusted entity to enter the system

Completely agree. I think this is why a lot of the privacy aspects is better suited on an institutional level. I've got some ideas on some things to try out though.

乾杯しよう🍻

👏👏👏💪🚀

👏

Peroni - kid has good taste! Is it public on GH?

love a Peroni, it's all on my laptop at the mo, but I have a few more demo's planned, i'd like to attempt self disclosure of an ADA balance that exceeds a threshold possibly, and keep pushing until they get trickier, I have it formed as part of a toolkit currently

WAGMI energy right here. Building through the chaos Lemme send a Peroni your way, you deserve it for keeping it real and transparent. Drop me an address ser, just a small thank you for the grind 🍻

We are :) appreciate it, means a lot, no need! 🍻

a'right ser, cheers from the trenches 🍻

It would be nice if you can make wallets private with selective disclosure.

This is great. Really great. On the bar side, would they have an app with a qr code reader or how would that work?

👀👀👀

Next you should vibe code a node and show the community if it is possible or not. Take up @Quantumplation challenge

@Quantumplation I was actually debating attempting this, mainly for the learning opportunity, but the whole vibe code the entire thing puts me off :)

@Quantumplation But if you can prove it’s possible imagine the effect it could have on future dev spending. Could be a huge plus for Cardano and if you prove it is not possible it would also help settle some of the drama. Win win.

@Quantumplation I'm already fairly sure its possible, but not to the level I would deem quality, and then getting it from that position into quality it's probably more time-consuming than coding it with the context in mind, is my opinion. :)

@BELTRAANC I'm fairly sure the quality bar I outlined in my challenge is *not* possible right now😅

@BELTRAANC In particular, we as an ecosystem don't have the tools to determine when such an implementation is "done"; We don't have a definition of what it means to *be* a compliant node. Without that an AI will *really* struggle to finish the task, even when guided by a Cardano expert.

@BELTRAANC Yeah exactly this

@Quantumplation One day I guess 🤷🏻♂️. Shouldn’t the end goal be to make it possible though so it is easier for everyone to participate and secure the chain?

That's amazing, great work! 🙌

Nice! Are you saying midnight for zkp is overkilling? Real question, not sarcastic.

Lots of use cases can be solved on Cardano :)

We’ve come a long way since @IAM_X_IDENTITY inception.

I think it is only possible without revealing the photo when you authenticate with your face.

Yeah, and that is possible too :)

Absolutely but if not set correctly on the phone there must an option to reveal the photo as well. It will grow in very complex way very soon. This is what I like about programable selective disclosure. It will create so many opportunities and remove so much friction. TY sir

Yeahh for sure, so many opportunities, lots of basic use-cases this can cover, i'm going to attempt much harder ones too I think, but with a focus of execution & interaction directly on Cardano

Thank you for all that time you keep building and keep exploring. Much appreciated

Does this work for Guinness?

But age verified could mean different things for different verifications right? I.e social media bans/restrictions are implemented for under 16/17, whilst driving may be 18 and drinking 21 depending on the country. Doesn't something like this need to be Linked to a DID?

assuming the age verification would be works once for the app, but different apps doing this would need to do the verification

where do you store the proof of who you are ? and how the protocol know that you are the person you need to prove you are ?

You can store it wherever you like, the protocol doesn't need to ever know who you are, this is just a basic example you can extend this with all kinds of things, facial recognition, etc

isn't better use halo2?
