美文网首页
18区块链:永不消失的交易记录Blockchain: a rec

18区块链:永不消失的交易记录Blockchain: a rec

作者: 夕等会_ | 来源:发表于2019-02-19 21:46 被阅读0次
    a record of transactions that never go away

    Blockchain: a record of transactions that never go away

    上节,讲了密码学在比特币中的运用。知道了比特币最大的价值,或许在它的副产品区块链上。

    这节就来说说区块链。区块链是什么?密码学在区块链的哪里出现了?区块链值钱吗?这就要这节要解答的几个问题。

    区块链是什么?

    简单来说,它是由现代密码学保护,并以串联方式衔接在一起的交易记录。你也可以把它理解成N个账本,每个用户手里都有一份,内容随时更新,但只能添加信息,不能修改信息。

    理解区块链最好的方式,就是比特币。上节我们着重说了比特币的交易,是怎么在密码保护下得以确认的。

    这节,我们站在更高的层次上,看看这个交易系统是怎么运作的。知道了这个,你就能知道密码学在区块链中哪个环节发挥了作用。

    在比特币中,所有的转账记录每个电脑都有一份。但要做到这一点可不容易,要解决3个问题:

    第一,所有电脑里的账本怎么同步?

    因为有些电脑上可能保存的是最新版的账本,可是有的电脑根本就没有打开客户端软件,还有的电脑干脆就是关机的。所以不同电脑上的账本是不一样的,怎么让它们同步就是第一个问题。

    第二,怎么防止交易记录被篡改?

    第三,怎么防止一笔收入被重复使用?

    比如说,段誉收到了王夫人500块钱后,第一秒付给了薛神医当药费,第二秒马上又付给了慕容复当饭费。网络中因为物理线路上的差异,有些电脑会先收到第一笔支付信息,有的电脑会先收到第二笔支付信息。所以有可能一部分认为第一笔支付是有效的,另一部分认为第二笔支付是有效的,这不就乱套了吗?怎么解决它,就是第三个问题。

    解决这三个问题的方法就是一个——区块链。

    区块链之所以叫“链”,体现的就是区块与区块间串联的结构。注意是串联,它不是星型连接、环型连接,也不是并连,而是首尾衔接的串联。

    在区块链中,每一个区块里都包含着成百上千条交易记录。只要经过检查合格了,就写在之前最后一个区块的后面。

    那都检查什么项目呢?比如说,交易记录的签名对不对,比特币是不是重复使用了等。

    这些检查工作由比特币矿工做。矿工检查合格后,就发送给其他矿工,其他矿工接到新区块也会先检查。如果检查合格,就把这个新区块添加在自己电脑里存储的那条链的最末尾。

    不过同一时间有N多矿工都在做这件事,它们检查的那个新区块里的内容都是最近刚发生的交易。大概率说,一个新区块里的交易记录大多数是同时到的,但肯定还会略有区别,所以就会面临一个问题——它们会同时向网络提交N个不同版本的新区块。

    比如说同一时间有200个不同版本的新区块出现,那选哪个为大家的标准呢?

    比特币网络的解决办法是,限制单位时间里产生新区块的数量。

    比如说,限制10分钟内只允许产生一个新区块,于是谁先检查完并上传了这个新区块,就以谁的为准。

    当然,10分钟只是我举的例子。实际中,这个硬性的时间间隔,是通过让矿工完成两道数学题来保证的。

    这两道数学题,一个简单,一个复杂。而这里就包含着密码学的部分,而且第一道简单题是区块链之所以能称为“链”的关键。

    我们先说简单题,它是这样计算的:

    计算出一个字符串,这串字符由3部分组成。第一部分是这个新区块内包含的成百上千的交易记录,第二部分是这个新区块的基本信息,最后一个部分是前一个区块的SHA256函数值。

    三部分综合在一起,就是第一道题的结果,它是一串字符。

    为什么说这是区块链之所以称为链的重要步骤呢?

    就是因为当前区块要求包含前一个区块的SHA256函数值,于是区块与区块间就勾连起来了。任何一个区块都包含了它之前所有的历史,所以我们把它称为“链”。

    好,简单题这样就算完了。对当今任何计算机来说,瞬间就可以计算完。

    而第二道难题就不是瞬间了,一般来说需要整个比特币网络全部计算机加起来,运算大约十几分钟才能算完。

    这道题之所以这样难,主要作用就是让提交新区块的人在时间间隔上可以拉开足够长的时间。以免发生咱们刚才说的新区块同时出现的问题,引起麻烦。

    第二道题的题目是第一题的结果加一个随机数,组成一个新的字符串。这个新字符串用SHA256运算一下,会得到另一个256位的二进制数。

    但什么才算答案正确呢?

    得要求这个256位的数字,前72位全部都是0,才算答案正确。

    你可能问了:你给我的可是个随机数啊,怎么可能这么巧合,算完后前72位都是0呢?是啊,那就得看运气喽。

    具体要有多好的运气呢?我们可以算一下:

    第一位是0的概率是1/2,第二位还是0的概率是1/4,这样延续下去,到了第72位仍然还是0的概率是1/2^72,也就是说要进行2^72次SHA256运算,整个比特币网络里,才有一次做对题目的机会。具体是谁做对的,说不好。你的算力越强,你的运气就会越好。

    一旦有人做对了,经过软件检查,新区块就会被放在当前区块链的末尾。

    对于其他矿工来说,虽然很羡慕,但客户端软件可没有情绪,它们按程序执行,检查新区块是否合格,合格的话就更新到自己的链的末尾,整个比特币网络承认了这个新区块。

    好,这就是比特币网络确认新区块的过程。

    我们回顾下,比特币区块链里的密码学是什么。

    就是做2道题,1个简单,1个复杂。简单的那个起到的作用是,记录交易信息,再把前后两个区块串联起来;复杂的那个起到的作用是,让每个新区块诞生的时间间隔足够长,以免出现新区块同时产生的情况。

    不论是哪道题,它们都只使用了SHA256函数,这是一种密码学相关的计算。

    这些就是区块链上的密码学技术细节,到这里你就能知道,比特币只使用了浅显易懂的密码学应用,并没有发明什么新的加密法。但因为精心的设置,整条链一直运行了10年。

    怎么说是精心的设置呢?

    咱举个例子。你可能会问:如果计算机性能提升很多,没人用CPU计算难题2了,而用速度是CPU几千万倍的专用集成电路(ASIC)做运算,几毫秒就能算出来了,怎么办呢?

    没关系。中本聪规定了,从某某序号的区块后,那个幸运的随机数的要求就变高了,不是前72位是零了,而要求前73位或者前74位是零,难度是从前2倍或者4倍了。而且这个难度是随着算力增加而增加的,这就保证新区块的生成时间总会有合理的间隔。

    除此之外,就算网络里非常不幸,出现了短短几秒钟诞生2个新区块A和B的情况,还可以通过下个新区块是从A先长出来还是B先长出来来解决。

    因为比特币网络还有个规则——整个比特币网络,只认可长度最长的那条链。

    这个规则可以防止有人伪造比特币。比如当前进行到B100这个区块了,下一个应该是B101,但有人手工制作出来了另一个区块,跟B101不一样,咱们把它叫作M101。

    这里的交易内容都是给他自己付钱,让他成为富翁的,所以这是伪造的嘛。但是,这样的伪造极难得逞。

    因为M101后面的以M开头的侧链M102区块还是得他一个人做,M103也是。可另一条以B开头的主链上B101、B102、B103是全网所有人在做。全网速度远远快于一个人的算力,所以这个人做出的区块链,长度总会比全网主链要短。

    而刚刚那条规则是,大家只认可最长的那条链,所以这个人即便伪造了交易记录,做出的那条侧链始终得不到认可,所以他没法伪造比特币。

    只有一种情况下他会得逞,就是他一个人的算力超过所有其他人的总和,那时他制作新区块的速度就快过所有人,他做的这条链就会更长,全网就认可他这条链了。但这么做太贵了,可能要几十上百亿美元,所以可能性极低。也因此,区块链极难伪造。

    到此为止,就是密码学在区块链中的应用。

    最后,我们来看区块链的念头是怎么出现的。

    它不单是从技术细节中长起来的,它是技术加文化观念,一起孕育出来的。

    技术我们刚刚说过,而文化观念就是分权。分权这种念头从古希腊就有,在古希腊人眼中,集权是野蛮的标志。这是西方文化的基石,分权的思想扎根于每个人脑中。

    密码学家更是把这种观念发挥到极致,他们甚至是无政府主义的支持者。所以即便他们明知美联储起到的作用是积极的,但他们还是拒绝把发行货币的权力归于一个部门。因为理论上,任何国家都可能沦落到津巴布韦的局面,之后央行印钞就会加剧整个国家的经济崩溃。

    其实,比特币是很难取代央行的。因为央行的存在早就是所有人的共识,而改变人群的共识是最难的。

    但区块链,还是可以改变其他一些东西的。

    比如,两个国家的合作中,任何机构可能都没资格当作第三方审核过往协议,这时候区块链因为内容不可篡改,就更加可信。

    还有比如说上千年的文物收藏,其实任何机构都没足够硬的证据能说明它过往的转手经历,但现在偏偏就是有些部门敢在上面盖章认可它履历的真实性。这种认证方面的集权,其实也是不合理的。当区块链出现之后,就可以把过往交易记录都写在区块链中供以后的人查看核对。

    一项密码学应用加一种追求分权的念头创造出区块链,它不一定会挑战现有的体制,但却会给现有的很多难题提供了分权的选择。

    如果众多分权的协作越来越流行,成为了主流,今后人们合作的模式中就有一部分是由区块链维系的。这就是一种继血缘、民族、法律之后的一种新的人类关系。

    但区块链中的密码真的可靠保险吗?

    只能说在量子计算机诞生之前是非常稳妥的,量子计算机诞生之后安全度会大幅下降。

    关于量子计算机破解传统密码的内容,我们放在下节细说。

    Blockchain

    相关文章

      网友评论

          本文标题:18区块链:永不消失的交易记录Blockchain: a rec

          本文链接:https://www.haomeiwen.com/subject/nlvxjqtx.html