You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: appdx-bitcoinwhitepaper.asciidoc
+12-12
Original file line number
Diff line number
Diff line change
@@ -75,7 +75,7 @@ The incentive may help encourage nodes to stay honest. If a greedy attacker is a
75
75
76
76
image::images/mbc2_abin04.png["disk"]
77
77
78
-
A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, +80 bytes * 6 * 24 * 365 == 4.2MB+ per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.
78
+
A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, +80 bytes * 6 * 24 * 365 = 4.2MB+ per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.
79
79
80
80
==== Simplified Payment Verification
81
81
It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.
@@ -107,11 +107,11 @@ The race between the honest chain and an attacker chain can be characterized as
107
107
<p>The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows <a href="#ref_eight">[8]</a>:</p>
108
108
++++
109
109
110
-
p == probability an honest node finds the next block
110
+
p = probability an honest node finds the next block
111
111
112
-
q == probability the attacker finds the next block
112
+
q = probability the attacker finds the next block
113
113
114
-
q~z~ == probability the attacker will ever catch up from z blocks behind
114
+
q~z~ = probability the attacker will ever catch up from z blocks behind
115
115
116
116
image::images/mbc2_abin08.png["eq1"]
117
117
@@ -140,16 +140,16 @@ Converting to C code...
140
140
#include <math.h>
141
141
double AttackerSuccessProbability(double q, int z)
0 commit comments