2018年度区块链安全报告

区块律动 2019-01-29 15:17 8.97万
分享

报告核心看点:

回顾:

·2018 年区块链安全事件造成的经济损失高达 22.38 亿美元,较去年暴增 253%。2018 年区块链安全事件发生 138 起,较去年暴增 820%。区块链安全问题主要集中在业务层和合约层,两者安全事件导致的经济损失占整个区块链安全行业的 98.87%,分别发生了 64 次和 58 次,累计损失 22.1 亿美元。

·以太坊与EOS.IO 2018 年全年安全事件回顾,以太坊全年发生 54 起安全事件,EOS.IO全年发生 49 起安全事件。

·四起重大区块链安全事故复盘:币安黑客攻击、以太坊 BEC 智能合约黑客攻击、EOS 智能合约黑客攻击,BCH 硬分叉导致的粉尘攻击和重放攻击。

·项目团队、安全团队、公链团队、钱包团队等区块链行业参与者对于区块链安全的看法与展望。

展望:

·2019 年第一个月发生的区块链安全事故数量已经超过 2017 年全年的区块链安全事故数量。

·2019 年区块链安全事件持续增加,但经济损失量已经大幅度缩减,2019 年前三周仅造成了超过 400 万美元的损失。

2018 年区块链安全概述

经过近 3 年的发展,区块链技术已经成为业内公认的,继大数据、云计算、 物联网、人工智能之后,又一颠覆性的新兴技术,也被一些国家列为国家级战略发展技术。

在技术不断积累深入时,国内部分城市已开始鼓励区块链产业入驻,创建出初步的区块链创业扶持政策。与此同时,国外相对成熟的资本市场也正在完善区块链衍生品加密数字货币的相关法规。

技术层面上,区块链技术目前生活化的场景落地以蚂蚁金服、腾讯、百度、京东等巨头企业为主力,区块链创业公司在底层技术上取得较大成果,成为传统企业连接区块链技术的桥梁。

但不可忽视的是,区块链领域的安全问题屡见不鲜,合约机制中的天然弊端和发展过程中产生的漏洞成为不法分子的攻击点。

 

具体表现上,加密数字货币交易的日交易量和总市值呈现相同的趋势。2018 1 月到 12 月,总市值从最高点 2973 亿美元降至 1111 亿美元,年蒸发量达 73%。日交易量也与趋势吻合,从年初到年末经历了大幅缩水。

从上图也可以看出,2018 年加密数字货币交易市场呈现出两个极端表现,加密资产交易在 2017 年 12 月-次年 4 月的牛市呈现异常火热的状态,资金和投资人大量涌入,也引来最大获利者交易所屡次受到黑客攻击。5 月-12 月,整个区块链行业都在下行的阴影中,币价熊市表现不佳,部分心思不纯的项目方趁机抛售代币,引发市场恐慌,币价走向更低点。

与此相反的是,主打底层技术,在上半年的牛市中被湮没的 DAPP 团队,在熊市中反而创造出屡屡刷屏的爆款作品。不论是 FOMO3D,还是 310 个比特币悬赏的藏宝图,简单的游戏设置和「幼稚」的内容,都成功打破区块链行业在外界的「乏善可陈」「晦涩难懂」的原始标签。

总体表现上,2018 年区块链安全问题突出。根据腾讯安全团队的数据,加密数字货币安全问题主要集中在区块链自身机制安全、生态安全和使用者安全这三个方面。2018 年上半年,这三方面造成的经济损失分别为 12.5 亿、14.2 亿和 0.56 亿美元,总计高达 27 亿美元。

 

根据 BCSEC 和 PeckShield 数据显示,2018 年区块链安全事故造成的经济损失高达 22.38 亿美元,较 2017 年大增 253%,2018 年区块链安全事故数量也达到了 138 起,远超 2017 年的 15 起。

从以上数据中我们也发现,进入 2019 年之后,区块链安全事故数量有增无减,2019 年 1 月份前两周就发生了 6 起安全事故,等于 2015 年全年的安全事故数量。与此同时,因为各区块链开发团队对安全的重视,安全事故造成的经济损失也得到了大幅度下降。

在牛市集中的上半年,加密数字货币交易参与者急剧增加,安全事件也明显增加。下半年熊市中,发展迅猛的 DAPP 成为安全事件频出的对象,区块链安全问题亟待解决。黑客盗币以 2014 年 3 月 Mt. Gox 被盗 4.6 亿美元比特币、银行账号被盗 2740 万美元为典型。至 2018 年,黑客攻击变得更加复杂和谨慎。3 月初,黑客在币安实施了精心策划的「盗币」计划,盗取用户账号买入小币种,在拉升该币种前下好期货单,开创黑客「盗币」新模式。

投资机构方面,机构和个人面临的最大问题就是专业素养缺失和项目尽调不合格,二者是导致投资者遭受巨大损失的核心原因。火热的市场和项目方的虚假包装,容易使专业判断出错。加上缺乏规则化的行业行为准则和监管措施,也使得机构和投资人的加密资产安全问题更加突出。

对开发团队来说,刨除道德风险,团队面临基础设施、网络攻击威胁、数据丢失和泄漏等三重安全风险,不论是区块链存储设备的漏洞和所处环境等客观因素造成的安全风险,还是团队内部矛盾造成的主观安全风险,都成为项目开发团队的重点安全问题。

安全事件使得区块链的 2018 年动荡不安,其背后,是区块链技术的不断革新和区块链项目对生活的变革。并且,在资本和技术人才的大量涌入下,国内区块链技术已经进行了 3.0 时代,一定程度上掌握了区块链技术的信息技术主导权。在跨境支付、慈善溯源、电子发票等方面已有场景落地。未来,更多更加规范的项目将会落地在人们的具体生活场景中。

同时,作为区块链的最佳应用场景,加密数字货币在 2018 年度过转折年,先后经历狂热迷恋、萎靡不振、以及批量退潮三个阶段。目前加密数字货币交易市场进入低潮期,所有币价都在不断刷新底线,大量不合格投资人和趁乱捞油水的机构被清洗出去。对金融市场来说,此次清洗对金融市场起到普及风险教育的作用,也让虚拟数字货币交易有了模板,为今后行业监管规则的创建打下基础。

