原文标题:Security and Privacy on Blockchain
原文作者:RUI ZHANG, RUI XUE,,LING LIU
原文地址:https://doi.org/10.1145/3316481
发表会议:2019 ACM Computing Surveys, Vol. 52, No. 3, Article 51
笔记整理:doxbwx@163.com
1.简介
作者通过调研分析过去五年内数千篇区块链论文中,发现有12篇关于区块链的安全和隐私威胁的研究报告,发现大多数关于区块链的安全和隐私研究都集中在两个方面:
- 揭示目前基于区块链的系统所遭受的一些攻击;
- 提出使用一些最先进的对策来对付这些攻击的子集的具体建议
作者描述了用于在线交易的区块链的概念,并讨论了区块链的基本和额外的安全性和隐私属性。然后讨论一套相应的安全技术,尤其是加密解决方案,以实现基本和额外的安全目标。这篇调查文章的主要目标有以下两点:
- 为非安全专家提供一个入口点,以更好地了解区块链技术的安全性和隐私属性
- 帮助专家和研究人员探索区块链的前沿安全和隐私技术
2.区块链概述
2.1 区块链是如何工作的
比特币网络中,客户a想发送比特币给客户b,它将由客户a创建一个比特币交易。该交易得到矿工的批准后才由比特币网络提交。那些矿工节点将把交易收集到一个区块中。验证区块中的交易,并使用共识协议广播区块及其验证,以获得网络的批准。当其他节点验证该块中包含的所有交易都是有效的时,可以将该块添加到区块链。
下图给出了这个过程的说明。只有当包含交易的“区块”被其他节点批准并添加到区块链时,从A到B的比特币转移才会最终确定并合法。
2.2 区块链级别的交易模式
有两种代表性的区块链级交易模型:由比特币引入的未消费交易产出(UTXO)模型和由以太坊引入的基于账户的交易模型。
- UTXO模型:
需要满足的条件 |
---|
交易中每个被引用的输入都必须由其所有者(发送者)签名,并且尚未花费 |
如果交易有多个输入,那么每个输入都必须有与输入的所有者相匹配的签名 |
交易的输入总价值等于或超过其输出总价值 |
下面是UTXO模型的一个例子
如果Bob和Mary都给Alice发送了5个BTC,而Alice没有花掉它们,那么就有5个BTC从Bob那里签署给Alice,另外5个BTC从Mary那里签署给Alice。如果Alice想把她的两个单一的5BTC实例合并成10BTC的实例,Alice必须执行另一个交易,其方式类似于她需要把她的两张5美元的钞票换成10美元的钞票
在线交易中适用UTXO模型有以下这些优点:
- 潜在的高度隐私。UTXO模型定义了一个数据结构,使每个用户可以持有多个BTC实例,不像银行的账户合为一个总金额。只需要在交易过程中揭示自己的实例,而不需要揭示账户的地址。
- 潜在的高度可扩展性。UTXO模型没有用户的账户概念,这消除了基于账户的交易模型的一些限制。交易之间可以平行,而不需担心顺序问题。
- 潜在的高安全性。UTXO模型为每个用户的所有BTC实例维护了一个Merkle的所有权证明。可以解决双重消费问题。
相应地,他也会有一些缺点:
如果Alice收到100个BTC,并希望向Carlo发送10个BTC,Alice必须通过创建两个输出来消耗100个BTC的输出:10个BTC给收款人Carlo,90个BTC返回给自己作为变化。
在这样的一种情况下,可能会向观察者泄露私人信息。这也使得余额计算成为UTXO模型的一个核心特征,也是导致钱包复杂性的一个重要因素。尽管付款人可以并行应用交易,但由于需要严格执行总排序约束,如输入的总和应等于或超过输出的总和,因此很难实现真正的并行。
- 基于账户的交易模型
通过基于账户余额的交易模式,其运作方式类似于今天实体银行的银行账户,用户的全部余额信息都存储在以太坊中。
需要满足的条件 |
---|
代币由信息编写者(发送者)签署 |
编写者对代币价值的所有权可以得到证明 |
编写者的支出账户有足够的余额用于交易 |
基于账户的交易模型有许多明显的好处:
- 比UTXO模型有更大的空间节省。因为每笔交易都只需要一个参考和一个签名来产生输出。
- 更加简单。coin不会根据来源而被分开,所有不需要维护coin的来源信息。
- 不允许在每笔交易中改变引用,但它提供了对账户相关数据的轻松访问。
账户nonce与每个账户相关联,并且作为账户发送交易的计数。以防止同一交易行为被多次执行。
工作证明nonce:这是一个区块中的随机值,用来通过挖矿获得工作证明,这是一种去中心化记录的授权机制。
2.3 区块链中的CAP属性
比特币系统似乎已经违反了CAP定理,因为它实现了一致性、可用性和分区容忍。然而,区块链的一致性是在一段时间后实现的。比特币挖矿结合共识协议和至少六个确认,通过达成共识来确保最终的一致性。
CAP定理指出,任何分布式系统只能有以下两个属性。
- 一致性:每一个计算节点都会收到最近的写入。
- 可用性:其中任何请求的一些数据总是可用的。
- 分区容忍度:即使某些子集的节点无法运行,分布式系统始终在运行。
2.4 区块链的演变
区块链可以分为三类:
- 公共区块链
- 联盟区块链
- 私有区块链
数字货币(区块链1.0),发展到智能合约(区块链2.0),以及许多其他形式的去中心化合作,具有高度的问责制和高度的安全和信任(区块链3.0)下图显示了区块链的架构,其中红色虚线的内容是由区块链2.0开发的
3.区块链的安全和隐私属性
在线交易饿嘟安全和隐私要求大致分为以下几种:
- 各机构之间账本的一致性
- 交易的完整性
- 系统和数据的可用性
- 防止双重浪费
- 交易的保密性
- 用户身份的匿名性
- 交易的无关联性
下图对安全和隐私要求、属性和技术总结
4. 共识算法
拜占庭将军问题(BGP):一个坏的行为者可能秘密地创造冲突信息使得组内成员不能表现统一,这会摧毁团队合作他们行为的效率。
- PoW
1.任何的证人产生一个达到确定要求的证据都应该是困难并且花费时间的。
2.其他人可以通过它的正确性来验证证据应该是简单并且快速的。
用BGP阐述PoW的工作过程:
1.Append一个nonce(通常从0开始)到原始信息中,这是一个随机的十六进制值。
2.为nonce增强消息应用hash,并且检查hash结果是否小于等于预设值(比如以5个0开头)
3.如果满足哈希条件,城市一边的军队会派带有hash信息和nonce的消息使者给城市另一边的军队。如果不满足哈希条件,然后nonce值+1,一直迭代这个过程,直到获取到了满意的结果。发现正确的nonce值是花费时间的并且计算昂贵的。
4.由于hash的抗碰撞特性,即时消息使者被抓了,还是很难篡改消息的hash值,因为篡改后消息的hash会彻底地不同于原始消息地hash值,城西地将军会核实消息是否以5个0开头,如果不是就会忽略这条消息。
5.重复上述迭代过程,以至于大量的消息使者从城东军队穿过城市发送到城西军队。
PoW可以有效的解决BGP问题,但是他也有三个限制:
- 因为高计算复杂度和工作证明成功生成的低可能性,协议是一个极其低效率的过程
- PoW安全主要都是来源于挖矿的回报,这就要求有强的鼓励机制来吸引矿工。
- 参与者有各种各样的能力,于是产生PoW有不同的成功能力。
总之,PoW共识算法更加倾向于依赖去中心化激励和经济激励来保证安全性。
- PoS
每个验证者都可以通过共识算法参与提议创建和验证新区块,这需要一组验证者将赌注放在下一个区块上,并轮流投票。谁将成为下一个区块的验证者的决定是根据每个验证者的赌注大小计算的投票权重做出的。被选中的概率与他们的赌注成正比。
主要有基于BFT和基于链的PoS
chain-based PoS,该算法在每个时间段(例如,每10秒)伪随机地选择一个验证者,并赋予该验证者创建一个区块的权限,并将该区块与之前的一些区块(通常是之前最长的链的末端的区块)连接起来。因此,随着时间的推移,大多数区块会汇聚成一个不断增长的单一链
BFT被定义为一个系统对BGP的故障容忍能力[75]。考虑一组玩家之间的协议场景:每个玩家持有可能不同的初始值,所有玩家需要通过遵守共识协议来达成一个单一的值。在一个系统中,如果大多数玩家是严格遵守协议的诚实玩家,即使少数玩家是恶意的,可能任意偏离协议,也能达成这样的协议,我们认为这个系统是拜占庭容错的
其他的共识算法还有
- Sleepy共识
- 经过时间证明(PoET)
- 权威证明(PoA)
- 声誉证明(PoR)
下图表示共识算法的比较
5.区块链中使用的隐私和安全技术
作者总结了可以利用来加强现有和未来区块链系统的安全和隐私的一些技术,以及他们的优缺点。
- Mixing
- 匿名签名
- 同态加密(HE)
- 基于属性的加密(ABE)
- 安全的多方计算
- 非交互式零知识(NIZK)证明
- 基于可信执行环境(TEE)的智能合约
- 基于游戏的智能合约
作者对于这些技术有一些意见:
- 没有一种技术是区块链安全和隐私的万能药,应该根据具体情况选择合适的技术,一般来说,多种技术的结合比使用单一技术更有效
- 没有任何技术没有缺陷或在所有方面都是完美的,所以我们仔细关注将一些安全和隐私技术整合到区块链中所带来的隐患和潜在危害
- 安全、隐私和效率之间总是有一个权衡,要提倡完善安全和隐私的技术,但是也要保证性能是可以实际部署使用的情况。
6. 结论
本文描述了实现这些安全和隐私属性的安全和隐私技术,并且说明Mixing、匿名签名、加密、安全的多方计算、非交互式零知识证明和智能合约等技术可以应用在区块链中。区块链在业界的关注度越来越高,在实践中应该保证安全和效率之间的一个平衡,所以未来开发轻量级的加密算法会是一个关键性的使能技术。