当前位置:首页 > 知识学习 > 详情

区块链发(fa)展历程分析,区块链技术的发展了几个阶段

2025-06-19 20:01:44 阅读(44) 娱乐资讯网

在这篇文章中我们探一(yi)探区块链技术背后的(de)历史,从上世纪80年代的拜占(zhan)庭将军问题到今天的复杂(za)的智慧契约,区块链是如何一步(bu)步走到今天的呢?

区块链(lian)基础

区块链是随着(zhe)比特币等数字加(jia)密货币的日益普及(ji)而逐渐兴起的一种全新技术,它提供了(le)一种去中心化的、无需信任(ren)积累的信用建立范式,目前已经引(yin)起金融行业、科研(yan)机构、政府部门和投资公司(si)的高度重视与广泛关注。

区块链技术(shu)通过建立一个共同维护且(qie)不可被篡改的数据库(ku)来记录过去的所有交易记录(lu)和历史数据,所有的数据都是分布式(shi)存储且公开透明的。在这(zhe)种技术下,任何(he)互不相识的网络用户都可(ke)以通过合约、点对点记账、数字加密等方式达成信用共识(shi),而不需要任何的中央信任(ren)机构。在这种技术(shu)下,我们可以建(jian)立数字货币、数字资产、智(zhi)能财产以及智能合约等。

通过上一章的介(jie)绍,相信大家已经对区块链和比(bi)特币有了初步的认(ren)识,在本章中,我们将继续探讨区块链的(de)技术细节。

本章将首先介绍区(qu)块链的相关基本概(gai)念及其运作原理,然后介(jie)绍区块链上可以进行的操(cao)作和相关细节,最后再讨论区块链上的交易流程和它(ta)的验证过程。

区块链技(ji)术

区块链(lian)本质上是一个对等网络(peer-to-peer)的分(fen)布式账本数据库。比特币的底层就采(cai)用了区块链的技术架构。

区块链本身(shen)其实是一串链接的数据区块,其(qi)链接指针是采用密码(ma)学哈希算法对区块头(tou)进行处理所产生的(de)区块头哈希值。每一个数据块中记(ji)录了一组采用哈希算法组成的树状(zhuang)交易状态信息,这样保证了每(mei)个区块内的交易数据不可篡改,区块(kuai)链里链接的区块也不可篡改。

1.基(ji)本概念

一个完整的区块链系统包(bao)含了很多技术,其中有存储数据的数(shu)据区块及其之上的数字签(qian)名、时间戳等技术,有作为(wei)支撑的P2P网络和(he)维护系统的共识算法,有挖矿和工(gong)作量证明机制,有匿名交易机制和(he)比特币钱包,还有链龄、UTXO、Merkle树、双花等相(xiang)关技术概念。

正是这些技(ji)术,使得区块链在无中(zhong)心的网络上形成了运转不息的(de)引擎,为区块链的交易、验证、链接等功能提供了源源不断的(de)动力。

2.数据区块

比特币的交易记录会(hui)保存在数据区块之中,比(bi)特币系统中大约每10分钟会产生一个(ge)区块,每个数据区块一般包含区块头(tou)(Header)和区块体(Body)两部(bu)分

区块头封装(zhuang)了当前的版本号(Version)、前一区块地址(Prev-block)、时间戳(Timestamp)、随机数(Nonce)、当前区块的目标哈希值(Bits)、Merkle树(shu)的根值(Merkle-root)等信息。

区(qu)块体中则主要包含交易计数和交易详(xiang)情。?交易详情就是比特币系统中(zhong)的记账本,每一笔交易都会被永久地记(ji)入数据区块中,而且(qie)任何人都可以查询。

区(qu)块体中的Merkle树将会对每一笔交易进行(xing)数字签名,如此可以确保每一笔交易都(dou)不可伪造且没有重复交易。所有的交易将通过Merkle树的Hash过程产生一个唯一Merkle根值记入区块头。关于Merkle树本章后面将(jiang)详细介绍。

如果你使用的是比特币核(he)心钱包(Bitcoin core),那么每当你打开客户端时(shi),区块数据文件都会被同步(bu)到电脑硬盘中,可以在blocks文件夹下找到它们(men)。

我们还可以使用hexdump指令在终(zhong)端上将数据区块以十六进制的方式(shi)显示出来。我们(men)可以通过解析这些(xie)数据得出交易记录、区块大(da)小等基本信息,?因此我们说区(qu)块链中的数据是完全公开透明的(de)。?我们使用指令hexdump -n 10000 -C blk00000.dat打(da)开了编号为00000的创世区块(比特币中的第一块区(qu)块链)。

3.挖矿(kuang)与分叉问题

区块在挖矿过程中产生。所谓挖(wa)矿,实际上是穷举随机数(shu)算法,把上个区块(kuai)的哈希值加上10分钟内(nei)的全部交易单打包,再加上一(yi)个随机数,算出一个256位的字符串哈希值,输入的随机数(shu)Nonce使哈希(xi)值满足一定条件就获(huo)得这个区块的交易记账权。

新产生(sheng)的区块需要快速广播出去,以便其(qi)他节点进行对其验证,以防造假(jia)。每个区块存着上一个区块的(de)哈希值,可以溯源到源头(tou),只有经过验证(zheng)后才最终获得区块的交易记(ji)账权。比特币系统会让挖矿的矿工(gong)竞争记账权(在主链上链接区块的权(quan)利),这个竞争机制就是工(gong)作量证明机制。

挖矿(kuang)需要付出大量的能源和时(shi)间,谁付出的工作量(liang)多就能以更大的概率获得一个(ge)区块的记账权。获取记账权的矿工会(hui)将当前区块链接(jie)到前一区块,形成(cheng)最新的区块主链,该(gai)矿工也会得到系统奖励的一定数量(2009~2013年每10钟产生(sheng)50个比特币,2014年至今每10分钟产生的比特币将(jiang)减半成25个)的比特(te)币。所有的区块链接在一起形(xing)成了区块链的主链,从创世区块到当前区块,在区块链之(zhi)上的所有数据历史(shi)都可以被追溯和(he)查询。

