這裡用到的方法與前文對一次性金鑰中的噪聲項處理方法相似,都是將數額欄位加密。由於該加密方式具有加法同態性,對於輸入、輸出的數額密文欄位作減法(減法可以看成加法),比較減法之後的結果是否為0的密文即可判斷交易數額是否合法。具體做法是,在UTXO中使用欄位
2. 盲化數額
以上的簡單加密數額,並沒有真正隱藏住UTXO的數額。詳細來說,因為數額空間較小。以比特幣為例,全網總共21,000,000BTC,以最小計量單位聰(Satoshi)來計算,總共
3. 數額承諾的證明
盲化了數額欄位之後,礦工簡單地求交易輸入輸出金額欄位的代數和已經不能驗證交易過程沒有產生多餘的金額了。仍以上述二進三出的交易為例,其交易輸入輸出代數和
注意,這裡傳送人在構建交易時,組裝數額承諾需要用到交易輸入所對應的盲化因子和數額明文。這些都是需要從上一筆交易中獲得,所以交易是需要將盲化因子和交易數額秘密傳遞給接收人,以便接收人可以順利構建下一筆交易,花出UTXO。
4. 數額欄位的秘密傳遞
由於在介紹地址那一節中提到,為了讓接受人知道一次性公鑰,採用了DH秘密交換的方式將隨
總結,本文主要介紹Monero幣用“Pedersen承諾+簽名技術”來隱藏使用者交易數額的隱藏問題的一部分。