Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

typo

Signed-off-by: Andrew Miller <amiller@dappervision.com>
  • Loading branch information...
commit ca2c56dbd1c85113a373d25033248c6c2111f9a0 1 parent dff8e28
Andrew Miller authored May 03, 2012

Showing 1 changed file with 1 addition and 1 deletion. Show diff stats Hide diff stats

  1. 2  README.md
2  README.md
Source Rendered
@@ -12,7 +12,7 @@ Authenticated Data Structures are typically used in protocols between three part
12 12
 
13 13
 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).
14 14
 
15  
-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.
  15
+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.
16 16
 
17 17
 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.
18 18
 

0 notes on commit ca2c56d

Please sign in to comment.
Something went wrong with that request. Please try again.