需要说明的是,可能会出现不同地区的两个矿工同时(shi)“挖出”两个新(xin)区块加以链接的情(qing)况,这时主链上就会出现“分叉”。系统并不会马上确认哪(na)个区块不合理,而是约定后(hou)续矿工总是选择累计工作量证(zheng)明最大的区块链。因此,当主链分叉以(yi)后,后续区块的矿工将通过(guo)计算和比较,将其区块链接到当(dang)前累计工作量证(zheng)明最大化的备选链上,形成更长的新(xin)主链,并自动抛弃分叉处的短链,从(cong)而解决分叉问题。

4.时间戳和不可篡改性

时间戳是指从格林威治(zhi)时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,通(tong)常是一个字符序列,唯(wei)一地标识某一刻的时间。在(zai)比特币系统中,获得记账权的节点在(zai)链接区块时需要在区块头中加盖时间(jian)戳,用于记录当前区块数据的写(xie)入时间。

每一个随(sui)后区块中的时间戳都会对前一个时间戳(chuo)进行增强,形成一个时间递增的链(lian)条。时间戳技术本身并没有多复杂,但在区块链技术中应用(yong)时间戳却是一个重大创新,时(shi)间戳为未来基于区块链的互联网和大数(shu)据增加了一个时间维度,使得数据更容易(yi)追溯,重现历史也成为可能。

同时,时间戳可以作(zuo)为存在性证明(Proof of Existence)的重(zhong)要参数,它能够证(zheng)实特定数据必然在(zai)某特定时刻是的确存在(zai)的,?这保证了区块(kuai)链数据库是不可篡改和不可伪造的,这(zhe)也为区块链技术应(ying)用于公证、知识产权注册等时间敏感(gan)领域提供了可能。

5.分布式数(shu)据库

比特币系(xi)统中的区块就像一个记账本一(yi)样,记录了所有比特币的交易信息(xi),每一个比特币用户(hu)的比特币收支情况都被永久地嵌入了(le)数据区块中以供别人(ren)查询。这些数据区(qu)块中的交易数据存放在每一个比特(te)币用户的客户端节点中,所有的这些节(jie)点则组成了比特币及其坚韧的分布式数(shu)据库系统。?任何一个节点的数据(ju)被破坏都不会影响整个数据库的(de)正常运转,因为其他的健康节点中(zhong)都保存了完整的(de)数据库。

6.UTXO交易模式

UTXO(Unspent Transaction Outputs)是未花(hua)费的交易输出,它是比特币交易过程中的基本单位。除(chu)创世区块以外,所有区块中(zhong)的交易(Tx)会(hui)存在若干个输入(Tx_in,也称资金来源)和若(ruo)干个输出(Tx_out,也称资金去向),创世区块和后来挖矿产生(sheng)的区块中给矿工奖励的交易没有输(shu)入,除此之外,在比特币系(xi)统中,某笔交易的(de)输入必须是另一笔交易(yi)未被使用的输出,同(tong)时这笔输入也需要上一(yi)笔输出地址所对应的(de)私钥进行签名。

当前整个区块链网络中(zhong)的UTXO会被储存在每个节点中,只(zhi)有满足了来源于UTXO和数字签名条件的交易才(cai)是合法的。?所以区块链系统中(zhong)的新交易并不需要(yao)追溯整个交易历史(shi),就可以确认当前交易是否合法。

7.哈希(xi)函数

哈希函数在比特(te)币系统中也有着重(zhong)要的应用,区块链中的数据并不只(zhi)是原始数据或者(zhe)交易记录,还包括它们的哈(ha)希函数值,即将原始数据编码为特(te)定长度的、由数(shu)字和字母组成的(de)字符串后,记入区块链。哈希函数有着(zhe)很多适合存储区块链(lian)数据的

优点:

1)哈希函数处理过的数据是单向(xiang)性的,通过处理过的(de)输出值几乎不可能计算出原始的输(shu)入值;

2)哈希函数处理不(bu)同长度的数据所耗(hao)费的时间是一致的,输(shu)出值也是定长的;

3)哈希函数的输入(ru)值即使只相差一个字节,输出值的(de)结果也会迥然不同。?比特币系统中最常(chang)采用的哈希函数是双(shuang)SHA256哈希函数,通俗(su)来说就是将不同长度的原始数据用两次(ci)SHA256哈希函数进(jin)行处理,再输出长度为256的(de)二进制数字来进行统一的识别和(he)存储。

总之,哈希(xi)函数是比特币系统中的关键技(ji)术,为比特币系统提供了很多便利。本书后面的章节将会对哈希(xi)函数做详细介绍,此处不赘述(shu)。

8.Merkle树

Merkle树是数(shu)据结构中的一种树,可以(yi)是二叉树,也可以是(shi)多叉树,它具有树结构的所有特点。如图2-4所示(shi),比特币区块链系统中(zhong)的采用的是Merkle二叉(cha)树,它的作用主要是快(kuai)速归纳和校验区(qu)块数据的完整性,它会将区块链(lian)中的数据分组进行哈希运算,向(xiang)上不断递归运算产(chan)生新的哈希节点(dian),最终只剩下一个Merkle根存入区块头中,每个哈希节点总是包含两个相邻的数(shu)据块或其哈希值。

在比特币系统中使用Merkle树有诸多优(you)点:?首先是极大地(di)提高了区块链的运行效率和可(ke)扩展性,使得区块头只需包(bao)含根哈希值而不必封装所有底层数据,?这使得哈希运算可以(yi)高效地运行在智能手(shou)机甚至物联网设备上;?其(qi)次是Merkle树可支持“简化支付验证协议”(SPV),?即(ji)在不运行完整区块链网络节(jie)点的情况下,也能(neng)够对交易数据进行检验。所以,?在区块链中使用Merkle树这(zhe)种数据结构是非常具有意(yi)义的。本书后面的章节将会对(dui)Merkle树做详细介绍。

9.双重支付

