区块链关键技术

区块链关键技术及其面临的挑战

1.1共识机制

难题:使地理位置分散且信任关系薄弱的区块链节点维持一致性的可信数据副本。

共识机制的主要功能是解决两个基本问题


  1. 谁有权写入数据。区块链系统中,每一个骨干网络节点都将各自独立维护一份区块链账本(即区块链系统中的数据库)。为了避免不同的区块链账本出现数据混乱的问题,必须要设计公平的挑选机制,每次只挑选一个网络节点负责写入数据;
  2. 其他人如何同步数据。当被挑选的网络节点写入数据后,其他网络节点必须能够准确及时的同步这些数据。为了避免网络中出现伪造、篡改新增数据的情况,必须设计可靠的验证机制,使所有网络节点能够快速验证接收到的数据是由被挑选的网络节点写入的数据。

区块上链:首先,每隔一定时间,经过共识机制挑选的节点将挑选待入库的交易,构造最小的区块链数据存储结构“区块”,然后将区块数据广播到区块链网络。其次,全网所有节点将对接收到的区块数据进行检测,根据共识机制判断区块数据是否是由合法的授权节点发布。如果区块数据满足共识机制和其他格式需求,将会被节点追加在各自维护的区块链账本中,完成一次数据同步。

共识机制类型


从如何选取记账节点的角度,现有的区块链共识机制可以分为选举类、证明类、随机类、联盟类和混合类共5种类型

  • 选举类共识是指矿工节点在每一轮共识过程中通过“投票选举”的方式选出当前轮次的记账节点,首先获得半数以上选票的矿工节点将会获得记账权。
    例如PBFT、Paxos和Raft等。PBFT共识机制效率高,支持秒级出块,而且支持强监管节点参与,具备权限分级能力,在安全性、一致性、可用性方面有较强优势。然而,在PBFT系统,一旦有1/3或以上记账人停止工作,系统将无法提供服务,当有1/3或以上记账人联合作恶,且其他所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉。
  • 证明类共识被称为“Proof of X”类共识,即矿工节点在每一轮共识过程中必须证明自己具有某种特定的能力,证明方式通常是竞争性地完成某项难以解决但易于验证的任务,在竞争中胜出的矿工节点将获得记账权。例如PoW和PoS共识算法等。PoW(工作量证明机制)的核心思想是通过分布式节点的算力竞争来保证数据的一致性和共识的安全性。PoS(权益证明机制)的目的是解决PoW中资源浪费的问题。PoS是由具有最高权益的节点获得新区块的记账权和收益奖励,不需要进行大量的算力竞赛。PoS一定程度上解决了PoW算力浪费的问题,但是PoS共识机制导致拥有权益的参与者可以持币获得利息,容易产生垄断。
  • 随机类共识是指矿工节点根据某种随机方式直接确定每一轮的记账节点,例如Algorand和PoET共识算法等。Algorand共识是为了解决PoW共识协议存在的算力浪费、扩展性弱、易分叉、确认时间长等不足。Algorand共识的优点包括:能耗低,不管系统中有多用户,大约每1500名用户中只有1名会被系统随机挑中执行长达几秒钟的计算;民主化,不会出现类似比特币区块链系统的“矿工”群体;出现分叉的概率低于10-18。
  • 联盟类共识是指矿工节点基于某种特定方式首先选举出一组代表节点,而后由代表节点以轮流或者选举的方式依次取得记账权。这是一种以“代议制”为特点的共识算法,例如DPoS等。DPoS不仅能够很好地解决PoW浪费能源和联合挖矿对系统的去中心化构成威胁的问题,也能够弥补PoS中拥有记账权益的参与者未必希望参与记账的缺点。
  • 混合类共识是指矿工节点采取多种共识算法的混合体选择记账节点,例如PoW+PoS混合共识、DPoS+BFT共识等。通过结合多种共识算法,能够取长补短,解决单一共识机制存在的能源消耗与安全风险问题。

共识机制现存问题:


  1. 比特币、以太坊等公有链使用的共识机制(如PoW,PoS等)虽然支持大规模节点网络,但共识性能较低,如比特币的TPS(每秒处理的交易数)大约只有7。
  2. 以Fabric为首的联盟链共识机制(如PBFT等)虽然有较高的TPS,如PBFT的TPS能达到1000,但这些共识算法的扩展性较差,只支持小规模的网络,当节点数量过多时共识机制就会崩溃,且很多联盟链共识算法的共识节点是预置的,不支持节点的动态加入与退出。

1.2互操作性

