LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 行走笔记:清华陈葳 正本清源,区块链技术的原理和问题 (上)

行走笔记:清华陈葳 正本清源,区块链技术的原理和问题 (上)

2019-12-25 行走 来源:区块链网络

今天行走整理的这篇笔记来自清华数字金融资产研究中心陈葳博士。

在币乎的各位币东可能会觉得对于什么是区块链这样基础的概念性问题已经了然于胸了,不会有什么问题。但陈博士的这个讲座,不仅对小白用户是区块链很好的启蒙,对区块链老鸟在不同问题的思考上也会带来很多启发。今天会分享上篇,以下,enjoy:

笔记来自:清华大学数字金融资产研究中心 数字金融2019年度峰会。笔记内容未经主办方和嘉宾审核,仅供大家学习与参考。笔记内容仅代表嘉宾个人观点。

上面是我的个人介绍。

首先希望给大家解释下区块链是什么,为什么是区块链具有这些独特的特性。

如果我们对概念定义不清,不确定它是什么和为什么,在应用的时候就会不清楚会有什么挑战,也不知道适合放在什么地方去应用。

从广义上,能把数据记住的都叫区块链。那所有的数据库都是区块链咯,80年代区块链就开始有了?好像也不太对。区块链有各种各样的定义,你也搞不清哪个定义好。

搞不清的情况下,我们就信《人民日报》


它对区块链的定义是:具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点的,分布式的共享账本和数据库。

所以区块链首先还是一个数据库,但具备如上这些特点才叫区块链。这是比较狭义的定义。这些特点也都是相辅相成,缺一不可的。

特性一:全程留痕,可以追溯


要解释什么是区块链,就要从它的几个特性说起。

区块是一堆可以打包的交易记录。就是通过打包成块的方式把信息加以记录。

每个区块包含:

(1)区块头:记录了交易的特性,区块头指向前一个区块。区块头会告诉你这个区块的前一个区块是谁;

(2)签名和验证:告诉你数据应该是这样的,经过了签名,如果改了就验证不过去了;

这样做的好处是每一块都记录了前面一块是谁,连起开就是一条链。区块链中记录了每一次交易,换句话区块链记录的是交易的过程而不是交易的结果


传统数据库也保存了记录 但是是临时保存的。比如一开始有5块钱,然后改成了7块钱,为了防止在把5改成7的过程中断电了或者程序出问题。传统数据库发明了日志,会把“5改成了7”这件事放在日志里,没事时再慢慢改到数据库中去。所以实际上传统的数据库也是有过程记录的日志的。但传统数据库只要数据写进数据库没坏,没有问题,日志就删掉了。

那是不是把传统数据库的日志保留下来就是区块链了呢?也不是。

这就要说到区块链的验证机制,它的第二个特征。

特征二:写入的历史数据不可篡改

区块链不能够被局部篡改。在一个区块里做了一点点改动,下一个区块头依然会指向上一块,上一块有摘要放在下一块的区块头里,稍微动一点,摘要也得动,下一个区块头也得动,后面全部都得动,否则被改过就会被发现。

不可篡改一定是是好事么?未必。很多事情能够存在就在于能够篡改。比如年底了,企业都想去调调账,审计如果说企业不能自己调账,多少公司会倒啊。(行走做个小注释:在会计准则里,对一笔账是计入资产还是负债栏内,其实是给予了企业一定的自由度的,记到成本列支中企业的收益就会更低,记到利润中收益就会更高,但总之这是合法的避税或者增加公司利润的会计行为。如果记了账到年底不可调,有些企业会看起来盈利很多,但都是浮盈,有的会亏损很多实际收益很好,并无法反应企业主观想向外界呈现的面貌)

第二个是非法言论,在互联网上可以直接删帖。不可篡改要怎么办呢?整条链删掉重新写?

不可篡改是一个技术特色,但未必是好事。而且链上不可篡改不代表事情不可篡改。无非是不要这个数据,再重新写一下。

那我怎么知道整条链是不是被重新写了一遍呢?这就需要除了我自己存着整条链,别人也得存。这就是互相监督。因此,私有链是无法实现不可篡改的。不可篡改除了密码学的验证,还有互相监督的机制。这就像结婚时把结婚照发到朋友圈,换人了,别人也能马上知道。也类似于登报广告,比如营业执照丢失了,就需要广而告之,丢的那个无效了。

不可篡改的原理很简单,加密和签名的手段确保了链上信息改一点我能快速看出来,不需要一点一点比较改没改。二是因为链上信息复制给了所有人,改了别人就能看出来。了解了原理后,不可篡改并不神秘。

特征三:去中心化,集体维护

把数据复制给所有人这件事本身就是达成共识的过程。区块链的共识和人类的民主是完全反过来的,区块链的共识是Leader说的话必须听,如果不听就把你踢掉。当然这个Leader是可换和经常换的。但达成共识这件事本身是很难的。

比如在现实中,你找你的暗恋对象在微信上说:明晚一起吃饭吧。她没理你。没说去还是不去。你要因为她没理你,结果没去,可能人家就会问你为什么没来?所以信息发出了,你不清晰对方是看见还是没看见,直到对方回了消息为止。

所以如果通信本身是不可靠的,或者信息传递过程是有延迟的,你是不可能清楚对方是看没看到的。如果两两沟通都会有这个问题,如果把信息复制给更多人,必然会有人没听见,有人听见记录错了,有人会有延迟。

这就会导致因为通讯延迟、计算延迟等问题导致区块链记录的信息不同步的问题。比如一个黑龙江的节点记录了一个数据,没看到海南的节点记录就以为这个块结束了,而海南的记录就没有被黑龙江的记录进去。这样在传播到比如北京时就会产生两条不同的区块链信息。最后到底谁对是不知道的。但一个数据库只能有一个状态,一份数据为真。这种情况在区块链系统中就被称为“分叉”,在数据库系统里是FLP不可能原理。

FLP不可能原理讲的是,如果可能存在网络或节点的故障,则无法在任何有限长的时间内保证实现共识。这件事本身是很麻烦的。


但区块链会有解决方案。只是解决方案会有两种前提假设:

一种是假设参与信息记录的我都知道是谁。这就类似参与选举时要有选民证,有选民证是个很麻烦的过程,但有了证投票很简单。有了选民证才能确保每个人只有一票,否则就会有人去很多地方投很多票,导致一票多投的情况。

在联盟链中,我们假设身份是难伪造的大家都知道它是谁,大家都是持证来投票的。这时候就可以用投票机制确定刚才提到冲突双方到底是谁赢了。如果多数投票的觉得黑龙江的是真的,那就是黑龙江的是真的。投票机制最重要的因素是你要能确认他的身份。联盟链就是通过联盟的方式来确认身份的。

明晚21点21分继续后面的分享

—-

编译者/作者:行走

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...