双重支付问题(ti)又称为“双花”问题(ti),即利用货币的数字特性用“同(tong)一笔钱”完成两次或者多次支付。在(zai)传统的金融和货币体系中,由于金钱货(huo)币是物理实体,具有客观唯一存在的(de)属性,所以可以避免双重支付的情况(kuang)。但在其他的电子货币系(xi)统中,则需要可信的第(di)三方管理机构提供保证。

区块链技术则在去中心化的系(xi)统中不借助任何第三方机构而只通过分(fen)布式节点之间的相互验证和共识机制(zhi),有效地解决了双(shuang)重支付问题,在信息传输的同(tong)时完成了价值转移。?区块链技术通过(guo)区块链接形成的时间戳技术加上验证(zheng)比特币是否满足UTXO(未花费交易)和数字签名,有(you)效避免了双重支付的问题。?如果有人(ren)用同一笔UTXO构造(zao)了两笔付给不同交易方的交易(yi),则比特币客户端只会转(zhuan)发最先被侦听到的那个。矿工会选择将那笔交易(yi)包入未来区块,当其中(zhong)一笔交易所在的区块后有5个链接(jie)的区块,这笔交易已经得到了6次确认(ren)。在比特币区块链上(shang),6次确认后可以基本上(shang)保证比特币不被(bei)双花。

10.P2P网络

P2P网络(peer-to-peer network,对等网络)是一种在对等(deng)者(peer)之间分配任务和工(gong)作负载的分布式应用架构,是对等(deng)计算模型在应用层形(xing)成的一种组网或网络形式。?因此,从字面上,P2P可以(yi)理解为对等计算或对(dui)等网络,P2P网络示(shi)意图如图2-5所示。国内的迅雷软(ruan)件采用的就是P2P技术。

区块链系统是建立在(zai)IP通信协议和分布式网络的基础上的(de),它不依靠传统的电路交换,而是建立于网络(luo)通信之上,完全通过互联网(wang)去交换信息。网络中所有的节(jie)点具有同等的地位,不存(cun)在任何特殊化的中(zhong)心节点和层级结(jie)构,每个节点均会承担网络路由、验证数据区块等功能。网络(luo)的节点根据存储数据量(liang)的不同可以分为全节点和轻(qing)量级节点,全节点存储了(le)从创世区块以来的所有区块(kuai)链数据(比特币网络现在大约有几十GB,且还在不断增长中)。

全节点的优点是进行数(shu)据校验时不需要(yao)依靠别的节点,仅依靠(kao)自身就可以完成校验更(geng)新等操作,缺点(dian)是硬件成本较高。?轻量级节点只(zhi)需要存储部分数据信(xin)息,当需要别的数据时可以通(tong)过简易支付验证方式(Simplif?ied Payment Verif?ication,SPV)向邻近节点请求(qiu)所需数据来完成验证(zheng)更新。

11.加密算法

除了哈希算法以外,比特币中还存在(zai)一种为交易加密的非对称加(jia)密算法(椭圆曲线(xian)加密算法)。非对称加密(mi)算法指的就是存在一对数学相关的密(mi)钥,使用其中一个密(mi)钥进行加密的数据信息,只有使用另一个密钥才能对该信(xin)息进行解密。这对密钥中,对外公(gong)开的密钥叫作公钥,不公开的密(mi)钥就叫作私钥。打个(ge)比方来说,公钥就(jiu)像银行的账户,私钥(yao)就像是该账户的密(mi)码或者账户所有者的签名。

区块链(lian)之上的有效交易有一(yi)个用于交易发起方私钥签名有效的数字(zi)签名,而该交易的签名可(ke)以通过使用交易发起(qi)方的公钥进行验证(zheng)。?公钥可以通过算法从(cong)私钥中计算得出,但私钥(yao)却不能从公钥中推出。比特币系(xi)统中使用的就是一(yi)种非常典型的非对称加密算法——椭(tuo)圆曲线加密算法(ECC)。

比特币系统一般(ban)从操作系统底层(ceng)的一个密码学安全的随机源中取出一个(ge)256位随机数作为私钥(yao),私钥总数为2256个,所以很难(nan)通过遍历所有可能的私钥得(de)出与公钥的对应的私钥。用(yong)户使用的私钥还会通过(guo)SHA256和Base58转换成易书写和识别的50位(wei)长度的私钥,公钥则首先由私钥(yao)和Secp256k1椭圆曲线算法生成65字节长度的随机数。

一般情况(kuang)下,比特币钱包的地址也由公钥(yao)所生成,其生成过程为首先将(jiang)公钥进行SHA256和RIPEMD160双(shuang)哈希运算,并生成20字节长度(du)的摘要结果(即Hash160结果),这个将作为(wei)比特币地址的主体(ti)(body)信息,再在前面加上(shang)版本前缀0x00,在后面(mian)添加4个字节的地址校验码。?地址校验码通过(guo)对摘要结果进行两(liang)次SHA256运算,取哈希值的(de)前4位产生。最(zui)后通过Base58处理把连在(zai)一起的版本前缀、主体信息(xi)和校验码转换成可(ke)以容易让人识别的比特币字符地(di)址。

12.数字签名

数(shu)字签名就是在信息(xi)后面加上另一段内容,作为(wei)发送者的证明并且证明(ming)信息没有被篡改。一般是发(fa)送者将信息用哈希算(suan)法处理得出一个哈希值,然后用私钥对(dui)该哈希值进行加密,得出一(yi)个签名。然后发送者再将信息和签名(ming)一起发送给接收者。接收(shou)者使用发送者的公钥对签名进行解(jie)密,还原出哈希值,再通过哈(ha)希算法来验证信(xin)息的哈希值和解(jie)密签名还原出来的哈希值是否一致,从(cong)而可以鉴定信息是否来自发送者(zhe)或验证信息是否被篡改。

13.比特(te)币的隐私模型

传统隐(yin)私模型为交易的参与者提(ti)供了一定程度的隐私保护,第三方(fang)不会交出交易者的个人身(shen)份信息,公众所得知的只是(shi)某个人将一定数量的货币发给了另外(wai)一个人,但是难以(yi)将该交易与某个特定身份的人(ren)联系起来,公众无法知道这人(ren)到底是谁。这同股票交易所发布(bu)的信息是类似的,每一手股票买(mai)卖发生的时间、交易(yi)量是记录在案且可供查询的,但是交易双方的身份信息却不予(yu)透露。但实际上,交易(yi)双方的个人信息(xi)是存放在第三方机构,所以一定程度上(shang)交易参与者的隐私信息还是会有泄露(lu)的风险。

