Skip to content

Commit 611a3a2

Browse files
authored
Update README.md
1 parent 09ca408 commit 611a3a2

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
This repository contains an implementation of an algorithm called `FTS-TREE` which can be used to sample block leaders from a set of stakeholders stored in a Merkle tree. The algorithm builds upon an idea called follow-the-satoshi introduced in [1].
22

3-
The idea is simple: The edges the Merkle tree are labelled with the amount of coins in the left and right subtree respectively. Given a psuedo-random number generator, one can randomly select a stakeholder from the tree, weighted by the amount of coins they own, by traversing the tree down to a leaf node, containing one of the stakeholders. Each stakeholder controls a number of coins, and a private key used to sign blocks.
3+
The idea is simple: The edges the Merkle tree are labelled with the amount of coins in the left and right subtree respectively. Given a psuedo-random number generator, one can randomly select a stakeholder from the tree, weighted by the amount of coins they own, by traversing the tree down to a leaf node, containing one of the stakeholders. Each stakeholder controls a number of coins and a private key used to sign blocks.
44

55
![An example of a stake tree with eight stakeholders.](http://i67.tinypic.com/2ish75t.jpg)
66

@@ -10,7 +10,7 @@ The siblings to the nodes traversed by `FTS-TREE` constitutes a Merkle proof whi
1010

1111
This makes it possible to prune away old transactions and still be able to verify old blocks, enabling a lightweight blockchain scheme based on proof of stake.
1212

13-
It is fairly easy to prove that `FTS-TREE` is fair. More precisely; given a Merkle tree with <a href="https://www.codecogs.com/eqnedit.php?latex=N" target="_blank"><img src="https://latex.codecogs.com/gif.latex?N" title="N" /></a> stakeholders, containing a total of <a href="https://www.codecogs.com/eqnedit.php?latex=\sum_{i=1}^{N}{x_i}" target="_blank"><img src="https://latex.codecogs.com/gif.latex?\sum_{i=1}^{N}{x_i}" title="\sum_{i=1}^{N}{x_i}" /></a> coins, `FTS-TREE` selects the *k*:th stakeholder <a href="https://www.codecogs.com/eqnedit.php?latex=1&space;\le&space;k&space;\le&space;N" target="_blank"><img src="https://latex.codecogs.com/gif.latex?1&space;\le&space;k&space;\le&space;N" title="1 \le k \le N" /></a> controlling <a href="https://www.codecogs.com/eqnedit.php?latex=x_k" target="_blank"><img src="https://latex.codecogs.com/gif.latex?x_k" title="x_k" /></a> coins with probability <a href="https://www.codecogs.com/eqnedit.php?latex=\frac{x_k}{\sum_{i=1}^{N}{x_i}}" target="_blank"><img src="https://latex.codecogs.com/gif.latex?\frac{x_k}{\sum_{i=1}^{N}{x_i}}" title="\frac{x_k}{\sum_{i=1}^{N}{x_i}}" /></a>.
13+
It is fairly easy to prove that `FTS-TREE` is fair. More precisely; given a Merkle tree with N stakeholders, containing a total of x<sub>1</sub> + x<sub>2</sub>... + x<sub>N</sub> coins, `FTS-TREE` selects the *k*:th stakeholder 1 ≤ k ≤ N controlling x<sub>k</sub> coins with probability x<sub>k</sub> / (x<sub>1</sub> + x<sub>2</sub>... + x<sub>N</sub>).
1414

1515
Example output from `FTS-TREE`
1616

0 commit comments

Comments
 (0)