探究区块链的局限性和应对策略
2023-07-02曾庆幸
摘 要:规模与权力是中心化产生信用的基础,如果规模变小,信用将降低,而这些在区块链的网络中都可以杜绝,区块链具有去中心化、不可篡改、可信任的特点,它解决了现实中去中心化信任的需求,数据公开透明任何人都可以随时查看随时验证,而且内容一经写入便不能篡改。但是随着区块链的普及和应用,人们开始发现区块链的局限性,如何针对局限性对区块链进行相应的改进策略,本文对区块链的局限性进行分析研究,并提出应对策略。
关键词:区块链;共识算法;加密技术;零知识证明
Exploring the Limitations and Coping Strategies of Blockchain
Zeng Qingxing
Baoting Federation of Literary And Art Circles HainanBaoting 572300
Abstract:Scale and power is the basis of centralized credit,if smaller,credit will be reduced,and these can be eliminated in the network of block chain,block chain has the characteristics of decentralization,tamperproof,trust,it solves the demand of decentralized trust in the real world,transparent data anyone can check at any time,and the content is written cannot be tampered with.However,with the popularization and application of blockchain,people begin to find the limitations of blockchain.How to improve the corresponding strategies of blockchain according to the limitations,this paper analyzes and studies the limitations of blockchain,and puts forward coping strategies.
Keywords:Block chain;Consensus algorithm;Encryption techniques;zero knowledge proof
區块链之所以能够实现去中心化信任,除了使用加密技术,就是每个数据库相互独立,权力平等,数据库内容实时更新,如果有人想要篡改某一区块的数据,就必须将生成在该区块之外的所有区块的区块头破解,并逐个篡改每个区块中相应的数据,这几乎是不可能的。如果有人掌握全网一半以上的算力,便可以将区块任意生成在自己想要的链上,由于其比所有人生成区块的速度快,区块链的数据将被篡改,但掌握全网一半的算力投入成本巨大收益却少。
1 区块链核心技术
1.1 区块链特殊的数据结构
区块链的数据结构包含两个部分,一个是区块,一个是链,区块链网络中每秒都会产生成百上千条交易记录,每过十分钟节点将会检查这些交易记录,并检查无误后将其生成一个数据区块,每个区块又分为两个部分,区块头(Block Header)和区块体(Block Body),区块体用于存放数据,区块内存放了区块头、时间戳、交易数据、构造该区块的矿工等信息,而区块头是当前区块唯一的ID,用于识别区块,并且该区块头的生成是由上个区块的全部信息通过哈希运算得来的,区块之间通过区块头进行连接便形成区块链,所有区块不断连接形成一个不断写入数据的数据库。
1.2 共识算法
区块链作为由多个节点共同控制的数据库,这些节点拥有相同的权限并共同协作构造区块链,在区块链增加区块时,如何让所有节点共同认可区块的有效性,这就用到共识算法。为了提供有效的服务,因此在节点之间需要运行一个容错的一致协议,以确保追加到区块上的消息在所有节点之间都是一致的,这个一致性协议就为共识算法[1]。区块链网络中存在多个节点共同构造区块并争夺下一个区块的上链权,哪个节点最先通过共识机制将区块上链,哪个节点的区块就被所有节点认可,较常见的区块链网络共识机制为工作量证明算法,工作量证明算法要求节点经过耗费资源的运算并且运算结果能被快速验证,运算所耗费的时间、设备等资源作为担保成本,以确保服务被真正利用,在区块链网络中哪个节点运算下一个区块所需的时间越少且正确,哪一个节点构造的区块就被所有节点认可,当该区块被认可时并向所有节点广播,所有节点就会认可该区块的有效性并开始争夺下一个区块的上链权。共识算法作为区块链的核心机制之一,保证了区块链网络能否正常运行。
1.3 加密算法
在区块链的使用中,会采取不同方法来进行数据加密,通常用于交易安全性和隐私保护等方面。目前常用的密码学算法有非对称加密算法、Hash加密算法等。以非对称加密算法为例,非对称加密算法随机将两个质数,通过质数相乘、欧拉运算等步骤算出公钥和私钥,通过私钥加密的数据可以被公钥进行解密,公钥加密的数据可以被私钥进行解密,但公钥加密的数据却无法用公钥进行解密,基于不对称加密解密的公私钥的密码系统,可以将公钥公开,私钥则由各节点保存且不能被公开。当节点上传区块时使用公钥进行加密,各节点使用各自的私钥进行解密,并验证该区块是否有效。存储在服务器中的数据是使用区块链机制存储的。第一层安全机制中,哈希值被分割,其中一部分存储在云端,另一部分存储在本地。即使区块链或云端被黑客攻击,也只能获得一半的哈希密钥信息[2],通过加密算法,使黑客攻击成本提高,增强区块链各节点之间信息传播的安全性。
1.4 智能合约
智能合约是由代码编写并由计算机自动执行的数字协议,智能合约早在1994年就被提出,但一直没有得到广泛利用,原因在于当时的环境没有给智能合约可信的交易环境,而区块链的出现解决了可信的问题。智能合约有以下特点:代码公开、代码量小和涉及资产,在区块链里,智能合约会被包装成交易记录并放入区块里,在交易的过程中满足交易的预设条件,智能合约会自动进行且无法被更改,这就使交易双方无法私自更改合约或抵赖,创造交易双方互相信任的环境。
2区块链的局限性
随着区块链的普及和应用人们开始发现区块链的局限性,如效率低、智能合约的漏洞、信息安全、“区块链不可能三角”等问题。
2.1 处理效率低下
区块链网络中每个节点的权利相同,达成共识所需的时间长,区块链每个区块容量有限,为实现全网的信息同步和信息的可追溯,每秒的信息承载量较小,无法应对如双十一这样的大量数据,效率极低无法满足大数据时代的需求。
2.2 智能合约的漏洞
智能合约的特点是代码公开、代码量小,但正是这些特点让智能合约存在被黑客攻击的风险,代码量小容易进行,代码公开意味着无需做太多的破解、逆向分析等工作,代码量小意味着破解周期短,黑客可以通过检测区块链新增的智能合约,从区块交易中提取智能合约的地址与代码,再使用漏洞分析工具扫描合约的源代码,找出漏洞,最后进行人工分析和数据测试,往往就能得手。而且,由于没有自然语言与区块链智能合约代码相对应,智能合约代码的执行没有相应的法律条款支撑,导致了智能合约仍然缺乏法律效力,只能代表法律协议的一部分[3]。
2.3 信息安全问题
区块链解决的是相互陌生的交易双方信任问题,也可以保证写入区块的数据不会被篡改,但写入的信息的真假无法分辨。如果区块链网络生成区块的速度是每10分钟一个,并且信息需要经过六个区块才能完全确认,如果写入错误的信息,就必须在生成六个区块之前更改,否则将无法更改,容错率极低。区块链的数据相对集中且每个节点都拥有完整的区块链数据,区块链数据存储可分为链上存储和链上/链下协同存储两种方式,采用链上存储方式时所有数据全部存储在区块链底层数据库中,而采用链上/链下协同存储时,完整数据一般集中存储在其他节点(一般为中心化服务器)中,而元数据则保存在区块链数据库中[4],只要获得其中的一个节点的数据就得到了整个区块链中的数据,这无疑是增大了数据安全的保护难度。如果用户私钥丢失或者被黑客窃取,就会造成无法挽回的永久损失,因为去中心化的特点,用户无法像中心化机制那样找回密钥或者更改密钥,这样意味着与密钥关联的账户将永久丢失。区块链数据的隐私获取相对容易,隐私保护难度较大,黑客可以通过对从其他平台获得的个人的公开数据与从区块链中获取的数据进行关联性分析,一旦将区块链交易地址与网络IP地址、平台消费记录等信息进行关联分析,很容易获取到用户的隐私信息。
2.4 区块链的不可能三角
区块链“不可能三角”的意思是区块链无法同时拥有去中心化、可拓展性和安全性的特性。如果区块链在去中心化的同时保证其安全性,就会导致拓展性弱;如果区块链在保证安全性和可拓展性,就无法形成真正地去中心化。其原因是这几个要素是相互制约的,去中心化需要拥有大量参与区块生产和验证的节点,节点地位相互平等,即使有些节点崩溃也无法让整个区块链网络崩溃,并且攻击区块链的成本也会增加,因此区块链拥有大量的节点保证了区块链网络的安全性,但这也意味着效率低下,因为每一区块需要所有节点达成共识,节点越多达成共识的速度就越慢。
3 改进区块链的对策
3.1 Layer 2
Layer 2是一条拓展以太坊并且继承其安全性的独立区块链,Layer 2网络分为两层,二层网络会定期与一层网络沟通,并把交易数据传过去,由一层网络验证数据,保证其安全性,简单说Layer 2网络是依靠一层网络运行的区塊链,二层将所有数据压缩并打包送入一层进行验证,通过这样的方式效率会大大提高,打包后的数据如何确认其有效性,Rollup为Layer2主要的解决方案,Rollup分为两种方案,一种为零知识汇总(Zero Knowledge Rollup),一种为乐观汇总(Optimistic Rollup);零知识汇总通过链上合约与链下虚拟机的方式保证每次更新后数据的可用性,此方法处理效率提高但无法保证安全性;乐观汇总会给予数据一个星期左右的质询期,通过奖罚机制,奖励发现数据漏洞的节点并处罚将错误数据上传的节点,在质询期结束后将结果返还一层,该方法能保证安全性,但效率会降低。
3.2 改进领导节点
为了提高区块链处理效率,有的区块链网络会通过使用多线程模型,以及引入领导节点來提高效率,领导节点将工作分给普通节点,领导节点负责生产区块,普通节点负责验证区块,这虽然大大提高了效率但同时也大大削减了去中心化的程度,使得区块链网络变得不再安全。因此可以采用DAG技术并行处理计算,这远远高于单线程区块链处理效率以及降低延迟并且提高资源利用率。再分配给区块链中的每个节点额外的工作以备领导节点崩溃时接管领导节点,这样有效避免领导节点崩溃时导致整个区块链网络崩溃。
3.3 改进共识算法
PoS(Proof fo Stake)即权益证明,是共识算法的一种,权益证明算法抛弃了工作量证明算法繁重的计算,节点通过质押一定的资产获得搭建区块的资格,按照固定时间根据节点的权重让所有的节点轮流搭建区块,节点必须保证区块稳定运行,否则将扣除质押在区块里的资产,由于所有节点都跟区块链网络产生利益相关,所以就不会主动破坏区块链网络的安全,但缺点是容易形成中心化趋势。BDAC算法通过引入信用机制来优化现有的共识算法,如将信用机制引入工作量证明算法中,通过对所有节点进行信用度的计算和排名,依据排名将区块构建权按比例分配给各个节点,节点信用值越大,节点获得的区块构建权就越大,增强了共识算法的安全性。将信用机制引入到权益证明算法中,综合考虑节点的有效出块数、有效投票数、参与度和历史信用度计算节点的信用值,再结合节点本身的权益和信用值来遴选共识节点集[5]。信用值在权益证明算法中的主要作用就是用来挑选共识节点集,确保信用值高的节点优先被选上,提高权益证明机制的安全性。
结语
区块链作为一种全新的人类关系连接方式,未来会像互联网一样普及,同时区块链也是一种正在发展的技术,固然会有很多局限性,我们要理性地看待它。随着越来越多的研究者对区块链进行研究,区块链会越来越完善。
参考文献:
[1]张燕平,李中文,张华龙.区块链的物联网信息安全技术研究[J].电子技术与软件工程,2023(01):1316.
[2]赵天娇.区块链技术及其应用安全性分析[J].科技创新与应用,2022,12(36):193196.
[3]李启明,胡浩青.区块链技术的能力局限与应对措施[J].清华金融评论,2017,49(12):101102.
[4]王群,李馥娟,倪雪莉,等.区块链数据形成与隐私威胁研究[J/OL].计算机工程,114[20230405].
[5]刘惠文,谢才炳,邓小鸿.基于信用的区块链共识算法对比研究[J].计算机应用研究,2023,40(02):321327.
作者简介:曾庆幸(1999— ),男,黎族,海南万宁人,本科,一级科员,研究方向:软件工程。