1. 首页 > 产业新闻 > 新能源

公有链的技术发展趋势解读

以比特为代表的可编程货币的出现让区块链技术走进大众视野,随后,以以太坊为代表的智能合约平台的问世设置了区块链技术商用的起点。但与此同时,现有的区块链技术尚无法支撑大规模商业应用的搭建,主流的区块链平台存在瓶颈和问题,迫使更多的开发者持续探寻区块链技术边界及新型技术方案。

根据对区块链行业发展历史及现状的综合分析得出,限制区块链规模化应用的技术掣肘主要在四大部分:可扩展性、互操作性、隐私性及安全性。

  • 可扩展性:突破现有区块链技术的性能瓶颈,提升区块链系统的吞吐量,以满足主流交易网络高并发的性能要求,主要是通过发展多样态共识、并行分片方案、二层网络方案及可验证计算来解决和改善。

  • 互操作性:实现不同区块链间的互操作,构建高效的连接机制,主要是通过跨链机制打通“区块链孤岛”。

  • 隐私性:区块链技术的应用需要保障交易数据、合约数据用等多个方面的安全和隐私保护,主要是通过假名、混币、环签名、Mimblewimble、零知识证明和可信计算解决。

  • 安全性:保证区块链安全可靠运行,特别是在智能合约方面。

共识算法用于协调系统中节点的行为和保持数据一致性。在不可信环境中组建的分布式系统,由于节点自身的不可靠性和节点间通讯的不稳定性,甚至节点伪造信息进行恶意响应,节点之间容易存在数据状态不一致性的问题。通过共识算法,区块链协调多个互不信任的节点的行为和状态,由此在不可信环境中组建一个可靠的系统。

共识算法是基于节点行为假设、治理模型和节点网络规模假设的系统实现。本质上,链上业务的特性和网络节点角色的定位决定了共识算法的选择。随着节点参与角色的多样化和业务交互特点的细分,出现了不同的网络假设和治理模型,讲解成为可以真正实现的公有链项目,是共识的探索方向。这个方向催生了共识算法在共识顺序、共识轮次、终局性和节点选择方式等方向的差异,形成多样态发展的态势。区块链共识机制的演变也印证了这一点。

在区块链发展初期,主流区块链网络多用基于 PoW(proof of work)的共识算法。由于 PoW 存在资源浪费问题,2017 年后基于PoS(proof of stake)的共识算法研究得到了迅猛的发展。单一共识算法均具有自身局限性,例如 PoW 共识效率低,DPoS去中心化程度较低等,区块链研究者尝试将两种或者多种共识算法融合起来,取长补短,来达到更好的共识特性。新一代的共识算法,比如Algorand、DFINITY、VBFT 等都属于混合共识算法。

区块链采用共识算法解决分布式系统多个节点间状态一致性的问题。区块链系统中每个节点全量处理所有交易,单纯增加节点并不能提升区块链的性能(TPS),反而节点之间达成共识的过程对性能是一个损耗。

直接增加节点并不能提升区块链的TPS,因为区块链上的交易没有负载分发机制,需要所有节点全量处理所有交易,无法并行处理。区块链的分片就是试图让链并行起来,将链分为多个分片链,然后通过一种负载分发机制,把交易分配给不同的分片执行,每个分片链独立运行,有独立的共识机制,通过并行的方案支撑比较强的水平扩展和按需扩展。分片技术的实现将为区块链各项事务活动的开展带来更高的协作效率与更加可信的生产方式。这种方案的难点在于跨分片的交易确认以及分片链的安全性保证。

因此,讲解把分片的理论和区块链的安全理论,包括密码经济学设计、激励机制设计,这些融合在一起来实现一个安全可扩展,而且高性能的区块链是一系列的非常大的挑战。分片技术包含网络分片、交易分片和状态分片:

网络分片:要求分片的消息只在分片内部网络中传播;

交易分片:指不同交易将只在不同的分片中运行,每个分片运行独立的共识算法;

状态分片:要求分片只需要维护分片内部的状态数据而不需要保存其它分片的数据。

随着业务对区块链扩展性的需求量逐渐增大,公有链项目方对于分片有不同程度的尝试,不同的分片技术可以实现存储,通信,计算等不同层面的扩展。可以看到,分片相关的理论和工程化成果稳步发展。

区块链二层网络(Layer2)技术旨在解决区块链扩容问题。区块链本身的容量是受限的,仅靠提高吞吐量很难满足所有的应用需求。

