Modes of Operation
Proofs & whitelisting.
Last updated
Proofs & whitelisting.
Last updated
HollowDB has two modus operandi: proofs and whitelisting; both can be enabled together, or separately.
Proofs
-
Zero-Knowledge Proof
Zero-Knowledge Proof
-
Whitelisting
PUT whitelist
UPDATE whitelist
UPDATE whitelist
-
Using zero-knowledge proofs gives full control to the users on updating the value at their key. When proofs are enabled:
Anyone can read and put.
To update or remove a value at some key, user must provide a zero-knowledge proof (ZKP) of preimage knowledge of that key.
HollowDB makes use of a circuit that we call "HollowDB Authentication" circuit, to which you can find more information at:
You can enable or disable proof checking with the following Admin command:
If you are deploying your own contract, you must also provide the verification key that the proof verifier will use. You can find HollowDB's keys . You can either provide the key in the initial state, or use the Admin to update the verification key at a later time:
Whitelisting is an alternative authorization mechanism that can be used within HollowDB. It can provide a fine-grained control over who can put, update, or remove a value to the database. When whitelisting is enabled:
Anyone can read.
To put, the user must have been put-whitelisted by the contract owner.
To update or remove, the user must have been update-whitelisted by the contract owner.
There is a separate whitelist for put and update/remove. You can enable/disable them with the Admin:
You can add & remove users from the whitelist using the Admin: