区块链是什么,一文给您讲清楚

时间:2022-04-21
本文章向大家介绍区块链是什么,一文给您讲清楚,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

未来已经来临,只是尚未流行。用这一句来描述当下的比特币区块链再合适不过了。从上周开始,曾经不可一世的比特币开始从高点回落,跌幅一度超过40%,接近腰斩。说到比特币,自然而然就要谈其背后的核心技术——区块链。区块链是比特币的底层技术和基础架构,本质上是一个去中心化的数据库,它是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块。

1

最初的设想

比特币最初的构想来自上世纪初期奥地利经济学派著名经济学家、诺贝尔经济学得主哈耶克。他在《货币的非国家化》的论文中第一次完整的阐述了一种去国家化的非主权货币的构想:即废除中央银行制度、允许私人发行货币,并自由竞争,这个竞争过程将会发现最好的货币。这种去中心化、自由竞争的非主权货币便是比特币的理论原型,只是当时还没有强大的计算机,也没有互联网,如何从技术上完美实现这一构想,一直悬而未决。

直到2008年11月1日,一位自称为中本聪的人在网络上公开发表了一篇题为《比特币:一种点对点的电子现金系统》的报告,在该报告中,中本聪描述了一种完全基于点对点(Point to Point,P2P)的电子现金系统,该系统使得全部支付都可以由交易双方直接进行,完全摆脱了通过第三方中介(例如商业银行等中介支付机构)的传统支付模式,从而创造了一种全新的货币体系。于是,比特币就此诞生了。

02

区块链是什么

从技术的角度看,区块链就是比特币的基础架构及实现方式。没有区块链,就不会有比特币。于是,换一个角度讲,比特币当然也就是区块链的第一个应用,同时到目前为止,也是全球影响最广泛的一个应用。那么区块链究竟是什么?从字面意思上看,“区块链”就是以“区块”这个东西组成的链条。

区块链数据库里最基本也是重要的几个概念是地址、交易、区块、网络。比特币用地址来标识一笔交易的支出方和接收方,由于是用地址标识,所以看不到交易双方真实名字,于是具有匿名性。在这期间,所有的交易最终需被记到统一的账本上,而这个账本是通过区块确认并完成的。每一个新区块的产生,都会被打上时间戳,最终生成按照时间前后排列并加以记录的电子交易证明,于是也造就了它既是不可逆,也是不可篡改的。每个独立节点之间又通过比特币网络(Point to Point,P2P网络)来建立联系,这样就组成了一个去中心化、分布式的电子交易记录时间戳服务器系统。

比特币通过构造这样一个分布式时间戳服务器来解决双重支付问题,俗称“诚信交易”问题。比特币区块链本质上是一个去中心化的分布式账本,这个账本上承载的是一笔笔从一些地址转移到另外一些地址的资产交易。如果将整个区块链比作我们现实生活中的实物账本,那么每一个区块就相当于账本中的每一页,区块中承载的信息就是这一页上记载的交易内容。

03

去中心化

上述我们讲到比特币采用了基于P2P(Point to Point)的网络架构。P2P指的是位于同一个网络中的每台计算机都是彼此公平、对等的,各个节点(在互联网中每一台计算机可当成一个节点)共同提供网络服务,不存在任何“特殊”(中心)节点,也就是我们所说的去中心化。

接下来,我们来谈我们生活中熟悉的中心化交易。比方说,今年双十一,你在淘宝上买了件衣服,价值100元。那么整个交易的过程是这样的:你需将钱打到支付宝上——支付宝收到账后通知卖家发货——卖家发货——你收到货,点击确定收货——支付宝把钱打给卖家,这样整笔交易才算完成。

在这个过程中,虽然你只是跟淘宝商家买衣服,看上去是买卖双方两个人的事情,实则不然,中间还牵扯到了除了你和卖家之外的第三方机构支付宝,其实整个交易过程都是围绕着支付宝展开的,其中,支付宝充当了权威的第三方中介机构,保证了这笔交易的真实性,促使了交易能够顺利完成,这便是中心化处理模式的好处。但是这样的一个中心化系统也有个致命的弱点:一旦这个中心出现问题,如被篡改或损坏,整个系统就会面临危机乃至崩溃。就好比支付宝一旦被攻击,拿了你的钱跑路了或者不认账,没有把钱给卖家,这样的话你就悲剧了。

如果这个时候有个去中心化的交易系统环境,那么完成这样一笔交易就显得比较简单了,你跟卖家无需通过支付宝联系,直接跟卖家交换手机跟钱就好了,然后向社会的其它公众广而告之,声称这笔交易已经完成了,这样就0K了。这样我们可以看到,在没有支付宝这样的中介机构时,我们的交易会变得更加便捷,同时也不再需要担心一些与自己交易无关的信息被泄漏。

