RangeProof範圍證明

2021-09-28 10:36:12 字數 1508 閱讀 8803

pedersen commitment對應c = r*g + v*h;

將金額v表示成二進位制形式:v = bn…b2,b1,b0,bi屬於;

將私鑰r對應拆分為n個隨機數分片之和:r = an…+ a2 + a1;

將c對應拆分為n個ci分片之和:c = cn…+c2+c1; 其中ci = ai*g + bi*(2^i)*h;

取ci、ci – (2^i)*h為環簽名的公鑰集,則當bi = 0時,ci = ai*g,bi = 1時,ci – (2^i)*h = ai*g;

兩者必然有乙個等於ai*g,被選擇為環簽名的真正的金鑰對,進行環簽名,形成n個2元環簽名,也就證明了v的二進位制數值長度為n的正整數。驗證者並不知道2元環簽名中哪乙個是真正的金鑰對,因此無法推導出bi究竟是1還是0。

礦工只需進行兩步驗證:1、ci之和是否等於c;2、各個環簽名是否正確;

範圍證明技術只認無符號正整數,假設採用8bit無符號整數表達金額,若v為負數(-1),那麼在補碼表示法中,高位全部都是1,v就會被誤認為是255進行處理,這就會導致c = cn…+c2+c1不能成立,無法通過驗證,這就確保了v的值沒有二意性,只能為正整數。

bulletproofs rangeproof

v是輸入的金額(原始訊息)

comm 是用普鄧森見證加密的密文(根據原始訊息 + 隨機數得到)

對 v 進行左、右簡單處理,之後用普鄧森見證加密(新原始訊息 + 新隨機數),得到 a,雜湊雜湊得到 cy

隨機數 s 也是用普鄧森見證生成的,主要是方便後續使用,雜湊雜湊得到 cz

t1、t2,原理相同,都是使用普鄧森見證生成的,主要是方便後續使用,它們兩者雜湊雜湊得到 cx

內積(略)

tau,th 展開的多項式

mu,隨機數 & cx (即 t1、t2)得到

typerangeproofstruct{

comm ecpoint 密文1

a ecpoint 密文2

s ecpoint 隨機數1

t1 ecpoint 隨機數2

t2 ecpoint 隨機數3

tau * 密文3

th * 密文4

mu * 隨機數5

ipp innerprodarg 密文6

// challenges

cy * 指紋1

cz * 指紋2

cx * 指紋3

普鄧森見證

雜湊雜湊

a => cy

s => cz

t1, t2 => cx

普鄧森見證(機密交易),多項式擴充套件

tau, th => lhs

comm => rhs

內積 = 展開的多項式

內積,內乘積(也可分為3步)

th, ipp; a, s, mu

mu, ipp => innerproductverifyfast

運算元公式證明 BCH公式的有趣證明

baker campbell hausdorff 公式是群論和量子力學中常用的公式之一,但是在量子力學的教材中通常不會展開證明。它可以解決很多近似問題,也是證明諸多定理的工具,其中之一就是李群 李代數對應。本文的重點的不在於數學上的嚴謹性,而是直覺上的趣味性。尤其是,能夠用通常求解微分方程的方法求解...

零知識證明

零知識證明的幾個例子 原創 1 a要向b證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙開啟鎖,而其他任何方法都打不開。這時有2個方法 一 a把鑰匙出示給b,b用這把鑰匙開啟該房間的鎖,從而證明a擁有該房間的正確的鑰匙。二 b確定該房間內有某一物體,a用自己擁有的鑰匙開啟該房間的門,然後把物體拿出來...

原因與證明

我在 cornell 的時候經常遇到這樣的問題,那就是教授們一上課就在黑板上寫長篇的 定理證明 全體同學認認真真在下面抄筆記,就連只有十來個人的小課也是那樣。有些寫字速度慢的人就不得不帶上小型錄音機,把教授的課全都錄下來,要不就是之後去借別人的筆記來抄。有一次某知名教授照著講義,背對著學生,在黑板上...