区块链技术应用的关键问题和挑战

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tiandiwuya/article/details/81625943

目前区块链虽然发展迅速,但也面临着以下问题:
这里写图片描述

1.密码学技术

如何证明交易双方的身份,防止交易记录被篡改,保护交易双方的隐私?这都是区块链面临的核心问题。密码学的发展为解决这些问题提供了不少手段。传统方案包括Hash算法、加解密算法、数字证书和签名(盲签名、环签名)等。随着区块链技术的应用,新出现的需求将刺激密码学的进一步发展,包括更高效的随机数产生、更高强度的加密、更快速的加解密处理等。同时,量子计算等新技术的出现,也会带来更多的挑战,例如,RSA算法等目前商用的加密算法,在来来可能无法提供足够的安全性。能否满足这些新的需求,将依赖于数学科学的进一步发展和新一代计算技术的突破。

2.分布式共识

分布式共识问题的核心在于如何解决某个变更在分布式网络中得到一致的执行结果,是被参与多方都承认的,同时这个信息是被确定的,不可推翻的。
最初,比特币区块链考虑的是公开匿名场景下的最坏保证。通过引入了“工作量证明“策略来规避少数人的恶意行为,并通过概率模型保证最后参与方共识到最长链。算法在核心思想上是基于经挤利益的博弈,让恶意破坏的参与者损失经济利益,从而保证大部分人的合作。同时,确认必须经过多个区块的生成之后达成,从概率上进行保证。这类算法的主要问题在于效率的低下。类似算法还有以权益为抵押的DPoS和PoS等。后来更多的区块链技术(如超级账本)在带权限管理的场景下,开始考虑支持更多的确定性的共识机制,包括经典的拜占庭算法等,可以解决快速确认的问题。
共识问题在很长一段时间内都将是极具学术价值的研究热点,核心的指标将包括容错的节点比例、决策收敛速度.出错后的恢复、动态特性等。PoW等基于概率的系列算法理论上允许少于一半的不合作节点。PBFT等确定性算法理论上则允许不超过1/3的不合作节点。

3.处理性能

与传统分布式系统不同,区块链系统处理性能很难通过单纯增加节点数来进行横向扩展。实际上,传统区块链系统的性能,在很大程度上取决于单个节点的处理能力。高性能、安全、稳定性、硬件辅助加解密能力,都将是考查节点性能的核心要素。
一般来说,区块链不适用于高频交易场景,但由于金融系统的需求,业界目前十分关心如何提高区块链系统交易的吞吐量,同时降低交易的确认延迟。目前,公开的比特币区块链只能支持平均每秒约7笔的吞吐量,一般认为对于大额交易来说,安全的交易确认时间为一个小时左右。以太坊区块链的吞吐量略高一些,每秒10-20笔交易,但交易性能也被认为是较大的瓶颈。这种场景下,为了提高处理性能,一方面可以提升单个节点的性能,同时设计优化的策略和算法;另外一方面试图将大量高频的交易放到链外来,只用区块链记录最终交易信息,如比特币社区提出的“闪电网络”等设计。类似地,侧链、影子链等思路在当前阶段也有一定的借鉴意义。类似设计可以将交易性能提升l-2个数量级。
此外,在联盟链的场景下,参与多方存在一定的信任前提和利益约束,可以采取更优化的设计,换来性能的提升。以超级账本项目为例,在普通虚拟机配置下,单客户端交易吞吐量tps可达几百次每秒;在有一定优化或硬件加速情况下可以达到每秒数千次的吞吐量。
目前开源区块链系统已经可以满足不少应用场景的性能需求,但离大规模交易系统在峰值每秒数万笔的吞吐性能还有较大差距。

4.扩展性

常见的分布式系统可以通过增加节点来横向扩展整个系统的处理能力。对于区块链网络系统来说,根据共识机制的不同,这个问题往往并非那么简单。例如,对于比特币和以太坊区块链而言,网络中每个参与维护的核心节点都要保持一份完整的存储,并且进行智能合约的处理。此时,整个网络的总存储和计算能力取决于单个节点的能力。甚至当网络中节点数过多时,可能会因为一致性的达成过程延迟,降低整个网络的性能。尤其在公有网络中,由于存在大量低性能处理节点,导致这个问题将更加明显。
要解决这个问题,根本上是在网络中节点能合作完成完整的处理前提下,放松对每个节点都必须参与完整处理的限制,这个思路已经在超级账本中得到应用。同时还要尽量减少核心层的处理工作。在联盟链模式下,还可采用高性能的节点作为核心节点,相对较弱的节点仅作为代理访问节点。

5.系统安全

目前区块链最热门的应用场景是金融相关服务,安全自然是讨论最多、挑战最大的话题。虽然区块链在设计上大量采用了现代成熟的密码学算法,但世界上并没有绝对安全的系统。系统是由人设计的,也是由人来运营的。只要有人参与的系统,就难免出现漏洞。比如下面几个方面就:
a、一般认为,只要物理上可接触就不是彻底的安全。公有链所有记录都是公开可见的,这意味着所有的交易即便被匿名化加密处理,但总会在未来被破解。根据已有文献证明,比特币区块链的交易记录很大可能是能追踪到真实用户的。
b、法律层面。攻击区块链系统是否属于犯罪?对区块链系统如何进行监管?目前还没有相关法律保护区块链以及基于它的实现,特别是公有链。
c、智能合约漏洞管控。运行在区块链上的智能合约种类繁多.可能存在潜在的漏洞,必须进行安全管控,在注册和运行前需要有合理的机制进行探测,以规避恶意代码的破坏。
d、公有链缺乏有效的调整机制。作为一套完全分布式的系统,一且运行起来.出现问题也难以修正。即使是让它变得更高效、更完善的修改,只要有部分既得利益者联合起来反对,就无法得到实施。

6.数据库和存储系统

区块链网络中的大量信息需要写到文件和数据库中进行存储,而区块链中,大量的读写操作、哈希计算和验证操作,跟传统数据库的行为有很大不同。前人根据互联网应用大量非事务性的查询操作,设计了非关系型( NoSQL)数据库。LeveIDB、RocksDB等键值数据库,具备很高的随机写和顺序读、写性能,以及相对较差的随机读的性能,被广泛应用到了区块链信息存储中,但目前来看,面向区块链的数据库技术仍然是需要突破的技术难点之一,特别是如何支持更丰富语义的操作。
由需求紧迫性可以预测,未来将可能出现更具针对性的“块数据库”,专门服务类似区块链这样的新型数据业务,其中所有操作的最小单位将是一个块。每条记录将包括一个完整的区块信息,并天然地跟历史信息进行关联,一旦写入确认则无法修改。为了实现这种结构,需要原生支持高效的签名和加解密处理。

7.可集成性

在相当长的一段时间内,基于区块链的新业务系统将与已有的中心化系统共存。两种系统如何共存,如何分工,彼此的业务交易如何进行传递都是很迫切的问题。或将成为区块链技术落地的很大阻碍。

猜你喜欢

转载自blog.csdn.net/tiandiwuya/article/details/81625943