实际情况中,不是所有的交易都要在全球范围内达成共识,可以把部分交易以及合约执行只在所需范围内进行共识,以实现扩容的目标。广义的二层网络,包含了侧链,状态通道等各种将区块链的交易从链上迁移到链下(也可能是别的共识范围更小的链)的技术方案。二层网络设计中,脱离的链上共识的交易与合约讲解与链上的共识挂接,保证交易和合约的合法性及安全性是需要解决的问题。

具体来讲,二层网络需要解决三类问题:?

证明问题:链上没有全量数据的情况下,链下的交易最终讲解给链上提交证明。?

裁决和惩罚问题:裁决和执行讲解进行以产生链下约束力。?

监督问题:链下状态的监督。

在区块链系统中,用户希望自己的身份、资产状况、交易历史等信息都被尽可能少的人知道。一个完美的隐私性的支付系统中,每笔交易的信息都仅被参与这笔交易的双方知道。作为一个所有交易都要被公开和全网验证的系统,公有链在设计之初就应该考虑隐私性的需求。

比特币采用的方案是使用可以任意选取的、和真实身份的无关的公钥地址来作为持有资产和参与交易的主体,并通过地址对应的公钥和数字签名来验证对链上资产的所有权。

比特币实现了一个用户使用“假名”的支付系统,用户的真实身可信区块链推进计划 20份被隐藏在公钥地址背后。类似的方式也被使用在其他很多公有链项目的设计中,在公有链发展的早期也较好地满足了当时人们对于隐私性的需求。

混币方案让多个用户共同创建交易来变更其代币的所有权,通过混淆发送者和接受者之间的对应关系来增强用户的匿名性。图为例,如果没有采用混币,则很容易看到Alice 付了 8 个 BTC 给 Carol,Bob 付了 15 个 BTC 给Ted,结合其他交易信息进行交叉分析就很容易发现这些用户的真实身份;而进行混币以后就只能看到{Alice, Bob}向{Carol,Ted}发送了比特币,但是无法精确判断发送者和接受者的对应关系。

通过不同的用户间多次重复混币操作,最终就会把可能的发送者和接受者集合都变得很大,从而保护其中每个人的匿名性。

机密交易是由 Adam Back 和 Greg Maxwell 在 2013年提出的增强比特币隐私性的提案,可以实现对于交易金额和账户余额隐私性的保护,即其他人虽然可以看到 Alice 发送了一些代币给Bob,但是无法知道具体发送了多少。

机密交易的核心思想是用一种称为 Pedersen Commitment的承诺方案代替以(哈希地址,金额)的方式存储每一笔交易的输出,然后用同态加密的方式验证每笔交易中发送的总金额和接收的总金额是平衡的。在矿工看来,只需要对着输入输出的同态加密密文做一些线性运算就能验证一笔交易的金额是合法的了,整个过程中无需把交易金额暴露给矿工。机密交易它提供了一种简单高效的隐藏交易金额的方法,在以后的很多隐私保护方案中都被作为组件使用。

混币方案最大的缺陷就在于当参与人数不够多的时候能提供的隐私性保护非常有限。环形签名方案就是让其他用户在不知情的情况下“被动地”参与到混币中来,达到隐私保护的目的。简单来说,环签名技术允许一个用户列表中的任何一个用户都能独自生成一个合法的签名,且不同的用户生成的签名看上去是一样的。

进行交易时就只能验证一笔交易的所有发送者中的某一个许可了这笔交易,而无法精确判断具体是哪个发送者签名的,因此也无法判断交易真实的发送者。

另外,为了保护交易接收方的隐私,还可采用了潜行地址的技术。潜行地址技术允许发送方根据接收方公开的信息生成一个一次性的公钥地址,这个地址依然由接收方通过私钥控制,但是其他人无法从这个一次性地址关联到接收方的身份。通过环签名加上潜行地址的方式,对交易不可关联性方面的表现至少等同于多名用户参与的混币交易。而且由于协议强制要求每笔交易必须选择多个输入进行环签名,所以其实际上隐私性要高于只有少部分有需求的用户使用的比特币混币方案。