1.发展与问题

据 BCSEC 网站数据和 PeckShield 提供的数据显示,2018 年全年因为区块链安全事故而造成的经济损失高达 22.38 亿美元。2018 年下半年,尽管熊市背景下活跃人数和交易量都骤然减少,安全事件发生的频率却没有放缓,尤其是 EOS 区块链的智能合约出现的问题最多。

安全问题成为加密数字货币行业的痼疾之一,各类攻击预警信息不断。年初,日本加密数字货币交易所 Coincheck 遭黑客攻击,平台超 5.2 亿美元 NEM(新绊币)被非法转移。之后,美链 BEC、SMT、EDU 等智能合约被派盾 PeckShield 曝出重大安全漏洞。

安全问题频发的同时,攻击预警也有了相应的成绩。早前,慢雾安全团队披露一起因以太坊生态缺陷导致的数字资产盗窃事件,阻止攻击者长达两年时间的数字资产盗用行为。之后,360 发现 EOS 区块链系统在解析智能合约 WASM 的溢出漏洞,防止黑客控制整个 EOS 网络后造成的严重损失。

一年的重点事件

-全球同步跨交易所的抛售暴跌事故

3 月 7 日,币安被黑客攻击,开创首次黑客攻击用户无客观损失的案例。黑客通过非法入侵币安用户的账户,将用户各种各样的代币即时币币交易换成 BTC。

大量抛售代币引发恐慌性抛售,黑客则选取其中一种——VIA(维尔币),用操纵的账号在 1 小时内买入 1 万个比特币的 VIA,造成该币种的暴涨。使得该币种从 22 点 50 分的 0.000225 美元直接上涨 100 倍到 0.025 美元,拉爆 110 倍。黑客并未趁机提币取现,而是悄然离场。

事实上,在抛售用户的各种代币前,其已经在全世界各个交易所上挂出「代币做空单」,在大盘下跌时获得收益。

整个过程通过币安的影响力获得利益,未提取用户代币在客观上也没构成损失,开创黑客攻击交易所获利的新模式。

造成此次攻击的原因,有用户反映是币安账户的 Google 二步验证没有起效,币安也承认 API key 是账号被盗的原因。

-监管收紧引发市场波动,交易所技术缺陷回滚交易

3 月 9 日,中国人民银行行长周小川就「金融改革与发展」相关问题回答中外记者提问时,回答了记者关于 ICO 的提问。他将 ICO 定性为「会让人产生可以一夜暴富的幻想,不是什么好事」的金融衍生品。

监管层对 ICO 的态度是,央行不支持比特币和人民币直接交易,也不认可比特币等虚拟货币作为零售支付工具。对于乱象频出的现状治理,要将不慎重的产品停一下,有前途的经过测试后再推广。

彼时拥有中国金融领域最高话语权的小川行长,对加密数字货币市场的研究并非表面,他指出比特币等分叉产品出台太快,不够慎重,可能对金融稳定和货币政策传导产生不可预测的作用。他鼓励研究新的技术,但要求不要钻政策的空子。

这些观点直接影响了整个加密数字交易,当日所有交易所几乎全部飘红,市场恐慌情绪加重,OKEx 实际控制人徐明星也发出要上交国家的声音。

徐明星是加密数字货币交易所 OKcoin 和 OKEx 的实控人,提前布局该领域使其成为第一批吃螃蟹的人之一。凭借独创的与股市期货一脉相承的合约交易模式,OK 系资本快速积累,成为国内三大交易所之一。

但技术上的不纯熟使得 OK 系交易所频频出现故障,用户遭受巨额损失得不到赔偿,由此引发激烈的公众事件。二者的根本,还是技术安全引发的监管不信任和用户信心耗损。

3 月 30 日凌晨,加密数字货币交易所 OKEx 出现 BTC 季度合约比现货指数高出超 20%,最低点逼近 4000 美元。该情况持续近 100 分钟,OKEx 随后采取措施,宣布将进行交易回滚。

OKEx 团队称,经技术初步调查,此价格剧烈走偏于市场价,是异常账户通过大量异常操作,导致 BTC 季度合约价格异常,大幅偏离指数。

业内人士认为,在市场的正常交易下出现价格偏差是正常情况。相比之下,此前币安用户被黑客操纵交易 VIA/BTC 为例,币安也没有回滚交易。在发布回滚决定时,OKEx 称会公布异常用户通过不计成本的异常平仓,突破限价的交易细节,但至今未给出。且 OKEx 一再强调交易所权利,更大可能上,是对自身利益的维护,和市场交易这一基本原则的破坏。

加密数字货币是去中心化技术的产物,公然回滚交易不仅证明了加密货币交易所对交易的可操控性,还公然破坏区块链不可篡改的特性。交易所的强势地位在此前的天价上币费上有所体现,此次 OKEx 的回滚交易操作,开创了交易所公然操作用户交易的先河,也再次证明交易所在币圈产业链中占据主导地位。而这种强势地位直接影响着用户的交易安全,也使得行业风气下行。

-BCH 硬分叉引发算力战,用户资产受到严重安全威胁

2018 年 11 月 15 日,因为未对未来的升级计划达成一致,BCH(比特币现金)的两个核心团队 BCH ABC 和 BCH SV 宣布对 BCH 开启分叉,标志着币圈势力开始分裂。

凌晨 1:52 分,BitcoinCash(BCH)网络完成升级,BCH 算力战开启。这次分叉后,吴忌寒支持的 BCH ABC 与澳洲中本聪支持的 BCH SV 正式开始争夺 BCH 主导权。当日下午 BCH ABC 领先 BCH SV 36 个区块后,吴忌寒代表的 BCH ABC 一直处于出块领先地位。最终以两条链 BCH ABC、BCH SV 分叉的两条链共存结束,目前用户资产暂时得到了保全。

