前言
佩德森承诺是一种密码算法,它允许验证者在不暴露或无法更改某个值的情况下提交该值。
佩德森的承诺
CT( Confidential Transactions,机密Tx)的基础密码学工具是佩德森的承诺。
承诺场景让你把一段数据作为私密保存,但是要承诺它,使得你后来不能改变该数据。一个简单的承诺场景用哈希函数构建如下:
承诺 = SHA256(盲化因子||数据)
如果你仅告诉别人承诺,别人没法确定你承诺了什么数据(对哈希表的属性给定某些假设)。但你后来揭露了盲化因子和数据,别人可以运行该哈希函数来验证是否与你以前的承诺相匹配。盲化因子必须存在,否则别人可以试图猜测数据。如果你的数据比较少而简单,猜测成功可能性比较大。
佩德森承诺与以上场景中的承诺类似,但是附加一个特性:承诺可以相加,多个承诺的总和等于数据总和的承诺(盲化因子的集合即盲化因子总和):
C(BF1, data1) + C(BF2, data2) == C(BF1 + BF2, data1 + data2) C(BF1, data1) – C(BF1, data1) == 0
换句话说,加法律和交换律适用于承诺。
If data_n = {1,1,2} and BF_n = {5,10,15} then: C(BF1, data1) + C(