Content
@
0 reply
0 recast
0 reaction
Lyron Co Ting Keh
@lyronctk
Partially homomorphic encryption is ridiculously under-utilized. It opens up a massive swath of use cases via strong concurrency and minimal data leakage. And you can get it with just 256 lines of circom. ...
1 reply
0 recast
1 reaction
Lyron Co Ting Keh
@lyronctk
The simplest way to tap into this is via Pedersen Commitments. Calling the Pedersen func PD() here. They're hiding + additively homomorphic. Means that the following two properties hold. [1] Hard to recover 5 given PD(5) [2] PD(2) + PD(5) = PD(7)
1 reply
0 recast
0 reaction
Lyron Co Ting Keh
@lyronctk
Why is this useful? Easy to way demonstrate is with the encrypted balances example. Suppose [Alice, Bob, Charlie] all have wallets with $30 in USDC as encrypted balances. Observers CAN see 1) who has USDC and 2) who transfers USDC to who. Observers CANNOT see how much.
1 reply
0 recast
0 reaction
Lyron Co Ting Keh
@lyronctk
Let's say both Alice and Bob want to pay Charlie $5. Fairly doable to see how we can do this with a quick ZKP. Alice / Bob can submit a ZKP that asserts "my new balance is $25 and Charlie's is $35". This works, but has two problems.
1 reply
0 recast
0 reaction
Lyron Co Ting Keh
@lyronctk
[1] Weak concurrency. What if both payments are submitted in the same block? Suppose Alice's tx is ordered first. Then, Bob's would fail because Charlie's balance should now go from $35 to $40, not $30 to $35. Two concurrent txs can't modify the same value using just ZK.
1 reply
0 recast
0 reaction