BCH ABC 和 BCH SV 原本在同一阵营,此次倒戈分裂代表着币圈旧势力的重新划分。BCH 的争夺对币圈的影响是直接的。分叉前,BCH ABC 和 BCH SV 多次在社交平台发布具有煽动性的宣言,使得以 BTC 为首的加密数字代币连续暴跌。

BCH 算力争夺,实际上是 BTC 保守派和激进派的决裂,相关企业站队背后,代表着链圈势的重新划分。吴忌寒和澳洲中本聪的分裂,也使得算力之外的势力被迫选择一方,交易所开始被迫站队,用户没有选择权,成为二者势力划归的受害者。

在算力战期间,因为存在双花攻击的风险,用户手中的 BCH ABC 和 BCH SV 几乎无法交易,交易所也暂停了两个币种的充值和体现,这让大量用户的资产在这次资本对抗中受损。

-EOS 智能合约安全漏洞,从未停止

7 月 25 日,EOS DAPP《狼人杀》智能合约被攻击。这是 EOS DAPP 首例被攻击案例。当日,慢雾安全团队警告 EOS 狼人杀团队,游戏合约遭受溢出攻击,资金池已变成负数。

EOS Fomo3D 狼人杀是一款与以太坊 Fomo3D 相似的游戏,英文全称为 Fear of missing out。EOS Fomo3D 游戏使用闪拍模式,主要规则为:游戏开始有 24 小时倒计时,每位玩家购买,时间就会延长 30s,越早购买的玩家,能获得更多的分红,最后一个购买的玩家,将获得奖池中 48% 的 eth。

但是,该游戏就因出现智能合约存在严重漏洞、被黑客攻击、团队有强制结束权利等问题被参与者所诟病。游戏团队紧急上线新合约之后,仍然发生第二次攻击,攻击者(eosfomoplay1)盗走 60686 个 EOS,是 EOS DAPP 不完全统计中,被黑客攻击损失代币数量最多的合约漏洞。

在此之后,EOS 上出现大量博彩类型 DAPP,因为采用开源模板和未对合约安全进行考虑等原因,此后出现了几十次与 EOS DAPP 有关的黑客攻击,包括回滚攻击、随机数预测攻击、可重入攻击、逻辑漏洞攻击等。

2.以太坊与EOS.IO区块链安全回顾

2018 年年初,以太坊代币 ETH 的价格达到了历史最高点,这不仅成功地吸引了普通投资者的关注,也让地下黑客们看到了这个初生新事物脆弱的一面。

据 Peckshield 统计数据,在 2018 年全年,以太坊区块链一共发生了 54 起安全事故,其安全类型多为交易所安全问题、交易所交易系统和钱包管理问题、钱包网站安全问题、智能合约问题以及公链设计缺陷问题等。

与之对应的EOS.IO,从年中主网上线到 2018 年结束,共计发生了 49 起安全事件。其中,绝大多数的安全问题都发生在 EOS 智能合约之上,而且漏洞在不同的智能合约中可以轻易复现,当黑客发现某个漏洞在一个智能合约可用时,便会对其他智能合约发起相同的攻击手段。这种「复读机」式的攻击屡次成功,甚至让EOS.IO DAPP 开发者多次遭到损失。而这一条区块链的安全问题并没有因此而得到解决。

下面是两条具有代表性的公链过去一年的安全事件与价格趋势图,区块律动 BlockBeats 将在下面复盘 4 个具有代表性的安全事件。

*因图片过长请横屏查看

3.重点案例复盘

币安黑客攻击

2018 年 3 月 8 日,币安交易所发布了一篇名为《Binance 部分用户账号异常事件始末》的公告。

在前一天,许多币安用户发现自己持有的各种数字货币被市价交易成了比特币,然后约一万枚比特币又被用来买入一个本来毫不起眼的小币种——VIA 币,以至于在短时间内,VIA 的价格被拉升了超过一百倍。

根据这篇公告的说法,这是一起失败的攻击。黑客未能成功高价卖出自己预先存入的 VIA 然后提币走人。黑客先是用钓鱼网站盗取了用户账号信息,但是他们的异常交易触动了风控,未能提币,甚至自己预先存入的 VIA 币也被冻结,反倒给自己带来了损失。

事实真的是这样吗?黑客真的这么惨吗?又为什么利用钓鱼网站能轻松盗取账号呢?不是需要二次验证的吗?我们来从头深入复盘一下这起黑客攻击事件。

从钓鱼网站说起,币安的公告是这样描述的:「黑客在长时间里,利用第三方钓鱼网站偷盗用户的账号登录信息。最早被钓鱼的账号可追逆到一月初,但大多数账号是在 2 月 22 日左右,用 unicode 的 Binance 域名(Binance 底部有两个点)钓鱼。黑客获得账号后,自动创建交易 API。」

CZ 在推特上展示了一个被盗账户的历史,如下图。

 

按照时间戳从下往上看,这位用户先是谷歌了一下 binance,然后打开了搜索结果——假币安网站。虽然 CZ 的电脑屏幕确实该擦了,但是仔细观察一下打开的域名,还是可以发现这个 www.binance.com 里面的 i 和 a 下面都有个点,正如币安公告里所提及的那样。

然后用户在这个钓鱼登录页面内输入了自己的账户密码,随后通过 2FA(双因素验证,这里也即谷歌验证器)验证登陆币安。此刻显示出现错误,这里发生的事情是黑客将钓鱼网站和真正的币安网站连通,实现了即时登陆。于是页面跳转到了真正的币安网站。

安全漏洞:二次验证没有做到 OTP

与此同时,发生的更重要的是币安公告中所提到的「黑客获得账号后,自动创建交易 API」。这一步也即是为何黑客操作时谷歌二步验证没有起效的关键。

谷歌的二步验证码属于 OTP (One-time Password),有效时间为 30 秒,也即被使用过一次之后立即失效,即使还没有达到 30 秒。

但是 OTP 需要服务器来实现,如果服务器没有做出每个密码的限制逻辑,那么在这 30 秒内,验证码可以被反复使用。结果就是用户资产面临极大风险。更可怕的是,黑客在这 30 秒内创建了 API,获得了包括阅读信息、进行交易、提现操作的最高权限。

