PoC LockZKP - #29
Conversation
Signed-off-by: Rohan Jacinto <rohanjacin@gmail.com>
Hey -- cool idea. I'm not sure I fully understand; what exactly does the smart lock do in this setting? Why don't you just allow the owner to add certain ENS addresses or Eth addresses to an allowlist, then emit a merkle tree of that to the users (or let the user do PIR on the tree for the Merkle path), then let the user's phone make a zk proof that they are in the Merkle tree, then use that to unlock the door? In general, these kinds of physical solutions are very hard because the actual mechanism of actuating the lock is fundamentally driven by a certain power output for a certain time, and someone could just go into the mechanism or lock and deliver that power (so to match the security of a physical lock, the casing of any power delivery inputs to the lock must be as secure as the lock itself). |
This is a PoC for a protocol to authenticate a smart lock on the blockchain using Zero knowledge proofs.
The following assumptions are made
I developed the code for the frontend, backend and smart contract. Although the frontend is pretty rudimentary and is incomplete as a product, as this is only a PoC. It can be worked on in the future. The backend runs locally on the owner's laptop, this is very the security handshake and owner proof generation happens; in production it needs to be better designed for scalability in case the owner has multiple listings.
For the guest proof generation ive used semaphore- protocol for group membership, also the assumption here is that the member secret is shared by the owner to the guest via off-channel mechanism like Telegram/Email etc.