在比特币的隐私模型中,所有的交易(yi)不需要第三方的操控,也(ye)不需要提供任何身(shen)份信息,只需要提供比特(te)币的地址就可以跟(gen)任何人完成一次准匿名的交易。在一定程度上,交易不可(ke)追溯到交易者本身,因此比特币上的交易可以在一(yi)定程度上摆脱监管(guan)。但通过对区块链上交易的地址以及(ji)交易额做关联分析,也可以获得上述文(wen)章内容就是交易者的蛛丝马迹。因此,比特币的交易还不是(shi)纯粹的匿名交易机制,而是准匿(ni)名(pseudo-anonymous)交易机制。

框架与特点

1.框架简介

目前大多(duo)数区块链技术的应(ying)用与比特币类似,大部分是在比特(te)币架构基础上的扩展。目前,区块链技术在金融行业得到(dao)广泛关注,被认为可以用来从最(zui)底层重构传统金融业现有的IT基础架构。我们将区块链的基础架构(gou)分为三层来进行讲解。

首先,在网络层之上,区块链是建立在IP通信协议和对等网络的基础上(shang)的一个分布式系统,和传统带中心的分(fen)布式系统不一样,它不(bu)依靠中心化的服(fu)务器节点来转发(fa)消息,而是每一(yi)个节点都参与消息的转发。?因此P2P网络比(bi)传统网络具有更高的安全性,任(ren)何一个节点被攻击都不会影响(xiang)整个网络,所有(you)的节点都保存着整个系统的状(zhuang)态信息。

其(qi)次,在数据层面上,区(qu)块链就是一个只可追(zhui)加、不可更改的分布式数据库系统,是一个分布式账(zhang)本。?如果是公开的区块链,也就(jiu)是公有链,那么这个账本(ben)可以被任何人在任何地方(fang)进行查询,完全公开透明。在区块链网(wang)络中,节点通过使用共识算法(fa)来维持网络中账本数据库(ku)的一致性。

同时采用密码学的(de)签名和哈希算法来(lai)确保这个数据库不可篡改,不能作伪,并且可追溯。?例(li)如,在比特币系统中,只有在控制(zhi)了51%的网络算力时才有(you)可能对区块链进行重组(zu)以修改账本信息。由于比特(te)币系统的设计者中本聪在(zai)系统设计中巧妙地加入了带有(you)经济激励的挖矿工作量证明(ming)(PoW)机制,使得即使(shi)拥有网络51%以上算力的人也(ye)不会损害其自身利益而发起对网络的攻(gong)击。因此,比特币系统自上线7年多来一直持续不断地(di)正常运行,没有出现过因为比(bi)特币系统本身缺陷而造成的安全故(gu)障。

再次,在应用层面(mian),我们可以用区块(kuai)链代替传统的登(deng)记、清算系统。?2016年6月22日,波士顿咨(zi)询公司指出,到(dao)2030年,全球支付业(ye)务收入预计将会达到8070亿美元。基于区块链技术的汇兑和(he)支付属于区块链的1.0应用版,其安(an)全性、交易时间、成本都会对传统支(zhi)付业务进行颠覆式改(gai)进。花旗银行也明确(que)指出,到2020年,如果各大金融机(ji)构都使用区块链技术(shu),每年能够节省超过200亿美元的成本。

国信证券分析报告指出,通过区块(kuai)链的点对点分布式的时间戳服务(wu)器来生成依照时间前(qian)后排列并加以记录的(de)电子交易证明,可以解(jie)决双重支付问题,从而带来结算成(cheng)本趋零的可能性。?根据德国银(yin)行的一份引用波(bo)士顿咨询的研究报告,欧洲银行的(de)IT成本支出平均占据银(yin)行整体运行成本的16%[5]。一个重要原(yuan)因就是传统银行在(zai)账本的维护、支付交易(yi)的结算和清算方面的架构(gou)过于复杂,维护成本(ben)过高。

在应(ying)用方面,区块链平台能够提(ti)供编程环境让用户编写(xie)智能合约。?通过智能合约(yue),可以把业务规则转化成在区块链平(ping)台自动执行的合约,该合约的执行(xing)不依赖可信任的第三方,也(ye)不受人为的干预。

理(li)论上只要一旦部署,一旦符合(he)合约执行的条件就会自动执行。?执行结果也可以(yi)在区块链上供公开检查,提(ti)供了合约的公正性和透明性。因此,智(zhi)能合约可以降低合约建立、执行和仲裁中所涉及(ji)的中间机构成本。区块链的智能合(he)约奠定了未来建立(li)可编程货币、可编程金融,甚至是可编程社会的基础。

2.架构特点

区块链具有去(qu)中心化、可靠数据库、开源可(ke)编程、集体维护、安全可信(xin)、交易准匿名性(xing)等特点。如果一个系统不具有以上特征(zheng),将不能被视为基于区块链技术的应(ying)用。

(1)去中心化

区块链(lian)数据的存储、传输、验证等过程均(jun)基于分布式的系统结构(gou),整个网络中不依赖一个没有中(zhong)心化的硬件或管理机(ji)构。作为区块链一种部署模式(shi),公共链网络中所有(you)参与的节点都可以(yi)具有同等的权利和义务(wu)。

(2)可靠数(shu)据库

区块链系统的数据(ju)库采用分布式存储,任一参与节点都可(ke)以拥有一份完整的数据库拷(kao)贝。除非能控制(zhi)系统中超过一半以上的算力(li),否则在节点上对数据库的(de)修改都将是无效的。

参与系统的节点越多,数据库的安全性就越(yue)高。并且区块链数据的存储还带(dai)有时间戳,从而为数(shu)据添加了时间维度(du),具有极高的可追(zhui)溯性。

(3)开源可编程