很遗憾,在发生这起黑客攻击事件时,币安使用的还是「假的 OTP」,给了黑客可趁之机,不过很快币安就修补了这个漏洞。 

这样的漏洞在当时并不少见。币安黑客攻击事件发生后,根据知乎用户「二子乘舟」的测试,主流交易所中 Kraken、火币、Bigone 的二次验证都不符合 OTP 逻辑。

 

黑客攻击手法的去中心化

币安的黑客攻击事件与以往的交易所攻击事件都不同的地方在于,这次黑客并不靠从被黑的交易所提币来获利,而是在攻击币安的时候在其他交易所开下了大额空单,依靠市场恐慌情绪来做空大赚一笔。

 

由于币安在数字货币交易领域巨大的影响力,在这里的风吹草动都会影响到整个加密货币市场的动向。在币安上的用户惊慌失措、开始抛售的同时,整个加密货币市场就都不淡定了。比特币的价格在一个小时内跌去了 10%。

黑客通过提前在多家交易所开下的空单,实现了一波完美的「收割」——没有任何用户的币被黑客从交易所提走,然而在市场开始下跌的那一刻,黑客就开始赚到期货的收益。而且由于交易分散无法具体到账户,实际上也实现了攻击的去中心化。

以太坊 BEC 智能合约黑客攻击

4 月 22 日 OKex 发布公告暂停美链 BEC 的交易和提现,然而 BEC 市值已经迅速蒸发 60 亿,价格几近归零。紧接着 4 月 25 日,火币发布公告暂停了所有币种的充提币业务,公告称 SMT(SmartMesh)的以太坊智能合约存在漏洞,此时当日 SMT 价格已跌去 20%。

BEC 的代码漏洞被称为 batchOverflow,SMT 的代码漏洞被称为 proxyOverflow,他们的本质都是 ERC20 合约的整数溢出安全漏洞。

安全漏洞:整数溢出

常见的整数类型有 8 位,16 位,32 位等整数溢出发生在试图把数据放入比它本身小的储存空间中时。

整数分为有符号整数 (signed integer) 和无符号 (unsigned integer) 整数两种。前者包括正数和负数会在最高位用 0 表示正数,用 1 表示负数;而无符号整数只能识别非负数。对于无符号整数来说,位数为 n 意味着可以表示 0~2^n-1 这个范围内的整数。

比如无符号的 16 位整数可以表示 0~2^16-1,也就是 0~65535 这么多的数值。在这个范围内程序可以得到正确的显示。如果尝试放入的数据不在这个范围内,输出结果就不正确。数值过小会发生下溢,过大则会发生上溢。

这个漏洞可以使黑客通过转账的手段生成合约中本不存在的巨额代币,将其转入到自己的地址中。而这些代币可以被转入交易所,进行正常的交易,与原本存在的真的代币并无区别。而这一切的操作都十分简单,只需要输入一串数字就好了。

BEC 攻击事件详解

根据 PeckShield 披露的技术细节,BEC 整数溢出漏洞在代码中的体现。问题出在 257 行这里(如下图)

 

注:cnt:转账接收者地址数量;value:向每个接收者发送的转账数额;amout:发送者总计发送的数额,也即 cnt 和 value 的乘积。

uint256 是说这里的数据都应该是 0~2^256-1 范围内的整数,而在转账交易中,黑客在 value 这里输入了相当大的数值,导致它和 cnt 的乘积 amout 超过了这个范围,结果 amount 无法正常显示,只能显示为 0。

在 amount 为 0 的情况下,就轻松通过了 259 行要求发送者余额大于 amount 的验证。

261 行表示,在转账过后,发送者的余额应该减去这笔 amount,在这里也就是减去了零,发送者余额不变。

然而在 263 行我们可以看到,接收者的余额却可以成功的加上这巨大的 value。也就是说,黑客从 A 地址到 B 地址进行了巨额转账,然而 A 地址的余额却没有丝毫减少。黑客凭空制造出了巨额代币。

后来发生的事情就是,黑客将大量 BEC 代币转入交易所 OKEx 抛售。先是试探性地转入了 100 万枚代币,在成功售出后,又分两次转入了共 1000 万枚代币,依然进展顺利,后来于是一次转入了 1 亿枚。

 

虽然在这 1 亿枚代币转入后,OKEx 发现了异常并暂停交易,但在这之前,市场上迅速出现的大量来源不明的 BEC 已经引起了恐慌,抛售潮出现,BEC 价格迅速下跌,几乎归零。

后来 BEC 决定与 OKEx 合作回滚交易挽回损失,但是事后回滚交易终究不是安全漏洞的真正解决方法。三天后 SMT 也被黑客用同样的套路攻击,遭受巨大打击。

尽管这个漏洞并不是 ERC20 标准本身的问题,但是确实有许多的智能合约都没有经过细致的检查。在 BEC 攻击事件发生时,PeckShield 团队调查称超过 12 个项目的代币存在同样的整数溢出漏洞,随时可能被用同样的手法致命攻击。

如果 BEC 团队在部署发币智能合约之前能够对代码进行审核,那么这么简单的漏洞将会避免。

EOS 智能合约黑客攻击

随机数生成算法漏洞:EOSDice 十天内的两次攻击

EOS 凭借较高的吞吐量在公链上线之后就吸引了许多 DApp 的开发者和使用者,其中数量最多的是博彩类游戏。但与此同时,这些博彩游戏的黑客攻击事件层出不穷,数得上来的就有 Luckyos、EOS WIN、DEOSGames、Fair Dice、EosRoyale、 FFGAME、LuckyGo 等等。其中人气颇高的 EOSDICE 在 11 月初更是在十天之内遭遇两次攻击,被盗取数千个 EOS。

2018 年 11 月 4 日,EOSDice 合约遭到账号 jk2usllkjfd 攻击,损失的超 2500 个 EOS 被转入火币交易所。

 

本次,黑客采用的手法是在知道随机数种子来源和随机数生成的算法情况下,通过控制种子的数值让算法计算出自己下注的结果,以此来获胜盗取 EOS。

