区块链区块链技术学习总结
Posted 微雨停了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链区块链技术学习总结相关的知识,希望对你有一定的参考价值。
文章目录
一、区块链技术简介
1.1 区块链概念
区块链是一种按时间顺序将数据区块以顺序相连的方式组合而成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
简而言之,区块链是一条链,链上链接了许多个不能修改的数据块。
1.2 区块链应用
1.2.1 区块链1.0技术:比特币
诞生于2009年1月,比特币区块链的贡献就是提供了一个新的记账方式——基于密码学的分布式账本。
比特币区块链的缺陷是,所有规则事先写好,无法在此基础上去发展、去拓展新的应用。
1.2.2 区块链2.0技术:以太坊
诞生于2015年7月,以太坊区块链支持在其基础上做其他应用开发,也就是在以太坊区块链当做底层,当做基础设施。 以太坊区块链首次提出“智能合约”。智能合约是一套计算机程序,保证你的合同在不借助于第三方的情况下得到执行。
以太坊区块链的缺点是不支持大规模商业应用开发,而且交易速度仍然很慢。
1.2.3 区块链3.0技术:价值互联网
区块链3.0是从2018年开始的,区块链能够对于每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易主要解决技术上和性能上支持大规模商业应用的问题。
目前尚无真正的区块链3.0系统正式上线,像EOS、Dfinity等目前处于测试阶段。
二、区块链1.0技术比特币
2.1 比特币
2.1.1 比特币概念
比特币是一种虚拟货币,是一种加密货币,也是一种分布式数字货币。
2.1.2 比特币性质
1、去中心化:比特币是第一种分布式的虚拟货币,整个网络由用户构成,完全依赖P2P网络,没有中央银行。去中心化是比特币安全与自由的保证 。
比特币是完全去中心化的,意味着它不受任何政府或金融机构的控制,并且可以在互联网上以匿名方式进行交易。
2、匿名性
3、稀缺性
4、转账成本低
5、全球流通便捷
2.1.3 比特币解决的问题
1、高度自治
2、无国界贸易
3、不可篡改
4、隐私安全
2.2 去中心化模型
2.2.1 去中心化的概念
简单理解,从传统CS模式,过度到P2P模式。去中心,而各点皆为中心。
2.2.2 去中心化的实现
1、去中心化的点对点电子现金系统
比特币要做的是一个“点对点的电子现金系统”,发送方和接收方直接交易,它们之间不需要中介机构的介入。
2、分布式账本
比特币的区块链是基于工作量证明形成的带时间戳、存储数据的数据块和由哈希指针连接成的链条。
这个链条或者说账本以分布式的方式存储在比特币网络的各个节点上,因而也被称为分布式账本。
3、工作量证明
比特币网络中的节点按照规则进行加密哈希计算,以竞争获得生成新区块的权利。节点在竞争获胜后就获得记账权,它生成区块成为最新区块后,就获得与新区块对应的挖矿奖励。
工作量证明也是区块链账本的安全机制。如果不重做“工作量证明”所需的大量计算则此链条不可修改,这一共识机制保证了区块链上的数据的可靠性。
4、最长链原则
在任何时刻,最长的链条是所有人都接受的最终记录。
由于最长链是由网络中的主要算力完成的,因而只要它们不都与攻击者合作,那么它们生成的最长链就是可信的。这个原则被称为“最长链原则”。
5、去中心网络
比特币的去中心网络的架构非常简洁,本身需要的基础设施很少。它可以在互联网网络上运行。计算机节点可以随时离开或加入这个去中心网络,在加入时它们只需遵守最长链原则即可。
2.2.3 去中心化的优点
1、容错性
2、抗攻击性
3、抗勾结性
2.3 分布式账本
2.3.1 隐私与快速对账
1、比特币系统利用HASH算法对交易信息(账户、交易内容)进行加密,保护隐私
2、比特币系统利用HASH值进行对账
在线哈希加解密网站:https://tool.oschina.net/encrypt?type=2
2.3.2 账本一致性的保证
2.3.2.1 双花问题
“双花”的意思就是双重支付,即为一笔资金被花费了两次。这也是数字货币领域中最大的难题。
2.3.2.2 矿工与挖矿
比特币系统规则:最长链为可信任的链条。
矿工:创造区块,使链增长。
矿工凭计算机处理能力进行挖矿。但因假链是由伪造者自己维护,而真链由网络中其他所有矿工维护,所以假链增速很难快于真链,假链很难长于真链,也就很难取代真链成为主链。
2.4 工作量证明POW
2.4.1 POW算法
比特币系统中,采用工作量证明POW的规则获取记账权。
POW的执行过程:
将不同的nonce值作为输入,尝试进行SHA256哈希运算,找出满足给定数量前导0的哈希值的过程。而要求的前导0的个数越多,难度越大。
来到在线挖矿网站进行模拟:https://andersbrownworth.com/blockchain
输入待测数据wyt,点击挖矿,得随机数6802,6802为Nonce。此操作意为6802与数据“wyt”经哈希,得值小于目标的哈希值,6802为挖矿次数。
2.4.2 双花问题的解决
1、比特币系统规则:最长链为可信任的链条。
2、采用工作量证明(POW)获取记账权。
2.5 比特币的分叉
2.5.1 分叉概念
2.5.2 分叉类型
1、硬分叉:因为系统更新导致出现分叉,且不可合并。如,比特币扩容。
2、软分叉:短暂分叉,可合并。如,篡改数据。
三、区块链2.0技术以太坊
3.1 以太坊
3.1.1 以太坊出现原因
比特币的不足 | 以太坊解决方法 |
---|---|
交易速度慢 | 交易速度加快 |
POW算法,耗电 | POW+POS算法,逐步向POS算法过渡 |
仅完成了货币的去中心化 | 智能合约 |
3.1.2 以太坊概念
以太坊本质上是一个保存了数字交易永久记录的去中心化的公共数据库。这个数据库不需要任何中央权威机构来维持和保护各方的权益。也就是你可以在不需要第三方的情况下进行点对点交易。
以太坊 = 区块链 + 智能合约。
3.2 智能合约
3.2.1 智能合约简介
智能合约事实上是由计算机代码构成的一段程序。规则明确,所有人必须遵守,无条件执行。
3.2.2 智能合约缔结过程
第一步,参与缔约的双方或多方用户商定后将共同合意制定成一份智能合约;
第二步,该智能合约通过区块链网络向全球各个区块链的支点广播并存储;
第三步,构建成功的智能合约等待条件达成后自动执行合约内容。
3.2.3 智能合约的特点
1、合约内容去信任化
2、合约内容不可篡改
3、经济、高效、无纠纷
3.3 Ghost协议
3.3.1 Ghost协议引入背景
与比特币系统相比,以太坊系统缩短了出块时间。
1、出块时间短的优点:
①交易更快捷,更快被写进区块链
②系统响应时间更快
2、缺点:
①分叉情况更频繁,不利于区块链的安全(算力分散了)
②加剧对个体矿工的不公平,造成挖矿集中化现象
为了解决出块时间短带来的挑战,以太坊采用GHOST协议(贪婪最重可见子树协议、最重合法链)
3.3.2 Ghost协议算法规则
Ghost协议:根据主链出现分叉时,叔父块合并速度的快慢,设立不同级别的奖励促进合并,而不是让分叉在自己的分支上继续挖下去。
1、选取主链
每次分叉就选取最重子树,而非最长的,直到确定完主链的序。本图中,最终选取的主链是 0, 1B, 2C, 3D, 4B。
同时对于非主链上的块,允许他们被主链引用(主链块最多引用2个),被成功引用后这些块会成为叔块。
2、区块奖励
主链上的块,每引用一个叔块,奖励1/32的区块奖励。
被引用的叔块获得的奖励为正常奖励的2/8~7/8倍,离叔块越近(区块高度相差越小),奖励越高,最高为7/8。
3.4 权益证明机制POS
3.4.1 POS算法引入背景
在POW算法挖矿机制下,消耗大量能源,故引入POS算法。但POS算法尚处于实验阶段,故目前以太坊系统采用POW+POS组成Casper协议协议运作。
3.4.2 POS机制
在2000区块中A胜出,则在2001区块中B更有可能胜出。
3.4.3 Casper协议
1、规则:根据验证者保证金额占比换算成票数,投票选举区块。
2、相关术语:
·验证者,有资格出块和投票的完整节点。成为验证者需要付出代价。
· 押金,投票者需要放一些币在链上做押金,投票的权利和押金有关,奖金和罚款有关
· 提现的周期是4个月
· 投票其实是广播消息并决定下一个检查点
· 惩罚,没收验证者的押金
· 检查点,每过一个数量的区块是对于整个量进行检查,这个块高度就是检查点
3.5 以太坊分叉
· 以太坊系统中硬分叉出现原因:黑客攻击。为了保证投资人的合法权益,以太坊开发团队,更新了以太坊软件,而又因为部分矿工对规则上的分歧,选择不更新软件,最终导致永久的分叉。
四、1.0技术与2.0技术总结
4.1 1.0技术向2.0技术的演变
4.2 区块链技术的应用
1、区块连+金融: 构建新时期的信任体系
2、区块连+能源 :打通能源互联网的必由之路
3、区块连+医疗: 为患者打造完整的治疗体系
4、区块连+教育: 打造教育生态
5、区块连+版权: 三位一体保护著作人权益
6、区块连+农业 :让食物更纯净
7、区块连+公益: 让每一份爱心都有归宿
8、区块连+社交: 用户自己控制数据
9、区块连+物联网: 线上与线下完全融合
10、区块连+云存储: 颠覆存储市场
11、区块连+AI 人工智能: 重新定义世界黑科技
五、Reference
2小时学会区块链:https://www.bilibili.com/video/BV1gt411T7Tq
六、总结
2023年回归CSDN,重新出发,选择区块链技术进行学习,记录下自己每一步的成长。道阻且长,行则将至;行而不辍,未来可期。
2023年1月3日于家中。
区块链扩展性技术总结
最近在做区块链的扩展性优化方面的研究学习,总结一下当前的主流区块链扩展性技术。
1 现状
区块链技术提高了数据的安全性与可靠性,但实际使用中存在可扩展性差的显著问题,出现了很多提升区块链扩展性的方案。
当前的区块链扩容方案可以分为三层,分别是第0层扩容,链上扩容和链下扩容。这里要解释一下扩容这个词,之前我认为扩容只是“扩大容量”这个字面意思,但随着深入学习,说的区块链扩容实际上就是提高区块链的扩展性,这是等价的,扩容的英文原文是scaling或expansion,只是中文翻译的不一样,我觉得翻译成扩容或扩展都行。
我对这三层扩容方案做了一个思维导图,包括了主流的区块链扩展性技术,下面分别来介绍每层的具体路线。
2 Layer0扩容
第0层扩容主要是优化互联网的数据传输协议,通过减少传播延迟来提升区块链性能。主要有覆盖网络和快速UDP互联网连接协议这2种技术路线。
2.1 覆盖网络
- 中继网络
- CDN(Content Delivery Network)与BDN(Blockchain Distribution Network)
0层扩容提升区块链扩展性的切入点是:
矿工创建新的区块 要广播给其它节点,全网接受区块后,给矿工的奖励才是有效的。矿工想最大的限度缩短区块的传播时间,所以需要一个网络来加快数据的传播,这个网络就叫中继网络。中继网络的节点具有低延迟和高带宽的特点,它们分布在全球各地,矿工可以连接到离他们最近的中继节点,通过中继网络传播区块,这比P2P网络要快得多。
CDN bloXroute(BDN)
在中继网络的基础上,提出了BDN。关于BDN,首先介绍一下CDN,CDN使用最靠近用户的服务器,来提供高性能的网络传输,提升了用户的响应速度。具体实现是在现有的互联网上再构建一层虚拟网络,在全网各地部署服务器,对网络状况、节点负载、节点到用户的距离以及响应时间这些要素进行综合考虑后,尽可能选择稳定快速的线路,为用户分配最高效的服务节点。
BDN基于CDN的思想,能够快速发送交易和区块。典型项目是bloXroute。它是一个基于BDN和P2P的网络,可以提升区块的传播效率,在保证去中心化和安全性的基础上提升可扩展性。如图,server服务器代表P2P网络的节点传播块,它们在传播块的时候不知道块中的交易、涉及的地址、产生块的矿工,也不知道创建块的实际来源。也就是说,它不会偏向或歧视特定的节点,只能公平地将所有块传播到其它所有网关,这种特点称为可证明的中立性。这个优势可以促使更多节点加入它,在BDN网络高效性的作用下,节点间区块的传播速度将逐渐提升。
2.2 Quick UDP Internet Connection(QUIC)
QUIC快速UDP互联网连接,是Google 提出的,基于UDP进行并发传输的网络协议。它整合了TCP协议的可靠性和UDP协议的高效性,加快了数据传输速度。它更像一个基础设施,不仅可以应用于区块链,也可以应用于其他领域,在Harmony 区块链项目中应用了该优化协议以提升数据传输的可靠性和高效性。
3 Layer1扩容(链上扩容)
下面介绍Layer1扩容,也叫链上扩容,是对区块链自身的协议、体系结构进行改进,来提升扩展性。链上扩容主要有数据层扩容、网络层扩容、共识层扩容。
数据层扩容主要是对区块进行修改,增加区块容纳的交易数量,根据修改方式的不同,目前主要有区块扩容、频率扩容、隔离见证、存储扩展和有向无环图这几种技术路线。
3.1 数据层扩容
3.1.1 区块扩容
首先,区块扩容通过提高区块大小,来增加可以被“写入”区块的交易数量。
那么该扩容多少,根据什么指标进行扩容呢?以比特币为例,与区块扩容相关的提议有9个,可以分为三类:
第一类是以算力为中心:包括100、101、105、109,它们是由矿工投票,来决定区块容量的调整方案;
第二类是以交易量为中心:包括104、106、107,它们的共同特点是根据前一阶段的区块大小调整区块容量;
第三类是随时间递增:包括102、103、107,共同特点是预估比特币交易的需求量,按年度来调整区块容量.
提高区块容量这种方法,可以说是最为直接的扩容方案,但是区块容量增大后,区块在网络中的传播速率会受到影响。比如,原来1M的区块需要10分钟就可到达全网95%以上的节点,但8M的区块可能在10分钟内不能到达全网的节点,这会增加孤块产生的风险,孤块造成的分叉会导致算力分散,增加链的维护难度,同时也降低了算力攻击的难度。所以这种方法只能在一定程度上缓解扩展性的问题,不能从根本上解决。
3.1.2 频率扩容
- 降低难度
- Bitcoin-NG
数据层扩容的第二种方法是频率扩容,指提高区块生成频率,从而增加单位时间内生成区块的数量。实现方式主要有两种:
第一种是降低难度,以pow共识为例,通过调整难度,控制区块生成的间隔在10分钟左右。降低难度可以很容易地缩短区块生成间隔。但这种方式会增加孤块出现的频率,造成计算资源的浪费。随着区块生成频率的增加,节点之间需要进行更多的通信,这也增加了网络带宽的压力。所以单纯的降低难度来提升频率不是一个很优雅的扩容方式。
第二种方式是Bitcoin-NG共识,它将 选举记账节点的流程 与 打包区块的流程分开。如图,区块被分成了两种,分别是主块和微块。矿工们对区块的操作也被分成了两个阶段,分别是选举领导者和打包交易。
Bitcoin-NG将时间分为多个epoch,一个epoch的时间是10分钟,每个epoch要选出一个领导者,选举领导的过程与比特币的挖矿过程相同,通过pow共识进行算力竞争,胜出者作为这个epoch的领导者并生成主块。主块并不包含具体的交易数据,而是包含对上一个区块的引用、时间以及nonce这些可以证明自己是领导者的信息。同时在主块中要公布自己的公钥,用于后续微块的认证。
微块记录交易信息,它的生成不需要消耗算力,生成速度可以很快,通过大量的微块来提升区块容量。同时,由于微块之间的间隔比较短,还可以减少部分交易的确认时间。
这种方法显著提高了比特币的吞吐量,但记账节点频繁地发布微块也会造成网络阻塞,另外也容易受到与比特币相同的攻击,比如51%攻击。
3.1.3 隔离见证&块压缩
隔离见证是比特币的一个升级,修改了区块的存储结构。原来区块中的交易包含了用来验证有效性的信息,占用整个交易存储空间的近70%。通过减少验证信息的占用空间,可以在区块中存储更多的交易,间接达到扩容的目的。具体实现是删除每笔交易的签名数据,释放区块中的存储空间,将更多交易存储在比特币 1M 的区块中,隔离出来的见证数据放到了区块末尾。
块压缩采取类似的思路,通过压缩块内交易的存储大小,使得单个区块能容纳更多的交易数量。这两种方法虽然充分挖掘区块的存储空间,但是仍受制于区块大小,没有从根本上解决性能可扩展性问题。比如Compact Block Relay。Compact Block Relay改变了比特币中原始区块的结构,只包含区块头和一些短的TXID,这些TXID将用于匹配已经存在于验证节点交易池中的交易。Txilm是基于Compact Block Relay的协议,该协议利用TXID的短哈希表示交易,但是使用短哈希时可能会发生哈希碰撞。因此,利用Txilm协议计算TXID的哈希值时,结合规范交易排序的规则(如CTOR算法)来优化该协议以降低哈希冲突的可能性,并通过“哈希加盐”(如添加CRC32- Merkle根)来防止系统受到碰撞攻击。基于Txilm,在模拟实验中实现了80倍的数据缩减,提高了区块链的吞吐量。
3.1.4 存储扩展
存储扩展考虑的是,如何减轻节点的存储压力,但是不会影响区块链整体数据的完整性和安全性。总结如下:
3.1.5 DAG
在DAG 中,每笔新的交易都可以单独作为区块提交。共识机制也不是传统的广播数据验证,而是根据规则传递前一个区块的hash值,数据的记录存储是并行的,打破了链式串行存储结构,提升了区块链网络的吞吐量。DAG 允许每笔交易独立记账,理论上不存在性能瓶颈,但是最后一笔交易却需要等待 新生成交易的节点进行验证,这段等待时间将会带来新的安全性问题。
DAG代表项目:IOTA、Byteball、Nano
3.2 网络层扩容
3.2.1 P2P网络结构
单纯研究区块链的网络结构这个领域比较少,一般是与共识算法相结合。区块链采用的P2P网络结构主要有三类:非结构化网络、结构化网络和混合式网络。
非结构化网络采用随机图的组织方式,构成网状网络,适合节点波动比较大的系统,但存在网络开销大的缺点。
结构化网络采用DHT技术管理网络中的结点,将节点按照环状或树状等不同结构进行组织,它提升了对节点的管理和通信效率,但维护网络结构的代价会提升。
混合式网络是P2P与C/S模式结合的产物,似乎是在走回头路,但是由于P2P技术的不完善,需要在一定程度上借鉴C/S结构的优点,它引入了超级节点的概念,综合了集中式网络快速查找和非结构化网络去中心化的优势,但是超级节点容易成为恶意节点的攻击目标。目前对于p2p网络结构的改进主要集中在结构化网络和混合式网络。
3.2.2 分片
当前网络层的扩容方案主要是分片技术,它是借鉴数据库的分片思想,在网络层将节点进行分片,每个分片网络各自进行共识,并行的处理交易,以此来提升区块链的吞吐量。
根据分片对象的不同,可分为网络分片、交易分片和状态分片。
网络分片是交易分片和状态分片的前提,是最基础的一种分片方式,就是将整个区块链网络划分成多个子网络,一个子网络也就是一个分片。
交易分片:在网络分片的基础上,将全网的交易划分到不同的分片中进行分区域共识,每个分片网络可以同时进行共识、验证交易数据,事务由串行处理改为并行处理,提升了区块链网络的整体性能。
状态分片同样建立在网络分片的基础上,区别是每个分片不再存储链的全部信息,而是只存储部分账本信息,减少了部分传输和存储的开销,提升了系统效率。相比于交易分片只能有限提升区块链性能,状态分片能从本质上解决区块链性能扩展问题。但是实现难度较大,它将完整的系统划分治理,也会带来一定的安全风险。
分片在提升效率的同时也带来了新的问题,主要是分片内部的安全和效率问题, 分片的第一步是网络分片,将网络中的节点按照规则分配到不同的子网络,这里的问题是,单个分片的算力以及验证节点的数量 远低于分片之前的整个网络,这稀释了算力,容易造成算力集中在单个分片中实施51%攻击。还有分片间需要克服双花攻击、跨链交易原子性、跨片交易的DDoS攻击等问题。
- 分片方案-Monoxide
这里介绍一个分片方案Monoxide,它在经典分片技术的基础上,还提出了连弩挖矿共识,解决了分片算力分散的问题。
首先,它将原来的区块链网络划分成多个组,组之间相互独立,并行的挖矿。每个组有独立的账本状态、区块、交易、数据广播网络以及全节点。矿工可以自由选择参与一个或多个共识组,进行挖矿,来获得每一个共识组中的出块奖励。正常情况下,矿工会优先选择参与当前算力较低的共识组,以获得更高的挖矿成功率,从而导致各个共识组会收敛到一致的挖矿算力和出块难度。
它提出了一种新的共识算法,叫做连弩挖矿,允许矿工同时参与多个编号连续的共识组,同时收集多个组中的交易数据,只需解决一次难题就可以打包多个组中的交易数据,有了这个规则,在一个组中挖矿跟同时在多个组中挖矿所需要的算力资源差不多,但是却能够获得更多的回报,因此能够鼓励矿工同时为多个组挖矿。为什么要鼓励一个矿工可以在多个组中挖矿呢?如果所有的矿工都为多个组挖矿的话,那么矿工之间的算力竞争就上升为全网算力的竞争。这样就缓解了攻击者集中算力在一个组中实施51%攻击的问题。
这里需要提一下联合挖矿,在允许矿工同时参与多条链挖矿这一点上,是很类似的。但是连弩挖矿的设计初衷与联合挖矿完全不同,连弩挖矿是为了放大有效算力,并强制放大后的算力 均匀分布在各个共识组,防止算力集中攻击特定分片。而联合挖矿是为了借用大算力的链,来保证小算力链的安全。
3.3 共识层扩容
目前区块链的共识协议主要有三类,分别是PoW、PoS和BFT类,其他的共识协议要么是在这三种共识的基础上改进,要么是混合了他们。然而,这三类共识都有他们各自的优点和缺陷。
工作量证明相对安全但是不利于性能的扩展。权益证明类容易形成垄断。拜占庭容错系列的共识有着强一致性,但是却受限于带宽和节点数,随着节点数增加,性能会大幅度降低,不适合作为公有链的共识协议。
关于共识的改进很多,这方面的研究非常活跃,眼花缭乱,我也不敢保证看到了全部,难以涵盖,这里大家根据自己对哪类共识感兴趣自行学习。
4 Layer2扩容(链下扩容)
最后是第2层扩容,也叫链下扩容,它不改变区块链的基本协议,通过链下改进提升扩展性。 链下扩容允许用户 在没有链上安全的环境中进行交易, 安全性由链上支持 ,具体技术包括 状态通道、链下计算和侧链 。
4.1 状态通道
状态通道的思路是将部分交易转移到链下,只将通道开启和关闭时的状态记录在链上。这样大大降低了链上的交易量,间接提升了系统整体的交易处理能力,并相应的降低了交易手续费。代表技术是闪电网络和雷电网络,之前写文章对这两种技术进行过详细介绍:
闪电网络(Lightning Network)学习总结_CNFINITE的博客-CSDN博客_闪电网络
区块链隐私保护(二): 网络层的隐私保护机制_CNFINITE的博客-CSDN博客_区块链隐私问题
4.2 链下计算
链下计算最初是针对以太坊提出的,由于以太坊存在GasLimit,计算量大的交易消耗gas多,将导致链上拥堵,链下计算的思路是将复杂的交易放到链下执行,结果提交回链上,链上只作数据验证,以此间接提升区块链处理交易的速度,但是也要保证高水准的隐私性和安全性。实现的方法有三类:
链下TEE 计算(TEE, Trusted Execution Environment):第一类是将链下的计算放在可信执行环境中进行,TEE提供基于硬件的计算安全性,Intel芯片的SGX和ARM芯片的TrustZone都可以用于链下TEE计算。
链下安全多方计算:第二类是通过安全多方计算来实现数据可用不可见,类似TEE提供硬件的加密安全,安全多方计算提供基于密码学的软件安全,比如混淆电路、秘密共享、同态加密这些算法,可以实现在各方均不知道完整数据的情况下,通过联合它们对部分数据的计算结果,得到最终结果。
链下激励驱动:第三类是采用激励机制,处理计算任务的求解者和检验结果的验证者,完成相应职责可获得奖励,反之受到惩罚。
链下计算这类扩展方案比较新颖,还在不断发展,距离大规模应用的落地还有距离。
4.3 侧链
实现链下扩容的最后一个技术是侧链,它最早源于比特币,目的是让比特币 安全地在比特币主链和其他区块链间互相转移。在后来的应用中,侧链的技术也被应用为区块链扩展技术。
侧链是一个独立的链,通过主链资产的双向锚定进行数据交互,侧链依赖于主链,但是独立于主链处理事务,侧链相对主链缺少完备的生态体系,容易成为攻击者的目标,给主链带来可用性和安全性风险。根据主侧链间 资产锁定与解锁方式的不同,可以分为四种模式:
托管模式有单一托管和联盟托管两种,单一托管是选取主链上的单一中间方 作为资产锁定与解锁的管理者,联盟托管则是选取多个托管方组成联盟,采用多重签名的方式对侧链进行资产管理。托管模式实现简单,不需要改变链的基础协议,但是增加了人为参与的中心化风险。
简单支付验证模式是将主链资产锁定到一个地址中,生成SPV证明,用于主侧链间信息的相互验证,也就是SPV证明作为托管方 管理主侧链资产。但是,采用SPV证明进行资产锁定的同时,也是对主链进行了临时的软分叉操作,解锁时,主链的软分叉结束,又对侧链进行了软分叉,给主侧链带来了安全风险。
驱动链模式是将矿工作为托管方,验证主侧链间的数据交互,受利益驱动的矿工作为公正的托管方,监管主侧链资产的锁定与解锁需求,这个模式与SPV模式一样,会带来软分叉的安全风险。 由于主链与侧链在实现机制上存在本质的不同,所以对称的双向锚定模型可能是不够完善的。混合模式是主链和侧链使用不同的解锁方法,例如在侧链上使用SPV模式,在主链网络上则使用驱动链模式。同样,混合模式也需要对主链进行软分叉。
5 总结
根据前面的介绍,现在来总结一下三层扩容方案:
第0层扩容是对计算机网络体系结构的优化,可能有的改进方案与区块链没有那么强的相关性,基于互联网的系统都能从中得到性能提升。而且在小规模网络中起不到很明显的效果,所以当前第0层扩容方案的研究相较于其它两层不够活跃。比较有名的并且已经落地的是 比特币中继网络和BDN这两类技术路线。
链下扩容的状态通道和侧链源于比特币和以太坊对自身缺陷的改进,已得到较多项目的部署并逐渐推广,而链下计算方案在实施验证方面少于前两者。
相比于链下扩容,链上扩容更能从根本上解决区块链的性能瓶颈,但是其技术难度也相对要高很多,并且对链本身的修改会对链的稳定性和安全性造成未知的风险,尤其是大的改动 用户们会有所顾虑,需要长时间的测试与证明,这也是链上扩容在实施部署方面落后于链下扩容的原因。
虽然对扩容技术按照类别分层,但这3层扩容方案并不是互斥的,可以同时采用链上、链下和第0层扩容方案。不过,目前某些扩容技术还处在探索阶段,同时部署多种扩容方案也会带来更多的潜在风险和不可预测隐患。
以上是关于区块链区块链技术学习总结的主要内容,如果未能解决你的问题,请参考以下文章
区块链技术开发智能合约与图像存储在外部存储器IPFS(InterPlanetary File System)
论述《区块链智能合约的合同效力认定》去中心化金融的钞能力赛道