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