Question
Bitcoin and Cryptocurrency Technologies Exercise 1 from book: Bitcoin and Cryptocurrency Technologies (page 49): https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf Authenticated Data Structures. You are designing SecureBox, an authenticated online
Bitcoin and Cryptocurrency Technologies
Exercise 1 from book: Bitcoin and Cryptocurrency Technologies (page 49):
https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf
Authenticated Data Structures. You are designing SecureBox, an authenticated online file storage system. For simplicity, there is only a single folder. Users must be able to add, edit, delete, and retrieve files, and to list the folder contents. When a user retrieves a file, SecureBox must provide a proof that the file hasnt been tampered with since its last update. If a file with the given name doesnt exist, the server must report that again with a proof.
We want to minimize the size of these proofs, the time complexity of verifying them, and the size of the digest that the user must store between operations. (Naturally, to be able to verify proofs, users must at all times store some nonzero amount of state derived from the folder contents. Other than this digest the user has no memory of the contents of the files she added.)
Heres a naive approach. The users digest is a hash of the entire folder contents, and proofs are copies of the entire folder contents. This results in a small digest but large proofs and long verification times. Besides, before executing add/delete/edit operations, the user must retrieve the entire folder so that she can recompute the digest.
Alternatively, the digest could consist of a separate hash for each file, and each file would be its own proof. The downside of this approach is that it requires digest space that is linear in the number of files in the system.
Can you devise a protocol where proof size, verification time, and digest size are all sublinear? You might need a subprotocol that involves some amount of twoway communication for the user to be able to update her digest when she executes and add, delete, or edit.
Hint: use the Merkle tree idea from Section 1.2.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started