( ) 16 () 16 D61967F 6 1 2 1 2 < 2 9 2 10 2 + 3 10 1 + 5 10 0 a, b Z (a, b) a b
X Y H : X Y x X H(x) y Y x X : H(x) = y x X x X, x x : H(x ) = H(x) x, x X : H(x) = H(x ) H X f k f M H M M M = (m 1, m 2,..., m n ) m 1 = m 2 =... = m n 1 = k k m n k
m n = (m n 1 00...0 l(m)) l(m) M l(m) m n = k m n > k l(m) m n = (m n 1 0... 0) m n = k m n+1 = (00...0 l(m)) m n+1 = k m n = k m n := m n m n+1 = (1 00...0 l(m)) m n+1 = k l(m) H M H(M) y 1 = f(iv, m 1 ) y i = f(y i 1, m i ) i {2,.., n 1} y n = f(y n 1, m n) =: H(M) m n+1 y 1 = f(iv, m 1 ) y i = f(y i 1, m i ) i {2,.., n 1} y n = f(y n 1, m n) y n+1 = f(y n, m n+1 ) =: H(M) IV m 1 m 2 mn ' IV y f 1 f... f y n y 2 y n-1 H : {0, 1} {0, 1} 256
: {0, 1} {0, 1} 160 G = (G,, 1, 1) G G G + 0 G G (G,, 1, 1) G α G a G : a = α k k Z α G a G n N a n = 1 p > 3 E F p y 2 = x 3 + ax + b a, b F p 4a 3 + 27b 2 0 ( p) E(F p ) (x, y) x, y F p 0 E(F p ) + 0 P = (x 1, y 1 ), Q = (x 2, y 2 ) E(F p ) P + 0 = 0 + P = P (x 1, y 1 ) + (x 1, y 1 ) = 0 P ±Q P + Q = (x 3, y 3 ) x 3 = y 3 = P P 2P = (x 3, y 3 ) x 3 = y 3 = ( ) 2 y2 y 1 x 1 x 2 x 2 x ( 1 ) y2 y 1 (x 1 x 3 ) y 1 x 2 x 1 ( ) 3x 2 2 1 + a 2x 1 2y 1 ( ) 3x 2 1 + a (x 1 x 3 ) y 1 2y 1
G n α A, B M A M B H A a 1 a n 1 y = α a A (α, y) G a M k 1 k n 1 (k, n) = 1 r = α k H(M), H(r) s = k 1 (H(M) ah(r)) ( n) A M (r, s) (r, s) M (α, y) A H(M), H(r) v 1 = y H(r) r s v 2 = α H(M) v 1 = v 2
k M 1, M 2 k k k a (α, y) a (r, s) M (α, y) (r, s) y = α a r = α k s k 1 (H(M) ah(r)) ( n) k k 1 : 1 k 1 n 1 k k 1 k 1 k 1 ( n) (r, s) B v 1 v 1 = y H(r) r s = = α ah(r) α k k 1 (H(M) ah(r)) ( n) = = α ah(r)+h(m) ah(r) = = α H(M) = = v 2 (r, s) M a v 1 = v 2 (r, s) G Z n G Z p p n α 2 159, 2 160 r = α k ( n) (r, s) Z n Z n H(r) r r H(M) w = s 1 ( n) u 1 = w H(M) ( q) u 2 = r w ( q)
v = (α u 1 y u 2 ( p)) ( q) v = r G r k α G F p p = 2 256 2 32 2 9 2 8 2 7 2 6 2 4 1 a = 0 b = 7 α G n = 115792089237316195423570985008687907852837564279074904382605163141 518161494337 (x, y) x = 550662630222773436695787188951685343262506034537775941755001873603 89116729240 y = 326705100207588169780830851305070431844712733806592432759389043357 57337482424 X A X P : A 0, 1 A, A 1,..., A k A k N P (A) 0 P (X) = 1 P ( ) = 0 P ( k A i ) = k P (A i ) A i i=1 i=1 A A A = X \ A A
n m V P j j j = 1,..., n P 1 = 1 P j+1 = P j (1 j ) j + 1 m j j + 1 j P n = n 1 (1 j ) m j=1 e x (1 x) x n m 1 j m e j m P n n 1 e j m j=1 = e n 1 j=1 j m = e n(n 1) 2m n 1 n 2 2m e n(n 1) 2m P n e n(n 1) 2m 1 n(n 1) 2m V n 2 2m n m n(n 1) V = 1 P n 2m n2 =: B(n, m) 2m n m = 365 G V, E V E V V E E V V E v 1, v 2,..., v k i = 1,..., k 1 : {v i, v i+1 } E
G (v 1, v 2 ) = e V V e v 1 v 2 v 1 v 2 v 2 v 1 G = (V, E) v v 0 v v H : {0, 1} m {0, 1} l m, l N n i,j i (j +1) x 0, x 1, x 2,..., x k y 0, y 1, y 2,..., y k y i = H(x i ) i {0, 1, 2,..., k} n 0,j = y j j {0, 1, 2,..., k} n 0,j n 0,j+1 H(n 0,j n 0,j+1 ) n i,j n i,j+1 H(n i,j n i,j+1 )
n 2,0 = H(n 1,0 n 1,1 )...kořenový heš n 1,0 = H(n 0,0 n 0,1 ) n 1,1 = H(n 0,2 n 0,3 ) n 0,0 = H(x 0 ) n 0,1 = H(x 1 ) n 0,2 = H(x 2 ) n 0,3 = H(x 3 ) 1.blok dat 2.blok dat 3.blok dat 4.blok dat n 1,0 n 0,0 n 0,1 H(n 0,0 n 0,1 ) = n 1,0 x i i {0, 1, 2,..., k} y i = H(x i ) s 0, s 1,..., s r 2 r s 0 y i s 1 H(y i s 0 ) s 0, s 1,..., s r 2 y i s 0, s 1,..., s r 1 x i
25 34 K pri K pub A K pub x = v b ( (K pub )) A = (x) v b m n
( (x)) x x RIPEMD-160(SHA-256(Kpub)) bajt verze 20 bajtů SHA-256(SHA-256( )) checksum 28 bajtů 21 bajtů checksum...base58 ADRESA K pri 16 K pub 16 16 16 16 16 16
16 16 A 16 A A A A A A A A A k pri k pub (00) H
k pub1 k pub2 (k pub1 ), (k pub2 ) k pub1 k pub2 n A, A B, B, C, C A B = (A) C = (B) A B = (A ) C = (B ) a := A = A = 65 8 = 520 b := B = B = 256 c := C = C = 160 A 1 = {A = A } B 1 = {B = B } C 1 = {C = C } A 2 = {A A } B 2 = {B B } C 2 = {C C } B(n, m) = n2 2m n m n 2 2m n m B m = 2 160 2 m = 2 2 160. = 2, 92 10 48 n 2. = 4, 67 10 34 B m = 160 m = 256 m = 520 P (A 1 ) B(n, 2 a ) P (A 1 A 2 ) = 1 P (A 1 ) 0 P (A 2 ) B 1, B 2 P (B 1 ) = P (B 1 A 1 ) P (A 1 ) + P (B 1 A 2 ) P (A 2 ) P (B 1 A 1 ) = 1 P (B 1 A 2 ) B(n, 2 b ) P (A 2 ) = 1 P (A 1 ) P (B 1 ) B(n, 2 a ) + B(n, 2 b ) (1 B(n, 2 a )) P (C 1 ) = P (C 1 B 1 ) P (B 1 ) + P (C 1 B 2 ) P (B 2 )
P (C 1 B 1 ) = 1 P (C 1 B 2 ) B(n, 2 c ) P (B 2 ) = 1 P (B 1 ) P (C 1 ) B(n, 2 a ) + B(n, 2 b ) (1 B(n, 2 a )) + B(n, 2 c ) (1 B(n, 2 a ) B(n, 2 b ) (1 B(n, 2 a ))) P (C 1 ) B(n, 2 a ) + B(n, 2 b ) + B(n, 2 c ) B(n, 2 b ) B(n, 2 a ) B(n, 2 c ) B(n, 2 a ) B(n, 2 c ) B(n, 2 b ) + B(n, 2 a ) B(n, 2 b ) B(n, 2 c ) B(n, 2 a ) = n2 2 521 B(n, 2 b ) = n2 2 257 B(n, 2 c ) = n2 2 161 B(n, 2 a ) + B(n, 2 b ) + B(n, 2 c ) = n2 (1 + 2 264 + 2 161 ) 2 521 B(n, 2 a ), B(n, 2 b ), B(n, 2 c ) n P (C 1 ) n2 (1 + 2 264 + 2 161 ) 2 521 n B n B
= 58 10 0 9 48 i i i = 0,..., 57
x y T x 1 x x T x 2 T x 1 x T x 2 y (x y) (x y) T x 2 10 8
( ( )) T x T x T x T x T x = 16
T x 1 T x 2 T x 1 T x 1 T x 2 T x 2 T x 2 T x 2 T x 1
16 16 x 1 x 1 x 1 16 x 1, x 2 16 x 1, x 2 16 x 1, x 2 x 1 + x 2 16 x 1 ( (x 1 )) 16 16
T x 2 T x 1 T x 2 T x 2 T x 1 ( (T x 2 )) T x 2 T x 1
( ()) T x 2 T x 1 T x 1 T x 2
( (T x)) T x T x T x T x T x T x T x
T x ( ( ))
T x 1 T x 1 T x 2 T x 1 T x 1 T x 2 T x 2 T x 1 T x 2 T x 2 T x 2 T x 1 T x 2 T x 1 T x 2 T x 2 T x 2 T x 1 T x 2
25 6 = 150 B 2 B 1 B 2 B 1
( ) ( ())
B H ( (H)) < 0, ) e e m = m 256 (e 3) = m 2 8 (e 3)
= () 16 e = () 16 m = () 16 = 16 Y = Y 2 = 16 B d(b) d(b) = B HLAVIČKA BLOK prev_block merkle_root nonce HLAVIČKA BLOK prev_block merkle_root nonce...... H(H(Tx1) H(Tx2)) H(H(Tx3) H(Tx4))...... H(Tx1) H(Tx2) Tx1 Tx2... H(Txn) Txn H(Tx1) Tx1 H(Tx2) Tx2 H(Tx3) Tx3 H(Tx4) Tx4
V 1 V 2 V 1 V 2 V 1 V 2 i i+1 16 blok i i T x T x T x T x
T x T x T x T x T x T x T x T x T x B H B ( (H)) < B B B B B B V T x
T x T x B B B 1 V V B 1 B B 1 B B B B B T x B B B B B
U O U T x 1 O U O T x 1 T x 2 T x 1 T x 2 T x 1 O T x 1 U T x 1 T x 1 V 2 T x 2 T x 1 O V 1 T x 1 T x 1 T x 2 T x 1 U S H
U qh S ph p + q = 1 H m := V 2 n := V 1 z := n m z S S p z U q z z = 1 V 2 z = 1 p q m > n a z := P z z < 0 a z = 1 S z 0 q z S p z a z = p a z+1 + q a z 1 (p 1) a z 1 + a z p a z+1 = 0 χ = p 1 + x p x 2 x 1 = 1 x 2 = q p a z = a 1 z + b ( q p )z a, b R a, b a 1 = 1 a 0 U
z = 0 z = 1 q p z = 1 z = 1 z = 0 z = 1 z = 1 z = 0 z = 0 z = 1 z > 1 z = 1 a 0 = q + p a 0 a 0 a 0 a 0 = 1 a 0 = q q > p a p 0 a 0 q < p a 0 q < p a 0 = 1 a i = 1 i > 0 U z S k U z + k + 1 U z + 2k + 1 S k U z + k + 1 P k U z +2k+1 P k ( ) z + 2k P k p k q z+k q < 2 z 4 k p k q z q k q < 2 z 4 k p k q z q k k z+k+1 S k P k q < p p+q = 1 q < 1 < 1 2 ( ) z+2k 2 z+2k = 2 z 4 k 2 z+2k = (1 + 1) z+2k = = z+2k l=0 ( ) z + 2k l k > z+2k ( z + 2k l l=0 ( ) z + 2k k ) 1 z+2k l 1 l = a z 1 = a z = P k < 2 z 4 k p k q z q k (2q) z (4pq) k k=0 k=0 (4pq) k k=0 4pq < 1 pq < 1 4 p = 1 q pq < 1 (1 q)q < 1 4 4 q2 q + 1 > 0 4 pq < 1 q 1 q < 1 4 2 2 (4pq) k =: M k=0 k=0 1 = a z < (2q) z M
q < 1 2 z a z < 1 a i = 1 i > 0 q < p 1 a 0 = q p a 1 = 1 a 0 = 1 q p a 1 = 1 a 0 = q p q < p a, b a = 1 b = 0 q p a = 0 b = q p q < p a z a z = 1 q p z < 0 a z =( q p )z+1 q < p z 0 U