比特币交易在去中心化机制下如何保证不可篡改?


众所周知比特币的最重要特性之一就是去中心化,这是它区别于传统记账货币中心化机制的最大不同,中心化是需要一个类似银行的发行、清算机构来验证交易有效合法性的。

去中心化,本质上是让所有的节点都可以验证该笔交易的真伪,去掉假的,只保留真的。我在网络上广播我转了一笔比特币给xx,矿工们怎么才能验证这笔交易是真实的而不是伪造的呢?

中本聪使用了非对称加密技术解决了这个问题,所谓非对称加密,是指加密和解密的时候使用不同的密钥的加密算法。比如,A要向B发送消息,在此之前A和B都要产生一对用于加密解密的公钥与私钥。私钥,就像一把私人拥有的钥匙,只有自己知道,别人不知道;公钥,恰如一把公共的钥匙,加密前一般告诉对方自己的公钥。A向B方消息,A用B的公钥加密这段信息,B收到这段消息,用B自己的私钥解密A发送的消息,而其他人收到这个消息的,都无法解密,因为只有B才拥有解密的钥匙。

这个听上去对于不懂技术的人来说有点复杂,简单说就是公钥和私钥是成对存在的,一把钥匙开一把锁,两者可以相互的验证对方。在比特币交易中,简单说来,你要转给对方的钱包地址(相当于对方的银行卡号)我们可以理解为公钥,交易时签名和输密码其实就相当于对私钥进行签升级的火币网如何充值名。

每个矿工在拿到一笔转账交易的时候就可以验证公钥、私钥是否是匹配的,如果匹配,那么这笔交易就是合法的,这样,每个人只需要保管好自己的私钥,知道对方的钱包地址就能进行比特币转账,无需一个中心化的机构验证这笔交易是否是真的,这极大的降低了人们转账时的信任,只要你告诉我钱包地址,我给你转账你一定会收到真的比特币,谁也无法伪造。这就是基于比特币规则创造的一种信任(中心化的第三方信任中介机构譬如银行在这个过程中就被无情的干掉了)

以上只是保证在记账节点对账本交易进行验证加锁,那么修改账本本身这个行为在比特币网络中成本更是高到无限大,篡改者基本无利可图。

比特币去中心化的原理有两个:

第一,作为一个区块链产品,因为其清算能力是分布在比特币网络的若干电脑上,而不是依赖于某个中心化服务器,因此比特币是去中心化的。

第二,根据比特币的设计,清算能力分布在若干电脑上的同时,关于比特币程序的重大修改,是要进行投票的。这样,理论上比特币的决策是民主的,所以在这个意义上也可以说是去中心化的。

在传统中心化的场景下,这个记账记录是否容易被篡改主要取决于中心大账本服务器的安全可靠程度,如果中央服务器被攻破,那么记账记录则有可能被黑客肆意破坏,大家平时使用的银行、支付宝等这些服务器都是固若金汤的,即使偶尔出了漏洞被黑客利用,但是网警这个物种你觉得是吃白饭的吗?从法律层面足以震慑一般人不敢轻易去黑支付机构。

但比特币这种新生的数字货币,一出生世界各国没几个人认可,而且没有中心化机构,它如何保证交易记录不被篡改?每个矿工将交易记录打包后的区块体数据结合该区块的前一个区块进行哈希碰撞,找到正确的哈希值(表示该矿工完成了一定的工作量,就像你考驾照成绩合格就表示你曾经付出努力学习了驾驶技术,就可以给你颁发驾照一样)就能去的记账权,其他节点经过简单的验证,就可以同意其记账,新的区块产生后,其他所有的矿工都会停下手头的工作,同步一只在这个新的区块之后继续"挖矿"工作。

在区块链世界,所有节点都默认最长的那一条链为有效的链,任何其他节点即使修改了链上某个区块的交易记录,根据前文我们提到的哈希运算的特性,都会造成该区块的哈希值发生变化,从而导致该区块的ID发生变化,后续的区块根据其存储的上一个区块的ID就无法找到交易记录发生改变的区块,最终导致"断链",除非这个篡改记录的人拥有极其强大的算力能把被篡改之后所有的区块的交易记录重新做一遍哈希运算,把后续所有的区块都修改了,并且修改速度能超过其他剩余节点产生新区快的速度,使自己的这条链成为最长的链,让其他矿工误以为这条链才是正确的账本,否则修改就是空谈。

然而这么做的结果是没有任何好处的,抛开要投入的矿机成本不谈,全网都非常警惕那个节点的算力超过了全网算力的51%,毕竟区块链的精神就是去中心化的,不允许存在能够控制整个链的"中心化"节点,一旦出现某个节点算力过于集中,全网都会要求其降低算力,中心化的倾向一出现,比特币的价格肯定会大幅降低,这对篡改账本的人来说也没什么好处,偷鸡不成反蚀把米,几乎不可能发生如此自残的事件。

对于历史上曾发生某个矿池的算力超出了全网算力的30%,后来这个矿池主动降低了自己的算力,以保证全网算力的均衡。如何在任何一个区块链产品中实现社区自治,维护所有用户的利益,实现真正的去中心化,不但是个技术难题,恐怕也是政治难题。100%的民主决策流程是低效的,一个组织不可能事无巨细都让所有成员投票,这等同于一个国家天天公投。但是一旦有人被代表,就有利益,就有纷争。



返回列表页>>> 比特币