Apakah mungkin untuk menghasilkan angka acak jika kita tidak percaya satu sama lain? Bagian 2

Halo, Habr!

Pada bagian pertama artikel, kita membahas mengapa mungkin perlu membuat bilangan acak untuk peserta yang tidak saling percaya, persyaratan apa yang diajukan untuk pembuat bilangan acak tersebut, dan mempertimbangkan dua pendekatan untuk implementasinya.

, .

, , , . : , , (x, y) , .

, :

  1. ( xG, Gx ). -- .

  2. G xG x.

p(x) k-1. , : p(x) k x ( p(x)), p(x) x.

, p(x) G, p(x)G k x, p(x)G x.

, , , .

n , , k , , k-1 , .

p(x) k-1, p(1), p(2), (n- p(n)). , G p(x)G x. p(i) โ€œ โ€ i- ( i- ), p(i)G โ€œ โ€ i- ( ). , p(i)G p(i).

, i- โ€“ , . , , .

, ? , . h -- . , h seed. h :

H = scalarToPoint(h)

i Hi = p(i)H, , p(i) H. Hi i- , . , , , .

k Hi = p(i)H, Hx = p(x)H x , . H0 = p(0)H, . , p(0), p(0)H โ€“ p(x)H, k p(i)H . p(i)H p(0)H.

, : , k-1 , , , k , k seed.

, . , Hi i p(i)H. i- p(i), i- Hi , - Hi Hi, :

Nilai H_1 berbeda yang dikirim oleh peserta pertama mengarah ke resultan H_0 yang berbeda
H_1, , H_0

Hi, , .

, p(x) k-1 i p(i), . G p(x)G x.

, xi, Xi.

:

  1. i pi(x) k-1. j pi(j), Xj. i- j- pi(j). i pi(j)G j 1 k .

  2. k , . , n . โ€“ Z k , (1).

  3. , pi(j) pi(j)G. Z , pi(j) pi(j)G.

  4. j p(j) pi(j) i Z. p(x)G pi(x)G i Z.

, p(x) โ€“ k-1, pi(x), โ€“ k-1. , , j p(j), p(x) x โ‰  j. , , pi(x), j , p(x).

, . 1, 2 4 . 3 .

, , pi(j) pi(j)G. , i pi(j) j, j pi(j), .

, proofi(j), , e, proofi(j) pi(j)G, , e โ€“ pi(j), j. , , O(nk) , .

, , pi(j) pi(j)G , pi(j), pi(j)G, , . , pi(G) , , . , , , , , , .

, , . , , , k , , .

H_i

, , Hi, Hi = p(i)H, p(i).

, H, G, p(i)G . p(i) p(i)G G , dlog, , :

dlog(p(i)G, G) = dlog(Hi, H)

p(i). , Schnorr Protocol.

, Hi .

, , , . Hi .

: โ€“ H0, p(0)G โ€“ , Hi, ,

dlog(p(0)G, G) = dlog(H0, H)

, Schnorr Protocol , p(0), , , , . Hi , H0.

, - , , H0 , ,

H0 ร— G = p(0)G ร— H

elliptic curve pairings, . H0 โ€“ , , G, H p(0)G. H0 โ€“ , seed, , k n . , seed โ€“ , H0 โ€“ - , .

โ€“ NEAR. NEAR โ€“ , .

, Rust, .

NEAR, -IDE .

, .

!




All Articles