01-区块链
4.1区块链是什么
从不同角度上来剖析,我们可以这样来看待区块链:
一种分布式数据库(本质)
每个用户都可以通过和发的手段进行读写,不存储于某一辆特定的服务器或者安全节点,而是分布式存放于网络上所有的完整节点上,每个节点保留一个备份。
一种网络底层协议(抽象)
它是一种共识协议,基于这种协议,可以再其上开发出各种应用,这些应用在每一时刻都保存一条最长的、最权威的、共同认可的数据记录,并遵循共同认可的机制进行无需中间权威仲裁的、直接的、点对点的交互信息。
TCP/TP : (数据层、网络层、传输层、应用)
区块链:数据层、网络层、共识层、激励层、应用层、应用
一、数据层
数据层主要描述区块链技术的物理形式。区块链系统设计的技术人员们首先建立的一个起始节点是“创世区块”,之后在同样规则下创建的规格相同的区块通过一个链式的结构依次相连组成一条主链条。随着运行时间越来越长,新的区块通过验证后不断被添加到主链上,主链也会不断地延长。
每个区块中也包含了许多技术,比如时间戳技术,它可以确保每一个区块按时间顺序相连接;再比如哈希函数,它能够确保交易信息不被篡改。
二、网络层
网络层的主要目的是实现区块链网络中节点之间的信息交流。区块链网络本质上是一个P2P(点对点)网络。每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块链来保持通信。[13]
区块链的网络中,每一个节点都可以创造新的区块,在新区块被创造后会以广播的形式通知其他节点,其他节点会对这个区块进行验证,当全区块链网络中超过51%的用户验证通过后,这个新区块就可以被添加到主链上了。图2–72 区块链的网络层
三、共识层
共识层能让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识。区块链中比较常用的共识机制主要有工作量证明、权益证明和股份授权证明三种,我们在下面的章节中会重点讲解。
四、激励层
激励层的主要功能是提供一定的激励措施,鼓励节点参与区块链的安全验证工作。我们以比特币为例,它的奖励机制有两种。在比特币总量达到2 100万枚之前,奖励机制有两种,新区块产生后系统奖励的比特币和每笔交易扣除的比特币(手续费)。而当比特币总量达到2 100万时,新产生的区块将不再生成比特币,这时奖励机制主要是每笔交易扣除的手续费。
五、合约层
合约层主要是指各种脚本代码、算法机制以及智能合约等。我们以比特币为例,比特币是一种可编程的货币,合约层封装的脚本中规定了比特币的交易方式和过程中涉及的种种细节。
六、应用层
应用层封装了区块链的各种应用场景和案例,比如基于区块链的跨境支付平台OKLink,以及在“应用篇”中我们将讲到的五花八门的应用。
区块链是分布式的,区块链公信力在网络上会有许多独立的节点,每一节点都有一份备份信息。每个有授权的人都可以从任意一个节点下载全部的信息,同时,区块链公信力网络也是不可篡改的,任何节点企图更改信息都会被其他节点发现,而更改的节点不会被确认,就会立刻丧失公信力。
在区块链公信力模型中,区块链不制定政策,它只是一个公证人的角色,是政府建立和执行政策的工具。区块链的作用是帮助政府更快速和准确地让政策被全民所接受与认可,同时,因为区块链是一个不变的、可以被复制的数据库,政府的政策就变得公开和透明。
从信任的角度来看,区块链实际上是用基于共识的数学方法,在机器之间建立信任并完成信用创造。基于这样的特点,其对公信力的提升也有着开创性的意义。《经济学人》杂志这样写道:区块链是一台创造信任的机器,可以说区块链最核心的问题就是解决信用共识的问题。
4.2区块链的特点
去中心化
所有参与其中的网络节点共同维护,无需中心节点调控
不可篡改
整个链条按照时间顺序哈希指针连接起来、环环相扣
每个交易有时间戳,
每个区块也有时间戳,如果A变B肯定变。增加了溯源。
匿名性
私钥和地址是使用网络所有条件,无需身份验证
可溯源
所有写入区块的数据需多方验证、公开透明
4.3区块链的发展
V1.0 数字货币(可编程货币)
1.0仅是电子货币
特点:TPS低,比特币每秒处理7比交易,基于栈编程,图灵不完备(无循环语句,不能实现复杂的编程)
- 专款专用
V2.0智能合同(可编程金融)
区块链2.0是可编程金融、是经济、市场和金融领域的区块链应用,
例如:
股票、债券、期贷、贷款、抵押、产权、智能财产和智能合约。
代表:
以太坊(ETH) 、 小蚁(NEO) 、 比原(BTM)
特点:处理速度加快、图灵完备(可以用代码实现各种复杂逻辑)
V3.0 高级智能合同(可编程社会)
区块链与社会,区块链与各个行业金融:物联网、存储、游戏、区块链+
代表:
柚子(EOS)、墨客(MOAC)
4.4区块链协议层
数据层
- 区块数据
- 链式结构
- 非对称加密
- 哈希函数
- Merkel树
- 时间戳
网络层
- P2P2网络
- 传播机制
- 验证机制(自组网的)
共识层
共识机制:共识机制是指可以使所有节点对某一种状态达成一致的方式,共识机制去中心化才有意义,才具备可信度,否则只是数据共享,目前主流的共识机制有:
POW
POW(Proof Of Work , 工作量证明),比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash 由N个签到零构成,零的个数决定于网络的难度值,要得到合理的Block Hash 需要大量尝试计算,计算时间决定于机器的哈希运算速度。当某个节点提供一个合理的Block Hash值,说明该节点确实胫骨了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理的hash是一个概率事件。当节点拥有全网n%的算力时,该节点即有n/100的概率挖到矿。
特点:
- 算一道很难的谜题,系统给予挖矿奖励。
- 多劳多得【社会主义】
优点:
所有节点均可参与,记账权公平的分派到每个节点,去中心化
多劳多得,矿工积极性高
安全性高,欺诈成本高。
如果真的可以欺诈成功,有那么强打的算力。不如作为一个诚实的节点那样收益会更高。
缺点:
非主流矿池垄断严重,存在51%算力攻击风险。
如果某一个用户的算力掌握到百分51那样他就可以为所欲为,但是这样情况概率极低。
浪费资源严重(2018年底消耗了全球0.5%电量)
持币人没有话语权、算力决定一切
网络新能底,共识时间长。
项目:
- 比特币
- 以太坊
- 比原链等
POS
POS(Proof Of Stake ,股权证明),类似于财产存储在银行,这种模式会根据你持有的数字货币的数量和时间,分配给你响应的利息。举个栗子,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证明POS模式下,有一个名次叫做币龄,每个币每天产生一个币龄,比如你持有100个币,总共持续了30天,name,此时你的币龄就是3000,这时候,如果你发现了一个POS区块,你的币龄就会被清空为0.你每清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可以理解为年利率5%),name在这个案例中,利息 = 3000 * 5% / 265 =0.41 个币,持币有利息。具体的利息不同的币种不一样。
鼓励用户将货币留在自己手里,被动的提高了货币的价值。
特点:
- 不挖矿,依靠币龄(币龄持有数量 * 持有天数)决定记账权,利息即为奖。
- 按钱分配,钱生钱(资本主义)
优点:
- 在一定程度上缩短了共识达成的时间。
- 节约资源。
- 防作弊,币龄越大,获取记账权几率越大、避免51%攻击,因为攻击会是自己权益受损。
缺点:
- 数字货币过于集中化,富有的人越来越富有,散户参与积极性低。
项目:
- ADA等
DPOS
DPOS(Delegated Proof Of Stake, 委托权益证明),他的原理是让每个持有币的人进行投票,由此产生N个代表,我们可以理解为N个超级节点或者矿池,这N个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们的时候,没有生成区块),他们会被出名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心比特币的人身上,类似于演唱会的黄牛,大量囤票而丝毫不关心比特币的内容。
特点:不挖矿,每年按比例增发代币,奖励超级节点。
优点:高效,拓展性强。
缺点:21个节点太少,非去中心化,而是多中心化。
项目:EOS
PBFT
POW + POS 混合模式
让挖矿和持币人均参与记账
项目:以太坊、HCASH、MOAC
Ripple共识机制
小蚁NEO共识机制(DBFT)
常见区块链项目共识机制表:
币种 共识算法 智能合约 技术特色 BTC POW 否 UTXO模型 ETN POW -> POS 是 虚拟机EVM + 智能合约 ADA POS 是 分层架构 EOS DBFT 是 数字证书+智能合约+跨链互操作 QTUM POS + IPOS 是 石墨烯技术+以太坊虚拟机 LSK DPOS 是 侧脸技术 HSR POW + POS 是 抗原子特性 BTM POW 是 AI深度 AE POS + POW 是 去中心化语言机 NXT POS 是 主链+子链架构 ACT RDPOS 是 主链+多侧链架构 XAS DPOS 是 侧链技术 ZIL PBFT 是 分片技术
激励层
- 发行机制
- 分配机制
合约层,密闭比特币1.0的不足,比特币是脚本型语言功能不完善。
算法机制
智能合约,比如以太坊就有一台EVM的虚拟机。里面执行以太坊的智能合约。
智能合约介绍:
“智能合约”(smart contract)这个术语至少可以追溯到1995年,是由多产的矿领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表自己的网站的几遍文章中提到了智能合约的理念。他的定义如下:
“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面记性这些承诺的协议。”
本质:数字化合同
特点:代码代替人仲裁和执行合同,同时能够发起支付。
举例:
假设你和我对明天的天气进行打赌,我打赌明天是晴天,但是你打赌明天是雨天。双方同意输的一方必须给硬打赌一方100美元,那么,我们如何能够做到这一点,并且确保输的一方不会耍赖呢?
传统方法:
基于信任
仅适用于可信的人,对于陌生人,不适用。
签一个法律协议
将赌约正式形成一个法律效益协议,约定所有细节,输的一方给赢得一方,报错输的一方如果违反协议会怎么样。
但是他没有任何实用性,因为通过合法途径强制协议执行的脚本,要比这个赌约的价值高的多。
请一个中间人帮忙
如果这个双方都信任的朋友把钱卷走怎么办?
智能合约
代码化的合同,去除人的主观因素,一个合约写好以后,就无法在被编辑或者修改。因此,你可以保证无论合约内容是什么,他都可以无条件执行。
把合约和合同都写在区块链上,合约一旦执行,人就无法干涉。
整个步骤包括:构建 —> 存储 —->执行
构建(本地构建)
智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为。协议中明确了双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。
存储(链上存储)
一旦编码完成,这份智能合约就被上传到区块链网络上,即全网验证节点都会接收到你和双方合约。
执行(EVM中执行)
智能合约会定期检查是否存在相关事件和触发条件,满足条件的事件将会推送到等待验证的队列中。天气情况这个数据就成了该合约的触发条件。
区块链上的验证节点先对该事件进行签名验证,以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户。
注,外部输入来源于ORACE(中文翻译:’语言机‘),一种可信的实体,通过签名引入外部状态信息,从而允许确定的智能合约对外部不确定的数据做出反应,语言机具有不可篡改服务器稳定,可以审计等特点。第三方语言机发送一笔区块链交易,交易中附带需要的数据,嵌入区块,同步给所有节点,从而用于智能合约的触发。
应用层、合约逻辑、业务(金融或者物流)
- 业务逻辑
- DAPP、去中心化
真正的业务逻辑、去中心化应用:
- 新闻
- 游戏
- 产品溯源等
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com