在上述这个例子中,我们只是谈到涉及到了两个人的交易,实际上还不足以把去中心化交易的好处完全展示出来,设想一下,如果有成千上万人进行交易,这种去中心化的交易模式就可以节约很多资源(毕竟一个中心机构运行也是需要消耗社会资源),使得整个交易自主化、简单化,并且排除了被中心化代理控制的风险。

讲到这里,你可能会想到一个问题,那就是如果没有了权威的中心机构代理,怎么样才能保证每笔交易的准确性跟有效性呢?

比如说,你同样用100元跟卖家A买了一件衣服,在有中心机构代理的情况下,很显然,你的账上就会因为买衣服花了100元而少了100元,卖家A的账上自然而然地会多了100元。如果去中心化的情况下,就有可能出现,你用同样的100元,分别向卖家A与卖家B各买了一件100元的衣服,即“双花问题”,即没有中心化机构记账的情况下,你可能作弊,花了100元而不从账上减少100元(正常中心化记账情况下,银行会在你的账减少100元),因为没有像银行或支付宝这样的中心化机构统一记账而存在的作弊可能。

04

两个必要条件

由上述问题我们可以看到,从记账的角度,如果要达成去中心化并防止有人作弊的目标,至少要同时具备以下两个条件:

一、我们所用账本数据的存储必须是去中心化的,不能指定任何参与方拥有特殊的保存账本的权力,或者说,我们需要让所有参与方都平等地拥有保存账本的权力。

二、在记账过程中,记账的行为必须是去中心化的,不能指定任何一方拥有特殊的记账权力,或者说,我们需要让所有参与方都平等地拥有记录账务数据的权力。

我们先看第一个条件,这个并不复杂,我们只需要让系统的每个参与方都能保存完整账本即可。接下来,我们把第二个条件加入进来,这时候发现麻烦来了:在所有参与方都可以保存账本的前提下,又让所有参与方都拥有记账的权力,必然会导致账本数据的不一致。

这个道理很浅显:即使不考虑恶意的参与方,由于每个参与方所处的物理环境不同,因此接收到的账务信息不可能是完全一致的。而作为一个记账系统,数据的一致性是最基本要求,如果我们不能拥有一致的账本数据,大家记的账各不相同,那么整个记账系统无疑会乱作一团,也就没有任何价值了。

05

拜占庭将军问题

由此可以看出,在去中心化以后,整个系统就没有了中心权威机构,那么信息的可信度以及传递过程中的准确性便会面临问题。

我们先回顾一个历史上的经典问题:拜占庭的将军们围攻一座城堡,军队被分散成很多分支,每一支军队由一名将军独立指挥。将军们之间通过传令兵来保持交流,以期达成一致的行动(进攻或撤退)。但是有些将军是隐藏的叛徒,他们会用虚假的信息来扰乱忠诚将军们的计划。大家并不知道叛徒是谁,那么,忠实将军们有办法达成一致的行动而不被虚假信息干扰吗?

这个例子其实是由研究分布式一致性问题的祖师级人物莱斯利兰波特创造的。他讲的是在点对点的通信过程中,参与各方几乎不可能在这种情况下达成信息的一致性,而在任何一个系统中,不一致的信息都会造成系统混乱。在去中心化的系统中没有统一的中央管理系统,因而信息传播的一致性更成为关键问题。

06

天才的发明

中本聪构造了一个极为精巧的系统,解决了这个看起来不可能完成的任务,这个系统被称为“区块链”。

接下来,让我们一步步按照中本聪的思路来构造一个简单的去中心化系统,见证区块链技术雏形的诞生。

1

去中心化

首先,我们先来建立一个去中心化的系统,为了方便理解,还是举上述双十一买衣服的例子吧。同样的,如果A向B买衣服,A向B直接转账100元,这个时候,A就在人群中喊了一声,“我是A,我向B转账100元,备注:买衣服!”,与此同时,B也在人群中喊一声,“我是B,我收到了A转账给我的100元,已经发货!”。这个时候,人群中的路人甲乙丙丁都听到了这个消息,于是所有人在自己的账本上记下了信息“A给了B100元,买衣服,B收到100元,并已发货。”就这样,一个去中心化的系统就悄悄建立起来了,不再需要类似支付宝这样的权威机构作为担保了。因为即使如果有一天B突然改口了,说没有收到A的100元货款,这个时候那些路人甲乙丙丁就会站出来说“不对,我的小本本上记录了你某时某刻收到了A的货款100元”

2

“双花”问题

接下来,你可能已经发现了,在上述的模型中所支付的“100元”可能已经没有那么重要了。在我们最原始的社会交换中,是以物易物,比如一头猪换一头羊,由于供需很难直接匹配,于是人们才开始寻找贝壳、黄金等价值交换的载体,再后来由政府银行等权威机构背书,黄金白银变成一张张的纸币。到如今互联网时代,连纸都变得可有可无了,支付变成了简单的“记账”行为,只是云端账本里的数字发生了变换。也就是说,任何东西都可以在上述模型中进行交换,前提是大家认可这个东西。这个时候,你的脑海中是不是浮现出了三个字——“比特币”,没错,“比特币”大概就是这么一个东西。