区块(kuai)链系统通常是开源的,代码高度(du)透明公共链的数据和程序对(dui)所有人公开,任何人都可以通过接(jie)口查询系统中的数据。并且(qie)区块链平台还提供灵活的脚本代码系(xi)统,支持用户创建高级的智能合约、货(huo)币和去中心化应用。

例如,以太坊(Ethereum)平台即提(ti)供了图灵完备的脚本语言(yan),供用户来构建任何可以精确定义的(de)智能合约或交易类型。关于以太坊的(de)更多内容请参考2.2节。

(4)集体维护

系统中的数据(ju)块由整个系统中所有具(ju)有记账功能的节点来共同维护,任一(yi)节点的损坏或失去都(dou)不会影响整个系统的运作。

(5)安全可信

区块链技术采用非对称密码学(xue)原理对交易进行签名(ming),使得交易不能被伪造;同时利用哈希算法保证交(jiao)易数据不能被轻易篡改,最(zui)后借助分布式系(xi)统各节点的工作量证明等共识(shi)算法形成强大的算力来抵御破(po)坏者的攻击,保证区(qu)块链中的区块以(yi)及区块内的交易数据不可(ke)篡改和不可伪造,因此具有极高的安全(quan)性。

(6)准(zhun)匿名性

区块链系统采用与用户(hu)公钥挂钩的地址来做用户(hu)标识,不需要传(chuan)统的基于PKI(Public Key Infrastructure)的第三方认(ren)证中心(Certif?icate Authority,CA)颁发数(shu)字证书来确认身份。通过在全网节点(dian)运行共识算法,建立网络中(zhong)诚实节点对全网状态的共识(shi),间接地建立了节点间的信任。

用户只需要公开地(di)址,不需要公开真实(shi)身份,而且同一个用户可以不断(duan)变换地址。因此,在区(qu)块链上的交易不和用户真实(shi)身份挂钩,只是和(he)用户的地址挂钩,具有交易的准(zhun)匿名性。。

区块链技术(shu)的核心优势是去中心(xin)化,能够通过运用哈希(xi)算法、数字签名、时间戳、分(fen)布式共识和经济激励等手(shou)段,在节点无需互相信(xin)任的分布式系统中建立信用,实现点对(dui)点交易和协作,从而为中(zhong)心化机构普遍存在的高成本、低效率和(he)数据存储不安全(quan)等问题提供了解决方案。

近年来,伴随着国(guo)内外研究机构对区(qu)块链技术的研究(jiu)与应用,区块链的应用(yong)前景受到各行各业的高度(du)重视,被认为是继大型机、个(ge)人电脑、互联网、移(yi)动/社交网络之后计算范式的(de)第5次颠覆式创新,是人类信用进(jin)化史上继血亲信用(yong)、贵金属信用、央行纸币信用之后的(de)第4个里程碑。它被视为下一代云计(ji)算的雏形,有望彻底重塑人类社会(hui)活动形态,并实现从现在的(de)信息互联网到价值互联网的转(zhuan)变。

区块链运作的核心技术

1.区块链的链接

顾名思义,区块链即由一个(ge)个区块组成的链。每个区块分为区块头(tou)和区块体(含交易数据)两个部分。区块头包括用来(lai)实现区块链尚力财经小编接(jie)的前一区块的哈希(PrevHash)值(又(you)称散列值)和用于计算挖(wa)矿难度的随机数(nonce)。前一区块的哈希值实(shi)际是上一个区块头部的哈希(xi)值,而计算随机数规则决定(ding)了哪个矿工可以获得记录区块(kuai)的权力。

2.共识机制

区块(kuai)链是伴随比特币诞生的,是比特币的基(ji)础技术架构。可以将区块链理解为一个(ge)基于互联网的去中心(xin)化记账系统。类似比(bi)特币这样的去中心化数字货币(bi)系统,要求在没有中心节点的情况下保(bao)证各个诚实节点记账的(de)一致性,就需要区块链来完成。所以区块链技术的核(he)心是在没有中心控(kong)制的情况下,在互相没有(you)信任基础的个体之间就交易的合(he)法性等达成共识的共识机制。

区块链的共识机(ji)制目前主要有4类:PoW、PoS、DPoS、分布式(shi)一致性算法。

(1)PoW

PoW(工(gong)作量证明),也就是(shi)像比特币的挖矿(kuang)机制,矿工通过把网络尚未(wei)记录的现有交易打包到一个区(qu)块,然后不断遍历尝试来寻(xun)找一个随机数,使得(de)新区块加上随机数的哈希值满足一定的(de)难度条件,例如前面10位是零。找到(dao)满足条件的随机数,就相当于确定(ding)了区块链最新的一个区块,也相当于获得了区块链的本(ben)轮记账权。

矿工把满足挖矿难度条(tiao)件的区块在网络中广播出去(qu),全网其他节点在验证该区(qu)块满足挖矿难度条件,同时区块(kuai)里的交易数据符合(he)协议规范后,将各自把该区(qu)块链接到自己版本的区块链上,从而在(zai)全网形成对当前网络状态的共识。

优点:完全去中(zhong)心化,节点自由进(jin)出,避免了建立和维(wei)护中心化信用机构的成本(ben)。只要网络破坏者的算力不超过网络(luo)总算力的50%,网络的交易状(zhuang)态就能达成一致(zhi)。

缺(que)点:目前比特币挖矿造成大量的资源浪(lang)费;另外挖矿的激励机制也造(zao)成矿池算力的高度集中,背(bei)离了当初去中心化(hua)设计的初衷。更大的问题是PoW机制的共识达(da)成的周期较长,每秒只能最多做7笔交易,不适合商(shang)业应用。

(2)PoS

区块链发展(zhan)历程分析,区块链技术(shu)的发展了几个阶(jie)段-娱乐资讯网(wang)

PoS权益证明,要(yao)求节点提供拥有一定数量的代(dai)币证明来获取竞争区块链记账权的一种(zhong)分布式共识机制(zhi)。如果单纯依靠代(dai)币余额来决定记(ji)账者必然使得富有者胜出,导致记(ji)账权的中心化,降(jiang)低共识的公正性,因此不同的PoS机制在权益证明的基础上,采用不同方(fang)式来增加记账权的随机性(xing)来避免中心化。