在这个算法中,影响随机数生成结果的主要种子信息有:用户账户名、ID、当前时间、合约余额和指向区块信息。其中账户名、ID 和当前时间都很好获取,合约余额可以在只有一个用户访问时计算得到,比较难以得到的是最后一个:指向区块信息。

在 EOSDice 开源的代码中,我们可以看到指向区块是由 EOS 链指定的。

黑客通过实际操作发现,指向区块在默认状态下是执行当前 action 的上一个区块。也就是说,在下注时,也已经可以获得指向区块的信息。

这样一来,黑客便获得了影响随机数生成结果的所有种子信息。于是便可以根据生成算法计算出随机数结果,据此来下注。

这次攻击事件发生后,EOSDice 团队很快便修改了随机数生成的算法。他们选择的方法是将指向区块设定为在下注时还未生成的区块,实时开奖被变为了延时开奖。在这种情况下,黑客就不能提前计算出随机数结果再下注了。

然而,11 月 10 日,EOSDice 再次遭到攻击。4900 个 EOS 被盗取后转入 bitfinex 交易所。

 

通过模拟游戏合约,将攻击合约与其置于同一个区块中来获得相同的种子。然后在这个模拟的攻击合约中不断修改合约余额来测试出能够得到目标随机数的正确余额值,然后将正确的余额汇入到真正的游戏合约中去。这样的话,随机数就能完全按照黑客的意愿来生成了。

经过多次的随机数漏洞攻击后,目前 EOS 上的博彩游戏通常采用的随机数生成方法是:延时开奖的同时,在种子中不设置可控制变量。然而这样的做法也不能说是完美,只能说是暂时还未被黑客攻破罢了。

为什么随机数攻击总是发生在 EOS 链上?

或许有人会感到奇怪的是,为什么博彩游戏遭遇随机数漏洞攻击的事件似乎总是在 EOS 链上发生?很少听到其他链上的遇到同样手法的攻击。并不是因为其他链上的博彩游戏少,只是其他链上或许采用的是完全不同的随机数生成方式。

区块链上从本质来讲几乎是不可能生成随机数的。因为区块链要求各个节点间达成共识,然而每个计算机却会生成不同的随机数,无法验证。

以太坊为例,以太坊提出的解决方法是推荐 DApp 使用链下的 Oraclize 库生成随机数。这实质上是引入了一个第三方,这样的随机数生成方法对第三方有着极高的要求,需要第三方可信。因此这也引发了不符合区块链去中心化本质的要求。

不过从目前来看,这样的解决方案确实提供了较高的安全性。区块链能解决很多问题,可是不能解决所有问题。或许 DApp 的某些部分暂时还是需要靠链下解决。

争论:DApp 该不该开源?

为什么要在区块链上博彩?可能很多人都会回答:因为区块链公开、透明,博彩更公平。事实却是:绝大多数 EOS 上的博彩游戏都没有开源。

为什么呢?很多开发者都是出于被人发现漏洞的顾虑,开源之后可能会吸引更多黑客攻击。而 EOSDice 是众多博彩类 DApp 中的一股清流,尽管数次被黑客攻击,仍然坚持开源。或许之前 BM 高额奖金悬赏 EOS 漏洞的经验开发者们也可以学习一下,使用适当的激励机制来减小漏洞发现者作恶的可能。

另外还有避免抄袭的说法。不过博彩游戏本身的技术门槛就不是很高,况且代码开源的初心就是为了能够相互学习共同进步。

目前 DApp 玩家最担心的可能是暗箱操作使得开发者不敢开源,这样的可能性的确存在。对开发者来说,不愿开源可能会造成相当数量的用户流失。

BCH 硬分叉中的粉尘攻击与重放攻击

根据 PeckShield 的数据统计,11 月 16 日,即 BCH 硬分叉后的当天,BCH ABC 和 BCH SV 两条链上存在 341,068 笔重放交易;11 月 18 日,在受到不明巨量粉尘攻击的影响下,BCH ABC 和 BCH SV 两条链上的重放交易数高达 1,409,055 次,达到了百万级。

由于比特币现金将于半个月后分叉,2018 年 11 月初起,许多投资者便开始大量屯币,比特币现金价格一路飙升到超过 600 美金。

之前比特币和以太坊的分叉由于持有者能凭空获得另外一种新币种,价格在分叉前也是迅速上涨。然而这次的比特币现金分叉却和之前两次的走向有些不同。

根据 CCN 的报道,从 11 月 6 日到 12 月 6 日整整一个月间,BCH 的价格跌去了 81.6%,从 638 美金跌倒了 117 美金。

 

如果说以往的分叉是由于共识出现分歧,那么这次的分叉可以更多的被认为是两大利益集团之间的纷争了。BSV 阵营的 CSW, Coingeek 和 Calvin Ayre 不断对 BCHABC 阵营发出威胁,而 BCHABC 也不甘示弱。

重放攻击与重放保护

重放攻击首次引起人们的注意是在以太坊分叉出以太坊经典时,那时候还没有重放保护的意识。所谓重放保护,即是使分叉后一条链上的交易在另一条链上无效。

于是当人们从交易所提以太坊到钱包时,会同时从交易所地址提出以太坊经典。这样一来,把以太坊经典存放在交易所地址的持币者就遭受了损失。

之前的分叉一般都会实施重放保护,这也通常被认为是分叉成功的表现之一。然而这次双方均表示不会进行重放保护,大有要争个你死我活之意。

结果就是,随着分叉之后交易所陆续开放比特币现金的存取,存放在交易所内的币就会被置于极大的风险之中。

对于存放在自己个人钱包里的币,同样的风险也是存在的。比如 A 本来持有 20 个 BCH。这 20 个 BCH 并不仅仅是 20 个单独的 BCH 的和,而是多笔 output 的总和。举个例子,可能是一个 5 枚 BCH 的 output,一个 8 枚 BCH 的 output 和一个 7 枚 BCH 的 output 的总和。在分叉之后它们变成了 20 个 BCHABC 和 20 个 BCHSV,当他想要转 7 个 BCHABC 给 B 的时候,这个广播会被 BCHSV 也听到,结果就是他也失去了自己的 7 枚 BCHSV。

