α αα α!
Π
αα αααα»ααααααααα’αααααααα ααΎαααΉααα·αα·αααααΎαα±ααααΆαααααα·ααααααΌααα·ααΈααΆααααααα½ααααααααααααααααΎα αααααααΆααααα·αα αΆααααααΎαα
ααααα·α ααααΆαααααΈα
ααΎααααΈαααααΈαααααααα αααααααΆααααα·αααααΎαααΆα α’αααααααΌααααααΈααΆαααααΈαααΆααΌαααααΆαααααα·α α ααΎαααΉαααααΎααααααα·αααΈαα ααΆαααααααΆα α¬αααααΆαααα αααααΎαααΉααααα αΆααααα’ααααααΌα (x, y α) αα·αα ααα’α»αααΎαααααααααΆαα’αααΈα αααααΎαααΉααααααΆαααααα’ααααααα
ααΎααααΈαααααΈααΌαααααΆαααααΉαααα αααααααΆααααα·αα αΆααααααΎα α’ααααα·αα αΆαααΆα ααααααΈααααααααααααααααΆαα’αααΈαααααΎαααΆα αααα ααΈα ααα»α ααΆααΌαααααΆααα½αα ααα½αα
-
α ααα»α αα ααΎαααααααααΆαα’αααΈαα’αΆα ααααΌαααΆααααααα αα·ααα»ααααααΆαααααααΆα (ααΎαααΉααααααΆααααΆααα»ααααααΆαααααααΆαααΆ xGαααααΈααΆαααααΆα Gx ααααΌαααΆαααααααΎααΆααΉαααΆαααα αααα»αα’αααααα·αααα) α ααααααααααΆαααΌααα·ααα»ααααααΆαααααααΆαααΊααΆα ααα»α αα ααΎαααααααααΆαα’αααΈαα
-
ααΉαααα ααα»α G αα·αααα·αααααααααΆααΆαα½αααΉαααΆαααααααΆα xG αα·αα’αΆα ααααΆααΆαααα x.
ααΎαααααΉαααααΎααααααα·ααααα α»ααΆααααααα p(x) ααΊαααα k-α‘. ααΆαα·ααα ααΎαααΉαααααΎαααααααααααααα·αααα α»ααΆαααΆααααααα ααααα·αααΎααΎαααΉαααΈααααα 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(2), αβα (n- ααΉα p(n)) ααΎαααααααααααΆαααααΆααα ααα»α αααααΆαααααααα»αααΆαα»ααα½αα ααα½α G α’αααβααΆααα’ααααααΆβααΉα p(x)G αααααΆαααααααααΆααα’ααα x. ααΎαααΉαα α p(i) "αααΆαααΆαα»α―ααα" iα’αααα αΌααα½αααΈ (αααααΆααα iα’αααα αΌααα½αααΈ 1 ααααΆααααΆα) αα·α p(i)G "αααΆαααΆαα»ααΆααΆααα" i-th α’αααα αΌααα½α (αααααα’αααα αΌααα½αααΆααα’ααααααΆααααΆα)α ααΌα αααα’αααα αα αΆαα ααααααΉα p(i)G αα·ααααααααααΆααααΎααααΈααααΆαα‘αΎααα·αααα p(i)
ααΆαβαααααΎαβαα α»ααΆαβαααβαααβααΌα ααααβααβααα»αααααα i-α’αααα αΌααα½αααααΌα αα·αααααΆαααααΆααααΆααααααΆαααααΆαααΆαα―αααααααααΆαααα - αααααΊααΆααααααααααα»αααααΆα αα·ααα½αα±ααα αΆααα’αΆαααααααααα»ααααα·ααΈααΆα α αΎαααΎαααΉααα·ααΆαααΆααΌα ααΆααααααα αααααΆαααααααα α αΌααααααααΆααΎαααΆααα α»ααΆααααααα α αΎαα’αααα αΌααα½αααΆααα’ααααΉαααΈαααΆαααΆαα»α―ααααααααα½αααα
ααΎααΎαα’αΆα ααααΎαα α»ααΆαααααααααΎααααΈαααααΎααααα ααααααααααααααΆ? ααΎααααΈα αΆααααααΎα ααΎαααααΌαααΆααααααα½αα ααα½ααααααΈαα»ααα·αααααΌαααΆαααααΎααΆααΆααααα αΌααα αααα»ααααΆαααΈαααααΎαα αα αααα»αααααΈαα blockchain αα½α hash αααααα»αα α»αααααα h ααΊβααΆβαααααααΆαβααβααα’βαααααΆααβαα½αβαααα α’αα»ααααΆαα±ααα’αααα αΌααα½αα αααααααΎααααα ααααααααααααΎ h ααΌα ααΆααααΆααααΌαα α’αααα αΌααα½αααααααααααΌα h αα α ααα»α αα½ααα ααΎααααααααααααααΎαα»αααΆααααααΆααααααααΆαα»αααΆαα½αα
H = scalarToPoint(h)
αααααΆααααα’αααα αΌααα½αααααΆααα i ααααΆαα·αααααα»ααα αα½ααααΈ = p(i)H, ααΎαα½αααα’αΆα ααααΎα’αααΈααΆαααααααα½αααααΉα p(i) αα·α H. ααΆααααα αΆα Hαααα»αβαα·αβα’αα»ααααΆαβα±ααβα’αααβα αΌααα½αβαααααβαααβααΎααααΈβααααΆαβαααΆαααΆαβα―αααβ iα’αααα αΌααα½αααΈ α αΎαααΌα αααααααα»ααααααΆαααΆαα―αααα’αΆα ααααΌαααΆαααααΎααΈαααα»ααα½ααα αααα»αα ααΌα αααα αααα½ααααααααΆαααΆααααααΎααα α»ααΆααααααΆααααααααααααααΆααα·αααααΆααΆααααααααααΌαααΆαααααααΌαααΆαααααα·ααααα·ααααααααα»αααααα
αα ααα k α’αααα αΌααα½αααααΌαααΆαααααΎαααααααα·α αα αα½ααααΈ = 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 α’αααα αΌααα½αααΉααααααααα½αααΆαααααααααΌα ααααΆαααααΆααααααΆααααΌαααΌα ααααΆα
ααΆααααα αΆαα½ααααααΎααααααΆαααααααα»αααααααααααΆαααΎα αααααΆαα interpolation ααΎααααΈααααΎααΆαααΆααΆααΆαααααΆαααααααααα Hi αααααααΌαααΆαααααα»ααααααα’αααα αΌααα½αααααΆααα i ααΆαα·αααΆααΌα ααααΆα p(i)H. α αΆααααΆααααΈααααΆαααααΆααααΆααααΎαααααα i- α’αααα αΌααα½ααα·αααααΆαα p(i), ααααΆαααααΆααααΆααααΎαααααα i-α’αααα αΌααα½αααΈ αα·αα’αΆα αααααααααΆααααΆααΆαααα Hi αα·αααΆααααΆααΆαααααΉαααααΌα αα·ααααααααΆαααααα»ααΆαααααΈαααααΈαααΆαα½αααααΉαααααΌα Hαααα»αβα’αααβααΆααααα αΆαβα’αΆα βαααααααΆαβαααααβααΆαα½αβααΆβ hi, αα·αααα₯αααα·αααααααααΆαααΎαααααααααααΆαααΈααααααΎααααα ααααα:
ααααααααααααααΆαα H_1 αααααααΎαααα’αααα αΌααα½αααααΌαααΆααα αααααααααααααααααΆαα H_0
αααΆαα αα ααΆααααΆααα·ααΈααΈααααΆαααΎααααΈαααααΆααααΆαααααΉαααααΌα Hi ααΎαααΉααα·α αΆαααΆαα½αααΆαααααΆααααΈααΎααα·ααΆαααααΆαααααα α»ααΆαα
ααααΆαααα α»ααΆα
αα αααα»ααααααα α»αααααα ααΎαααααααααΆααΎαααΆααα α»ααΆααααααα p(x) ααΊαααα k- 1 α’αααα αΌααα½α i ααΉα p(i)α αΎαααααΆαααααΆααααΆααααΆαααααααΆαα’αααΈααααααααααα αα αααα»αααααααααααΆαα ααΎαααααΉαααααΌαααΆαααΆααααα αααααΆααα ααα»α αααααΆαααααααα»αααΆαα»ααα½αα ααα½α G αααααααααΆααΆαααΉα p(x)G αααααΆααβααΆααα’αα x.
αα αααα»ααααααααα ααΎαααΉαααααααααΆα’αααα αΌααα½αααααΆααααα αααα»αααΌαααααΆαααΆαααα―ααααα½αα ααα½α αααΈ, ααΌα βαααβαααβα’αααβααΆααβααααΆβααααΆααβααααΆααΆαααβαααβααααΌαβααααΆα Xi.
αα·ααΈααΆααααααΎααα α»ααΆααααα’αΆα ααΎαααΆαααΆαααΌα ααΆααααααα
-
α’αααα αΌααα½αααααΆααα i ααΌαααααΆααααααΎααα α»ααΆαααααΆα pi(x) ααΊαααα k-1 α αααααΆαααααα½ααααααααΌαα’αααα αΌααα½αααααΆααα j α’αααααα pi(j) ααααΌαααΆαα’αα·αααααΈααααααααΎααααΆααΆααα Xj. ααΌα ααααααααα»ααααα i-ααΈ ΠΈ j-ααΈ α’αααα αΌααα½αααΉα pαααα»α(j) α’αααα αΌααα½α i αααααΆαααΆααΆααΆααααααααα pi(j)G αααααΆααβααΆααα’αα j ααΈ 1 αα αΌαααααα k αα½ααααα αΌαα
-
α’αααα αΌααα½αααΆααα’ααααααΎααΆαααααααααα½αα ααα½αααΎααααΈααααΎαααΎα k α’αααα αΌααα½αααααα α»ααΆαααΉαααααΌαααΆαααααΎα αααααΆαα’αααα αΌααα½ααα½αα ααα½ααααα ααααΆααααΆαα’ααΈαααΊαα·α ααΎααα·αα’αΆα αααα αΆααα αΌααααα’ααααααααααααΆααΆαααα n α’αααα αΌααα½αααΉααααααααΆααα α»ααΆαα ααααααααααα αΆααααααΊααΆαααα»α Z αααΆαα αα ααΆααααΆα k αα α»ααΆαααααααααΎααααα»αααα αΆα (1).
-
α’αααα αΌααα½αααααΌαααααΆααααΆαααααααααα½αααααΉα pi(j) ααααΌαααααΆαα ααΉαααΆααααααΆαααΆααΆααΆααα pi(j)G. αααααΆααααΈααα αΆααααα αΌα Z ααΆααααα α»ααΆαααα»αααααααααααααΌααααα―ααα pi(j) ααααΌαααααΆαα ααΉαααΆααααααΆαααΆααΆααΆααα pi(j)G.
-
α’αααα αΌααα½αααααΆααα j ααααΆαααΆαααΆαα―αααααααααΆα p(j) ααΆααααΌα pi(j) αααααΆααααΆααα’ααααααΆ i Π² Z. α’αααα αΌααα½αααααΆαααααααααΆαααααααΆααα’αααααααα p(x)G ααΆααααΌα pi(x)G αααααΆαα i Π² Z.
α αααΆαβααΆ p(x) β ααΆαα·αααΆαα α»ααΆα k-1, αααααααΆααΆααααΌααααααα»αααα pi(x) αααααΈαα½ααααΆαα α»ααΆαααααΊαααα k-α‘. αααααΆαααα ααΌαα αααΆαααΆ αααααααααα’αααα αΌααα½αααααΆααα 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), α αΎαααΉααα·αα’αΆα ααααΆαααΆαααΆαα―αααααααααΆααΆαααα.
ααΆααα·ααΈααΆαααααΈααααα’αα»ααααΆαα±ααα’ααααααααΎαααΆααααααα ααααα»ααΆαi(j) ααΌα ααΆα’αααα αΌααα½αααΆααααΆααααΆαααααααααα e, Π°ΡΠ°ΠΊΠΆΠ΅ ααααα»ααΆα(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
αααααα α»ααααααααααα ααααααΌααα·ααΆααααΆααΊαααααααααΆααααΆαααααΉαααααΌαααααΆαααααα»αααααααΆα Hαααα»α, αααααΊαααα αα½ααααΈ = 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). ααΆα§ααΆα ααα ααΆαααααααααααΆααααααα»ααΆααααααα
ααΆαα½αααΉαααΆααα ααΆαααα’αααα αΌααα½αααααΆααααα½αααΆαα½α Hi ααααΎααααα»ααΆαααααΆαααααΉαααααΌαααααα ααΆαααΆααα ααΆα
αα αααααααααα αααααααααΌαααΆααααααΎα ααΆααΆααΏααααααΌαααααΎαααα’αααα αΌααα½ααααα ααΈα’αααααααααααΎαααΆα α’αααα αΌααα½ααααααααα½αααΆαα½αααΉααααααααΌαααααΎααΆααα’ααα Hi αα·αααααα»ααΆαααΆαααααααα
α’αααα’αΆααααα ααααΉαα ααααΎαα’αΆα αα½αααΆ: α αΆααααΆααααΈαααα αααααα α»ααααααααΊ H0, αα·α p(0)G - αααααΆααααααΆαααΆααΆααα α ααα»α’αααΈααΆαααΆααΎαααααΌαααΆαααααα»ααΆααααααΆαααα»ααααααααΆααα Hαααα»α α ααα»α’αααΈαα·αααααΎααααα»ααΆααααααα½ααα·αα
dlog(p(0)G, G) = dlog(H0, H)
αααα αΆααΊααΆααααα»ααΆααααααααα·αα’αΆα αααααΎααααααααΎαα·ααΈααΆα Schnorr ααΆααααααααααααΆαααααΆααααΆααααΉαααΈααααααααααα αα (α‘)α αΆαααΆα αααΎααααΈαααααΎααααααα»ααΆα α αΎαα’αααΈαααααΎαααΈαααααα αααΆαααΈααααααΎααααα αααααααΆααααΌαααΊααα’ααααΎααΆααα·ααααααΆααααΆαααααΆααααΆααααΉαααΈααααααααααα ααΌα ααααααΆα αΆαααΆα αααΎααααΈα±ααααΆααααααααΆααα’ααα Hi αα·αααααα»ααΆαααααΆαααααα½ααααααα½ααα ααΎααααΈαααααΆααααΆαααααΉαααααΌα H0.
ααααααΆαααΆααααα ααααα·αααΎααΆαααααα·ααααα·ααΆααα½αα ααα½αααΎα ααα»α αα ααΎαααααααααΆαα’αααΈα αααααΆαααααααααααααααΉαααΆααα»α αααααααα»ααΆαααααΆαααααΉαααααΌα H0 ααΆααΉαααΆααΏαααΌα ααΆα ααΎαααααΆααααααααΎα±ααααααΆααααΆ
H0 Γα G = p(0)G Γ H
ααααα·αααΎααααααααααααΆαααααΎαααΎαααΆαααα
αα αααα»αααα ααααΈααααα·ααααΆα
α’ααααααααααΊααΆααααααα½ααααααααΈαααα»ααα
αα
ααααα
ααΌααα·ααΈααΆαααααΌαααΆαααΎα ααΆαα’αα»ααααααααααΎαααααΌαααΆααααααααΆ Rust ααΆα’αΆα
ααααΌαααΆαααααΎα
α’αααβα’αΆα
βααΎαβααΎαβααΆβααΆαβα’αα·ααααβαααααΆαα NEAR ααΆαβααααααβααΌα
βααααα
α αΎαβαα·αααααβαααα»α IDE α’αα‘αΆα
α’αααα’αΆα
ααΆαααΆαααααααΆαααΆααα’ααααΆααΆααΆαα»ααααΈαα
ΡΠΎΡΠΊΠΎΡΡΡ Π²ΡΡΡΠ΅Ρ!
ααααα: www.habr.com