例如点点币(PeerCoin)PoS机制中,拥有最多链龄长的比(bi)特币获得记账权的几率就越大。NXT和Blackcoin则(ze)采用一个公式来预测下一个(ge)记账的节点。拥有多的代币被选为记(ji)账节点的概率就会大。未来(lai)以太坊也会从目前的PoW机制转换(huan)到PoS机制,从目(mu)前看到的资料看,以太坊的PoS机制将采用节点下赌(du)注来赌下一个区块,赌(du)中者有额外以太币奖,赌不中者会被(bei)扣以太币的方式来达成下一区块(kuai)的共识。

优点(dian):?在一定程度上缩(suo)短了共识达成的(de)时间,降低了PoW机制的资(zi)源浪费。

缺点:破坏者对网络攻击的成本低,网络的安全性有待验证。另(ling)外拥有代币数量大的节点获得记(ji)账权的几率更大,会使得网络的(de)共识受少数富裕账户支配,从(cong)而失去公正性。

(3)DPoS

DPoS(股份授权证明(ming))机制,类似于董事会(hui)投票。比特股(bitshares)采用的PoS机制是持(chi)股者投票选出一定数量的见证(zheng)人,每个见证人按序有两秒的权限时(shi)间生成区块,若见(jian)证人在给定的时间片(pian)不能生成区块,区块生(sheng)成权限交给下一(yi)个时间片对应的见证人。持股人(ren)可以随时通过投票更(geng)换这些见证人。DPoS的这种设计使得区块的(de)生成更为快速,也更加节(jie)能。

优点:大幅缩小参与验证和记(ji)账节点的数量,可(ke)以达到秒级的共识(shi)验证。

缺点(dian):选举固定数量的(de)见证人作为记账候选人有可能不(bu)适合于完全去中心化(hua)的场景。另外在网络节点数少的(de)场景,选举的见证人(ren)的代表性也不强。

(4)分布式一致性算法

分布式一致性算法是基(ji)于传统的分布式一致性(xing)技术。其中有分为解(jie)决拜占庭将军问题的(de)拜占庭容错算法,如PBFT。另外解决非拜占庭问题的分(fen)布式一致性算法(Pasox、Raft),详细见本书(shu)第5章的共识算法(fa)。该类算法目前是联(lian)盟链和私有链链场景(jing)中常用的共识机制。

优点:实现秒(miao)级的快速共识机制,保证一致性。

缺点:去中心化程(cheng)度不如公有链上的共识机制(zhi);更适合多方参与的多(duo)中心商业模式。

3.解锁脚本

脚(jiao)本是区块链上实现自(zi)动验证、自动执行(xing)合约的重要技术。?每一笔交易的每一项(xiang)输出严格意义上并不是指向一个地址(zhi),而是指向一个脚本。脚(jiao)本类似一套规则(ze),它约束着接收(shou)方怎样才能花掉这个输(shu)出上锁定的资产。

交易的合法性验证也依赖于(yu)脚本。?目前它依赖于两类脚本(ben):锁定脚本与解锁脚本。锁定脚(jiao)本是在输出交易(yi)上加上的条件,通过一(yi)段脚本语言来实现,位于交易的输出。解锁脚(jiao)本与锁定脚本相对应,只有(you)满足锁定脚本要求的(de)条件,才能花掉这个脚本上(shang)对应的资产,位于交易的输入。通(tong)过脚本语言可以表达很多(duo)灵活的条件。解释脚本是通过类似我们(men)编程领域里的“虚拟机”,它分布式运(yun)行在区块链网络里的每一个节(jie)点。

比特币的(de)脚本目前常用的主要分为两种(zhong),?一种是普通的P2PKH(Pay-to-Public-Key-Hash),?即支付给公钥的哈希地址,接收(shou)方只需要使用地址对应的私钥对该(gai)输出进行签名,即可花掉(diao)该输出。?另一种是(shi)P2SH(Pay-to-Script-Hash),?即支(zhi)付脚本的哈希。以多(duo)重签名来举例,它要求该输出要(yao)有N把私钥中的(de)M把私钥(M≤N)同时签名才(cai)能花掉该资产,它类似于现(xian)实生活中需要多把钥匙才能同时(shi)打开的保险柜,或是多人(ren)签名才能使条约生效一样,只(zhi)是它是自动执行(xing)。

比如在比特(te)币中,P2PKH的脚本规则如下:

Pubkey script: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

Signature script:

P2SH的脚本规则如下:

Pubkey script: OP_HASH160

Signature script: [sig] [sig...]

在上(shang)述的两种脚本规则里,Pubkey script代表锁定脚本,Signature script代表解锁脚(jiao)本。OP_开头的(de)单词是相关的脚本命令,也是“虚拟机”所能解析的指令。这些(xie)命令规则根据Pubkey script的不同来(lai)进行划分,它也决定解锁(suo)脚本的规则。

比特币中的脚本机制相(xiang)对简单,只是一个基于堆(dui)栈式的、解释相关OP指令的引擎(qing),能够解析的脚本规则并不是太(tai)多,不能实现很(hen)复杂的逻辑。?但它为区块链(lian)可编程提供了一个(ge)原型,后续一些可编程(cheng)区块链项目其实是基于脚本的原理(li)发展起来的,?比如以太坊(fang)就是深入增强了脚本机制,脚本机(ji)制里不再单单是简单(dan)的OP指令,而是支持脚本(ben)的一套图灵完备语言,该脚本语(yu)言可以通过“虚拟机”去(qu)执行。以太坊实现了一(yi)个支持图灵完备脚本语(yu)言的区块链平台。

脚本的机制对于区块链来说非常重要,它类似于区块链技术提供的一个扩(kuo)展接口,任何人都可以基于这(zhe)个接口开发基于区块链技术的应用,比如智能合约的功能。脚本机制也(ye)让区块链技术作为(wei)一项底层协议成为可能。未来很多基于(yu)区块链的颠覆性应用,都(dou)有可能通过区块链的脚本语言来完成(cheng)。

4.交易规则