如果 BCHABC 阵营和 BSV 阵营都不愿做出重放保护的话,那么持币者就只有靠自己了。

分离 BCHABC 和 BCHSV 钱包地址:生成两个不同的地址,BCHABC 和 BCHSV 链各一个,然后分别将 BCHABC 和 BCHSV 发送到这两个地址。一旦确认了这两笔交易,就会保护两个新地址中的代币免受重放攻击。

在交易中添加特殊的 input:进行 BCHABC 和 BCHSV 交易时,在 input 添加一个特殊的少量分叉后 BCHABC / BCHSV 的 UTXO。由于此 UTXO 在另一个链上无效,因此此交易可防止重放攻击。这些特殊的 UTXO 可以由第三方服务生成,也可以由用户自己生成。分叉发生后 Poloniex 交易所就是采取这种方法在每笔提币中都添加一个 UXTO 来保护用户资产的。

在交易中添加特殊的 OP 代码:OP 代码仅在两个链中的一个上有效。通过将它们添加到交易的 input 中,也可以保护交易免受重放攻击。例如,OP 代码 OP_CHECKDATASIG 可用于 BCHABC 的交易,而 OP_MUL 用于 BCHSV 交易。

粉尘攻击

根据 PeckShield的数据, BCHABC 和 BCHSV 两个链上均存在一些容量为几千笔交易的异常区块,其中包含大量在相同地址间互转的垃圾小额(大约 0.0002BCH 或更小)的交易。

例如:BCHABC 链上的 556846 和 556843 块,存在一地址 qqgusvva8hnjpycgm0pfl6ywlmrcjvad5qlgqtaay5,发起了大量转给自己的小额交易;

 

BCHSV 链上的 556821 等块,也有大量不同地址发起转给自己的小额交易。这些粉尘攻击可能会造成 BCH 网络阻塞,进而拉高交易费用。

粉尘攻击的防御解决起来就没有重放攻击那么容易了。因为粉尘攻击本质上其实还是拓展性的问题。

扩容、隔离见证、闪电网络...... 多种多样的解决方法被提出来,可是至今也没有哪种方法获得了一致的认同。

4. 区块链行业看安全

2017 年到 2018 年,区块链成为全民热点,大量的安全问题也在此时暴露。应用业务层安全和智能合约安全两部分造成的安全事故,占区块链安全事故总数的 80% 以上。原因多数为智能合约代码编写出现漏洞,或应用层上的权限管理、密钥管理等漏洞。

 

根据 BCSEC 的数据显示,安全问题主要集中在业务层和合约层,两者安全事件导致的经济损失占整个区块链安全行业的 98.87%,分别发生了 64 次和 58 次,累计损失 22.1 亿美元,共识层安全事件发生了 6 起,造成经济损失近 2216 万美元,占 2018 年区块链安全事件经济损失的 0.99%。

加密数字货币与个人财产直接相关,因此很容易成为黑客攻击的突破口。而除去高额的数字资产损失,风险事件给普通民众心中的区块链打上混乱、无序、不安全的标签,也降低使用者对加密数字资产的信心,严重影响了区块链市场的用户获取。

随着整个行业从初期走向成熟,区块链本身的分布式系统架构和共识机制等技术将有助于提供更好的安全性。由此进行的,加密资产相关产业和区块链应用的各个场景的安全更新,试图通过最快的优化方式,避免更多的安全事件发生的迭代技术,也将发挥更有效的作用。

为了更好地了解区块链生态对安全的看法,我们与区块链行业的多方参与者进行了沟通,他们包括正在使用区块链技术的团队、区块链安全团队、提供区块链技术的公链团队、为用户提供区块链入口的钱包团队以及行业内的权威专家。

区块链项目团队——迅雷

没有参照物,也没有具体法规,跟传统互联网相比,区块链面临更大的安全压力。无论是项目本身的漏洞还是监管风险,区块链项目涉及的具体场景,常见的如加密数字货币交易所、底层公链提供者,评级机构和数据统计平台等,这些囊括几乎所有领域的区块链项目,都或多或少地面临着安全风险。

区块链安全主要包括应用层安全、智能合约安全、共识机制安全、网络安全、数据安全、密码学安全等方面。迅雷链底层研发工程师张骁认为,其中任何一个环节出现漏洞,都有可能造成巨大的损失。此前,由于区块链的开发者或使用者对安全的专业性或重视程度不够,导致许多针对区块链安全的攻击事件发生。

 

据不完全统计,区块链技术自应用至今,近 10 年时间里,因为安全事件造成的损失达数十亿美元,而且这个数字的涨幅随着区块链的普及在逐年递增。但与此同时,随着行业逐渐走向成熟,区块链安全的重要性也正在逐渐被大家所重视。

区块链产业仍处在一个非常初期的阶段,目前的安全指数还没有达到当前其他成熟技术的安全程度。区块链的典型特征是数据的不可篡改性,如果出现安全漏洞,后果难以消除。即使解决也要付出巨大代价,如以太坊的安全漏洞,最终导致硬分叉。其次,区块链智能合约必须开源才能达成信任,公开的源码、虚拟机以及编译器一旦出现安全漏洞,很容易成为黑客攻击的对象。

张骁认为,这些给区块链的安全性带来了更高的要求。但区块链安全正在逐渐被从业所重视,相关应用层的模型安全,和智能合约的代码审查逐渐被提上日程,加上区块链本身的分布式系统架构有助于抵抗网络安全攻击,共识机制可以抵抗来自内部或外部的恶意攻击。随着这些技术的发展和成熟,区块链可以达到甚至超过当前这些成熟技术的安全指数。

并且,密码学的发展也有助于区块链数据隐私安全,通过应用同态加密、零知识证明等技术,区块链上数据的隐私保护将更加安全和完善。以迅雷链为例,其目前正在研究同态加密、零知识证明、多方安全计算等技术,并开展合约代码安全审计等方面的工作,以此能够满足用户和链上合作客户对数据隐私保护的需求,并提升链上合约的安全可靠性。

因此,随着区块链体系的成熟和相关安全技术的发展,以及渐露雏形的监管细则,区块链行业安全的未来是值得期待的。

