Permalink
Browse files

typo

Signed-off-by: Andrew Miller <amiller@dappervision.com>
  • Loading branch information...
1 parent dff8e28 commit ca2c56dbd1c85113a373d25033248c6c2111f9a0 @amiller committed May 3, 2012
Showing with 1 addition and 1 deletion.
  1. +1 −1 README.md
View
2 README.md
@@ -12,7 +12,7 @@ Authenticated Data Structures are typically used in protocols between three part
In this implementation, the data structure requires O(N) storage and each operation takes O(log N) time. These operations also each produce an O(log N) Verification Object (a path through a Merkle tree) that can be used by a Client to verify the operation with O(log N) worst-case effort. The Client is only required to maintain O(1) state (specifically, the Merkle tree root hash).
-This datastructure can be used to make a proof-of-availability, by which the Server proves that it can respond to at least some number of accesses per second. A cloud-storage provider could use this to make claims about the redundancy of its storage layout, as described in [1]: the Client selects a random string <code>p</code> and issues it to the Server as a challenge. The Server responds by finding a solution <code>q</code> such that when <code>p||q</code> is used as the seed to a PRF and a random walk is taken through <code>k</code> elements in the set (adding to a Hash-based accumulator along the way), the final accumulator value falls below a difficulty threshold. This is similar to the proof-of-work scheme in Bitcoin [2], In fact, the motivation for this data structure is to replace the current proof-of-work scheme in Bitcoin with an alternate one based on proof-of-availability to the 'unspent coins' database.
+This datastructure can be used to make a proof-of-availability, by which the Server proves that it can respond to at least some number of accesses per second. A cloud-storage provider could use this to make claims about the redundancy of its storage layout, using an approach similar to [1]. The Client selects a random string <code>p</code> and issues it to the Server as a challenge. The Server responds by finding a solution <code>q</code> such that when <code>p||q</code> is used as the seed to a PRF and a random walk is taken through <code>k</code> elements from the set (adding to a Hash-based accumulator along the way), the final accumulator value falls below a difficulty threshold. This is similar to the proof-of-work scheme in Bitcoin [2], In fact, the motivation for this data structure is to replace the current proof-of-work scheme in Bitcoin with an alternate one based on proof-of-availability to the 'unspent coins' database.
This implementation consists of a) an array, and b) a Red-Black binary search tree [3] containing Merkle hashes [4]. There is a one-to-one mapping between elements in the array and leaves in the tree [5], so that uniform selection of random elements can be performed in O(log N) time by selecting an array index from <code>0..N-1</code> and searching for the corresponding value in the tree.

0 comments on commit ca2c56d

Please sign in to comment.