变色龙哈希函数 Chameleon Hash 可变型区块链

哈希函数 Hash:

众所周知,区块链有着极其优秀的安全性就是因为其充分使用了哈希函数。
哈希简单用一句话来讲,就是: 将任意长度输入的字串可转换成一个固定长度的字串,通过原始字串可以很容易地算出转换后的字串,通过转换后的字串很难还原出原始字串。

哈希函数特征:

1. 对于任意m作为输入,得到输出的结果,很难找到另一个输入m'  (m'不等于m),使得m'的Hash结果也为同样的输出,即Hash(m) = Hash(m')。这一性质成为广义碰撞抵抗性。
2. 进一步,很难找到任意两个m和m',使得Hash(m) = Hash(m')。这里我们没有固定的m和m',因此这一要求比第一个要求更为严格。这一性质成为严格碰撞抵抗性。
3.抗篡改能力,对于一个数据块,哪怕只改动其一个比特位,其hash值的改动也会非常大。



上图揭示了区块链区块的连接方式,其使用的哈希函数是SHA256,也就是想要碰撞出一个区块既定的哈希,有2^256种可能性。
因此区块链有着所谓的不可修改性,如前阵子以太坊的TheDAO事件,虽然最终追回了被盗取的以太币,但是使用的是硬分叉的方法,即产生出一条新链,两链不关联。


变色龙哈希函数 Chameleon Hash:

而去年,埃森哲公司应用了变色龙哈希的特点,申请了可编辑区块链专利,虽然一定程度上破坏了区块链的去中心化及不可撤销性,但是从另一方面看也是扩大了区块链的应用场景,满足政府的可监管需求,和金融银行等的部分需求。

变色龙哈希的特点是:

传统加密哈希函数很难找到碰撞。但变色龙哈希函数可以人为设下一个“弱点”或者“后门”:掌握了它就能轻松找到碰撞(ChamelelonHash(m)=ChamelelonHash(m'),其中m不等于m')。
这虽然破坏了上面列出的哈希函数的两个碰撞抵抗性,但是对于大部分人而言,这些特性依然存在,这个哈希依然是安全的。

原理简述:

指数特性一: g^a*g^b = g^(a+b)
指数特性二: (g^a)^b = g^(ab)

假设一个区块原内容为m,有个人知道这个哈希的“后门”或“私钥”为x,这个“私钥”对应的公钥为h=g^x。生成变色龙哈希对应的随机数为r,则此时该区块的哈希值为:
H(m)=g^m*h^r

现在将内容m篡改为m',现在希望找到一个随机数r',使得H(m')=H(m)。r'的求解过程是:
H(m)=g^m*h^r=g^m*g^(xr)=g^(m+xr)
H(m')=g^m'*h^r'=g^m'*g^(xr')=g^(m'+xr')
所以,已知m,m',x,r,则r'=(m+xr-m')/x

因此将其应用于区块链中,便可塑造出一个可编辑区块的区块链。

虽说弱化了不可编辑性,但是一定程度上,持有后门x者也是有制约的,首先,区块链都是存在本地的,如果有修改可以有记录,其次,如果持有后门x者乱修改,或者不承认修改,拿着记录与被修改后的区块进行碰撞即可证明其被修改,因为对于没有后门x的人来说,要在2^256中找到碰撞几乎是件不可能的事情。

  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值