安全团队谈安全——派盾 PeckShield

目前,区块链各大生态都处于发展早期,技术上的薄弱使其容易受到黑客攻击。并且,安全系统落后,安全防护建设弱于攻击技术,攻击事件频繁发生,已经严重影响区块链生态建设的速度。

据 PeckShield 统计,截至 2018 年 12 月 31 日,公链 EOS 上已经发生 49 起 DApp 安全事件,共计损失超过 74 万个 EOS。这些安全事件合约开发者的建设进程,还严重打击了生态建设者的信心。

PeckShield 创始人蒋旭宪认为,区块链安全在技能和系统上,都需要更多的深入,才能更及时地发现漏洞,避免攻击造成损失。区块链安全存在着显著矛盾:一方面,智能合约在链上公开透明,处于「明处」,处于「暗处」的黑客随着当前数字资产价值上涨增多,攻击风险增大。另一方面,整个生态中做安全服务的投入和预估明显不足,这也使得整个区块链生态面临着较大的安全威胁,如进入雷区步履艰难。

区块链行业早期的野蛮生长期,合约开发者良莠不齐。PeckShield 通过观察分析发现,虽然攻击者的攻击方式在不断升级,但开发者也会不断积累受攻击的经验加强防御措施。也就是说,如果生态内都是做事的开发者,安全事件的突发只会影响一时,安全意识薄弱与合约开发规范类的安全问题并不能威胁区块链的长远发展。

如果把目前的区块链安全划分为非常安全、安全、令人堪忧、极度危险四个等级,蒋旭宪认为现阶段的区块链安全,判定为极度危险有些危言耸听,但确实还未达到安全的层次。行业发展超 10 年,早期以比特币为主,鲜少听说有安全漏洞。随着公链技术逐渐成熟,分散的智能合约以及 DApp 开发者成为主要被攻击对象。

受到挑战是一个生态发展乃至壮大的必经过程,监管的相应法律法规还不够完善,也间接助长安全事件的发生。但通过混乱时期的历练,区块链安全的基础设施才会真正建设起来。目前,区块链整个生态中问题重重,但整体开发环境趋于良性,用户的参与行为也更加理性。

DApp 在竞猜类、金融类场景不断延伸向更多新的应用领域;公链在交易性能、处理速度和使用体验上不断改进和优化。整体而言,币圈、链圈、矿圈、和 DApp 圈,都会在寒冬中去伪存真,从价值投机回归价值投资。

公链团队说安全——唯链 VeChain

熊市已久,DApp 成为区块链唯一活跃的领域,但区块链行业的技术门槛和「重生」亟需新鲜流量的矛盾仍然存在。除操作外,ETH 链的 gas 费用,EOS 的账户创建费用和 CPU 资源质押等,操作成本的增加将进入门槛提升到更高。最重要的是,频繁发生的安全事件大幅拉低新用户对 DApp 的好感和信任度。因此,尽管更多形式和新机制的 DApp 层出不穷,DApp 的参与者仍然有限。

一个火爆的 DApp 平均日活仅数千人,需要进行下载钱包,安全保存私钥,才能转账买卖等操作,流程繁琐且不友好。安全系数不高和操作难度较高使得普通用户进入障碍重重。如迅雷链底层研发工程师张骁所说,随着区块链与各行各业融合越来越紧密,安全意义已经不再只关系到区块链技术本身,而是与这些已经形成或即将形成的整个区块链应用生态圈息息相关。

区块链安全此前一直被忽视。2018 年,公链安全事件频繁发生,原因主要是 2018 年加密数字货币价格上涨,引发人们对区块链的集中关注。唯链 COO 冯艺凯认为,公链的安全防御永远是落后于黑客攻击的,因为币价的大幅攀升将黑客的注意力吸引到公链的安全漏洞上。

公链安全有两个层次:一是公链本身,其安全是个比较难的课题。相对传统安全领域,代码都有制定好的供开发者遵循的安全标准,但刚刚兴起的公链行业并没有形成安全共识,项目各自为营,行业缺乏成熟的体系和行业标准约束代码质量。且公链运行的公开化,使得开发者忽略的漏洞变得更加容易受到攻击。第二个层次,就公链团队而言,参与者越来越多,质量参差不齐。大部分跟风进入的团队不具备相应的安全防御能力,其他大部分为募资而进入的项目方对安全不重视,也是公链安全重要原因。

热门公链中,ETH 、EOS 上已经拥有上百个供用户选择的 DAPP。就整个行业来说,不同公链的安全程度差别较大。运行时间较长的公链更成熟,使用者和开发者相对较多,整体安全性也相应较高。但短时间内安全事件很少,并不能保证长期的安全性。团队硬实力仍需提高。

总体来说,2018 年安全被提到一定高度,是行业进步的表现。随着传统行业的正规军加入,项目团队技术素质将进一步提升,安全性会得到更有效的保障。区块链行业会逐步建立起相对成熟的安全体系。2019 年,更多优秀的安全服务机构出现,将逐渐建立起整个行业的安全标准。

钱包团队——比特派 Bitpie

2018 年下半年,行业内上万家交易所和数千个钱包团队如雨后春笋般出现。短时间内积累的行业繁荣,其实是技术团队组成人员泥沙俱下。参差不齐的加密数字币钱包团队由此组成,缺乏专业素养导致的用户资产损失和用户隐私泄漏,以及伪造数据,都成为加密资产钱包的潜在风险。

钱包是所有从业者参与加密数字货币交易的必要条件,与用户的利益直接挂钩,拥有存储数字资产的重要功能,安全至关重要。在比特派开发者文浩看来,相比其他安全类攻击,认为钱包相对安全、风险低的观点的不正确的。不维护的钱包=不安全的钱包。

以交易所为例,其成为安全事件高发领域,主要原因是交易所里集中且数额巨大的虚拟资产,黑客攻击交易所能够直接盗巨额数字货币。2018 年年末 DApp 智能合约类攻击多次出现,也是因为合约里的加密资产。而去中心化钱包因为私钥在用户手中,资产较为分散,攻击所得直接利益诱惑较小,相对交易所显得相对安全、风险低。

