区块链架构(区块链技术概述:架构,共识和未来趋势)
论文:Z。 Zheng, S。 Xie, H。 Dai, X。 Chen and H。 Wang, "An Overview of Blockchain Technology! Architecture, Consensus, and Future Trends," 2017 IEEE International Congress on Big Data (BigData Congress), Honolulu, HI, 2017, pp。 557-564。
https!//ieeexplore。ieee。org/document/8029379
论文摘要
区块链作为比特币的基础,最近受到了广泛关注。区块链是不可变的分布式账本,比特币价格它允许以一种去中心化的形式开展交易。基于区块链的程序正在大量涌现,涉及到包括金融服务、信誉系统和物联网(IoT)等诸多领域。然而,区块链技术仍面临着许多像可扩展性、安全问题等有待克服挑战。本文对区块链技术做了一个综合性介绍。我们首先概述了区块链的架构,同时比较了不同区块链中使用的一些典型的共识算法。此外,简要列出了区块链面临的技术挑战和最新进展。我们还阐述了区块链未来可能的发展趋势。
关键词:区块链,去中心化,共识算法,可扩展性
1。 区块链架构
区块链是包含完整的交易记录列表的一系列区块,这像传统的公共分类账一样。图1是区块链的一个例子。 每个块只有一个父块。块头中包含着前一个块的哈希值。区块链的第一个块称为创世块,它没有父块。下面将详细解释区块链的内部结构。
区块:
一个区块由区块头和区块体组成,如图2。
特别一提的是,区块链的头包含:
(1)块版本号:指示所遵循的块验证规则集;
(2)Merkle树根哈希:块中所有事务的哈希值;
(3)时间戳:当前时间。用1970年1月1日以来时间的秒数表示;
(4)nBits:有效区块的哈希值的目标阈值。
(5)Nonce:一个4字节的字段,通常以0开头,并且每次散列计算都会增加
(6)父块哈希:指向前一个块的256位哈希值。
区块体由交易计数器和交易组成。块可以包含的最大交易数取决于块大小和每个交易的大小。 区块链使用非对称加密机制来验证交易。 基于非对称密码术的数字签名常用于不可信赖的环境中。接下来简要说明数字签名。
数字签名
每个用户拥有一对私钥和公钥。应保密的私钥用于签署交易。数字签名交易在整个网络中广播。典型的数字签名涉及两个阶段:签名阶段和验证阶段。例如,用户Alice想要向另一个用户Bob发送消息。(1)在签名阶段,Alice用她的私钥加密她的数据,并向Bob发送加密结果和原始数据。(2)在验证阶段,Bob使用Alice的公钥验证该值。通过这种方式,Bob可以轻松检查数据是否已被篡改。区块链中使用的典型数字签名算法是椭圆曲线数字签名算法(ECDSA)。
区块链的典型特征
去中心化:在传统的集中式交易系统中,每笔交易需要通过中央信任机构(例如中央银行)进行验证,不可避免地导致成本上升和中央服务器的性能瓶颈。区块链不需要第三方参与。共识算法用于维护分布式网络中的数据一致性。
持久性:交易可以快速验证。一旦交易被包含进区块链中,它们几乎不可能删除或回滚。包含无效交易的块可以立即被发现。
匿名性:每个用户都可以使用生成的地址与区块链交互,这不会显示用户的真实身份。由于内在约束,区块链无法保证完美的隐私保护
可审查性:比特币区块链基于未花费的交易输出(UTXO)模型存储有关用户余额数据:任何交易都必须引用一些先前的未花费交易。一旦当前交易被记录到区块链中,那些引用的未花费的交易的状态就从未花费的转换为花费。
区块链系统分类
目前区块链系统大致分为三类:公有链、私有链和同盟链。在公有链中,所有记录都对公众可见,每个人都可以参与共识过程。不同的是,只有一组预先选定的节点才会参与联盟链的共识过程。对于私有区块链,只允许来自特定组织的那些节点加入共识过程。私有区块链被视为集中式网络,因为它完全由一个组织控制。表I列出了三种区块链之间的比较。
区别主要表现在以下几点:共识确定与共识过程的参与者、交易数据读取权限、交易是否可以被篡改、交易处理效率和中心化程度。
2。 共识算法
在区块链中,如何在不可信赖的节点之间达成共识可以被看作拜占庭将军(BG)问题的一个变体。BG问题指一群指挥部分拜占庭军队的将军包围了一座城市。将军们有的想要进攻,而其他想要撤退。如果只有部分将军选择攻击这座城市,那么袭击会失败。 因此,他们必须达成协议。如何在分布式环境中达成共识是一项挑战。区块链网络正是分布式的。在区块链中,没有中心节点确保分布式节点上的账本都是相同的。需要一些协议来确保不同节点中的账本一致。在区块链中有几种常用的达成共识方法。
达成共识的方法:
PoW(工作量证明)是比特币网络中使用的共识策略。若一个节点想要发布一个交易块,那么必须做很多工作来证明它不太可能攻击网络。通常工作意味着计算机进行计算。在PoW中,网络的每个节点正在计算块头的散列值。共识要求计算值必须等于或小于某个给定值。当一个节点达到目标值时,它会将块广播到其他节点,所有其他节点必须相互确认散列值的正确性。如果块被验证,其他矿工会将这个新块附加到他们自己的区块链。计算哈希值的节点称为矿工,PoW程序在比特币中称为挖掘。
PoS(股权证明)是PoW的节能替代品。它认为拥有更多货币的人不太可能攻击网络。基于账户余额的选择是不公平的,因为最富有的人必然在网络中占主导地位。因此,有很多解决方案被提出。Blackcoin 使用随机化预测下一个块制造者。Peercoin偏向基于币龄做出选择。与PoW相比,PoS节省更多能量并且更有效率。不过由于采矿成本几乎为零,因此可能会发生攻击。许多区块链在开始时采用PoW,后来逐渐转换为PoS。
PBFT(实用拜占庭容错算法)是一种容忍拜占庭故障的复制算法。PBFT可以处理多达1/3的恶意复制品。每一轮确定一个新的区块。在每轮中,将根据一些规则选择主要负责节点。整个过程可分为三个阶段:预先准备,准备和提交。在每个阶段,如果新节点从所有节点中获得超过2/3的投票,则将进入下一阶段。PBFT要求网络知道每个节点。
DPOS(委托的股权证明)。PoS和DPOS之间的主要区别在于PoS是直接民主的,而DPOS是具有代表性的民主。利益相关者选择他们的代表来生成和验证块。由于用于参与验证块的节点明显较少,因此可以快速确认块及其中交易。同时,代表们可以调整网络的参数,例如块大小和产生块的时间间隔。此外,用户无需担心不诚实的代表。因为用户可以轻松地投票选择代表。
Ripple是一种共识算法,它在较大的网络中使用集体信任的子网络。在网络中,节点分为两类:参与协商流程的服务器和只转账的客户端。每个服务器都有一个唯一的节点列表(UNL)。UNL对服务器很重要。在确定是否将交易放入分类账时,服务器将查询UNL中的节点,如果收到的协议已达到80%,则将交易打包到分类账中。对于节点,只要UNL中的故障节点百分比小于20%,分类账将保持正确。
Tendermint是一种拜占庭共识算法。与PBFT较为相似。但与PBFT不同,节点必须锁定它们的硬币才能成为验证者。一旦发现验证者不诚实,就会受到惩罚。
共识算法的比较:
共识算法的区别主要体现在节点表示管理、节能水平、容忍错误/攻击的能力。表II给出了具体的对比,以及采用相应算法的具体应用项目实例。
3。 挑战与最新进展:
可扩展性:
随着交易量的日益增加,区块链变得庞大。因为每个节点必须检查当前交易的来源是否未占用,它们必须存储所有交易。由于块大小的原始限制和生成新块的时间间隔,比特币区块链每秒只能处理近7笔交易,不能满足实时处理数百万笔交易的要求。此外,由于区块容量非常小,矿工更喜欢交易费用高的交易,这会导致许多小型交易可能被延迟。为了解决区块链的可扩展性问题提出了许多措施:
一类是区块链的存储优化。由于节点很难操作账本的完整副本,Bruce提出了一种新的加密货币方案,其中旧的交易记录将被网络删除。名为帐户树的数据库用于保存所有非空地址的余额。二是重新设计区块链。下一代比特币的概念已经被提出。其主要思想是将传统的区块分离为两部分:领导人选举的关键区块和存储交易的微区块。下一代比特币还扩展了最重(最长)链策略。微区块不计算在内。这样就解决了块大小和网络安全之间的权衡问题。
隐私泄露:
用户使用他们的私钥和公钥进行交易,而不暴露真实身份。但是,区块链不能完全保证交易隐私,因为每个公钥的所有交易和余额的值都是公开的。最近的研究表明,用户的比特币交易可以被链接来显示用户的信息。此外,Biryukov等人提出了一种方法。即使用户经过网络地址转换(NAT)或防火墙的保护,仍可将用户化名链接到IP地址。提高区块链的匿名性的方法大致分为两类:
一是混淆(Mix)技术。混合业务是一种将资金从多个输入地址转移到多个输出地址的匿名业务。二是匿名。在Zerocoin中,使用零知识证明。矿工验证硬币属于有效硬币列表而不是用数字签名来验证交易。
自私开采方式:
区块链容易受到合谋自私矿工的攻击。在自私的采矿策略中,矿工们不用广播就可以保留他们的采矿区。由于私有分支机构比现有的公共链长,因此所有矿工都会接受它。在私有区块链发布之前,诚实的矿工们正在一个无用的分支上浪费他们的资源,而自私的矿工们在没有竞争对手的情况下开采他们的私有链。所以自私的矿工往往会获得更多的收入。
4。 可能的未来方向:
区块链测试:
区块链应用的种类与数量都越来越多。然而,一些开发者可能会伪造他们的区块链表现,以吸引因巨额利润而来的投资者。此外,当用户希望将区块链结合到业务中时,他们必须知道哪个区块链适合他们的需求。因此,需要建立区块链测试机制来测试不同的区块链。
停止集中化趋势:
区块链设计为分散系统。然而,趋势显示矿工开始集中在采矿池中。到目前为止,排名前五的采矿池总共拥有比特币网络中超过51%的哈希功率。此外,自私的开采策略表明,拥有超过25%总计算能力的池可以获得比公平份额更多的收入。理性的矿工会被吸引到自私自利的水池中,最终水池可能会轻易地超过总功率的51%。由于区块链并不打算服务于少数组织,因此应该提出一些方法来解决这个问题。
大数据分析:
区块链可以很好地与大数据相结合。大致可以分成两类。一是数据管理,区块链可以用来存储重要的数据,因为它是分布式和安全的。二是数据分析,区块链上的交易可用于大数据分析。例如提取用户交易模式。用户可以通过分析预测潜在合作伙伴的交易行为。
区块链应用:
目前大多数区块链都在金融领域中使用。传统行业可以考虑区块链,并将区块链应用到其领域,以增强其系统。例如,用户声誉可以存储在区块链上。同时,新兴产业可以利用区块链提高绩效。
智能合约是执行合约条款的计算机化交易协议。这一概念已经提出很长时间了,现在可以用区块链来实现。在区块链中,智能合约是一个可以由矿工自动执行的代码片段。智能合约在金融服务和物联网等领域具有变革潜力。
致谢
本文由南京大学软件学院2016级本科生曹嘉玮翻译转述
","content_hash"!"4658102a
评论