简析区块链验证机制

简析区块链验证机制
2018年11月12日 18:30 火眼财经

在区块链系统的整个交易流程中,作为基石的部分就是验证机制。如何证明一笔交易是真实有效的?如何证明此交易确由当事人发出?

在1976年以前,这个问题是无解的,彼时在全世界沿用的是对称加密算法,也即需要相同的密钥才能对加密过的信息进行解密。这一体系当然有它的优点,各种精心设计的加密算法在电报,密文的传输中起到了举足轻重的作用。

然而,当密文不仅仅流通在交易发起者和接收者之间,而是需要经过全网节点验证其内容时,对称加密算法便无处下手了,由于加密和解密的密钥相同,故若能验证密文,必能篡改密文,此时交易双方必不可能将密钥与全网分享,也就无法通过共识验证交易的真实性了。因此,非对称加密算法(椭圆加密算法)应运而生。

利用“大素数乘积难以分解”的性质,设计的RSA算法,可将密文在“只读”和“写入”模式之间自由切换:使用一组对应的公钥和私钥,私钥加密,公钥查看。

公钥仅针对唯一的私钥进行解密,通过其他任何途径加密的信息无法通过公钥还原。应用在区块链系统中,全网节点获知加密者的公钥,就可以在无法伪造的前提下唯一的确认交易发起者的身份。

与此同时,考虑到信息传输途中可能的失真,误码,Hash函数被用于生成信息摘要。Hash函数是不可逆向求解的,且由于雪崩效应,仅仅一个字符的误差都会导致完全不同的摘要散列值。

故只需将密文和其摘要同时使用私钥加密,并在解密端对密文使用相同的Hash函数,与发过来的摘要进行比对,就可以验证信息的完整性。在这一过程中,椭圆加密算法和Hash函数分别承担了“身份确认”和“可靠性验证”的功能。

假定人的贪欲是无限的,且仅有一丝一毫的可能性也会不假思索的钻营牟利——而事实的确如此——那么以上“双保险”的系统仍存在一个致命的弱点:倘若黑客有能力对某台主机上特定的公钥进行替换,并对应于其自己的私钥,那么他就可以肆意的篡改内容并向该主机发送信息,而此时苦主发来的密文根本不会得到识别!

针对这个问题,有两种策略,第一种策略使用了被称作“证书中心”的中心化机构,它收集个人信息与对应公钥,并用自己的私钥进行加密,生成数字证书。发信者在数字签名之后需附上自己的数字证书,便于接受者验证本机公钥是否属实,在这种策略中,只要证书中心不倒闭,加密就一直真实可靠,但风险仍旧存在。

第二种策略则是反其道而行之,任何一宗交易需要在全网验证,只要51%以上节点未被攻击,那么对于此次交易而言就是可信的。是不是有点眼熟?这正是区块链的共识机制,采用去中心化的思想,就可以最大程度的减少单个节点被攻击带来的风险,同时保证可靠性与准确性。

怎么样,读完这篇文章后,你是否对区块链的验证机制有了更深的理解了呢?

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部