新闻资讯
了解资讯最新动态,掌握实时资讯
目前区块链开发需要面对的挑战
2019-02-14 11:03:25

  区块链是人类为了解决不同问题而形成的技术。区块链开发的起源在于分布式计算和密码学的研究,但成为独立的技术领域则从2009年比特币出现后才真正开始。

  我们从区块链的基本概念开始,探索当前区块链面临的挑战。

  区块链开发面临的挑战

  区块链的本质是去中心化的分布式账本。在早期以虚拟货币为核心的区块链上,例如比特币,区块链就是记录比特币交易历史的数据库。当前,区块链逐渐转型为分布式数据库,随着IPFS文件系统(InterPlanetary File System)的出现,目前区块链记录的数据已不限于交易记录,可以是任意结构化或非结构化数据。这些数据总是被编码为线性串联的数据块,每一块中包含一组串联的交易记录。
 

目前区块链开发需要面对的挑战
 

  区块链记录的数据具有不可篡改的特性,即一旦上线,除非发生恶意攻击(正常情况下攻击难度很高),数据无法随意篡改。区块链的节点具有分布式、自组织的特点,不需要集中建设网络,也没有集中式的管控机制,而是由多个参与者通过共识机制共同决定。

  共识机制解决在去中心化环境下,当前谁可以获得记账权的问题,其理论基础是分布式计算中的拜占庭将军问题(Byzantine Generals Problem),目前常见的共识机制有工作量证明(即Proof-Of-Work,POW)和权益证明(Proof-Of-Stake,POS)。

  比特币成功设计了基于POW的共识机制(即所谓的「挖矿」),允许获得记账权的一方同时获得奖励,从而吸引了大量计算资源投入到比特币网络之中。在比特币之后,以太坊(Ethereum)引入智能合约,大幅度扩展了区块链的应用范围和灵活性。智能合约以可执行代码的方式,界定交易参与方的行为,并根据约定自动执行交易,从而使得复杂商业行为能够在区块链上实现。

  经过十年的发展,区块链开发技术已经取得了长足的发展,表现为结合数字货币的公链、以产业和业务结合的联盟链、企业内部使用的私链等三种主要形式。然而,当前区块链技术在蓬勃发展的同时,也面临着一系列挑战:

  挖矿能耗

  比特币和以太坊以及其它多个主流公链均使用工作量证明作为共识算法,同时对取得记账权的节点进行奖励。以比特币为例,其工作量证明使用特定的哈希函数计算一个随机数,为了保证难度(体现为计算时间),要求结果随机数的前若干位为0(具体位数是动态调整的)。由于过去几年中虚拟货币价格出现了连续强劲上升势头,大量计算资源被投入到挖矿计算之中,并且出现了以比特大陆为代表的行业巨头。

  如果把全部挖矿的计算能力折算为浮点运算,粗略估算的总体计算能力达到1023FLOPS(FLoating point Operations Per Second),已经达到谷歌计算能力的1百万倍,或者全球500强超级计算机总体计算能力的10万倍。如此庞大的计算能力当然以电力作为基础,其总用电量已经超过世界上160多个国家。

  可扩展性

  无论作为虚拟货币账本还是广义的数据库,区块链上的数据服务均以交易形式完成。由于区块链的分布式特性,交易总是并发产生的。因此,区块链的可扩展性一般指单位时间内能够支撑的最高并发交易个数。一般说来,区块链的吞吐率以Transactions Per Second(TPS)表征,计算方式如下:

  TPS=一个区块内包含的交易数量/区块产生时间=一个区块内包含的交易数量/(共识算法运行的时间+广播并验证的时间)

  也就是说,TPS由数据块的大小、共识算法运行的时间和广播并验证的时间共同决定。值得注意的是,由于区块链采用去中心化方式验证交易,因此必须在多数节点形成共识之后才能完成验证,其后果就是目前的区块链在节点增加的情况下交易速度必然下降。比特币的吞吐率为3.3~7TPS,以太坊略高,但也只有30TPS左右。对比而言,使用中心化方式验证交易的VISA信用卡的持续吞吐率能够达到1700TPS以上(VISA官网宣称峰值可达65000TPS)。

  安全性

  区块链开发采用了去中心化的共识机制,本身的安全性是比较高的。然而,区块链由网络实现,因此其网络协议的各个层次均有可能受到攻击。例如Mt Gox交易所曾因为钱包的安全性漏洞被盗走3.6亿美元,直接导致交易所破产。

  更为严重的安全隐患来自于智能合约。由于智能合约是具有图灵完备性的程序,因此其行为更加复杂,而且代码在分布式网络环境上运行时,潜在风险会大大提升。目前的智能合约编程以Solidity语言为主,该语言成熟度相对较低,因此虽然代码由虚拟机执行,但攻击者可以利用溢出等情况侵入宿主电脑。同时,为了支持交易引入了跨合约程序调用等功能,易于遭受重入攻击。典型案例是以太坊上的众筹项目DAO,它在2017年受到重入攻击,被盗走当时价值6千万美元的以太币。

  易用性

  智能合约的引入使得区块链在应用领域上升到全新的层次,形成了人类商业行为的一次革命。但智能合约以程序形式体现,对一般用户来说具有一定难度。在传统的线下世界,大多数人都可以看懂合同内容,相当比例的用户则可以在律师指导下或参照模板编写简单合同。智能合约则不然,要求用户必须具备编程能力才能撰写合同,无形中又限制了其应用范围。

  隐私保护

  在大数据时代,保护数据隐私的重要性不言而喻。目前区块链公链上的数据大体来说是完全开放的。因此,随着区块链应用的不断拓展以及其数据库应用比重的提升,如何在区块链上引入完备的隐私保护机制已经成为亟待解决的问题。

本文链接:http://www.lrqukuailian.com///news/27.html