区块链、定义、结构、共识机制、智能合约

更新时间:2023-05-07 18:25:05 阅读: 评论:0

区块链、定义、结构、共识机制、智能合约
区块链(BlockChain)
定义:区块链是⼀个共享的、不可变的分类帐,⽤于记录交易、跟踪资产和建⽴信任。本质上是⼀个去中⼼化的分布式账本数据库,其本⾝是⼀串使⽤密码学相关联产⽣的数据块,每⼀个数据块上包含了多次⽐特币⽹络交易有效的确认信息。
共享的理解:它要求我们所有的⼈共⽤同⼀本账本。所有的参与⽅从原材料的第⼀步⼀直到最终的使⽤者、消费者、买单者每个⼈都可以去查看账本。它是全透明的、有距离的、不可修改的、不可删除的。
现在⽹上购物的时候,如果说除了整个快递和⽀付的过程,⾃⼰也可以跟踪,对于商品的起源、⽣产的源头都可以追溯的话,那么就可以解决消费时候的疑虑。有⼀些乳制品企业现在已经在做这⽅⾯的尝试了,这是从消费者的⾓度
不可变的理解:不能随意更改数据。例如商品的例⼦。hash算法,给任意⼀个⽂件⽣成了⼀串固定长度的乱码⼀样的标签,算法是不可逆的,就是说,你拿到这个标签,⽆法反向推导出原来的数据⽂件。正是这种不可逆性,决定了区块链的不可更改性。每个区块中,除了⼗分钟内的转账交易数据之外,还有⼀个区块头。区块头包含了对上⼀个区块数据的 hash 值。这些 hash 层层嵌套,长度固定,最终将所有区块串联起来,形成区块链
去中⼼化的理解:
中⼼化与去中⼼化的对⽐(谁拥有记账权)
1.中⼼化机构拥有公认”记账权”
2.去中⼼化的区块链⽹络所有⼈具有”记账权”
区块链是什么的例⼦:
区块链的结构:
⼀个完整区块是由神奇数、区块⼤⼩、数据区块头部信息、交易计数、交易详情等组成。在这当中,数据区块头部信息的HASH值是下⼀个新区 块的HASH值的参考⽬标数,最后⼀项交易详情记录了该区块中所有的交易记录。
区块头由4字节的版本号、32字节的上⼀个区块的散列值、32字节的Merkle Root Hash、4字节的时间缀、4字节的当前难度值、4字节的随机数 组成。区块包含的交易列表则附加在区块头后⾯,其中的第⼀笔交易是coinba交易,这是⼀笔为了让矿⼯获得奖励及⼿续费的特殊交易。 见图⽰:
链式结构
矿⼯挖矿的过程 就是产⽣新的数据区块的过程,这个过程需要对⽐前⼀个数据区块头部的HASH值和随机数,如果满⾜⼀定条件则⽣成新的区块。 Merkle树的根值为该区块中所有被记录交易的根节点HASH值,中本聪⽤⼀个HASH树来对每⼀⽐交易进⾏数字签名,以确保每⼀⽐交易都不可 伪造和没有重复交易,Merkle树就是HASH树的⼀种。
数据区块的交易记录中,详细记载了交易记录和相关细节。例如⽐特币收⽀详情⾥⾯记录了当前区块中所记录的⽀出交易数量、地址信息、接收 地址信息、接受的交易数量等。 见图⽰:
区块链的分类
(1)公有链
所谓公有就是完全对外开放,任何⼈都可以任意使⽤,没有权限的设定,也没有⾝份认证之类,不但可以任意参与使⽤,⽽且发⽣的所有数据都可以任意查看,完全公开透明。
⽐特币就是⼀个公有链⽹络系统,⼤家在使⽤⽐特币系统的时候,只需要下载相应的软件客户端,创建钱包地址、转账交易、挖矿等操作,这些功能都可以⾃由使⽤。
公有链系统由于完全没有第三⽅管理,因此依靠的就是⼀组事先约定的规则,这个规则要确保每个参与者在不信任的⽹络环境中能够发起可靠的交易事务。通常来说,凡是需要公众参与,需要最⼤限度保证数据公开透明的系统,都适⽤于公有链,⽐如数字货币系统、众筹系统、⾦融交易系统等。
(2)私有链
私有链是与公有链相对的⼀个概念,所谓私有就是指不对外开放,仅仅在组织内部使⽤的系统,⽐如企业的票据管理、账务审计、供应链管理等,或者⼀些政务管理系统。私有链在使⽤过程中,通常是有注册要求的,即需要提交⾝份认证,⽽且具备⼀套权限管理体系。
(3)联盟链
联盟链的⽹络范围介于公有链和私有链之间,通常是使⽤在多个成员⾓⾊的环境中,⽐如银⾏之间的⽀付结算、企业之间的物流等,这些场景下往往都是由不同权限的成员参与的,与私有链⼀样,联盟链系统⼀般也是具有⾝份认证和权限设置的,⽽且节点的数量往往也是确定的,对于企业或者机构之间的事务处理很合适。联盟链并不⼀定要完全管控,⽐如政务系统,有些数据可以对外公开的,就可以部分开放出来。
公有链联盟链私有链
中⼼化
程度
去中⼼化多中⼼化中⼼化
参与者任何⼈预先设定、具有特殊特
征的成员
中⼼控制者制定的可以参与的成员
信任机
⼯作量证明共识机制⾃⾏背书记账者所有参与者参与者协商决定⾃定
优势1、完全解决信任问题 2、全球可⽤户访问,应⽤程序容易部
署,进⼊壁垒最低
1、容易进⾏控制权限定
2、具有很⾼的可扩展性
1、⼀般⽽⾔没有挖矿过程,⽹络
能耗低
2、规则修改容易,交易量,交易
速度⽆限制
3、节点通过授权进⼊,不存在
51%攻击风险
缺点交易量受限,挖矿能耗⾼不能完全解决信任问题1、接⼊节点受限
2、不能完全解决信任问题
使⽤场景⽹络节点之间没有信任的场景
连接多个公司或中⼼化
组织
节点之间⾼度信任场景
典型案
⽐特币、以太坊清算、⽀付R3联盟等⾦融领域联盟、审计发⾏区块链的关键技术
分布式账本、共识机制、密码学、智能合约。它们在区块链中分别起到了数据的存储、数据的处理、数据的安全、以及数据的应⽤作⽤。(1)分布式账本(分布式存储)
分布式账本构建了区块链的框架,它本质是⼀个分布式数据库,当⼀笔数据产⽣后,经⼤家处理,就会储存在这个数据库⾥⾯,所以分布式账本在区块链中起到了数据储存的作⽤。因为分布式账本去中⼼化的特点,决定了区块链⽹络是⼀个分布式的结构,每个⼈都可以⾃由地加⼊其中,共同参与数据的记录。但与此同时,就衍⽣出来了令⼈头疼的“拜占庭将军问题”,即⽹络中参与的⼈数越多,全⽹也就越难以达成统⼀。于是就需要共识机制。
(2)共识机制
⼀套机制来协调全节点账⽬保持⼀致,共识机制就制定了⼀套规则,明确每个⼈处理数据的途径,并通过争夺记账权的⽅式来完节点间的意见统⼀,最后谁取得记账权,全⽹就⽤谁处理的数据。所以共识机制在区块链中起到了统筹节点⾏为、明确数据处理的作⽤。
(3)密码学
打包好的数据块,会通过密码学中的哈希函数处理成⼀个链式的结构,后⼀个区块包含前⼀个区块的哈希值,因为哈希算法具备单向性、抗篡改等特点,所以只要在区块链⽹络中,数据⼀旦上链就不可篡改、且可追溯。另外账户也会通过⾮对称加密的⽅式进⾏加密,进⽽保证了数据的安全,验证了数据的归属
(4)智能合约
可以在分布式账本的基础上,搭建应⽤层⾯的智能合约,当我们想要解决⼀些信任问题,可以通过智能合约,将⽤户之间的约定由代码的形式,将条件罗列清楚,并通过程序来执⾏,⽽区块链中的数据,则可以通过智能合约进⾏调⽤。所以智能合约在区块链中起到了数据的执⾏与应⽤的功能。简单讲,智能合约就是双⽅在区块链资产上交易时,触发执⾏的⼀段代码,这段代码就是
应⽤场景
1.⾦融⾏业、跨境⽀付
2.数字代币
3.电商物流
4.公益募捐
5.⾝份认证
...
公链
共识机制:
区块链是⼀个公共账本、公开的数据库,同时也是⼀个点对点的协作⽹络。协作⽅(节点)共同维护数据,每个节点都有⼀份完整的数据备份,所有节点的数据内容必须完全⼀致,每个节点都可以在本地查找交易记录,每个节点也可以在本地添加交易。
因为区块链是去中⼼化的,没有⼀个中⼼来指挥、协调,要完成这个协作,区块链就必须有⼀个共识机制,这个机制必须解决两个基本问题:
1. 谁有权写⼊数据——⼀次只有⼀个⼈可以记账;
2. 其他⼈如何同步数据——因为要保持账本的⼀致性。
数据写⼊(区块添加)的过程是这样的:有权打包交易的节点,将打包的交易(区块)放在既有的数据库(区块链)上,并向全⽹⼴播,其他节点收到信息,验证区块⽆误,就会同步这个新打包的交易。每个打包的交易叫作⼀个区块,区块不断叠加,延长区块链。
同步数据有⼀个问题,就是如何对在⼀定时间段内发⽣的交易的先后顺序达成⼀致?
由于各个节点都在⾃发地记账或者同步,在点对点相互通信下的情况下存在较⾼的⽹络延迟,因此各
个节点收到数据的先后顺序是不⼀致的。你记你的,我记我的,如何保证每个节点副本数据的⼀致性?
区块链的共识是:以最长链作为主链,即每个节点总是选择并尝试延长主链,也就是各节点都以区块最多的那条链作为⾃⼰添加、更新区块的选择,这样多节点就能同步⼀个权威的公共账本了。
⼏种共识机制:
pow⼯作量证明
就如字⾯的解释,PoW就是⼯作越多,收益越⼤。这⾥的⼯作就是猜数字,谁能最快的猜出这个唯⼀的数字,谁就能做信息公⽰⼈。通过极其⼤量的计算,才能找到⼀个随机值,使得区块的哈希值符合⼀定的条件。这个过程就叫做挖矿。
pos权益证明
通过持有Token(代币)的数量和时长来决定你获得记账的机率,类似于股票的分红制度,持有股权越多的⼈就能够获得更多的分红
dpos股份授权证明
是基于POS衍⽣出的更专业的解决⽅案,类似于董事会投票,指拥有Token的⼈投票给固定的节点,选举若⼲代理⼈,由代理⼈负责验证和记账。不同于POW和POS的全⽹都可以参与记账竞争,DPOS的记账节点在⼀定时间段内是确定的
pbft
它与之前两种都不相同,PBFT以计算为基础,也没有代币奖励。由链上所有⼈参与投票,少于(N-1)/3个节点反对时就获得公⽰信息的权利。
拜占庭容错共识机制:
dbft
此算法在PBFT基础上进⾏了以下改进:在区块链中引⼊数字证书,解决了投票中对记账节点真实⾝份的认证问题
是由权益来选出记账⼈,然后记账⼈之间通过拜占庭容错算法来达成共识。dBFT和PBFT的关系类似于 PoS和DPoS的关系
共识机制⽐较
⽂档编写⽬的:⽐较主流区块链优、劣势、 应⽤场景、是否经济适⽤、长远功能规划等,便于技术、商务、对外共识。
⾸先,没有⼀种共识机制是完美⽆缺的,各共识机制都有其优缺点,有些共识机制是为解决⼀些特定的问题⽽⽣。
共识算法必须具备三个基本要求:
1.⼀致性 (safety):所有参与共识的诚实的节点,得到的计算结果是相同的,⽽且是符合共识协议的。
2. 终局性 (liveness):所有参与共识的诚实的节点,最终可以达成⼀致性结果。
3. 容错性 (fault tolerance):在共识算法的成功执行过程中,可以容许参与共识的节点发⽣⼀些错误。
以下,以表格形式列举了主流的⼏种共识机制(PoW,PoS,DPoS,PBFT,DBFT)的特点:
共识机制Pow(
Proof of
Work)⼯
作量证明
Pos (Proof of Stake)权益证明
Dpos(Delegated Proof of
Stake)股份授权证明
Pbft (Practical
Byzantine
Fault Tolerance)实
⽤拜占庭容错
DBFT(delegated BFT
)授权拜占庭容错算法

本文发布于:2023-05-07 18:25:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/550154.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:区块   交易   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图