1.2.1 类型

区块链的互操作性主要通过跨链技术实现。依据具体的技术路线,跨链技术可分为公证人技术、侧链技术、原子交换技术以及分布式私钥控制技术四类。

  1. 公证人技术
    在公证人技术中,交易参与方事先选择一组可信的公证人,以确保交易的有效执行。
    由Ripple公司提出的InterLedger协议,是公证人技术的一个典型案例。InterLedger实现了跨区块链转账,在A链发送方在向B链接收方转账前,需找到一组连接者(Connectors),由连接者逐跳地把资金发送至接收方。各连接者需指定一组公证人(notaries),由公证人监督这一组交易的有效性。
    公证人技术的主要问题在于需要信任特定的公证人群体,这违背了区块链去中心化的设计初衷,并引入一定的安全性隐患。

  2. 侧链技术
    借助侧链技术,一条区块链可以读取并验证其他区块链的事件和状态。
    目前,侧链技术可分为一对一侧链和星形侧链两大类。一对一侧链技术包括以BTC Relay、RSK为代表的新型区块链。此类区块链能够和一条已有的区块链(如比特币)交互,主要目的是实现已有区块链的功能拓展。而星形侧链技术主要包括以Polkadot、Cosmos为代表的跨链基础设施,其通过构建一条新区块链连接多条其他区块链,进而形成一个星形拓扑结构,实现不同区块链间的价值与信息流通。

  3. 原子交换
    原子交换的基本思想是,当位于两条链上的双方互换资产时,交易双方通过智能合约等技术,维护一个相互制约的触发器(trigger)以保证资产交换的原子性。即A与B之间的资产交换或者同时发生,或者同时不发生,而不会发生A向B转账完成,而B未向A转账的情况。
    此类跨链方案的典型案例是Blocknet。在原子交换的基础上,Blocknet增加了订单匹配、交易撮合等功能,以实现去中心化跨链货币兑换。然而,原子交换技术的应用范围较为狭窄,仅限于跨链转账领域,无法满足其他跨链需求。

  4. 分布式私钥控制技术
    分布式私钥控制技术旨在通过分布式私钥生成与控制技术,将各种数字资产映射到一条新的区块链上,从而在同一条区块链上实现不同数字资产的自由交换。
    Fusion是分布式私钥控制技术的代表性项目。其核心思想将各条区块链上的数字资产映射到Fusion构建的公共区块链上。简单来说,就像不同区块链用户将数字资产存入“银行”,银行内的数字资产可以进行自由的流通与兑换,并实时更新用户账户余额,用户从“银行”提款时以最后的账户余额为准。

    分布式私钥控制技术与原子交换技术类似,仅能完成跨链资产转移,尚不能进行更复杂的跨链互操作。
    

1.2.2 互操作性的不足

  1. 应用范围窄。
    例如,BTC Relay只能完成比特币到以太坊的单向操作,而InterLedger和Fusion等仅能完成跨链转账,无法进行其他类型的操作。
  2. 兼容性差。例如,Cosmos等系统仅支持结构相同区块链的互联互通。