Mimblewimble方案的所有交易都以机密交易的方式进行,并且强制采用了区块级的混币和交易裁剪技术,因此它能够提供比单纯使用机密交易或者混币都更好的安全性。按照Mimblewimble协议,矿工会把每个区块中所有的交易混合成一笔交易,从而隐藏发送者和输出者之间的关联性。更进一步地,矿工们会从交易历史中删去已经被花掉的交易输出,只保留尚未被使用的交易输出(UTXO)。因此,其他人就很难再对历史交易进行关联性分析了。最好的情况下,一个新加入的节点相当于只能看到从coinbase 到 UTXO 转账的一笔交易,除此以外得不到任何信息——UTXO 中每笔输入的金额都是隐藏的。

零知识证明技术允许证明者在不告诉验证者任何关于 x 的具体信息的情况下,让验证者相信证明者是确实知道 x的值的。原始版本的零知识证明技术是基于交互式证明设计的,并不适合直接用到区块链上。

适合区块链使用的零知识可信区块链推进计划 22证明必须满足两个条件:非交互性,即证明者只生成一个证明,此后便可由不同的验证者分别验证证明的正确性;易验证性,即验证一个证明所花费的计算资源非常低。此外,为了节约宝贵的链上共识数据吞吐量,最好这个证明的长度也尽可能简短。

利用密码学技术在比特币上实现隐私保护功能吸引了很多密码学家进行研究。2012 年 Bitansky等首次提出了“零知识的简短非交互式证据”(zk-SNARK for zero-knowledge succinct non-interactiveargument of knowledge)的概念,其中简短和非交互两点即为在区块链上应用所必须的特点。“证据”是指这种方式在原理上是存在伪证的可能性的,只不过因为找到一个伪证需要天文数字的计算量,所以作为证据还是很有说服力的——毕竟如果攻击者可以完成那么大的计算量的话,任何加密算法都会被破解,也就无所谓伪证了。

零知识证明技术具有非常巨大的潜力。

  • 首先,零知识证明是一种通用的证明技术,可以证明任何计算的正确性,这与只能证明转账交易合法性的机密交易技术有着本质区别。因此,零知识证明技术可以解决更复杂的系统中的隐私保护问题。

  • 其次,零知识证明技术的另一个优点是明确地区分了计算和验证,使得验证的成本可以比计算低很多。这使得在区块链上以较低成本进行复杂运算成为了可能——这对于现有公有链是难以想象的,因为在这些公有链上验证一个状态的正确因为在这些公有链上验证一个状态的正确性需要所有节点重复执行一遍整个计算过程,效率自然非常低。

  • 最后,零知识证明技术还可以用于压缩交易历史,让节点在无需存储所有历史交易的情况下依然保持几乎相同的安全性。这点对于一个高吞吐量的公有链项目尤为重要。

在区块链的应用场景下,可信计算的目标主要有两个:一是数据隐私保护,即除了指定的计算任务外,用户的数据不应当被擅自挪作他用;二是可验证计算,这是对于计算过程的真实性和完整性的保护,使得用户不需要重复执行运算即可验证计算结果是否正确。目前用于实现可信计算的技术主要有基于硬件安全的可信执行环境(TrustedExecution Enclave,TEE)和基于密码学的全同态加密技术(Fully Homomorphic Encryption, FHE)等。

可信执行环境的基本原理是给每个支持 TEE 功能的芯片分配一对公钥和私钥,公钥与芯片序列号一起公开,私钥存储在 TEE内部。需要进行安全计算时,用户首先与 TEE 通信建立一个临时性的会话密钥,然后把输入数据用会话密钥加密后发送给 TEE在受保护的独立的区域内将输入数据解密后完成计算,最后用会话密钥把计算结果加密返回给用户。为了验证计算的正确性和完整性,通常计算结果中还会包括关于计算任务的快照以及使用TEE 私钥做出的签名。

可信执行环境的逻辑在于整个计算过程中输入和计算结果只在用户端和 TEE 内部以明文的方式出现。只要不暴露 TEE内部信息,即使可以完全控制服务器的操作系统也无法窥探或篡改计算结果。对芯片直接进行测量的难度极高,大大提升攻击难度。

TEE 技术的主要优势在于计算的成本较低。对于区块链来说,TEE技术可以大幅度降低验证智能合约执行的成本,彻底改变链上所有运算都要被所有全节点分别执行一遍的现状,突破单点的硬件性能对于区块链吞吐量的限制。目前 TEE技术已有一些商用产品,例如英特尔(Intel)2015 年推出了采用 SGX (Software GuardExtensions)技术的处理器,近两年也有一些区块链项目支持用 SGX 验证智能合约等复杂计算的运行结果。

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.fjxmta.com/chanye/xinnengyuan/32279.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456