区块链的交易就(jiu)是构成区块的基本单(dan)位,也是区块链负责记录的实际有效内(nei)容。一个区块链交易可(ke)以是一次转账,也可以是智能合(he)约的部署等其他事务。

就比特币而言,交易即指一次支付(fu)转账。其交易规则如下:

1)交易的输(shu)入和输出不能为(wei)空。

2)对交易的(de)每个输入,如果其对应的UTXO输出能在当前交易池中找到,则拒绝该交易。?因为当(dang)前交易池是未被记(ji)录在区块链中的交易,而(er)交易的每个输入,应该来自确认的(de)UTXO。如果在当前交(jiao)易池中找到,那就是双花交易。

3)交易中的(de)每个输入,其对应的输(shu)出必须是UTXO。

4)每(mei)个输入的解锁脚本(unlocking script)必(bi)须和相应输出的锁(suo)定脚本(locking script)共同(tong)验证交易的合规性。

对(dui)于以太坊来说,交易(yi)还可能是智能合约的(de)部署。交易规则就确定了符合一定语法(fa)规则的合约才能被部署在区块(kuai)链上。

5.交易优先级(ji)

区块链交易的优(you)先级由区块链协议规则决定(ding)。对于比特币而言,交易被区(qu)块包含的优先次(ci)序由交易广播到网络上的时间(jian)和交易额的大小决定。随着交(jiao)易广播到网络上的时(shi)间的增长,交易的链(lian)龄增加,交易的优先级(ji)就被提高,最终会被区块包含(han)。对于以太坊而言,交(jiao)易的优先级还与交易的发布者愿意(yi)支付的交易费用上述文(wen)章内容就是,发布者愿意支付的(de)交易费用越高,交易被包含进(jin)区块的优先级就越高。

6.Merkle证明

Merkle证明的原始应用(yong)是比特币系统(Bitcoin),它是由(you)中本聪(Satoshi Nakamoto)在2009年(nian)描述并且创造的。比特(te)币区块链使用了Merkle证明,为的是将交(jiao)易存储在每一个区块中。使得(de)交易不能被篡改,同时(shi)也容易验证交易是否包含在一个特定(ding)区块中,Merkle树说(shuo)明详见4.2节(jie)。

Merkle树的一个(ge)重要使用场景就是(shi)快速支付验证,也就是中本聪描述的“简化支(zhi)付验证”(SPV)的(de)概念:轻量级节点(light client)不用下载(zai)每一笔交易以及每一个区块,可以仅(jin)下载链的区块头,每个区块(kuai)中仅包含下述5项内容,数据块(kuai)大小为80字节。

(1)上一区块头的哈希值

(2)时间戳

(3)挖矿难度值

(4)工作量证明随机数(nonce)

(5)包含该区块交易的Merkle树的根(gen)哈希

如果一个轻客(ke)户端希望确定一笔交易的状态(tai),它可以简单地要求一个(ge)Merkle证(zheng)明,显示出一个在(zai)Merkle树特定的交易,其根(gen)是在主链(main chain,非(fei)分叉链)上的区块头。

Merkle证明可以让(rang)区块链得到更广阔的应(ying)用,但比特币的轻客户有其局(ju)限性。虽然可以证明包含的交易,但(dan)无法证明任何当前的状态(tai)(例如:数字资产的(de)持有,名称注册,金(jin)融合约的状态等)。一笔交易(yi)影响的确切性质(precise nature)可以(yi)取决于此前的几笔交易,而这些交易本(ben)身则依赖于更为前面的(de)交易,所以最终你需要验(yan)证整个链上的每一笔(bi)交易。为了解决这个问题,以太坊进行了更进一步的创新。

以太坊的每一(yi)个区块头中并非只包含一棵(ke)Merkle树,而(er)是包含了3棵Merkle树),分别对应了以下3种对(dui)象:

(1)交易(Transactions)

(2)收据(Receipts,基本上,它是展示每一(yi)笔交易影响的数据条)

(3)状态(State)

这三棵树允许轻客(ke)户端轻松地进行并核实(shi)以下类型的查询答案:

(1)这笔(bi)交易被包含在特定的区块中了吗(ma)?

(2)告诉我这个地(di)址在过去30天中,发(fa)出X类型事件的所有(you)实例(例如,一个众(zhong)筹合约完成了它的目标)。

(3)目前我的账户余额(e)是多少?

(4)这(zhe)个账户是否存在?

(5)假装在这个合约(yue)中运行这笔交易,它(ta)的输出会是什么?

第一种是由交易树(transaction tree)来处(chu)理的;第3和第4种则是由状态(tai)树(state tree)负责处理,第2种(zhong)则由收据树(receipt tree)处理。计算前(qian)4个查询任务是相当简单的。在服务器(qi)简单地找到对象,获取梅克尔(er)分支,并通过分支来(lai)回复轻客户端。第5种查询(xun)任务同样也是由状态树处理。

7.RLP

RLP(Recursive Length Pref?ix,递归长度前缀编(bian)码)是Ethereum中对象序列(lie)化的一个主要编码方式,其目的是对任意嵌套的二进制(zhi)数据的序列进行编码。

以太坊中的所(suo)有数据都以“递归长度前缀编码”(Recursive Length Pref?ix encoding,RLP)形式存储,这(zhe)种编码格式将任意长度和维(wei)度的字符串构成(cheng)的数组串连接成字符串。例如,['dog', 'cat']被(bei)串接(以字节数组格式)为[130,67,100,111,103,67,99,97,116];其基本的(de)思想是把数据类型和(he)长度编码成一个单独的字节放在(zai)实际数据的前面(例(li)如‘dog’的字节(jie)数组编码为[100,111,103],于(yu)是串接后就成了[67,100,111,103])。

注意RLP编码正如其名字表(biao)示的一样,是递归的;当(dang)RLP编码一个数组时,实际上是在对(dui)每一个元素的RLP编码级联成(cheng)的字符串编码。需要进一步提请(qing)注意的是,以太(tai)坊中所有数据都(dou)是整数;所以,如果(guo)有任何的以一个或多个0字节开头的哈希或者地址,这(zhe)些0字节应该在计(ji)算出现问题的时候(hou)去除。以太坊中没有串(chuan)接数据结构包含任何以0开头的数值(zhi)。整数以大端基础(Big Endian)256格式存储(例如32767字节数(shu)组格式为[127,255])。