1.3安全性

  1. 算法安全
    算法安全通常是指密码算法安全,既包括用于检验交易的哈希算法、签名算法,也包括用于某些智能合约中的复杂密码算法。

  2. 协议安全
    协议是通信双方为了实现通信而设计的约定或通话规则,包括网络层面的通信协议和上层的区块链共识协议。

    协议安全在网络层面表现为P2P协议设计安全。攻击者利用网络协议漏洞可以进行日蚀攻击(Eclipse Attack)和路由攻击(Routing Attack)。攻击者利用网络节点的连接数限制可以用日蚀攻击将节点从主网中隔离,而路由攻击则是通过控制路由基础设施将区块链网络分区而进行的攻击。攻击者还可以发起DDoS攻击,目前对于DDoS攻击只能依靠收取交易费和浪费算力来控制。

    协议安全在区块链共识层面表现为共识协议安全。首先各类共识协议均有容错能力限制,如PoW存在51%算力攻击,PoS存在51%币天攻击,而DPoS还存在着中心化风险。其次,共识协议容易受到外部攻击影响。例如,针对PoW共识已出现了自私挖矿(Selfish Mining)和顽固挖矿(Stubborn Minging)等多种攻击。自私挖矿可以使攻击者获得多出自身算力占比的收益;而顽固挖矿是对自私挖矿的拓展,可以使攻击者收益率比自私挖矿提高13.94%。PoS共识则存在“无利害关系(Nothing at Stake)”问题,即区块链发生分叉时,矿工可能会在多个分叉上同时下注,以谋取不当利益。
    针对协议安全性问题,为防止网络层面的攻击,需要开发者谨慎选择区块链的网络协议。而为了防止区块链共识层面的攻击,则需设计适当的激励与惩罚措施,从而降低攻击者获得的收益。

  3. 实现安全
    在区块链系统的实现过程中,程序员可能会有意或无意留下漏洞,从而导致区块链的安全性受到损害。具体表现在以下两个方面。

    首先,众多区块链引入了图灵完备的智能合约机制。用户可以利用智能合约编写自动化程序,完成资产分配等操作。然而,在编写智能合约时很可能会引入安全性漏洞。例如,某些合约可能会错误地把资产发送到不受控的地址,或者资产无限期锁死,导致全网可用代币减少等。

    其次,区块链的底层源码也可能存在整数溢出漏洞、短地址漏洞和公开函数漏洞等各种漏洞。例如,比特币0.3.11之前版本可以违规生成大量比特币,而以太坊的短地址漏洞可以使交易者从交易所违规获得256倍甚至更多的利益。

    针对智能合约等程序在实现上的安全问题,业界已提出一系列的形式化验证和安全测试技术,从而在产品上线之前发现其可能存在的漏洞。此外,诸多区块链的产品开发者已开始定期进行代码审计,包括交易安全审查和访问控制审查等,从而争取在攻击者发现漏洞之前修复安全问题。

  4. 使用安全
    在区块链中,“使用安全”特指用户私钥的安全。私钥代表了用户的资产所有权,是资产安全的前提。然而在传统的区块链中,私钥均由用户自己生产并保管,没有第三方的参与,所以私钥一旦丢失或被盗,用户就会遭受资产损失。

    在现实使用中,某些交易平台会代替用户管理私钥,但是很多平台往往采用联网的“热钱包”管理私钥,一旦“热钱包”被黑客破解,用户的资产就会被盗取。此外,由于没有完善的风险隔离措施和人员监督机制,导致部分拥有权限的员工利用监管机会盗取信息或代币。

    针对使用安全性问题,用户需要更加谨慎保管私钥,尽量使用与网络隔离的冷钱包存储私钥。而交易平台需严格进行权限管理,谨慎开放服务器端口,定期进行安全监测,建立完善的应急处理措施。

  5. 系统安全
    系统安全是一个整体性概念,它受到各级安全因素的共同影响。攻击者可以综合运用网络攻击手段,对算法漏洞、协议漏洞、使用漏洞、实现漏洞、系统漏洞等各个方面综合利用,从而达成攻击目的。另外社会工程学攻击的引入也使区块链变得更加脆弱。为此,业界需还要关注用户自身系统安全性,包括定期更新补丁、启用设备防火墙、禁用路由器中不必要的组件等。

1.4隐私保护

根据保护隐私的对象分类,主要可以分为3类:网络层隐私保护、交易层隐私保护和应用层的隐私保护。

网络层的隐私保护,涵盖数据在网络中传输的过程,包括区块链节点设置模式、节点通信机制、数据传输的协议机制等;交易层的隐私保护,包含区块链中数据产生、验证、存储和使用的整个过程,交易层隐私保护的侧重点是满足区块链基本共识机制和数据存储不变的条件下,尽可能隐藏数据信息和数据背后的知识,防止攻击者通过分析区块数据提取用户画像;应用层的隐私保护场景,包含区块链数据被外部应用使用的过程等,区块链被外部使用的过程存在泄露交易隐私和身份隐私的威胁,因此,应用层隐私保护的侧重点包括提升用户的安全意识、提高区块链服务商的安全防护水平,例如合理的公私钥保存、构建无漏洞的区块链服务等。

1.5可监管性

当前对公有链的监管刚刚处于起步阶段,研究方向不全面,研究技术也不成熟。然而,对公有链的监管需求又是十分必要且紧急的。因此,监管成为了公有链领域急需解决的问题,也成为了当前公有链项目落地的最大挑战。联盟链由于其自身特点,使得联盟链能够很好的支持对节点和链上数据的监管。因此,如何设计监管友好的联盟链基础架构,在保护隐私的前提下实现监管功能,是联盟链监管中需要研究的主要问题。任何技术的发展都离不开对技术本身的监管,我们需要加强对区块链监管的研究,只有这样才能够保证区块链行业的健康和可持续发展。

参考文献:
CCF区块链专委会 | 区块链关键技术研究进展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值