(本文包含一些最初发表于 2019 年的材料 IOV 实验室 RSK 博客)
比特币的安全性依赖于矿工延长“最重链”的经济激励,也就是累积难度最大的链(通常是最长的)。 目前,这些奖励由区块奖励提供,包括区块补贴和交易费用。 但补贴(目前为 6.25 BTC)远高于每个区块的平均交易费用(目前为 0.25 BTC)。 比特币补贴每 4 年减半,如果 BTC 价格不成反比升值,挖矿的主要动力将从区块补贴转移到区块交易费。 要维持当前的安全预算,交易成本需要增加 25 倍。 现在判断这是否会成为比特币的问题还为时过早。 比特币可能需要软分叉或硬分叉以适应低补贴的新时代。 2014 年,当我提出(主要是理论上的)时,我展示了比特币如何变得不稳定 正面攻击. 卡尔斯滕等人。 (2016) 分析 对这个问题进行了深入但他们找不到满意的解决方案。 这不仅是比特币的问题,而且是每一种货币发行量随着时间的推移而减少的加密货币都需要面对的问题。
但我们现在不需要担心比特币。 比特币社区可能需要在 10 年或 20 年内解决这个问题,或者永远不会。 时不时的问题是 复查, 分析两者 突出 和 最小化 问题。 但是当我们分析比特币侧链(例如 RSK)时,问题就很真实了。
2019 年,Blockstream 的 CEO Adam Back 提到 平滑 在讨论比特币的长期安全预算时:“其他长期低补贴时代的想法包括跨区块平均费用以平滑费用收入。”
https://twitter.com/adam3us/status/1097031151921713152
自 2016 年以来,RSK 正是实现了这一想法,即费用收入的平滑。但在我们解释 RSK 如何处理高费用交易之前,我们将更详细地展示可由交易费用触发的三大块逆转攻击:费用狙击、鲸鱼交易和挖矿原子化。
如果区块补贴很低,并且最后一个区块的交易费用远高于内存池中的交易可以收取的费用,那么短期理性的矿工就会被激励从最后一个开采的区块中抓取交易并挖掘一个竞争阻止,而不是扩展它。 这是对中本聪共识的背离,它被称为 收费狙击. 根据定义,这种偏离是对协议的攻击,矿工被视为恶意方。 为了兑现抢到的交易费用,恶意矿工还需要比诚实链更快地挖掘一个额外的确认块,以便其余矿工切换到他的链上。 因此,费用狙击并不总是有利可图的,因为如果他的自私分叉没有超过诚实链,恶意矿工就有可能浪费他的算力。 偶尔的费用狙击可能不是问题,但如果矿工改变他们的共识代码以从所有现有分叉上的潜在费用狙击机会中获利,那么网络可能会受到更危险的攻击。
一旦矿工节点执行自动费用狙击,攻击者就可以利用这种情况进行双花攻击。 恶意矿工可能会在诚实链中花费硬币并获得另一个外部资产作为交换,然后在第一个区块之前将诚实链分叉。 在恶意分叉中,攻击者双花硬币,但也引入了诚实分叉中不能存在的显着特征(即唯一的 UTXO)。 紧接着,攻击者广播了一个 “鲸鱼”交易 利用此功能(即消耗此 UTXO)并向运行费用狙击代码的矿工提供异常高的交易费用作为诱饵(或贿赂)。 虽然术语“鲸鱼交易”可以理解为转移高价值的交易,但这里我们使用参考论文中的定义,作为支付高额费用的交易,无论转移的价值金额如何。 在比特币中,鲸鱼交易和恶意分叉区块需要直接发送到矿工节点,因为非最佳分叉不会由对等网络中的完整节点转发。 但是,在许多智能合约平台中,攻击要容易得多,因为它们确实会广播非最佳分叉。 同样在智能合约平台中,创建鲸鱼交易更简单:攻击者可以重用已在诚实链中使用的随机数,从而防止鲸鱼交易被包含在诚实链中。 或者,鲸鱼交易可以执行一个合约,检查前一个区块哈希是否匹配只存在于自私分叉中的区块哈希(即使用 BLOCKHASH 操作码),并仅在自私分叉上行贿。
一旦矿工检测到鲸鱼交易,他们可能会考虑延长恶意分叉,即使落后,如果贿赂足够高,押注它会超过更长的诚实链。 在没有智能合约的情况下,最好的攻击策略是同时广播一系列贿赂以下矿工的鲸鱼交易,以便他们不断扩展恶意分叉。 在比特币中,交易可以与 检查锁定验证 or 检查序列验证. 在智能合约平台中,这可以通过重用随机数或通过合约调用来完成。 即使没有自动化,攻击者也可以继续在恶意分叉上生成鲸鱼交易,直到它超过诚实链。
在鲸鱼交易攻击中,我们考虑到矿工需要根据分叉获胜概率动态切换到复杂的挖矿策略来接受贿赂。 我们可以更现实地认为,矿工正在运行一种更简单的策略,不考虑未来的贿赂,而只考虑自私的费用狙击。 如果这是大多数矿工采用的策略,那么新的攻击是可能的。 矿工原子化攻击是一种全网拒绝服务攻击,试图诱使所有矿工同时在自私分叉上工作,从而降低诚实链的速度和收敛性。 攻击以广播一笔费用非常高的交易开始,类似于费用截断攻击或鲸鱼交易攻击。 该交易并非旨在帮助双花,而是旨在原子化挖矿网络的诱饵。 我们将用一个例子来展示这种攻击。 假设高度为 N 的区块中的交易 T 支付 100 个硬币的费用,但平均区块奖励仅为 10 个硬币。 我们假设所有矿工的节点都被编程为遵循这个合理的策略:
- 如果 T 包含在诚实链的最后 K 个区块中的任何一个中,则获取交易 T 并尝试在高度 N 处挖掘一个竞争块,然后继续挖掘这个自私分叉的子块,直到它超过诚实链。
- 如果诚实链超过自私分叉 K 个区块,则放弃。
高费用的恶意交易为了更大的矿池的利益而原子化挖矿,它有最大的机会挖掘交易T加上足够的额外的自私确认块,以便剩余的矿工放弃。 奇怪的是,挖矿网络越去中心化,交易 T 造成的中断就越严重。 例如,对于平均区块间隔为 10 分钟的区块链,如果有 100 个矿工,每个矿工拥有总算力的 1%,则网络将遭受 100 倍的几个区块的减速,直到最终收敛。 网络将无法使用 2 天!
RSK 是一个 纯比特币侧链,因此它必须面临使用自成立以来仅由交易费用组成的安全预算来保护区块链的挑战。 因此,RSK 必须为异常高或异常低的费用做好准备。 RSK 是第一个生产就绪的侧链,它使用合并挖掘来达成共识。 目前超过 40% 的比特币矿工 合并挖矿 RSK.
RSK 矿工希望通过运行 RSK 全节点获得经济补偿。 大多数区块链会为此补偿发行新币。 其他一些分布式账本,例如 Ripple,不发行硬币来支付区块生产者,但区块生产者可以得到外部补贴。 预先开采 XRP 的 Ripple Labs 拥有大量 XRP,他们可以为第三方成为区块生产者提供 XRP 补偿。 另一方面,RSK 面临最艰难的条件:它没有硬币发行(如比特币),也没有硬币预挖(如 XRP)。 RSK 代表了比特币侧链的成功例子,是通缩区块链共识未来的一瞥,以及没有补贴的区块链如何可持续。 然而,没有补贴意味着侧链必须针对此处提出的攻击精心设计。 RSK 实施了几个独特的功能,以更安全地抵御基于高费用交易的区块链重组:
- 区块奖励平滑(也称为费用平滑)。
- 区块奖励分享
- 分叉感知合并挖掘
在以下各节中,我们将简要介绍每种技术。
费用平滑是一种共识规则,以更平等的方式在矿工之间分配交易费用。 它向每个矿工支付过去区块奖励的函数。 该函数可以是线性的或非线性的,基于少量的先前区块奖励,或者基于依赖于所有先前区块的状态。 最简单的设计是对累积费用使用某种低通滤波器。 RSK 使用了一个非常简单的平滑函数,一个 IIR α= 0.1. 如果 RSK 矿工在高度 N 处解决了一个区块,则该矿工将获得区块 N 交易费用的 10% 和之前累积的所有未支付矿工费用的 10%。 换句话说,存在一个“共享”矿工账户,在每个区块中,获胜的矿工投入交易费用并为自己取出 10%。
奖励平滑增加了扩展区块链的动机,而不是重新挖掘过去的区块以获取其付费费用的动机,因为矿工只能获取鲸鱼交易费用的 10%。 我们会提到前面的例子。 我们假设平均区块奖励为 10 个硬币,一个区块包含高度 N 的 100 个硬币贿赂。在 RSK 中,高度为 N 的区块将支付 19 个硬币的奖励,而下一个区块将支付 18.1 个硬币。 自私的矿工现在需要比任何其他矿工多 10 倍的哈希能力才能使攻击有利可图。
我们现在展示其他补充保护措施。
RSK 实施了一种名为 DECOR 的奖励共享共识协议。 DECOR 在兄弟区块之间平均分配区块奖励,只要这些区块头被诚实链引用。 DECOR 减少了原子化攻击的动机,因为高费用交易的赢家必须与另外 10 个产生兄弟区块的矿工分享奖励。 这是因为一个区块链块最多可以有 10 个块兄弟引用,并且 DECOR 协议在它们之间共享块奖励。 为了避免共享,矿工需要再挖 10 个自私的区块,防止叔叔引用,大大降低了他成功的机会。 考虑到奖励共享和费用平滑,要想成功破坏 RSK 网络,贿赂必须至少比平均区块奖励高 110 倍。
分叉感知合并挖矿 是合并挖掘的一种变体,它允许用户监控主链网络(例如比特币)中的侧链网络(例如 RSK)中的恶意分叉。 为了从鲸鱼交易攻击中获利,攻击者必须找到一个受害者进行双花。 该受害者可能是在线加密货币交易所。 加密货币交易所在接受存款之前要等待数百个区块确认,这对于交易者来说是足够的时间 RSK犰狳系统 预先检测恶意分叉并提醒交易所。 在费用狙击和矿工原子化攻击的情况下,恶意分叉很短,因此Armadillo只能作为诊断情况和识别偏离诚实协议的矿池的工具,但不能阻止攻击。
另一项 RSK 当前未实施的补充保护措施是将交易 gas 价格限制为最低 gas 价格的倍数(即 10 倍价差)。 我为比特币提出了一个类似的衡量标准 2013. RSK 可以轻松实现这一点,因为每个区块都会公布可接受的最低交易 gas 价格。 但是,如果网络处于区块未消耗区块中所有可用 gas 限制的状态,则设置最高 gas 价格并不能完全解决问题。 T 中的高交易费用可能是由于消耗了更多的 gas 而不是更高的 gas 价格(支付的费用是这两个金额的乘积)。
奖励平滑不是最终的解决方案,因为攻击者可以使用智能合约平台 贿赂 矿工 做任何事情。 我提出了理论上的“黑暗面攻击的永恒选择”(或 ECDSA :)) 2014,作为一种方式来展示如何贿赂矿工以偏离诚实行为。 McCorry el 在。 (2018) 提出了广泛的理论贿赂攻击。 然而,接受基于智能合约的贿赂所需的理解和准备水平是相当可观的。 这使得基于智能合约的贿赂攻击更加难以实施。 矿工必须了解贿赂合同并了解如何与之互动。 但是,这种类型的攻击是不可避免的:如果平台可以向当前的区块矿工付款,那么它也可以执行支付同一矿工的智能合约。 这是因为描述协议共识的编程语言和智能合约使用的编程语言都是“图灵完备”的。 这是一个有趣的理论问题。
人们可以想到一些巧妙的技巧来使贿赂支付变得更加困难,例如强制矿工地址特殊(即只能一次性使用),这样贿赂合同就无法支付给矿工。 然而,图灵完备的智能合约平台无法阻止愿意支付的一方向愿意支付的另一方付款。 我们总是构建一个成功的贿赂智能合约来逃避防御。 例如,恶意矿工可以创建零知识证明证明对合约的特定矿工地址的控制权,而无需泄露私钥。 矿工会将此证明发送到贿赂合同,以及接收贿赂的替代接收地址。
限制要贿赂矿工的区块链的智能合约语言功能是不够的,因为任何其他图灵完备的智能合约平台都可以用来向矿工行贿。 平台只需要运行一个区块头中继(即btcrelay)。 例如,RSK 和以太坊可用于向比特币矿工行贿。 然而,协调对桥接区块链的攻击更加困难。
一种针对贿赂攻击的潜在防御措施是使用 PoS 共识协议的变体,该协议要求大多数区块生产者签署区块,并要求他们拥有数月的安全保证金(股权)。 模棱两可(产生两个相互矛盾的区块或相互矛盾的分叉的扩展)的矿工的权益将被社区发起的硬分叉没收。 虽然这种保护并不能消除漏洞,但它会增加攻击成本,因为贿赂必须高于损失的股份。 目前无法在比特币上启用矿工抵押。 虽然 RSK 可以采用 PoS 共识,但没有建议切换到 PoS 或在 RSK 中混合 PoW 和 PoS。
我们基于支付异常高额费用的恶意交易向 Nakamoto 共识提出了几种已知的攻击。 一些攻击允许双花,而另一些则导致网络不稳定。 这些攻击与包括 RSK 在内的所有比特币侧链尤其相关。 RSK 实施区块奖励平滑、区块奖励共享和分叉感知合并挖掘作为威慑。 虽然奖励平滑适用于明确的费用,但无法避免使用智能合约支付的贿赂的一般情况。 防御这些攻击需要主动的网络监控。 最后,有必要进一步研究这些攻击的潜在解决方案。
- 100
- 2016
- 2019
- 账号管理
- 要积极。
- 亚当回来
- 额外
- 优点
- 所有类型
- 刊文
- 财富
- 自动化
- 最佳
- 投注
- 对
- 比特币
- blockchain
- BTC
- btc价格
- 现金
- 原因
- 造成
- CEO
- 挑战
- 可能性
- 更改
- 支票
- 孩子
- 码
- 硬币
- 社体的一部分
- 佣金制度
- 共识
- 消耗
- 继续
- 合同
- 合同的
- 创造
- 加密
- 密码交换
- 加密交换
- cryptocurrency
- 电流
- 分散
- 国防
- 拒绝服务
- 设计
- 细节
- 破坏
- 瓦解
- 分布式分类帐
- 早
- 经济
- 复仇
- 交换
- 换货
- 扩展
- 面部彩妆
- 面孔
- 专栏
- 特征
- 费用
- 终于
- (名字)
- 遵循
- 叉
- ,
- 功能
- 未来
- 天然气
- ge
- 其他咨询
- GM
- GP
- 抢
- GV
- 硬叉
- 哈希
- 散列
- 算力
- 相关信息
- 高
- 创新中心
- How To
- HTTPS
- 主意
- 鉴定
- 包含
- 增加
- IP
- IT
- 键
- 知识
- 实验室
- 语言
- Level
- 长
- 主要
- 多数
- 衡量
- 中等
- 内存池
- 矿工
- 采矿
- 钱
- 监控
- 个月
- 网络
- 节点
- 优惠精选
- 在线
- 其他名称
- 纸类
- 付款
- 支付
- 对等
- 平台
- 平台
- 池
- 矿池
- 销售点
- 战俘
- 功率
- 当下
- 预防
- 车资
- 私立
- 私钥
- 生成
- 生产者
- 产品
- 利润
- 代码编程
- 证明
- 提案
- 保护
- 保护
- 研究
- REST的
- 收入
- 奖励
- 纹波
- 波纹实验室
- 运行
- 运行
- 保安
- 系列
- 设置
- Share
- 分享
- 转移
- 短
- 侧链
- 简易
- 小
- 智能
- 聪明的合同
- 智能合同
- So
- 解决方案
- 解决
- 花
- 传播
- 股权
- 质押
- 州/领地
- 策略
- 补贴
- 成功
- 成功
- 可持续发展
- Switch 开关
- 第三者
- 次
- 交易
- 交易
- 图灵
- 用户
- 折扣值
- 漏洞
- 等待
- 维基百科上的数据
- 话
- 工作
- 合作
- XRP
- 年
- 零