ideas-for-projects-people-would-use
ideas-for-projects-people-would-use copied to clipboard
PoC LockZKP
This is a PoC for a protocol to authenticate a smart lock on the blockchain using Zero knowledge proofs.
The following assumptions are made
- The lock is simulated as a nodejs process running javascript, but in the real world the code can be converted to native C or C++ to run on an SoC like [nrf5340] (https://www.nordicsemi.com/Products/nRF5340) with h/w cryptocell to execute the equivalent of the npm crypo libs (basically ECC point addition and regular stuff like hashing, Key derivation etc).
- The guest needs to be in vicinity of the lock for the authentication process to take place once. But most likely in all use-cases like AirBnB check-in etc that's how it happens (PIN is provided on the day of check-in if not 1 day prior).
- The lock is not connected to the internet/blockchain, this is advantageous in remote areas and reduces cost.
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.