到底区块链改怎么解释让普通人也能明白
2018/07/12/09:44:48 阅读:2662 来源:外贸SEO算法 标签:
发外链
简单理解,区块链是账本。这只是最简单的理解了。要理解区块链的本质,从区块链解决了什么问题出发可能会比较直观。
区块链解决的是分布式计算的容错性问题。我们之所以需要分布式计算,是因为随着数据量增大,单台计算机的计算能力增长速度是有限的。但假如我们可以让多台计算机同时处理一项任务,随着数据量增加,我们需要做的就仅仅是多拿一台计算机进来工作而已。也就是众人拾柴火焰高。
但分布式计算有个问题,就是如何能保证单台计算机被黑了,整个系统不会报废/被篡改?这个问题就是我们经常会听到的拜占庭将军问题。
思考一下下面几个问题的答案,新浪微博可以丢吗?淘宝实物和宝贝描述不一样可以忍吗?试想一觉醒来如果你的定期存款账户从90万变成了9块钱呢?在一个没有中央处理系统的分布式系统中,如何保证信息不会因为某个节点服务器数据被篡改而无法保持真实准确。这是分布式系统的容错性问题,也即著名的“拜占庭将军”问题。“拜占庭将军”问题,首先由LeslieLamport在1982年在研究分布式系统容错性的时候提出,被称为TheByzantineGeneralsProblem或者ByzantineFailure。核心描述是军中可能有叛徒,却要保证进攻一致。
关于“拜占庭将军”问题的非正式简单描述是:拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围这个敌人。这个敌人虽不比拜占庭帝国,但也足以抵御5支常规拜占庭军队的同时袭击。基于一些原因,这10支军队不能集合在一起单点突破,必须在分开的包围状态下同时攻击。他们任一支军队单独进攻都毫无胜算,除非有至少6支军队同时袭击才能攻下敌国。他们分散在敌国的四周,依靠通信兵相互通信来协商进攻意向及进攻时间。困扰这些将军的问题是,他们不确定他们中是否有叛徒,叛徒可能擅自变更进攻意向或者进攻时间。在这种状态下,拜占庭将军们能否找到一种分布式的协议来让他们能够远程协商,从而赢取战斗?这就是著名的拜占庭将军问题。
信任是以商业银行为主体的存款类金融机构得以发展的基石。如果无法解决分布式系统容错性问题发展分布架构所带来的计算性能大幅提升,成本降低的益处无法弥补其信息数据不可靠带来的极大风险。
区块链解决信任问题
2008年11月1日,“密码学邮件组”里出现了一个新帖子:“我正在开发一种新的电子货币系统,采用完全点对点的形式,而且无须授信第三方的介入“,该帖署名塞托西·中本聪(SatoshiNakamoto)。两个月之后,于2009年1月3日,中本聪发布了开源的第一版比特币客户端,宣告了比特币的诞生。以区块链为底层设计的比特币是一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。该网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。
简单来讲就是每一个区块数据,包括时间、地点、交易对象和数量,都会被记录下来并编号,然后链接到下一个区块中,并通过适当的激励机制让人人都参与记账和交易行为认证,除非推倒重来,否则数据记录不可更改。
让我们通过建立一个简化的去中心系统直观地理解一下区块链的工作原理。假设A借给B五元钱,如果A并不信任B怕B赖账不还钱,通常情况下需要找一个双方都信任的第三方机构证明A的确借给了B五元钱。考虑如下情况,全人类可以用意念直接交流,在A,B借贷关系形成的时刻A向全人类说B欠他五块钱,这时就不需要一个第三方系统证明这笔借贷关系的真实性,B也不能抵赖不还钱,因为所有人都知道A有5元钱给了B,现在B有了5元钱。这就是一个去中心化的借贷系统。
问题是,全世界人民为什么都是正义的化身要帮A记得B欠他钱呢?这里我们可以引入激励机制。凡是第一个听到B欠A五块钱的人会得到记账的报酬,可以假设为0.5元。这就是所谓的“矿工“和比特币挖矿。当这种去中心的数据存储系统开始流通运转起来,A起初的交易被记录为000,下一个人记录000信息的行为广播为001,这就是所谓的“时间戳”。A突然发现自己可以把当初借给B的5元钱再借给C,只需要向全人类广播A有5元钱借给了C,C现在有5元钱即可。因为大家并不能有效辨别C得到的5元钱是不是A当初借给B的5元钱。为了解决这类问题,广播机制规定系统中的每笔交易都必须打上标记,标记包括发生的时间,地点,数额,对象,这些具体的信息比如记作325,下一个听到这笔交易并做记录的人向其他人广播时也会拥有一个上一个标记值为325的标记,也许是487。这就是所谓的“双重支付”与“哈希值(随机散列)”。
某天,小绿和小红都听到了同一个人的广播,欢天喜地地记录了下来并且得到了5毛钱,又同时向全世界广播被别人记录下来。这样一来同一笔交易因为记录人的不同而分叉成了两条链。为了防止交易记录像细胞分裂一样自我繁殖,系统又加了几条规则,每个人听到广播后必须完成一套标准的全国中小学生广播体操,再转50个圈圈再进行记录,从而把记录人的先后区分开来。这就是所谓的“工作量证明”。
至此整套系统便解决了陌生人之间的信任问题,完成了去中心,去信任,数据不可篡改的三大核心任务。每一笔交易和交易记录都是一个区块,而这些区块又按照时间顺序相互连成时间链,这就是区块链的设计原理。事实上,区块链底层设计要比这个例子复杂得多,有兴趣的读者可以自行到各大比特币论坛或者阅读中本聪2008年论文的原文进行研究。
热门评论