事实上,如果黑客攻入加密钱包的中心化服务器,伪造数据欺骗用户,获取收益的可能性会提升。不过此类攻击的难度较大,需要了解对应钱包的实现逻辑及安全策略等方面的内容。即使侥幸通过每款钱包不同的安全校验逻辑,仍然有被钱包客户端识别的可能,操作成功率不高。

加密钱包本身的安全性可以保障,市场的外部因素是拉低钱包安全系数的关键。市场错误预判下涌入的大批钱包团队,在熊市越发深入下,将会面临资金链断裂,进入难以维持正常运营的情况。一些失去基本的迭代开发能力和更新安全升级的钱包,已经威胁到用户的资产安全。目前的虚拟数字钱包安全情况整体上不容乐观。

「之前我们曾发现,有团队在开发钱包时,签名交易时未遵循 RFC6979 规范,在安卓系统上使用不安全的 SecureRandom 随机数等错误,」文浩认为,这些危险的操作手法,是去中心化钱包安全环节最薄弱的缓解——「团队的技术能力」。

密码学、点对点数据同步、智能合约、区块链技术等基础知识,是加密钱包最为基础的能力配置。但事实上,通过很多开源的加密数字货币钱包,一些团队对开源钱包的 UI、皮肤稍作调整,「复制」出新钱包,但团队并不具备维持钱包安全的能力,因此产品出现安全隐患。

钱包安全事件后果严重,开发者的 BUG,通常情况下是用户资产的巨大损失。钱包需要在易用和安全方面找到平衡,为不同用户、不同需求提供不同安全级别的、软硬结合的解决方案。通过技术实力积累起公信力,确保用户加密资产的安全性。2018 年这两方面的提升很明显。

权威观点——原中国人民银行行长周小川

对于新兴行业来说,政策变化是市场最大的变数。加密数字货币的匿名、去中心特性,一定程度上是国家政府对其保持谨慎的原因。其中,区块链项目募资和加密数字资产交易更是令监管颇为头痛的一点。因此,在区块链行业快速更迭的过程中,监管的态度和权威人士的观点、行为,成为决定投资者行为的关键因素。也成为投资者恐慌指数的重要构成部分。

年初的加密数字货币交易热潮过去后,相关产业参与热情逐渐冷却,投机者也随着市场冷清退场。此后,代表国家意志和行业发展的言论,无论是上层监管动向还是个人动态,都能在第一时间内造成币价的大幅度起伏。

其中,影响力最大的是今年 3 月两会期间原中央银行行长周小川对区块链相关领域的定调。周小川行长称,虚拟资产交易需更加慎重,从中国的角度来讲,其不符合国内金融产品、金融服务须服务实体经济的方向。提醒比特币为代表的加密数字货币不要钻政策空子。未来的监管将由技术的成熟程度来决定,技术发展是动态的,但前提是不要与现行政策相悖,能够服务实体经济而不是造成暴富的投机幻象。

2018 年12 月财新峰会上,周小川以中国金融学会会长的身份发表演讲,对区块链技术的作用有所肯定。他称区块链技术和分布式账本技术可能在某些领域中发挥作用,有些关系到未来支付体系。但目前不能确定的是,区块链技术中,去中心化是不是支付体系中最核心的问题。

2018 年,整个加密数字货币市值整体下跌近 90%。如周小川会长所言,飞跃式的技术发展经常会伴随着风险与扭曲,比如还没发挥潜在的金融能力,就投放到市场上来当做投机赚钱的工具。币价泡沫结束后,以技术为核心的项目价值显现出来。

区块链技术的真正价值开始被应用到具体的场景中。越来越多与区块链技术相关的国家政策和地区优惠相继确立。区块链成为各地政府政策的扶持对象,各地政府招商引资的重点内容,对区块链初创企业的政策性优惠力度也空前绝后。

2018 年以来,国家级的区块链产业相关政策陆续下发。包括教育部、工业和信息化部、国家知识产权局、国家邮政局、商务部办公厅、国务院办公厅、中国保险监督管理委员会、财政部、国家发展和改革委员会 、国土资源部 、交通运输部等部门,相关政策文件中,都将区块链技术在各部门的业务中应用。

此外,各地政府也开始从政策上为区块链初创企业提供适合生长的土壤,一些地区甚至给出政策性的优惠条件,吸引区块链企业入驻。北京市、上海市、天津省、重庆市、广东省、江苏省、浙江省、河北省、安徽省、山东省、福建省、甘肃省等相继出台政策,或建立区块链技术试点区域,或开展基于区块链、人工智能等新技术的试点应用。

进入 2018 年下半年,国内监管的态度从「一刀切」转向「谨慎接纳」。监管趋于稳定给区块链市场带来稳定的发展机遇,市场整体较少出现剧烈波动。同时,监管带来的利空风险减少,安全的市场环境下,区块链技术主导型产业发展愈发繁荣。以公链为例,目前 ETH、EOS、TRON 上已有多款应用运行。随着技术的迭代,内容也随着用户反馈不断变化。目前已形成区块链应用的初步试验阶段。

世界范围内,区块链技术发展伴随着监管的升级保障。欧美市场,以现有较为成熟的金融监管

本文来源:区块律动 BlockBeats 原文作者:区块律动 责任编辑:孟超
声明:奔跑财经登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。

评论

还没有人评论,快来评论吧

相关新闻

Meme 造富热潮加持,2024年的公链之争,SOL能颠覆ETH吗?

2024-03-29 15:31
公链杀手还是FOMO情绪使然?>
奔跑财经 55002

加密世界探索:破顶的比特币还是否需要从ETN中获益?

2024-03-13 14:50
英国致力于将加密货币纳入监管框架,ETN可为监管提供实践案例参考。全球加密市场态度逐渐积极,但监管政策进步也至关重要。>
奔跑财经 74391

以太坊升级前瞻:颠覆高Gas费现状?Dencun提案要点全解析!

2024-03-08 19:18
本次升级对于以太坊生态意义非凡,是继Shapella升级后,又一重要的发展节点。>
奔跑财经 80516