隐秘性:已知com,没有可行的方法找到msg。
约束性:没有可行的办法找到两组(msg, nonce)和(msg’, nonce’),msg≠msg’,而commit(msg, nonce)==commit(msg’, nonce’)。
以上两个安全特性决定了这一算法就如同密封及打开信封。第一,如果仅仅知道com,即承诺函数的输出,就如同只看信封并不能得到信息内容;第二就是约束性,这就保证了你一旦承诺信封内的内容,就不能再改变主意。也就是说,我们无法找到两个不同的信息,当你在承诺一个信息后,而又声称你承诺了另一个信息。
读书笔记:
1,隐秘性:如果仅仅知道com,即承诺函数的输出(只看到了信封)。
2,约束性:你一旦承诺信封内的内容,就不能再改变主意。
原文精选:我们如何在承诺协议中保证隐秘性和约束性这两个性质成立呢? 在讨论这一点之前,我们需要讨论如何执行承诺方案。我们可以通过使用加密的哈希函数来达到目的,考虑如下承诺协议实施方案:
commit(msg, nonce):=H(nonceǁmsg)
其中,nonce为长度为256位的临时随机数。
为承诺一段消息,我们首先生成一个256位的临时随机数,然后将这个临时随机数与信息链接,并返回这个链接值的哈希值,来作为承诺输出。为了便于验证,我们还要设定其他人来计算一下临时随机数与信息链接之后的哈希值,比对一下计算结果是否与承诺输出相同。
再来看一下我们的承诺方案要求的两个特性,如果我们将承诺和验证换成H(nonceǁmsg),那么这些特性就变成:
● 隐秘性:已知H(nonceǁmsg),没有可行方法找到msg。
● 约束性:没有可行方法找到两对(msg, nonce)和(msg’, nonce’),msg≠msg’,而
H(nonceǁmsg)==H(nonce’ǁmsg’)。
读书笔记:
1,承诺方案要执行,必须满足隐秘性和约束性。
2,方法:先生成一个256位的临时随机数,并返回这个链接值的哈希值作为承诺输出。
原文精选:承诺的隐秘特性正是我们要求哈希函数要具备的隐秘性,如果将一个解密钥匙选定为256位的随机值,那么由隐秘性得出,如果解密钥匙与信息链接,那么仅仅从哈希函数的输出中恢复信息就是不可行的。约束性隐含在哈希函数的碰撞阻力特性中,如果哈希函数具有碰撞阻力,那么我们将不能找到不同的msg及msg'值,而H(nonceǁmsg)=H(nonce'ǁmsg'),如果这种情况发生,将构成碰撞。
因此,如果哈希函数H具有碰撞阻力及隐秘性,从安全特性上来讲,这个承诺方案将有效。
读书笔记:
1,承诺的隐秘特性正是我们要求哈希函数要具备的隐秘性。
2,约束性隐含在哈希函数的碰撞阻力特性中。
3,结论:如果哈希函数H具有碰撞阻力及隐秘性,则承诺方案安全而有效。
一叶之秋带你一分钟速读经典书籍,每天一分钟(只需阅读读书笔记部分),天天获新知。
一叶之秋——非著名股票分析师
CCTV证券资讯频道特邀分析师
币乎,币问内测作者;区分节点分析师
金色财经,币世界专栏作家
《区块链编年史》 《区块链重塑未来》系列作者
量价时空战法体系,一分钟读书俱乐部创始人
公众号:区块链项目评测
007er
网友评论