过了一段时间,这个系统已经开始慢慢地运转起来了。可是这时有人发现不对呀,只是单纯地用记账的方式来记录这笔交易,系统中这么多人,怎么保证没有重复登记?换句话说,没有了中心机构统一记账,怎么能确保A转账给B的这100元,不会重新拿来转账给C?即如果只是单纯地记录交易,就不能确认A转账给B的这100元跟A转账给C的这100元不是同一个100元,如果是的话,就会造成“双花”问题,系统便会混乱。

为了防止这种现象发生,除了中心化记账方式之外呢,还有另外一种方法,就是你只要确保这笔交易的上一笔交易是正常的就好,只要能追溯到原头,这笔交易的真实性便能得到确认。于是反过来说,只要在你创造100元的时候,给这个100元打上一个标记便好,比如说标记为001。然后以后在每一笔交易的时候,在人群中高喊“A转账给B100元”时,额外加上一句话“这个100元来自001那条记录,我所说的这句话标记为002”。接着那些路人甲乙丙丁便纷纷记录下这些信息,并把这条信息传递下去。抽象点说,以后某人在发生交易时,喊话的格式就变为:“这句话编号为XXX,上一句话的编号为YYY,某某给某某转账100元!”这样的话,就能确保每一次喊话的上一次喊话的真实性,即可以解决“双花”问题。

上述喊话记账模型便是中本聪第一版比特币区块链协议的简化版。

3

该听谁的

解决了交易双方真实性问题之后,接下来还会面临另外一个问题。即这些路人甲乙丙丁的能力及诚信问题。在没有中心权威机构的情况下,系统正常运转要首先要保证账本记账的一致性问题,唯一的方法便是只保存一本大家都认可的账本。那么问题来了,这么多路人甲乙丙丁都在记账,然后最后只选一本账本,那么该由谁先来记账呢?毕竟大家都是自由平等的。于是引入了竞争机制,按照大自然规律,优胜劣汰。

如何竞争呢?设定一个规则:既然是要记账,那就用数学方法来解决吧,大家去解数学高等函数吧,时间是10分钟,看谁解题的速度又快又准,每解一道题记一个编号,如01,02等,以此类推。10分钟时间一到,系统开始摇号,摇到谁的号,谁就来记账。这个过程有点像买彩票,10分钟内谁解的题目越多,得到的编号也就越多,被摇到的机会就越大,这相当于买多注彩票,中奖的概率大一点,但不代表一定会中奖。

说到这个时候,你是不是又想到了比特币?没错,这个竞争记账权的过程便是比特币的挖矿过程。其中解数学高等函数代表着挖矿的难度,解题速度意味着算力,竞争规则类似于工作量证明。

4

凭啥记账

这个时候,你可能会问,凭什么你喊一句,我们就要帮你记账呀?为了激励大家帮忙记账传话,系统设置了第一个听到喊话并且记录下内容在账本的人一些奖励,以此鼓励大家积极传话与记账。比如,第一个听到喊话并且记录下来的人,可获得100元奖励,这100元是你凭空得到的,也算是系统对你辛勤付出劳动的报酬。而你记录下这句话之后,要书上告诉其他人你已经记录好了,让其他人放弃记录这句话,并且把你自己的记录编号提供出来,让别人有据可查,然后还要再把上一句话加上你这一次的编号一起喊出来,供下一个人记账。当这个规则定下来之后,这个系统中就会出现大量的路人甲乙丙丁,他们开始整天竖着耳朵监听周围发出的声音,以便争取抢占下一次记账权力,然后获得系统给予的奖励,于是,下一轮竞争记账权便又开始了。

最终,区块链通过构造一个以竞争——记账——奖励为核心的经济系统,解决了去中心化记账的难题。

07

总结

如果把整个世界比作一个大的区块链来说,我们每个人就相当于每个节点(互联网中,每台计算机是一个节点),我们所要做的就是准确无误地记录生活中发生的事情,所谓准确无误,即是不能重复记载,我们采用签名确认的方式来确定每一件事情的发生(时间戳服务器),记录时必须有上一个人的签名,才能签名,以确保事情来源的真实性。由于我们每个人都是平等的,谁也没有特权,即我们谁也不服谁,也就是说不知道听谁,导致记录事情时,信息传递会不一致,于是我们约定好,看谁的计算能力强(工作量证明),谁先记账,每10分钟竞赛一次,获胜者优先获得记账签名,接着传递给下一轮的获胜者,以此类推。由于最终被承认并且留存的账本只能有一份(即最长链机制),但记账者多且人人平等,因此只能少数服从多数,即最终每件事记录的签名最多,便以这份签名的信息生成一个区块,并入我们的世界中,其它的签名信息作废,生成区块的签名者会获得一份奖励作为报酬,以此来鼓励你继续对这个世界作出贡献。这样,我们一个去中心化的世界便建立了,这世界也就是我们所说的区块链。