![]() |
|
![]() |
| > theres no real incentive for this
Correct. People who need the privacy can set up isolated bank accounts and legal entities. Less cryptography, your accountant will even understand. |
![]() |
| Where you spend can have an impact on a decision… e.g. you may have the income and savings but if you’re regularly spending on gambling that can be a red flag. |
![]() |
| As far as I understand, you can't just use any gcc binary as it exists today. The program needs to be represented as a specific, mathematical expression that is suitable for zero-knowledge proofs. |
![]() |
| Risc Zero runs at about 500hz on high-end desktop hardware. They're working on speed ups though. (Source: their presentation in Brussels in July) |
![]() |
| That was 500 KHz, and the latest versions are at 1MHz, so still 1000 times slower than a 1Ghz machine, but it’s easy to parallelize the workload, so it’s really mostly a cost of computation issue. |
![]() |
| Is anyone actually using this to cache the artifacts of a compiler? Do you have a link? Like a proof of concept compiler that can produce both a binary and a proof that it was compiled correctly. |
![]() |
| Do you have any recommended references on this subject? Seems like this sort of system would be able to obfuscate a lot of metadata that can be used to deanonymize activity. Very interesting. |
![]() |
| ZKPs are used for private balances in Solana. Someone can send you a million PYUSD using confidential transfers and your public balance remains 100 dollars. |
![]() |
| How about verification speed? The article mentions that avoiding trusted setup would result is sliver verification speed. Could it also increase proof size? |
![]() |
| You sound like you are routinely doing zero knowledge proofs. To me it sounds like a very niche thing. What kind of application area needs knowledge proofs on the regular? Finance? |
![]() |
| So with ZK-proofs we may never be 100% sure something is true or not? Is it possible that this may be too computational expensive to have certainty at given (or above) level? |
![]() |
| What do you mean scoped to a particular proof? There are different proof types like there are different hashing algorithms, they can all prove any data just like sha256 and md5 can hash any data.
How do you verify the password meets certain requirements sever side without getting that user data? Client side input can't always be trusted as anyone can modify that regex check. Here's a project doing passport verification for services without needing to send them a photo of your passport: https://github.com/zk-passport/openpassport With something like TLS notary you can prove anything signed by a https certificate, so you can prove there are enough funds in your bank to get a mortgage without revealing how much money you have. |
![]() |
| > you definitely do not need "ZKPs" to do this trivial task.
You haven't provided an alternative way though? If you're looking for more complicated things they can do see: https://news.ycombinator.com/item?id=41430157 > Yeah you can, you log them in then link them to that userData with an identifier - typically an email address or unique user ID. You can easily write the login API to know nothing but hashes, or you can write it to respond with - to use your example that user's age - if the password is correct (without ever actually knowing the password). This doesn't make sense, how do you verify someones age without getting their birthday? Hashes are binary yes/no checks, not range checks. > Anybody can verify any document with enough identifying information about the document and a registry to match it up to. So your alternate solution is that every government in the world runs an API you can check a passport against? Instead of them just providing a known public key they signed the passport with? Sounds way over complicated compared to a ZK proof. |
![]() |
| The previous article[1] goes a bit into the difference from a simple has function.
It was very long-winded, so I haven't fully read it yet. The key difference seems to be that a simple has function has a single argument. To verify the output you need the input value. While a ZKP function has two arguments, and one of them is not needed to verify the output. Not sure if it makes much sense in a direct login scheme, but the alternative scenarios sound more interesting. For example, proving to an adult website you're over 18 without revealing your identity to that website. [1]: https://zkintro.com/articles/friendly-introduction-to-zero-k... |
![]() |
| They are useful from a mathematical point of view. (And explore the relationship between P and NP, for example.) Not sure if that counts as a 'real use' to you. See also https://en.wikipedia.org/wiki/PCP_theorem
At the moment, producing a zero knowledge proof has roughly a million-fold overhead compared to running a program directly. So there aren't many applications where that's acceptable. So I am very grateful that the blockchain people are more than happy to throw money at the math here. Very generous of them. In principle, you can use ZKP for privacy preserving compliance work in real (ie traditional) finance. To quote myself (https://news.ycombinator.com/item?id=41422250): > Eg Goldman Sachs could encode all their compliance rules in a program, and publish a proof that their books pass the check by that program, without revealing anything about their accounting. > In a banking context, you could in theory also run your know-your-customer (KYC) rules against customer provided data, store the proof, and delete the original data. That way, you still have proof that your customers don't have ties to North Korea or Russia, but you can't be compelled by anyone to reveal the data later (nor accidentally leak that data, etc). > Of course, for that latter application, you need a sharp lawyer to make sure that storing the proof instead of the original data is enough for your KYC obligations. > If you want to go further, you could have your customers run the KYC rules locally, so that their data never leaves their premises. > (For all these applications, you still have to have a mechanism that connects the real world to the inputs of the programs whose execution you are proving. > So eg Goldman Sachs would still need an auditor that checks that the assets and obligations they have in their balance sheet actually exist, but the auditor does not otherwise need to make judgement calls or apply any rules.) |
![]() |
| I've created a simple demo program to illustrate the concept of a human passport, inspired by World ID. It uses a zero-knowledge virtual machine (zkVM) to verify certain properties of a password without actually seeing the password itself.
Here's how it works: Let's say we want to check if a password contains specific characters, like a number or a special symbol. The program takes the password as input, but instead of examining it directly, it runs a computation inside the zkVM. This computation checks for the required properties and produces a result.
The cool part is that you, as a verifier, can trust this result without ever seeing the original password. You're certain that the secret data indeed has the specific characters you're looking for, but the actual content remains private.
This demonstrates a key principle of zero-knowledge proofs – proving something about data without revealing the data itself. It's a small-scale example of how systems like World ID can verify human uniqueness without exposing personal information.
The code is available on my GitHub(https://github.com/KindKang/alllivesmatter.world/tree/main/p...) if you're interested in seeing how it's implemented. It's a great starting point for understanding how zero-knowledge proofs can be applied to real-world identity and verification challenges.
I also recommand to watch the 12-years-old video by Professor Avi Wigderson: https://www.youtube.com/watch?v=Eu_j5_tains |
![]() |
| Because you can enforce password policies without the password ever leaving the (untrusted) client in clear text. I.e. the server only sees the hash and still knows it's dealing with a strong PW. |
![]() |
| The holder of the credential would have to present it log(N) times. If someone asks to scan your id a bunch of times, wouldn't you find it suspicious? |
![]() |
| Neat, thanks! IIUC some credential standards like ISO 18013-5 (mDL) hack around this by allowing you to expose `is_over_X` claims for age gating
What did you implement VCs and ZK for? |
![]() |
| Doesn't this open up the way for proof of proofs as well? Maybe math is just the science that describes magic. It is indistinguishable from magic because it is magic. |
As someone with zero knowledge regarding Zero Knowledge Proofs in a programming context, can someone give me a basic explanation regarding the utility? I do understand the basic principle of ZKP’s, but as yet I’m failing to understand how this would be applied in industry.