区块链交易流程

以比特币的交(jiao)易为例,区块链的交易(yi)并不是通常意义上的一手交钱(qian)一手交货的交易,而是转账。如果每(mei)一笔转账都需要构造一笔交(jiao)易数据会比较笨拙,为了使得价值(zhi)易于组合与分割,比特币的交易被设计为可以纳入多个输(shu)入和输出,即一笔交易可以(yi)转账给多个人。从生成到(dao)在网络中传播,再到通过工(gong)作量证明、整个网络节点验证,最终(zhong)记录到区块链,就是区块链交易的(de)整个生命周期。

交易的生成。?所有(you)者A利用他的私钥对前一(yi)次交易和下一位所有者B签(qian)署一个数字签名,并将这个签(qian)名附加在这枚货币的末尾,制作(zuo)成交易单。

交易的传(chuan)播。?A将交易单广(guang)播至全网,每个节点都将收到的交易(yi)信息纳入一个区块中。

工作量证明。?每个节点通过(guo)相当于解一道数学题的工作量证(zheng)明机制,从而获得创建新区(qu)块的权力,并争取得到数字货币的奖(jiang)励。

整个(ge)网络节点验证。?当一个节点找到解(jie)时,它就向全网广播该区块记录的所(suo)有盖时间戳交易,并由全(quan)网其他节点核对。

记录到区块链。?全网其他节点核对(dui)该区块记账的正确性,没有错误后他们(men)将在该合法区块之后(hou)竞争下一个区块,这样就(jiu)形成了一个合法记账的区块链。

来源: 火球财经

转载请注明“来源:FinPlus FinTech投资基金旗下自媒体(ti)FinTech猫观察(微信(xin)号:FinTechCat)”

FinTech 猫观察

每只猫需要花8分钟吃掉一条(tiao)鱼,FinTech猫让你每天(tian)只需8分钟,就(jiu)可以吃掉一篇行业动态或者标的研究(jiu)或者深度解读又或者……

FinTech猫观察,国内首个专注于FinTech投资和加速的(de)天使基金FinPlus旗(qi)下自媒体,以猫的态度(du)玩转FinTech,敏捷快速(su)的精华资讯、观察透彻的行业(ye)研究、角度全面的深度解(jie)读、沉稳深邃的冷静分析、硬派Geek的新潮科技,每天给你带(dai)来不同的啃食体验。

FinPlus,利用自身产业积累的(de)资源发起FinPlus Wormhole 加速计(ji)划。FinPlus Wormhole 加速计(ji)划是FinPlus组织业内专(zhuan)家导师而设计的针对于所投的FinTech Startups 的加速课程,内容涵盖金融产品设(she)计、运营规划、经营合规等(deng)十多个领域。 有正在FinTech领域创业的团队,可以将商业计(ji)划书投递到 BP@FinPlus.me。

FinPlus,旨在以FinPlus Fund + FinPlus Accelerator 的形式搭建行业生态系统FinTech Eco-System,与FinTech 产业链上下(xia)游的伙伴们一起,推动中国FinTech发展。

上一篇:空城计简(jian)介(空城计简介20字)

下一篇:满庭芳多木木(mu)多(满庭芳多木木多剧情)

推荐阅读:

  • 牛肉黄(huang)瓜可以一起吃吗(牛肉黄瓜可以一起吃吗早餐)

    牛肉黄(huang)瓜可以一起吃吗(牛肉黄瓜可以一起吃吗早餐)

    牛肉能和黄瓜一起吃(chi)吗牛肉和黄瓜(gua)的营养介绍1、牛肉和黄瓜能够在一起(qi)吃的。2、牛肉中的氨基酸是(shi)非常丰富的,比很多其他的食(shi)物还要丰富的多。这种物质可(ke)以促进肌肉的增长,增强肌肉的(de…
    2023-06-11 阅读(54)
  • 市尺等于多(duo)少厘米(7市尺等于多少厘米)

    市尺等于多(duo)少厘米(7市尺等于多少厘米)

    1市尺等于厘米,1市尺等于多少(shao)厘米1市尺=33.3333厘(li)米,做衣服那种尺子和其(qi)他尺子没有什么区别的中国市制单位:一市尺约等(deng)于33.33厘米。不过,买衣服时,很多都是以英寸(cun)标记的,楼主注(zhu)…
    2023-06-11 阅读(34)
  • 蝉联是(shi)什么意思(雁齿蝉联是什么意思)

    蝉联是(shi)什么意思(雁齿蝉联是什么意思)

    蝉联什么意思?蝉联(lian)的意思是:连续(多指连任某(mou)个职务或继续保持某种称号)。蝉联(lian),拼音为chánlián,汉语词语,指(zhi)连续相承、连续不断,也有喻语言啰嗦(suo),文词繁琐的意(yi)思。出自《史…
    2023-06-11 阅读(67)
  • 一方等于多(duo)少平方米(一方等于多少平方米换算)

    一方等于多(duo)少平方米(一方等于多少平方米换算)

    前几天托尼在(zai)办公室和同事们聊天,谈到了如今手(shou)机的发展。然后就发现(xian)了一个问题,目前国(guo)产手机的旗舰机型,基本(ben)都习惯宣称他们是(shi)2K屏幕(3216x1440)。像realmeGT2Pro、小米12Pro、…
    2023-06-11 阅读(28)
  • 2022DOT币在哪里(li)买-波卡DOT币买入交易操作步骤操作指南

    2022DOT币在哪里(li)买-波卡DOT币买入交易操作步骤操作指南

    如何购买点币?说起(qi)博卡币,相信大家都(dou)不陌生。最新市场数据显示,截至2021年8月25日09:12,点币价格为25.3926美元,其最高(gao)价为49.7570美元,出现(xian)在2021年5月15日,最低价为1.6719美元,出现在…
    2023-06-11 阅读(41)