比特币DoS漏洞和超发漏洞技术分析,攻击者或无法获利

8btc 发表了文章 • 2018-09-29 17:12 • 来自相关话题

图片来自:Mowie Jak Jest


上周,bitcoin core 0.16.3 版本客户端的突然发布,以及开发者敦促大家尽快升级一事,令比特币世界的人们感到了惊讶。表面上的原因,在于0.14-0.16.2版本客户端中存在一个拒绝服务 (DoS) 向量需要被修补。到后来,我们才发现,在0.15-0.16.2版本core客户端中的另一个漏洞,可能会引起比特币的超发问题。

在这篇文章中,作者试图说明:到底发生了什么?潜在的危险是什么?以及如果有人利用这个漏洞,还将会发生什么?

 
双重支付的两种方式
 

在我们接触实际的漏洞之前,我们需要解释一些东西。我们首先需要定义一下双重支付,因为这个漏洞就可以用于双重支付。

所谓双重支付的情况,就比如说爱丽丝(Alice)向鲍勃(Bob)支付了一笔币,然后她又把相同的币再一次支付给了查利(Charlie),爱丽丝基本上试图进行两次支付,其中的一笔她知道会被拒回。当然,当我们考虑支付时,爱丽丝的某些账户通过写这两次支付被透支了。这很接近比特币的工作原理,但并不是十分准确。

比特币并不是基于帐户模型的,而是基于未花费交易输出(UTXO)。一笔交易的输出基本包含了一个地址以及数量。一旦输出被使用了,它就无法再次被花费。试想一下一个UTXO(作为一笔发送给你的币),它可以是任意数量的,比如说0.413 BTC。

比特币的双重支付意味着一笔币(UTXO)被花费了两次。通常,这意味着爱丽丝将她的0.413 BTC发送给了鲍勃,然后她又把同一笔比特币又发送给了查利。

比特币的解决方法是,其中一笔交易会纳入一个区块,由此来决定实际谁得到了报酬。如果两笔交易不知何故都传递到了多个区块,那么后面发生的区块,就会被软件给拒绝掉。如果两笔交易都在同一个区块当中,那么这个区块也会遭到软件的拒绝。

基本上,比特币软件会检测到双重支付行为,如果有双重支付行为的发生,则应该拒绝掉相应的区块。

然而,在两笔不同的交易中发送同一个UTXO,并不是唯一的双花方法。实际还存在着同一UTXO在同一交易进行双重支付的病态情况。在这种情况下,爱丽丝向鲍勃发送同一笔币两次。所以,爱丽丝实际支付的是0.413 BTC,但鲍勃收到的却是0.826 BTC。这显然不是一个有效的交易,因为只有一笔价值0.413 BTC的UTXO 是被发送的。这就相当于,爱丽丝用同一10美元向鲍勃发送了两次,而鲍勃收到的则是20美元。

 
定义漏洞
 

因此,总结一下我们所定义的两种类型的双重支付尝试:

使用两笔或更多的交易,来花费相同的UTXO;
使用一笔交易花费同一UTXO多次;


结果表明,Bitcoin Core 软件正确地处理了第一个问题,而第二个问题,正是我们要关心的。任何人都可以像这样构造出一笔双花交易,但要让节点接受这种交易,又是另一回事了。

目前有两种方法可以让交易被纳入一个区块当中: 

A. 支付足够的费用,将交易广播到网络上,那么矿工会负责把交易纳入区块当中;

B. 作为一名矿工,把交易纳入一个区块;

(A) 除了创建交易,并将其广播到网络上的节点之外,你不需要做太多的工作。 (B) 需要你找到足够的工作量证明。这也是这次漏洞的关键。

(A) 不是一个可能的攻击向量,因为这些交易会立即被标记为无效的,网络上的节点会拒绝它们。没有矿工们的合作,这种交易就无法进入矿工们的记忆库,因为它们不会得到传播。

(B)是漏洞显现的唯一情况。换句话说,想要利用这个漏洞,你就需要工作量证明,或者说足够的矿机设备和电力。

为了明确起见,双花交易有4种情况需要处理:

1A — 多笔 mempool交易花费了同一UTXO ;

1B — 多笔区块交易花费了同一UTXO ;

2A — 单笔mempool交易花费了同一UTXO多次;

2B — 单笔区块交易花费了同一UTXO多次;

该漏洞有两种表现形式。在0.14.x版本客户端中,存在着一个拒绝服务(DoS)的漏洞,而在0.15.x - 0.16.2版本的客户端,则存在一个超发漏洞。接下来,我们会分别分析它们。

 
拒绝服务攻击
 

故事始于2009年的Bitcoin 0.1版本客户端,这一版本的代码通过拒绝案例1B和案例2B(检查区块没有双重支付)来强制达成共识。





为了清晰起见,作者删除了很多代码


你可以看到“检查冲突”的注释,其代码负责检查每个输入没有被花费。“将输出标记为已使用”注释下面的代码,标记了UTXO的使用。如果任何UTXO的花费超过一次,则会导致错误。

在2011年,PR 443被合并到了比特币代码库。这一改变是为了处理通过mempool (上面的情况2A)传输单笔交易双重支付的情况。这个合并请求注释的目的非常明确:

    “而且,没有具有重复输入的交易会被纳入区块当中......几个星期前,有人尝试过了,但这些交易并没有被纳入区块。我假设某个地方存在了一个检查关,它会阻止这些重复交易进入区块,虽然我没有对这个问题进行任何挖掘。这实际上是为了防止这种明显无效的交易得到中继。”






实际的代码更改,或多或少与上面的ConnectInputs 中的“检查冲突”注释下的代码执行了相同的操作,但位于的是不同的位置。代码更改是在CheckTransaction 中运行的,其负责了所有上述的4种情况(1A, 1B, 2A, 2B)。因此,我们在区块双重支付共识代码中有了一些冗余,正如案例1B和2B都被检查了两次,其中一次检查是在CheckTransaction,另一次则发生在ConnectInputs。

到了2013年,PR 2224被纳入了比特币软件。这一改变的目的是区分共识错误(例如双重支付)和系统错误(例如磁盘空间耗尽)之间的差别,正如PR注释中所表明的那样:

“它引入了CValidationState,它会存储关于区块的元数据,或者正在执行的交易验证数据。它被用于区分验证错误(例如,未能满足网络规则)和运行时错误(比如磁盘空间的不足),从前这些可能会产生混淆,因磁盘空间用完会导致区块被标记为无效。此外,CValidationState还承担了跟踪 DoS级别的角色(因此它不需要存储于交易或区块当中...)”


实际的相关代码更改如下:






在那个时候,ConnectInputs已经被模块化成多个方法,并且这个函数成为了检查双重支付的函数。这里的关键改变是,曾经的error被改为了 assert

assert在C++中是做什么的?它会完全中止程序。程序员为什么要在这里停止程序?这就是Pull请求的目的所在。下面就是那个时候的代码片段:






它会像以前一样处理案例1B和2B。函数名则从ConnectInputs更改为ConnectBlock,但检查案例1B和2B的冗余性仍然在PR 443中保留。正如我们已经看到的,UpdateCoins做了第二次双重支付检查。其中CheckBlock通过调用CheckTransaction进行了第一次双重支付检查:











由于这是第二次检查相同的内容,所以要让UpdateCoins的双花检查失败的唯一方法,就是存在某种UTXO数据库或交易存储损坏。事实上,这似乎是改成assert的原因。因为CheckBlock通过CheckTransaction在UpdateCoins之前已经进行了检查,我们已知道某笔交易并不是双花交易。因此,PR 2224正确地推测到,UpdateCoins中的这个状态必然是一个系统错误,而不是一个共识错误。在这种情况下,为了防止进一步的数据损坏,正确的做法就是停止程序。

到了2017年,PR 9049作为Bitcoin 0.14的一部分被引入比特币网络。随着隔离见证(Segwit)的纳入,它是加快区块验证时间的诸多更改的其中之一,其代码更改实际是非常少的:






你可以看到布尔函数 fCheckDuplicateInputs被添加了进去,用于加快区块检查。我们将在下面看到,这是一个被认为是冗余的检查。不幸的是, UpdateCoins中的代码在PR 2224中被更改为系统损坏检查,而不是共识检查。到了0.14.0版本客户端,其代码进行了更多的模块化更改,而assert也发生了一些改变:






曾经是作为一个冗余检查,现在却成了负责区块单笔交易双重支付检查(案例2B),并负责停止程序。从技术上来说,它仍然是强制执行共识规则。只是在中止程序问题上,它表现地非常糟糕。

PR 9049是如何获得通过的? Greg Maxwell 给了我IRC上的聊天记录。






长话短说,开发者们在讨论PR 9049时,倾向于认为区块级单笔交易双重支付(案例2B)会在PR 443处遭到检查,而没有考虑PR 2224。这使得开发者们并没有密切关注PR 9049;

总而言之:

1、在2011年引入用于防止双重支付交易中继(案例2A)的 PR 443,实际产生了一个副作用,即对区块的双重支付共识规则检查创造了冗余校验(案例1B和 2B)。

2、PR 2224是在2013年引入的,作为一种副作用,将(1)中用于区块验证的代码,从冗余升级到了共识层;

3、PR 9049是在2017年被引入的,并且它跳过了(1)中用于单个区块单笔交易双重支付(案例1B)检查的代码。开发人员错误地认为代码是多余的,因为他们没有考虑到(2)。事实上,这种改变跳过了共识的关键部分。

公平地讲,这些事的汇合导致了这次漏洞。

 
DoS漏洞的严重性
 

这意味着 0.14.x 版本的Core软件可能会因为一个奇怪的区块而崩溃。而要让软件崩溃,攻击者需要做的事是:

创建一笔花费两次同一UTXO的交易;
通过足够的工作量证明,将(1)中的交易纳入一个比特币区块;
将这个区块广播到0.14.x版本软件的节点;


(1) 和 (3) 的成本并不高,而步骤(2)的最小成本为12.5 BTC。

如果你认为从博弈论的角度来看,分裂网络并不是那么好,那么利用这个漏洞的动机就相当低了。充其量,作为攻击者,你花费了12.5 BTC将部分全节点给搞崩溃。由于不可能从分裂网络中获利,攻击者无法轻易地补偿自己的攻击成本。

如果这是唯一的漏洞,那么攻击者可能给很多人带来一些不便,但这不会是持续的,因为这些被攻击的节点可以简单地重启,并连接到其它诚实节点。一旦有一个较长的链,那么恶意区块攻击就会完全失去它的威胁。除非攻击者以每区块12.5 BTC的代价继续创建区块,并将其传播给 0.14.x版本软件的节点,否则攻击就是不可持续的。

换句话说,虽然这个漏洞的确存在着,但对 DoS攻击的经济刺激却是相当低的。

 
超发漏洞
 

从0.15.0版本软件开始,core软件引入了一个新的特性,以便更快地查找和存储UTXO,而这恰恰又引入了另一个漏洞。当一笔具有双重支付单个交易的区块纳入区块链时,软件会将其视为有效,而不会出现崩溃的现象。

这就意味着一笔病理性交易(相同UTXO在同一交易中被使用多次,即案例2B),0.14版本的节点会因此而崩溃,而使用0.15版本软件的节点却会认为交易是有效的,这基本上是凭空在创建比特币。

谈谈它是如何发生的。在0.15中出现的PR 10195 ,引入了很多内容,但它的主要要点在于改变了 UTXO的存储方式,使得它们更有效地进行查找。因此,它出现了很多变化,包括对早期UpdateCoins函数的更改:






注意,assert(false) 周围的代码是如何被完全取出的。注意这一点,0.15.0中的PR 10537也更改了代码。






assert失败的条件现在取决于inputs.SpendCoin,它看起来是这样子的:






本质上,SpendCoin返回“ false”值的唯一方法,就是让币不存在于UTXO集中。但正如你所看到的,这需要币是FRESH的,而不是DIRTY的。这些不是常见的术语,但值得庆幸的是,core开发者Andrew Chow给出了解释:

“现在的问题是,什么时候UTXO会被标记为FRESH?当它们被添加到UTXO数据库时,它们就会被标记为FRESH。但是,UTXO数据库仍然只存在于存储当中的(作为缓存)。当它被保存到磁盘时,存储中的条目将不再被标记为FRESH……”


标记为FRESH的币,是进入交易存储池(memory pool)中的币。而攻击者可以通过 UpdateCoins函数中的assert语句来破坏节点。更糟的是,如果币是属于DIRTY的(基本上从磁盘上读取的),那么这就会导致比特币的超发。

因此,攻击者可以欺骗那些运行 0.15.0- 0.16.2版本软件的矿工接受一个奇怪的、无效的区块,从而导致比特币的供应超发。

 
超发漏洞的严重性
 

这种攻击的经济诱因似乎明显高于DoS攻击,因为攻击者可能会凭空制造出比特币。但你仍然需要有挖矿设备来执行攻击,但考虑到潜在的经济诱因,这可能是值得的,或者看起来是这样的。

下面是使用这种漏洞的一种简单攻击方式:

创造一笔带有双重支付交易的区块,其会向自己支付两次,比方说 50 BTC →100 BTC;
将该区块广播给0.15/0.16版本客户端的所有矿工;


下面是会发生的一些事:

    0.14.x 版本节点会崩溃;
    较旧版本的节点及其它替代客户端会拒绝这个区块;
    很多区块链浏览器是运行在自定义软件上的,而不是基于core,因此,至少有一些浏览器会拒绝该区块,并且不会显示来自该区块的任何交易。
    取决于矿工们运行的软件,我们可能会迎来链分裂;

有可能,所有的矿工都是运行的Bitcoin Core 0.15+版本软件,在这种情况下,不受攻击的客户端可能会停滞不前。也有可能矿工会运行其它东西,在这种情况下,当他们发现一个区块时,链就会发生分叉。

由于这些违规行为,网络上的人们很快就会追踪到这一点,可能已提醒一些开发人员,并且core开发者已经修复了它。如果存在分叉,那么在那个时候,关于哪条链是正确的共识链,将开始得到讨论,而出现意外超发的链,可能会遭到抛弃。如果真的发生了,那么社区可能会自愿进行一次回滚,以惩罚攻击者。

所以对于攻击者来说,这不会带来50 BTC的收入,更可能的是失去12.5 BTC。如果攻击者加倍花费,比如说200 BTC,那么超发漏洞将持续存在的可能性会更小,因为攻击会更明显。

因此,从攻击者的角度来看,这并不是一种好的获利方式。

攻击者可以获利的另一种方式,就是事先做空比特币,然后再执行攻击。这也是具有风险的,因为攻击不能保证比特币价格会下跌,特别是当危机得到迅速和果断处理时。此外,考虑到大多数交易所提供的杠杠交易,都需要AML/KYC,这可能导致攻击者很快暴露。

攻击者不仅面临着巨大的资金风险,而且还会有身体危险。从经济角度来看,这并不是一个容易获利的漏洞。

当然,有一些别有用心的人,可能会用这种漏洞来吓唬那些比特币持有者。投资回报率将变得更抽象,因此从理论上来讲,这可能会达到这些别有用心者的目的。

 
结论
 

毫无疑问,这是一个相当严重的漏洞。尽管我和Awemany之间有着分歧,但我很感激他选择公开地和我辩论。也就是说,考虑到经济博弈理论,我不认为这个漏洞会像他所描述的那样严重。

即使这个漏洞在被发现之前被坏人所利用,攻击者可能也不会选择利用它,因为从经济学上来讲,它是没有意义的。可以肯定的是,这一技术漏洞应该被修复,并且开发者应该做得更好,但真正能够利用这种漏洞的对象其实是非常少的,基本上,只有那些想要摧毁比特币的组织才会这么干。

Bitcoin Core开发者的教训有很多:

1、任何共识变化(即使是微小的变化,例如9049),也需要更多的人进行审查; 2、需要对病理交易进行更多的检查; 3、代码库中哪些检查是冗余的,哪些检查是不冗余的,以及实际代码将要做些什么,需要变得更加清晰; 4、过去存在漏洞,将来也会存在漏洞。现在重要的是,学习并反思这一教训;


原文:https://medium.com/@jimmysong/bitcoin-core-bug-cve-2018-17144-an-analysis-f80d9d373362
作者:Jimmy Song
编译:洒脱喜 查看全部
201809290449331285.jpg

图片来自:Mowie Jak Jest


上周,bitcoin core 0.16.3 版本客户端的突然发布,以及开发者敦促大家尽快升级一事,令比特币世界的人们感到了惊讶。表面上的原因,在于0.14-0.16.2版本客户端中存在一个拒绝服务 (DoS) 向量需要被修补。到后来,我们才发现,在0.15-0.16.2版本core客户端中的另一个漏洞,可能会引起比特币的超发问题。

在这篇文章中,作者试图说明:到底发生了什么?潜在的危险是什么?以及如果有人利用这个漏洞,还将会发生什么?

 
双重支付的两种方式
 

在我们接触实际的漏洞之前,我们需要解释一些东西。我们首先需要定义一下双重支付,因为这个漏洞就可以用于双重支付。

所谓双重支付的情况,就比如说爱丽丝(Alice)向鲍勃(Bob)支付了一笔币,然后她又把相同的币再一次支付给了查利(Charlie),爱丽丝基本上试图进行两次支付,其中的一笔她知道会被拒回。当然,当我们考虑支付时,爱丽丝的某些账户通过写这两次支付被透支了。这很接近比特币的工作原理,但并不是十分准确。

比特币并不是基于帐户模型的,而是基于未花费交易输出(UTXO)。一笔交易的输出基本包含了一个地址以及数量。一旦输出被使用了,它就无法再次被花费。试想一下一个UTXO(作为一笔发送给你的币),它可以是任意数量的,比如说0.413 BTC。

比特币的双重支付意味着一笔币(UTXO)被花费了两次。通常,这意味着爱丽丝将她的0.413 BTC发送给了鲍勃,然后她又把同一笔比特币又发送给了查利。

比特币的解决方法是,其中一笔交易会纳入一个区块,由此来决定实际谁得到了报酬。如果两笔交易不知何故都传递到了多个区块,那么后面发生的区块,就会被软件给拒绝掉。如果两笔交易都在同一个区块当中,那么这个区块也会遭到软件的拒绝。

基本上,比特币软件会检测到双重支付行为,如果有双重支付行为的发生,则应该拒绝掉相应的区块。

然而,在两笔不同的交易中发送同一个UTXO,并不是唯一的双花方法。实际还存在着同一UTXO在同一交易进行双重支付的病态情况。在这种情况下,爱丽丝向鲍勃发送同一笔币两次。所以,爱丽丝实际支付的是0.413 BTC,但鲍勃收到的却是0.826 BTC。这显然不是一个有效的交易,因为只有一笔价值0.413 BTC的UTXO 是被发送的。这就相当于,爱丽丝用同一10美元向鲍勃发送了两次,而鲍勃收到的则是20美元。

 
定义漏洞
 

因此,总结一下我们所定义的两种类型的双重支付尝试:


使用两笔或更多的交易,来花费相同的UTXO;
使用一笔交易花费同一UTXO多次;



结果表明,Bitcoin Core 软件正确地处理了第一个问题,而第二个问题,正是我们要关心的。任何人都可以像这样构造出一笔双花交易,但要让节点接受这种交易,又是另一回事了。

目前有两种方法可以让交易被纳入一个区块当中: 

A. 支付足够的费用,将交易广播到网络上,那么矿工会负责把交易纳入区块当中;

B. 作为一名矿工,把交易纳入一个区块;

(A) 除了创建交易,并将其广播到网络上的节点之外,你不需要做太多的工作。 (B) 需要你找到足够的工作量证明。这也是这次漏洞的关键。

(A) 不是一个可能的攻击向量,因为这些交易会立即被标记为无效的,网络上的节点会拒绝它们。没有矿工们的合作,这种交易就无法进入矿工们的记忆库,因为它们不会得到传播。

(B)是漏洞显现的唯一情况。换句话说,想要利用这个漏洞,你就需要工作量证明,或者说足够的矿机设备和电力。

为了明确起见,双花交易有4种情况需要处理:

1A — 多笔 mempool交易花费了同一UTXO ;

1B — 多笔区块交易花费了同一UTXO ;

2A — 单笔mempool交易花费了同一UTXO多次;

2B — 单笔区块交易花费了同一UTXO多次;

该漏洞有两种表现形式。在0.14.x版本客户端中,存在着一个拒绝服务(DoS)的漏洞,而在0.15.x - 0.16.2版本的客户端,则存在一个超发漏洞。接下来,我们会分别分析它们。

 
拒绝服务攻击
 

故事始于2009年的Bitcoin 0.1版本客户端,这一版本的代码通过拒绝案例1B和案例2B(检查区块没有双重支付)来强制达成共识。

201809290427248594.png

为了清晰起见,作者删除了很多代码


你可以看到“检查冲突”的注释,其代码负责检查每个输入没有被花费。“将输出标记为已使用”注释下面的代码,标记了UTXO的使用。如果任何UTXO的花费超过一次,则会导致错误。

在2011年,PR 443被合并到了比特币代码库。这一改变是为了处理通过mempool (上面的情况2A)传输单笔交易双重支付的情况。这个合并请求注释的目的非常明确:

    “而且,没有具有重复输入的交易会被纳入区块当中......几个星期前,有人尝试过了,但这些交易并没有被纳入区块。我假设某个地方存在了一个检查关,它会阻止这些重复交易进入区块,虽然我没有对这个问题进行任何挖掘。这实际上是为了防止这种明显无效的交易得到中继。”

201809290429217163.png


实际的代码更改,或多或少与上面的ConnectInputs 中的“检查冲突”注释下的代码执行了相同的操作,但位于的是不同的位置。代码更改是在CheckTransaction 中运行的,其负责了所有上述的4种情况(1A, 1B, 2A, 2B)。因此,我们在区块双重支付共识代码中有了一些冗余,正如案例1B和2B都被检查了两次,其中一次检查是在CheckTransaction,另一次则发生在ConnectInputs。

到了2013年,PR 2224被纳入了比特币软件。这一改变的目的是区分共识错误(例如双重支付)和系统错误(例如磁盘空间耗尽)之间的差别,正如PR注释中所表明的那样:


“它引入了CValidationState,它会存储关于区块的元数据,或者正在执行的交易验证数据。它被用于区分验证错误(例如,未能满足网络规则)和运行时错误(比如磁盘空间的不足),从前这些可能会产生混淆,因磁盘空间用完会导致区块被标记为无效。此外,CValidationState还承担了跟踪 DoS级别的角色(因此它不需要存储于交易或区块当中...)”



实际的相关代码更改如下:

201809290429287993.png


在那个时候,ConnectInputs已经被模块化成多个方法,并且这个函数成为了检查双重支付的函数。这里的关键改变是,曾经的error被改为了 assert

assert在C++中是做什么的?它会完全中止程序。程序员为什么要在这里停止程序?这就是Pull请求的目的所在。下面就是那个时候的代码片段:

201809290429336876.png


它会像以前一样处理案例1B和2B。函数名则从ConnectInputs更改为ConnectBlock,但检查案例1B和2B的冗余性仍然在PR 443中保留。正如我们已经看到的,UpdateCoins做了第二次双重支付检查。其中CheckBlock通过调用CheckTransaction进行了第一次双重支付检查:

201809290429374708.png


201809290429418890.png


由于这是第二次检查相同的内容,所以要让UpdateCoins的双花检查失败的唯一方法,就是存在某种UTXO数据库或交易存储损坏。事实上,这似乎是改成assert的原因。因为CheckBlock通过CheckTransaction在UpdateCoins之前已经进行了检查,我们已知道某笔交易并不是双花交易。因此,PR 2224正确地推测到,UpdateCoins中的这个状态必然是一个系统错误,而不是一个共识错误。在这种情况下,为了防止进一步的数据损坏,正确的做法就是停止程序。

到了2017年,PR 9049作为Bitcoin 0.14的一部分被引入比特币网络。随着隔离见证(Segwit)的纳入,它是加快区块验证时间的诸多更改的其中之一,其代码更改实际是非常少的:

201809290429465081.png


你可以看到布尔函数 fCheckDuplicateInputs被添加了进去,用于加快区块检查。我们将在下面看到,这是一个被认为是冗余的检查。不幸的是, UpdateCoins中的代码在PR 2224中被更改为系统损坏检查,而不是共识检查。到了0.14.0版本客户端,其代码进行了更多的模块化更改,而assert也发生了一些改变:

201809290429517782.png


曾经是作为一个冗余检查,现在却成了负责区块单笔交易双重支付检查(案例2B),并负责停止程序。从技术上来说,它仍然是强制执行共识规则。只是在中止程序问题上,它表现地非常糟糕。

PR 9049是如何获得通过的? Greg Maxwell 给了我IRC上的聊天记录。

201809290429561563.png


长话短说,开发者们在讨论PR 9049时,倾向于认为区块级单笔交易双重支付(案例2B)会在PR 443处遭到检查,而没有考虑PR 2224。这使得开发者们并没有密切关注PR 9049;

总而言之:

1、在2011年引入用于防止双重支付交易中继(案例2A)的 PR 443,实际产生了一个副作用,即对区块的双重支付共识规则检查创造了冗余校验(案例1B和 2B)。

2、PR 2224是在2013年引入的,作为一种副作用,将(1)中用于区块验证的代码,从冗余升级到了共识层;

3、PR 9049是在2017年被引入的,并且它跳过了(1)中用于单个区块单笔交易双重支付(案例1B)检查的代码。开发人员错误地认为代码是多余的,因为他们没有考虑到(2)。事实上,这种改变跳过了共识的关键部分。

公平地讲,这些事的汇合导致了这次漏洞。

 
DoS漏洞的严重性
 

这意味着 0.14.x 版本的Core软件可能会因为一个奇怪的区块而崩溃。而要让软件崩溃,攻击者需要做的事是:


创建一笔花费两次同一UTXO的交易;
通过足够的工作量证明,将(1)中的交易纳入一个比特币区块;
将这个区块广播到0.14.x版本软件的节点;



(1) 和 (3) 的成本并不高,而步骤(2)的最小成本为12.5 BTC。

如果你认为从博弈论的角度来看,分裂网络并不是那么好,那么利用这个漏洞的动机就相当低了。充其量,作为攻击者,你花费了12.5 BTC将部分全节点给搞崩溃。由于不可能从分裂网络中获利,攻击者无法轻易地补偿自己的攻击成本。

如果这是唯一的漏洞,那么攻击者可能给很多人带来一些不便,但这不会是持续的,因为这些被攻击的节点可以简单地重启,并连接到其它诚实节点。一旦有一个较长的链,那么恶意区块攻击就会完全失去它的威胁。除非攻击者以每区块12.5 BTC的代价继续创建区块,并将其传播给 0.14.x版本软件的节点,否则攻击就是不可持续的。

换句话说,虽然这个漏洞的确存在着,但对 DoS攻击的经济刺激却是相当低的。

 
超发漏洞
 

从0.15.0版本软件开始,core软件引入了一个新的特性,以便更快地查找和存储UTXO,而这恰恰又引入了另一个漏洞。当一笔具有双重支付单个交易的区块纳入区块链时,软件会将其视为有效,而不会出现崩溃的现象。

这就意味着一笔病理性交易(相同UTXO在同一交易中被使用多次,即案例2B),0.14版本的节点会因此而崩溃,而使用0.15版本软件的节点却会认为交易是有效的,这基本上是凭空在创建比特币。

谈谈它是如何发生的。在0.15中出现的PR 10195 ,引入了很多内容,但它的主要要点在于改变了 UTXO的存储方式,使得它们更有效地进行查找。因此,它出现了很多变化,包括对早期UpdateCoins函数的更改:

201809290430061888.png


注意,assert(false) 周围的代码是如何被完全取出的。注意这一点,0.15.0中的PR 10537也更改了代码。

201809290430102743.png


assert失败的条件现在取决于inputs.SpendCoin,它看起来是这样子的:

201809290430179759.png


本质上,SpendCoin返回“ false”值的唯一方法,就是让币不存在于UTXO集中。但正如你所看到的,这需要币是FRESH的,而不是DIRTY的。这些不是常见的术语,但值得庆幸的是,core开发者Andrew Chow给出了解释:


“现在的问题是,什么时候UTXO会被标记为FRESH?当它们被添加到UTXO数据库时,它们就会被标记为FRESH。但是,UTXO数据库仍然只存在于存储当中的(作为缓存)。当它被保存到磁盘时,存储中的条目将不再被标记为FRESH……”



标记为FRESH的币,是进入交易存储池(memory pool)中的币。而攻击者可以通过 UpdateCoins函数中的assert语句来破坏节点。更糟的是,如果币是属于DIRTY的(基本上从磁盘上读取的),那么这就会导致比特币的超发。

因此,攻击者可以欺骗那些运行 0.15.0- 0.16.2版本软件的矿工接受一个奇怪的、无效的区块,从而导致比特币的供应超发。

 
超发漏洞的严重性
 

这种攻击的经济诱因似乎明显高于DoS攻击,因为攻击者可能会凭空制造出比特币。但你仍然需要有挖矿设备来执行攻击,但考虑到潜在的经济诱因,这可能是值得的,或者看起来是这样的。

下面是使用这种漏洞的一种简单攻击方式:


创造一笔带有双重支付交易的区块,其会向自己支付两次,比方说 50 BTC →100 BTC;
将该区块广播给0.15/0.16版本客户端的所有矿工;



下面是会发生的一些事:

    0.14.x 版本节点会崩溃;
    较旧版本的节点及其它替代客户端会拒绝这个区块;
    很多区块链浏览器是运行在自定义软件上的,而不是基于core,因此,至少有一些浏览器会拒绝该区块,并且不会显示来自该区块的任何交易。
    取决于矿工们运行的软件,我们可能会迎来链分裂;

有可能,所有的矿工都是运行的Bitcoin Core 0.15+版本软件,在这种情况下,不受攻击的客户端可能会停滞不前。也有可能矿工会运行其它东西,在这种情况下,当他们发现一个区块时,链就会发生分叉。

由于这些违规行为,网络上的人们很快就会追踪到这一点,可能已提醒一些开发人员,并且core开发者已经修复了它。如果存在分叉,那么在那个时候,关于哪条链是正确的共识链,将开始得到讨论,而出现意外超发的链,可能会遭到抛弃。如果真的发生了,那么社区可能会自愿进行一次回滚,以惩罚攻击者。

所以对于攻击者来说,这不会带来50 BTC的收入,更可能的是失去12.5 BTC。如果攻击者加倍花费,比如说200 BTC,那么超发漏洞将持续存在的可能性会更小,因为攻击会更明显。

因此,从攻击者的角度来看,这并不是一种好的获利方式。

攻击者可以获利的另一种方式,就是事先做空比特币,然后再执行攻击。这也是具有风险的,因为攻击不能保证比特币价格会下跌,特别是当危机得到迅速和果断处理时。此外,考虑到大多数交易所提供的杠杠交易,都需要AML/KYC,这可能导致攻击者很快暴露。

攻击者不仅面临着巨大的资金风险,而且还会有身体危险。从经济角度来看,这并不是一个容易获利的漏洞。

当然,有一些别有用心的人,可能会用这种漏洞来吓唬那些比特币持有者。投资回报率将变得更抽象,因此从理论上来讲,这可能会达到这些别有用心者的目的。

 
结论
 

毫无疑问,这是一个相当严重的漏洞。尽管我和Awemany之间有着分歧,但我很感激他选择公开地和我辩论。也就是说,考虑到经济博弈理论,我不认为这个漏洞会像他所描述的那样严重。

即使这个漏洞在被发现之前被坏人所利用,攻击者可能也不会选择利用它,因为从经济学上来讲,它是没有意义的。可以肯定的是,这一技术漏洞应该被修复,并且开发者应该做得更好,但真正能够利用这种漏洞的对象其实是非常少的,基本上,只有那些想要摧毁比特币的组织才会这么干。

Bitcoin Core开发者的教训有很多:

1、任何共识变化(即使是微小的变化,例如9049),也需要更多的人进行审查; 2、需要对病理交易进行更多的检查; 3、代码库中哪些检查是冗余的,哪些检查是不冗余的,以及实际代码将要做些什么,需要变得更加清晰; 4、过去存在漏洞,将来也会存在漏洞。现在重要的是,学习并反思这一教训;


原文:https://medium.com/@jimmysong/bitcoin-core-bug-cve-2018-17144-an-analysis-f80d9d373362
作者:Jimmy Song
编译:洒脱喜

你是如何落入CoinMarketCap设下的圈套的?

hashpai 发表了文章 • 2018-09-28 12:27 • 来自相关话题

在币圈,所有人都生活在CoinMarketCap(CMC)这类代币排名网站的巨大影响之下。


截至目前,CoinMarketCap网站的独立访问量已经超过了6000万,它在Alexa上的全球排名占第340名,远高于华尔街日报的581名;另外根据域名评估网站Moz的度量标准,CoinMarketCap的域名权威等级为71分(满分为100)。





图片来源:Alexa.com


由此可见,代币排名网站,尤其是CoinMarketCap已经成为了加密货币行业中不可或缺的一部分。他们为投资者提供数据来选择“可信”的交易所和市值更高的加密代币;为交易员提供了解交易所交易量信息的渠道;作为加密货币生态中至关重要的一个环节,这类网站时常和“参与操纵市场”,“刊登虚假数据”等信息同时出现。

所以,在这篇文章中我们将介绍以CoinMarketCap为代表的加密货币排名网站背后可能存在的各种圈套。


内幕交易


CoinMarketCap从2013年4月开始记录各种上线代币的价格、市值以及流通量等信息。项目方如果想要在该网站列出他们的代币数据,首先需要向CoinMarketCap提交申请,并证明自己能够提供一种加密代币,该代币必须能够在一个公开的交易所中使用API来报告最近的交易价格和最近24小时的交易量;而该交易所的交易量必须非零,以便确定价格;同时,对于市值排名,项目方需要准确通报流通供应量数据。

这些准入标准看似清晰合理,但据此前medium上的一篇文章指出,有不少项目方在接受采访时明确表示,该网站并不会在第一时间就将其申请的代币在列表中列出,而是在项目方提交申请表的一段时间以后才会做出回应。这表示运营CoinMarketCap的团队有能力知道哪一枚代币将会被投入使用,哪一枚代币的价格将有可能大幅上涨,他们有充足的时间在项目公开或上市之前大量购入该代币,然后静待时机,将其卖出以获得一笔不菲的收入。





图片来源:medium.com
 

运用类似的手法,他们还可以通过调整代币的流通量来间接控制其市值,比如在某一特定的时间点提高代币供应量的数据随后再降低,从而引发市场上的买入或卖出行为,这时CoinMarketCap就可以事先购入或抛售相应的代币来坐收渔翁之利。

 
操纵投资者情绪


另一方面,他们也可以通过更改网站上的数据来操纵投资者的情绪。这一点与上述第二种手法有异曲同工之妙,8月的最后一周,加密货币爱好者Kevin Rooke在推特上发文表示,CoinMarketCap通过提供加密货币交易所的虚假交易量数据误导用户。






根据当时该网站上列出的数据来看,有一个名为BitForex的交易平台,24小时的交易量一度超过50亿美元,远高于其他平台,甚至是最大交易所之一币安交易量的近5倍之多。





图片来源:coinmarketcap.com
 

Bitforex是一家总部设在新加坡的加密货币交易所。他们还在德国、爱沙尼亚、香港、马来西亚、菲律宾和其他国家拥有独立的运营团队。该交易平台支持的代币包括比特币、Ethereum 、比特币现金、莱特币、恒星币和Neo。按照当前coinmarketcap数据,在剔除了因免手续费、上币费和交易即挖矿模式而产生的那部分交易量之后,Bitforex平台排名第54位,交易量不足两千万美元。





图片来源:coinmarketcap.com
 

对此,名为undertheradar48的网友在论坛上评论称:

“我们不能信任任何使用广泛的加密货币网站提供合理准确的信息,这种明目张胆的谎言让人无法相信他们网站的其他内容。”


而通过以上论述,我们完全有理由相信对CoinMarketCap来说,即使一枚代币就其效用价值来讲毫无用处,但如果行业内部人士达成了共识,那么该代币还是有可能出现在排名网站前20的位置上的。

除此之外,今年年初该平台将韩国交易所的价格从其定价算法中删除的事件,也一度将CoinMarketCap推上了操纵投资者情绪的风口浪尖。

今年1月7日,由于韩国加密货币市场存在严重溢价,于是CMC在没有任何警告的情况下就将韩国交易所价格剔除出了他们的排名算法之外,导致了币价大幅降低,从而引发恐慌性抛售,加密货币资产的总市值一夜蒸发1000亿美元。

虽然有专家认为剔除了韩国市场价格的数据更准确;但仍然有大部分投资者并不这么认为。投资者Crypto Gotti在推特上称CoinMarketCap的行为“是我见过最不专业的蓄意价格操纵。”





 
不过,在这里我们不得不提到的是,在交易量数据方面,CoinMarketCap确实在向好的方向努力。8月初,该网站将交易所交易量的数据分为了两种计算方式,第一种延续原有的计算方法通过交易所报告的交易量计算排名;第二种剔除了因免手续费、上币费和交易即挖矿模式而产生的那部分交易量,根据调整过的更接近于实际交易量的数据来计算排名。

 
广告位中添加欺诈项目链接


2018年1月,加密货币交易平台BitConnect由于涉嫌诈骗,在德克萨斯州证券委员会的勒令下关闭了交易所并暂停了贷款业务。而这个项目的广告从2017年4月到11月期间一直待在CoinMarketCap的首页上。






据知名骗局揭露者BCC Ponzi在推特上表示,CoinMarketCap从带有链接的BitConnect横幅广告中大赚了一笔,他们将流量导入了一场即将不复存在的骗局当中,有知情人士爆料称这意味着一笔6位数的月收入。






而BitConnect就是依靠像CoinMarketCap这样不加评判就将交易数据公布,并显示其所发行的BCC代币大幅升值的排名网站,来制造其代币流动性良好的假象的。实际上,BCC交易量中的95%以上来自于一个在 bitconnect.co 上托管的交易所。

Coinmetrics.io的联合创始人Nic Carter曾在推特上表示:“BCC的价格、交易量和流通量都来自Bitconnect自己旗下的交易所”。






CoinMarketCap通过不加批判地、不带任何警告地上线BCC数据,促进了BitConnect骗局的得逞,使他们最终从投资者那里卷走了约1亿美元。但CMC并不满足于BitConnect这一个有利可图的诈骗项目,此后他们还为许多其他的诈骗网站打了广告。

名为nic carter 的网友还在推特上贴出截图表示,CoinMarketCap不仅帮一家诈骗项目打广告而是在帮三家。

据公开的信息可知,CoinMarketCap是四年前一位名为Brandon Chez 的程序员在纽约皇后区长岛市的一所公寓中创办的。最初的一段时间,Brandon Chez 一边从事程序员的工作,一边打理这个网站,所以从整体上来看,CoinMarketCap在很大程度上显得更像一个业余的操作机构;而事实也证明,即使他们在积极做出改变,但至少在很长一段时间内,CoinMarketCap通常无法对交易流动性做出成熟的判断。


与交易所和项目方勾结压榨散户投资者


在文章的开头我们就已经说过代币排名网站在这个行业中占据了很重要的地位。那么,首先我们需要了解的是这些排名网站的商业模式是怎么样的。像CoinMarketCap、CoinGecko、CoinRanking这类的网站几乎都在出售广告位;据了解,CoinMarketCap一天的广告收入约为8万美元;从表面上看,他们为投资者提供了有用的服务,而除了广告收入之外他们几乎得不到任何回报。

但实际上隐藏的事实才更加险恶。CoinMarketCap作为规模最大、最受欢迎的排名网站,他们除了接受付费的横幅广告助长欺诈行为之外,在某些情况下,他们还利用广告位中的联盟链接赚钱。

比如,在CoinMarketCap上时常会出现交易特定的交易所链接。某些规模较小的项目实际上并没有多少流动性,但排名网站就是吸引投资者的窗口,因此他们往往可以通过嵌入联盟链接的方式从他们的网站导流至某些交易所,甚至有一些排名网站允许用户直接在其平台上交易加密代币。





排名网站中的交易所链接


所以事实上,CoinMarketCap或许正在用你看不见的手段从散户投资者那里吸引资金、再把资金放入代币开发方和交易所的口袋。

Coinmetrics.io的联合创始人Nic Carter将代币排名网站、交易所、项目方和散户投资者之间的关系归纳如下:






在这个行业中有两种类型的交易所,一种是法币交易,一种是币币交易。涉及法币交易的交易所更倾向于受到监管,他们遵循KYC/AML规定,甚至可能对交易进行监控,Coinbase和Gemini就是最好的例子;当然在这篇文章我们要讲的是另一种交易所,他们往往在监管较轻的国家运营;他们甚至根本不参与法币交易,投资者通常需要使用BTC和ETH才能够进入市场。而这些交易所更希望进入市场的是一些短线交易员或者投机者。

交易所与竞争币的项目方及营销人员之间也存在着互利互惠的关系。对投机者来说,最令人兴奋的事情就是新的代币上市,因为交易所能为加密货币提供很强的流动性;而竞争币的开发人员与营销人员会向交易所支付所谓的巨额上币费用。

同时,项目方往往也是其代币的最大持有者,他们还能够在代币上市中获得大量利润。通常在币安这样的大交易所进行大规模的上市时,将会为内部人士提供一个抽身离开功成身退的机会。因此,竞争币的开发团队和推广商向交易所支付一大笔费用也是符合他们的利益的。

此时,排名网站就可以发挥作用了。他们可以不加评判和审查的发布交易所的交易量数据,而这些数据很大一部分都是虚构的,这一点在去年Sylvain Ribes发布的调查报告中就已经被证实了。也许,加密对冲基金的合伙人可能会震惊的发现,他们一直用来作为头寸标记的CoinMarketCap的数据竟然是从竞争币市场收集来的伪造的证据。

所以在这里,我们可以将加密货币项目方、交易平台和代币排名网站之间的关系用更加简洁的语言归纳如下:






项目方希望在流动性更强的平台上市,然后选择套现离场或者扩大持有规模;
交易所希望标榜自己具有很强的流动性,以获取项目方高额的上币费(币币交易所大多不受监管,所以可以逃避任何责任);
因此许多交易所进行倒仓交易,以使自己的交易量显得更加庞大,并改善自己的流动性状况;
排名网站通过植入链接和广告挣钱,但缺乏资源来监控每一个交易所,因此不加批判和筛选的发布交易数据;
交易所通过倒仓交易在排名网站上获得靠前的排名,成功营销自己;


而上述交易所的利润、排名网站的利润以及项目方的利润,所有这些实际上都来源于对散户投资者的压榨。


这个市场的未来会怎样?


与CoinMarketCap相同,大部分代币排名网站都摆脱不了上述的几种圈钱套路。尤其是币币交易所、代币项目方和排名网站之间交织紧密的利益关系,在加密代币投资者缺乏背景知识,市场充斥着虚假数据的情况下,币币交易所更像是1920年代的投机商号;1980年代的电话交易所;2000年代初不受监管的扑克网站,或者是过去十年间出现的那些不受监管的外汇或二元期权交易平台。

而在目前还不受监管的市场中,内幕交易、操纵市场、利用诈骗项目获取利益以及交易所通过刷单来营销自己的现象还将存在。在这些圈套面前,投资者还是应该保持警惕,在投资之前做出明智决定。

 
作者:不碎 查看全部
coinmarketcap-rediseno-app-movil-ios.jpg


在币圈,所有人都生活在CoinMarketCap(CMC)这类代币排名网站的巨大影响之下。



截至目前,CoinMarketCap网站的独立访问量已经超过了6000万,它在Alexa上的全球排名占第340名,远高于华尔街日报的581名;另外根据域名评估网站Moz的度量标准,CoinMarketCap的域名权威等级为71分(满分为100)。

201809280230228991.jpg

图片来源:Alexa.com


由此可见,代币排名网站,尤其是CoinMarketCap已经成为了加密货币行业中不可或缺的一部分。他们为投资者提供数据来选择“可信”的交易所和市值更高的加密代币;为交易员提供了解交易所交易量信息的渠道;作为加密货币生态中至关重要的一个环节,这类网站时常和“参与操纵市场”,“刊登虚假数据”等信息同时出现。

所以,在这篇文章中我们将介绍以CoinMarketCap为代表的加密货币排名网站背后可能存在的各种圈套。


内幕交易


CoinMarketCap从2013年4月开始记录各种上线代币的价格、市值以及流通量等信息。项目方如果想要在该网站列出他们的代币数据,首先需要向CoinMarketCap提交申请,并证明自己能够提供一种加密代币,该代币必须能够在一个公开的交易所中使用API来报告最近的交易价格和最近24小时的交易量;而该交易所的交易量必须非零,以便确定价格;同时,对于市值排名,项目方需要准确通报流通供应量数据。

这些准入标准看似清晰合理,但据此前medium上的一篇文章指出,有不少项目方在接受采访时明确表示,该网站并不会在第一时间就将其申请的代币在列表中列出,而是在项目方提交申请表的一段时间以后才会做出回应。这表示运营CoinMarketCap的团队有能力知道哪一枚代币将会被投入使用,哪一枚代币的价格将有可能大幅上涨,他们有充足的时间在项目公开或上市之前大量购入该代币,然后静待时机,将其卖出以获得一笔不菲的收入。

201809280230306799.jpg

图片来源:medium.com
 

运用类似的手法,他们还可以通过调整代币的流通量来间接控制其市值,比如在某一特定的时间点提高代币供应量的数据随后再降低,从而引发市场上的买入或卖出行为,这时CoinMarketCap就可以事先购入或抛售相应的代币来坐收渔翁之利。

 
操纵投资者情绪


另一方面,他们也可以通过更改网站上的数据来操纵投资者的情绪。这一点与上述第二种手法有异曲同工之妙,8月的最后一周,加密货币爱好者Kevin Rooke在推特上发文表示,CoinMarketCap通过提供加密货币交易所的虚假交易量数据误导用户。

201809280230371048.jpg


根据当时该网站上列出的数据来看,有一个名为BitForex的交易平台,24小时的交易量一度超过50亿美元,远高于其他平台,甚至是最大交易所之一币安交易量的近5倍之多。

201809280230418089.jpg

图片来源:coinmarketcap.com
 

Bitforex是一家总部设在新加坡的加密货币交易所。他们还在德国、爱沙尼亚、香港、马来西亚、菲律宾和其他国家拥有独立的运营团队。该交易平台支持的代币包括比特币、Ethereum 、比特币现金、莱特币、恒星币和Neo。按照当前coinmarketcap数据,在剔除了因免手续费、上币费和交易即挖矿模式而产生的那部分交易量之后,Bitforex平台排名第54位,交易量不足两千万美元。

201809280230462871.jpg

图片来源:coinmarketcap.com
 

对此,名为undertheradar48的网友在论坛上评论称:


“我们不能信任任何使用广泛的加密货币网站提供合理准确的信息,这种明目张胆的谎言让人无法相信他们网站的其他内容。”



而通过以上论述,我们完全有理由相信对CoinMarketCap来说,即使一枚代币就其效用价值来讲毫无用处,但如果行业内部人士达成了共识,那么该代币还是有可能出现在排名网站前20的位置上的。

除此之外,今年年初该平台将韩国交易所的价格从其定价算法中删除的事件,也一度将CoinMarketCap推上了操纵投资者情绪的风口浪尖。

今年1月7日,由于韩国加密货币市场存在严重溢价,于是CMC在没有任何警告的情况下就将韩国交易所价格剔除出了他们的排名算法之外,导致了币价大幅降低,从而引发恐慌性抛售,加密货币资产的总市值一夜蒸发1000亿美元。

虽然有专家认为剔除了韩国市场价格的数据更准确;但仍然有大部分投资者并不这么认为。投资者Crypto Gotti在推特上称CoinMarketCap的行为“是我见过最不专业的蓄意价格操纵。”

201809280230529465.jpg

 
不过,在这里我们不得不提到的是,在交易量数据方面,CoinMarketCap确实在向好的方向努力。8月初,该网站将交易所交易量的数据分为了两种计算方式,第一种延续原有的计算方法通过交易所报告的交易量计算排名;第二种剔除了因免手续费、上币费和交易即挖矿模式而产生的那部分交易量,根据调整过的更接近于实际交易量的数据来计算排名。

 
广告位中添加欺诈项目链接


2018年1月,加密货币交易平台BitConnect由于涉嫌诈骗,在德克萨斯州证券委员会的勒令下关闭了交易所并暂停了贷款业务。而这个项目的广告从2017年4月到11月期间一直待在CoinMarketCap的首页上。

201809280231207994.jpg


据知名骗局揭露者BCC Ponzi在推特上表示,CoinMarketCap从带有链接的BitConnect横幅广告中大赚了一笔,他们将流量导入了一场即将不复存在的骗局当中,有知情人士爆料称这意味着一笔6位数的月收入。

201809280231071596.jpg


而BitConnect就是依靠像CoinMarketCap这样不加评判就将交易数据公布,并显示其所发行的BCC代币大幅升值的排名网站,来制造其代币流动性良好的假象的。实际上,BCC交易量中的95%以上来自于一个在 bitconnect.co 上托管的交易所。

Coinmetrics.io的联合创始人Nic Carter曾在推特上表示:“BCC的价格、交易量和流通量都来自Bitconnect自己旗下的交易所”。

201809280231137624.jpg


CoinMarketCap通过不加批判地、不带任何警告地上线BCC数据,促进了BitConnect骗局的得逞,使他们最终从投资者那里卷走了约1亿美元。但CMC并不满足于BitConnect这一个有利可图的诈骗项目,此后他们还为许多其他的诈骗网站打了广告。

名为nic carter 的网友还在推特上贴出截图表示,CoinMarketCap不仅帮一家诈骗项目打广告而是在帮三家。

据公开的信息可知,CoinMarketCap是四年前一位名为Brandon Chez 的程序员在纽约皇后区长岛市的一所公寓中创办的。最初的一段时间,Brandon Chez 一边从事程序员的工作,一边打理这个网站,所以从整体上来看,CoinMarketCap在很大程度上显得更像一个业余的操作机构;而事实也证明,即使他们在积极做出改变,但至少在很长一段时间内,CoinMarketCap通常无法对交易流动性做出成熟的判断。


与交易所和项目方勾结压榨散户投资者


在文章的开头我们就已经说过代币排名网站在这个行业中占据了很重要的地位。那么,首先我们需要了解的是这些排名网站的商业模式是怎么样的。像CoinMarketCap、CoinGecko、CoinRanking这类的网站几乎都在出售广告位;据了解,CoinMarketCap一天的广告收入约为8万美元;从表面上看,他们为投资者提供了有用的服务,而除了广告收入之外他们几乎得不到任何回报。

但实际上隐藏的事实才更加险恶。CoinMarketCap作为规模最大、最受欢迎的排名网站,他们除了接受付费的横幅广告助长欺诈行为之外,在某些情况下,他们还利用广告位中的联盟链接赚钱。

比如,在CoinMarketCap上时常会出现交易特定的交易所链接。某些规模较小的项目实际上并没有多少流动性,但排名网站就是吸引投资者的窗口,因此他们往往可以通过嵌入联盟链接的方式从他们的网站导流至某些交易所,甚至有一些排名网站允许用户直接在其平台上交易加密代币。

201809280231207994.jpg

排名网站中的交易所链接


所以事实上,CoinMarketCap或许正在用你看不见的手段从散户投资者那里吸引资金、再把资金放入代币开发方和交易所的口袋。

Coinmetrics.io的联合创始人Nic Carter将代币排名网站、交易所、项目方和散户投资者之间的关系归纳如下:

201809280231263809.jpg


在这个行业中有两种类型的交易所,一种是法币交易,一种是币币交易。涉及法币交易的交易所更倾向于受到监管,他们遵循KYC/AML规定,甚至可能对交易进行监控,Coinbase和Gemini就是最好的例子;当然在这篇文章我们要讲的是另一种交易所,他们往往在监管较轻的国家运营;他们甚至根本不参与法币交易,投资者通常需要使用BTC和ETH才能够进入市场。而这些交易所更希望进入市场的是一些短线交易员或者投机者。

交易所与竞争币的项目方及营销人员之间也存在着互利互惠的关系。对投机者来说,最令人兴奋的事情就是新的代币上市,因为交易所能为加密货币提供很强的流动性;而竞争币的开发人员与营销人员会向交易所支付所谓的巨额上币费用。

同时,项目方往往也是其代币的最大持有者,他们还能够在代币上市中获得大量利润。通常在币安这样的大交易所进行大规模的上市时,将会为内部人士提供一个抽身离开功成身退的机会。因此,竞争币的开发团队和推广商向交易所支付一大笔费用也是符合他们的利益的。

此时,排名网站就可以发挥作用了。他们可以不加评判和审查的发布交易所的交易量数据,而这些数据很大一部分都是虚构的,这一点在去年Sylvain Ribes发布的调查报告中就已经被证实了。也许,加密对冲基金的合伙人可能会震惊的发现,他们一直用来作为头寸标记的CoinMarketCap的数据竟然是从竞争币市场收集来的伪造的证据。

所以在这里,我们可以将加密货币项目方、交易平台和代币排名网站之间的关系用更加简洁的语言归纳如下:

201809280231336359.jpg


项目方希望在流动性更强的平台上市,然后选择套现离场或者扩大持有规模;
交易所希望标榜自己具有很强的流动性,以获取项目方高额的上币费(币币交易所大多不受监管,所以可以逃避任何责任);
因此许多交易所进行倒仓交易,以使自己的交易量显得更加庞大,并改善自己的流动性状况;
排名网站通过植入链接和广告挣钱,但缺乏资源来监控每一个交易所,因此不加批判和筛选的发布交易数据;
交易所通过倒仓交易在排名网站上获得靠前的排名,成功营销自己;



而上述交易所的利润、排名网站的利润以及项目方的利润,所有这些实际上都来源于对散户投资者的压榨。


这个市场的未来会怎样?


与CoinMarketCap相同,大部分代币排名网站都摆脱不了上述的几种圈钱套路。尤其是币币交易所、代币项目方和排名网站之间交织紧密的利益关系,在加密代币投资者缺乏背景知识,市场充斥着虚假数据的情况下,币币交易所更像是1920年代的投机商号;1980年代的电话交易所;2000年代初不受监管的扑克网站,或者是过去十年间出现的那些不受监管的外汇或二元期权交易平台。

而在目前还不受监管的市场中,内幕交易、操纵市场、利用诈骗项目获取利益以及交易所通过刷单来营销自己的现象还将存在。在这些圈套面前,投资者还是应该保持警惕,在投资之前做出明智决定。

 
作者:不碎

V神发布论文:“轻客户端可以获得接近全节点等效的区块有效性保证”

8btc 发表了文章 • 2018-09-27 15:06 • 来自相关话题

以太坊联合创始人Vitalik Buterin和伦敦大学学院的两名博士生Mustafa Al-Bassam和Alberto Sonnino发布了一篇关于欺诈证明(fraud proof)的论文,以便“轻客户端可以获得接近全节点等效的区块有效性保证”。


轻客户端就是智能手机上的以太坊钱包。它们非常轻,对矿工非常信任,自身也不验证协议规则。到目前为止,一切都很顺利,但是分片对安全性的要求更高,这一要求也会让轻型钱包更加安全。论文中说:

“我们的论文对于使用分片对区块链进行扩容的工作也能发挥重要作用,因为在分片系统中,网络中单个节点不会下载并验证所有分片的状态,因此必须使用欺诈证明来检测来自恶意分片的无效区块。”


这篇高度技术性但也能让人理解的论文描述了一种方法,通过该方法,节点可以验证区块,然后发布这种有效性的证明。然后,轻钱包或分片可以验证该证明,如果有任何错误,它们会拒绝该区块。但是有一个问题:

“恶意区块生产者可以通过扣留重新计算dataRooti所需的数据并仅将区块头释放到网络来阻止整个节点生成欺诈证明。区块生产者能在区块发布后很长时间后释放可能包含无效交易或状态转换的数据,使区块无效。这将导致未来区块分类账上的交易回滚。”


证明部分可以说是相对容易的,但这个数据扣留问题很难解决。 Buterin说:

“基本上,现在会使用抹除码和欺诈证明将'100%数据可用性'问题转换为'75%数据可用性'问题,转换后的问题可以通过随机抽样技术更容易地解决。”


Vitalik的论文更深入地描述了这个过程,本文也在某种程度上引用了论文中的相关内容,以便于让读者更容易理解:

“区块生产者编译由k个share组成的数据块,使用Reed-Solomon编码将数据扩展到2k个share,并在扩展数据(每个叶对应一个share)上计算Merkle root(dataRooti)。

当轻客户端使用dataRooti接收区块头时,它们会从dataRooti所代表哈希树中随机采样share,并且只有在收到所有请求的share后才接受区块。如果一个对抗性的区块生产者使超过50%的share无法使用,从而使完整数据无法恢复,则有50%的可能性客户将在第一次抽样中随机抽取不可用的share,两次抽样后有25%的概率,三次后为12.5%,依此类推。这是使用替换抽样时的情况,在完整的方案中,会在没有替换的情况下进行抽样,因此概率会更低。

请注意,要使此方案正常工作,网络中必须有足够的轻客户端采样足够的share,以便区块生产者需要释放超过50%的share才能通过所有轻客户端的抽样挑战,从而可以恢复整个区块。”


有了完整的区块以后,我们可以创建欺诈证明,轻节点可以检查它,而轻型节点实际上可以变成一个完整的节点。

这里假设至少有一个完整节点是诚实的,显然诚实的完整节点越多越好。在分片的情况下,则假设每个分片至少有一个诚实的节点,这意味着分片中的节点将是非常重要的,并且在某种程度上可以理解为为节点越多,容量越大。

前Blockstream CTO和现比特币核心开发人员Gregory Maxwell的反应是:

“错误编码的反扣留问题已被多次讨论过——而且我一直很沮丧,因为我无法激发人们对这个想法的兴趣。”


论文中也表示:

“网络上一直有关于如何设计欺诈证明系统的讨论,但是没有提出处理所有区块无效案例和数据可用性的完整设计。”


Vitalik的论文包含一个欺诈证明原型和一个数据可用性原型。由于欺诈证明一直被认为是公共区块链扩容的主要瓶颈,因此这似乎是一种技术上的突破。按照当前的方案,资源使用消耗量为每1MB区块14kb,验证时间大约为1秒。





欺诈证明的大小,2018年9月





欺诈证明的验证时间,2018年9月


轻客户端必须为每个区块执行上述操作,但它们不需要存储这些证明。 一旦它们检查发现该区块是有效的,它们就可以忽略14kb的资源使用消耗量,因此看起来似乎不会消耗存储空间。这意味着在这种设计中,轻节点可以自动拒绝无效区块,从而让矿工不能欺骗它们,因为在这种设计中,轻节点将像完整节点一样支持协议规则。

如果情况确实如此的话,那么完整节点存储和同步可能不再是问题,可扩展性问题有能得到解决。


原文:Vitalik Buterin et al Publish Paper on Fraud Proofs For Sharding and Light Clients
作者:Trustnodes
编译:Apatheticco 查看全部
201809270243095466.png


以太坊联合创始人Vitalik Buterin和伦敦大学学院的两名博士生Mustafa Al-Bassam和Alberto Sonnino发布了一篇关于欺诈证明(fraud proof)的论文,以便“轻客户端可以获得接近全节点等效的区块有效性保证”。



轻客户端就是智能手机上的以太坊钱包。它们非常轻,对矿工非常信任,自身也不验证协议规则。到目前为止,一切都很顺利,但是分片对安全性的要求更高,这一要求也会让轻型钱包更加安全。论文中说:


“我们的论文对于使用分片对区块链进行扩容的工作也能发挥重要作用,因为在分片系统中,网络中单个节点不会下载并验证所有分片的状态,因此必须使用欺诈证明来检测来自恶意分片的无效区块。”



这篇高度技术性但也能让人理解的论文描述了一种方法,通过该方法,节点可以验证区块,然后发布这种有效性的证明。然后,轻钱包或分片可以验证该证明,如果有任何错误,它们会拒绝该区块。但是有一个问题:


“恶意区块生产者可以通过扣留重新计算dataRooti所需的数据并仅将区块头释放到网络来阻止整个节点生成欺诈证明。区块生产者能在区块发布后很长时间后释放可能包含无效交易或状态转换的数据,使区块无效。这将导致未来区块分类账上的交易回滚。”



证明部分可以说是相对容易的,但这个数据扣留问题很难解决。 Buterin说:


“基本上,现在会使用抹除码和欺诈证明将'100%数据可用性'问题转换为'75%数据可用性'问题,转换后的问题可以通过随机抽样技术更容易地解决。”



Vitalik的论文更深入地描述了这个过程,本文也在某种程度上引用了论文中的相关内容,以便于让读者更容易理解:


“区块生产者编译由k个share组成的数据块,使用Reed-Solomon编码将数据扩展到2k个share,并在扩展数据(每个叶对应一个share)上计算Merkle root(dataRooti)。

当轻客户端使用dataRooti接收区块头时,它们会从dataRooti所代表哈希树中随机采样share,并且只有在收到所有请求的share后才接受区块。如果一个对抗性的区块生产者使超过50%的share无法使用,从而使完整数据无法恢复,则有50%的可能性客户将在第一次抽样中随机抽取不可用的share,两次抽样后有25%的概率,三次后为12.5%,依此类推。这是使用替换抽样时的情况,在完整的方案中,会在没有替换的情况下进行抽样,因此概率会更低。

请注意,要使此方案正常工作,网络中必须有足够的轻客户端采样足够的share,以便区块生产者需要释放超过50%的share才能通过所有轻客户端的抽样挑战,从而可以恢复整个区块。”



有了完整的区块以后,我们可以创建欺诈证明,轻节点可以检查它,而轻型节点实际上可以变成一个完整的节点。

这里假设至少有一个完整节点是诚实的,显然诚实的完整节点越多越好。在分片的情况下,则假设每个分片至少有一个诚实的节点,这意味着分片中的节点将是非常重要的,并且在某种程度上可以理解为为节点越多,容量越大。

前Blockstream CTO和现比特币核心开发人员Gregory Maxwell的反应是:


“错误编码的反扣留问题已被多次讨论过——而且我一直很沮丧,因为我无法激发人们对这个想法的兴趣。”



论文中也表示:


“网络上一直有关于如何设计欺诈证明系统的讨论,但是没有提出处理所有区块无效案例和数据可用性的完整设计。”



Vitalik的论文包含一个欺诈证明原型和一个数据可用性原型。由于欺诈证明一直被认为是公共区块链扩容的主要瓶颈,因此这似乎是一种技术上的突破。按照当前的方案,资源使用消耗量为每1MB区块14kb,验证时间大约为1秒。

201809270244364841.png

欺诈证明的大小,2018年9月

201809270245287261.png

欺诈证明的验证时间,2018年9月


轻客户端必须为每个区块执行上述操作,但它们不需要存储这些证明。 一旦它们检查发现该区块是有效的,它们就可以忽略14kb的资源使用消耗量,因此看起来似乎不会消耗存储空间。这意味着在这种设计中,轻节点可以自动拒绝无效区块,从而让矿工不能欺骗它们,因为在这种设计中,轻节点将像完整节点一样支持协议规则。

如果情况确实如此的话,那么完整节点存储和同步可能不再是问题,可扩展性问题有能得到解决。


原文:Vitalik Buterin et al Publish Paper on Fraud Proofs For Sharding and Light Clients
作者:Trustnodes
编译:Apatheticco

Fomo3D 二轮大奖开出,黑客获奖,机制漏洞成游戏没落主因

leek 发表了文章 • 2018-09-26 12:05 • 来自相关话题

北京时间 9 月 24 日深夜 11 点 32 分,Fomo3D 第二轮最终大奖由地址 0x18a0 获得,奖金为 3,264.668 Ether。安比(SECBIT)实验室分析发现,此轮游戏获奖技巧与第一轮如出一辙,均为黑客“阻塞交易”攻击。

与此前第一轮游戏相比,这轮游戏持续 33 天,无论是从入场资金、持续时长,亦或是最终大奖奖金额来说,相比上轮均大幅缩水。

回首两月之前,Fomo3D第一轮游戏入场资金一度超过 40,000 Ether,第一轮游戏最终大奖奖金额超过 10,000 Ether,游戏参与者众多,类似的资金盘游戏也如雨后春笋般相继冒出,一时间好不热闹。

然而,自 9 月以来,随着市场整体的大萧条,类 Fomo3D 游戏也几近没落。以 Fomo3D 和 Last Winner 为代表的几款较活跃的游戏,热度明显下降。而大部分的同类合约由于无人开启下轮游戏,都处在搁置状态。

因而到如今,Fomo 3D第二轮大奖已经开出,黑客获奖几无悬念,游戏的热度已不可同日而语。

安比(SECBIT)实验室针对这一变化展开分析,分析结果表明,不久前连续揭露的游戏空投机制漏洞[1]和“阻塞交易”攻击事件[2],尽管在短时间内将该类游戏的关注度推上了新的高度,但本质上也是导致游戏没落的主要原因。


繁华 vs 凉凉?
曾经多火爆,如今就多冷清


游戏热度全景

7 月 20 日, 资金盘游戏 Fomo3D 在国内迅速传播开来,引起了广泛的关注。随后,一系列类似 Fomo3D 的游戏陆续上线。8 月 6 日,另一款类 Fomo3D 游戏 Last Winner 部署上线。在其团队的大力推广下, Last Winner 迅速火爆起来,甚至一度造成以太坊拥堵和 Gas 费用暴涨。但在游戏第一轮结束后,各个游戏的热度都开始持续下降。





图一:Fomo3D 玩家参与度与入场资金状况


上图展示了「Fomo3D 玩家参与度与入场资金状况」。红色代表调用合约参与游戏的人次,蓝色则代表进入游戏合约的资金量。图左侧出现数据曲线最高峰,对应时间分别是 7 月 20 日和 7 月 21 日。这两天恰好大量媒体疯狂报道 Fomo3D 这一现象级游戏。当时众多玩家跟风入场,游戏合约的参与次数和入场资金均达到了最高峰,入场资金量超过 40,000 Ether,而参与次数最高超过 18,000 次。而曲线的最高点则对应着 Fomo3D 游戏第一轮最高峰。

高峰过后,Fomo3D 游戏热度骤降,于 8 月 22 日前后结束第一轮,并随即进入第二轮,但游戏热度已然无法恢复。





图二:Last Winner 玩家参与度与入场资金状况


类似地,上图展示了「Last Winner 玩家参与度与入场资金状况」。Last Winner 针对 Fomo3D 游戏做了部分修改,降低了游戏时间上限,因此每轮结束得更快。第一轮高峰出现在 8 月 8 日,此后有多个局部波峰,代表着不同轮次的开启,但显然调用次数和入场资金一轮不如一轮。


奖池资金

下图为 Fomo3D 合约中 Ether 余额的变化情况。Fomo3D 游戏在迅速火爆后,合约内 Ether 余额一度上升到峰值,第一轮游戏结束后,合约中的余额立即呈断崖式下跌,至今还处在缓慢减少的过程。





图三:Fomo3D 合约 Ether 余额变化状况


无独有偶,Last Winner 合约中的余额也曾在短时间内迅速增长,而后随着几轮游戏的迭代而逐步下降,至今所剩的余额更是不足 5,000 Ether。





图四:Last Winner 合约 Ether 余额变化状况


最终大奖

8 月 17 日,安比(SECBIT)实验室与 Anchain.ai 团队联合揭露了黑客团队 BAPT-LW20 利用空投机制漏洞,攫取大量奖金的攻击事件。同一天,Last Winner 游戏第一轮结束,最终大奖的获得者也是 BAPT-LW20 团队。据统计,该黑客团队从 Last Winner 首轮游戏中获利累计达 12,948 Ether。

在 Last Winner 已完成的前 9 轮游戏中,黑客团伙持有的账户 0x5167 共夺得 4 次最终大奖。






仔细观察每轮游戏的最终大奖金额和持续时间,不难发现,奖金数量衰减非常快,而每轮也结束得越来越快。这与上面的游戏参与数据图十分吻合。

类似地,Fomo3D 游戏首轮和第二轮大奖分别于 8 月 22 日和 9 月 24 日开出,奖金额分别为 10,469.66 和 3,264.66 Ether。除了奖金数额锐减之外,安比(SECBIT)实验室还发现大奖获得者均使用了相同的攻击技巧。


反思       
机制漏洞是游戏没落的主因


除了市场萎靡以及玩家热情降低,安比(SECBIT)实验室认为“阻塞交易”攻击(针对最终大奖)[3]和空投漏洞攻击[4]打破了合约机制设计中的关键部分。这才是使游戏变冷的主要原因。





图五:Fomo3D 游戏合约被攻击状况


上图是「Fomo3D 游戏合约被攻击状况」,第一轮游戏高峰前后以及第二轮开始后,有黑客疯狂地利用空投漏洞进行攻击,攫取高额收益。而在第一轮临近结束,以及第二轮倒计时快结束之际,有黑客疯狂尝试“阻塞交易”攻击,目标在于夺取巨额的最终大奖。

北京时间 9 月 24 日深夜 11 点 32 分,Fomo3D 第二轮最终大奖由地址 0x18a0451Ea56Fd4FF58f59837e9EC30f346ffDCa5 获得,奖金达 3,264.668 Ether。安比(SECBIT)实验室发现 Fomo3D 第二轮大奖获得者 0x18a0 创建了攻击合约 0x705203fc06027379681AEf47c08fe679bc4A58e1,并发起大量攻击交易,连续堵塞 10 余个区块,时间长达 2 分钟以上。这一系列攻击,在上图的游戏被攻击监控数据中展露无疑。





图六:Last Winner 游戏合约被攻击状况


上图是「Last Winner 游戏合约被攻击状况」,与 Fomo3D 类似,黑客攻击规模在游戏热度高时十分巨大。


“阻塞交易”攻击

Fomo3D 游戏巧妙地设计了一个环节,最后一个参与游戏的人将获得奖池中一半的 Ether 做为奖励。开发者想通过此设计保持大量的玩家陆续进场,任何人都有可能成为那个“幸运儿”。但是在黑客利用“阻塞交易”攻击[5]来加快游戏结束成为受益人后,这个吸引玩家的设计被打破了。因此后进场的普通玩家只能成为被割的韭菜,自然很难再吸引玩家参与。


“空投漏洞”攻击

除了最后的大奖,游戏中还设计了空投奖励机制,玩家有一定的概率获得空投奖励,这也是吸引玩家参与的一个重要原因。但是由于空投机制存在随机数漏洞,黑客可以通过一定的技巧持续高概率地拿走奖励,而普通玩家几乎不可能成功。这样空投奖励的公平性也同样受到了挑战。


对策与展望
dApp 还有很长的路要走


这样一类红极一时的爆款游戏,必定会成为 dApp 游戏发展史上的一个重要里程碑。但是过快的萧条速度也给我们带来了很多的反思。对于类 Fomo3D 游戏,甚至是所有的 dApp 游戏,还有很长的路要走。要及时从黑客攻击的案例中吸取教训,并做好防御措施。

“空投漏洞”攻击是类 Fomo3D 游戏遭受攻击次数最多的一个破绽。黑客可低成本持续地攫取奖池中的资金。

一方面,Fomo3D 游戏的空投机制利用随机数来控制中奖概率,但是由于随机数的来源都是区块或者交易中特定的一些公开参数,如交易发起者地址、区块时间戳、区块难度等,所有以太坊智能合约都可以很容易的预测随机数[6]。因此在涉及到随机数的场景下,安比(SECBIT)实验室建议开发者应尤为慎重,或通过一定的手段来增加随机源的预测难度。如开发者可通过使用多次提交再披露、或延迟若干个区块开奖的方法来规避随机数被预测的风险。

另一方面,为了防止合约自动化攻击,Fomo3D 游戏合约对调用者是普通账户还是合约账户做了检测,但由于检测方式存在漏洞,黑客可以利用一些技巧绕开检测。因此项目方在对参与 dApp 游戏的玩家的身份做检测的时候,也应采用更加可靠的方式。例如,通过判断该笔交易最初的发起者(tx.origin)与当前合约的调用者(msg.sender)是否为同一地址。

前文提到的“阻塞交易”攻击,也是类 Fomo3D 游戏面临的另一重大挑战。

黑客通过高额手续费吸引矿工优先打包,并利用合约自动判断游戏进行状态,以之作为是否采取攻击的依据。黑客最终能够以较低成本堵塞区块,每个区块中仅打包很少的交易(降低他人交易被打包的可能性),使得游戏快速结束,并提高自己获得最终大奖的概率。

其实这一问题不止会威胁类 Fomo3D 游戏。所有类似机制,即需要玩家抢在某个时间范围内完成某种竞争操作的智能合约,都会受此威胁。要杜绝这一问题,安比(SECBIT)实验室建议游戏开发者,从游戏机制入手,切断游戏最终胜利(获得某个巨额大奖)和倒计时结束(最后一个交易被打包)之间的必然联系,从而使黑客的攻击获利概率和攻击意愿都降到最低。

类 Fomo3D 游戏中黑客利用了以太坊共识协议的特点,找到游戏机制的漏洞进而发起攻击。这也提醒我们,dApp 应用中的机制设计是一项极其复杂的工程,除了技术本身,还涉及到平台外部环境,博弈论等方面问题,这也是容易被黑客攻击的环节。因此,dApp 项目在机制设计过程中应尤为慎重。

正如安比实验室创始人郭宇所说:“新世界有生命,就有捕食者。有交易者,就有黑客。区块链上的应用在进化,攻击者也同样”。在技术和财富的交汇处,黑客永远保持着最灵敏的嗅觉。黑客的一次次攻击,给了我们很多的反思和改进的机会,这也是应用不断进化的催化剂。


参考文献

[1] Pwning Fomo3D Revealed: Iterative, Pre-Calculated Contract Creation For Airdrop Prizes!, https://peckshield.com/2018/07/24/fomo3d/
[2] 智能合约史上最大规模攻击手法曝光,盘点黑客团伙作案细节 https://zhuanlan.zhihu.com/p/42318584
[3] Fomo3D 千万大奖获得者“特殊攻击技巧”最全揭露 https://zhuanlan.zhihu.com/p/42742004
[4] Péter Szilágyi 提出的空投漏洞利用 POC,https://www.reddit.com/r/ethereum/comments/916xni/how_to_pwn_fomo3d_a_beginners_guide/, 2018/07/23
[5] 区块律动:8万笔交易「封死」以太坊网络,只为抢夺Fomo3D大奖?https://mp.weixin.qq.com/s/5nrgj8sIZ0SlXebG5sWVPw
[6] Predicting Random Numbers in Ethereum Smart Contracts https://blog.positive.com/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620

原创:安比实验室SECBIT 查看全部
What-Was-FOMO3D.jpg

北京时间 9 月 24 日深夜 11 点 32 分,Fomo3D 第二轮最终大奖由地址 0x18a0 获得,奖金为 3,264.668 Ether。安比(SECBIT)实验室分析发现,此轮游戏获奖技巧与第一轮如出一辙,均为黑客“阻塞交易”攻击。

与此前第一轮游戏相比,这轮游戏持续 33 天,无论是从入场资金、持续时长,亦或是最终大奖奖金额来说,相比上轮均大幅缩水。

回首两月之前,Fomo3D第一轮游戏入场资金一度超过 40,000 Ether,第一轮游戏最终大奖奖金额超过 10,000 Ether,游戏参与者众多,类似的资金盘游戏也如雨后春笋般相继冒出,一时间好不热闹。

然而,自 9 月以来,随着市场整体的大萧条,类 Fomo3D 游戏也几近没落。以 Fomo3D 和 Last Winner 为代表的几款较活跃的游戏,热度明显下降。而大部分的同类合约由于无人开启下轮游戏,都处在搁置状态。

因而到如今,Fomo 3D第二轮大奖已经开出,黑客获奖几无悬念,游戏的热度已不可同日而语。

安比(SECBIT)实验室针对这一变化展开分析,分析结果表明,不久前连续揭露的游戏空投机制漏洞[1]和“阻塞交易”攻击事件[2],尽管在短时间内将该类游戏的关注度推上了新的高度,但本质上也是导致游戏没落的主要原因。


繁华 vs 凉凉?
曾经多火爆,如今就多冷清



游戏热度全景

7 月 20 日, 资金盘游戏 Fomo3D 在国内迅速传播开来,引起了广泛的关注。随后,一系列类似 Fomo3D 的游戏陆续上线。8 月 6 日,另一款类 Fomo3D 游戏 Last Winner 部署上线。在其团队的大力推广下, Last Winner 迅速火爆起来,甚至一度造成以太坊拥堵和 Gas 费用暴涨。但在游戏第一轮结束后,各个游戏的热度都开始持续下降。

f01.jpg

图一:Fomo3D 玩家参与度与入场资金状况


上图展示了「Fomo3D 玩家参与度与入场资金状况」。红色代表调用合约参与游戏的人次,蓝色则代表进入游戏合约的资金量。图左侧出现数据曲线最高峰,对应时间分别是 7 月 20 日和 7 月 21 日。这两天恰好大量媒体疯狂报道 Fomo3D 这一现象级游戏。当时众多玩家跟风入场,游戏合约的参与次数和入场资金均达到了最高峰,入场资金量超过 40,000 Ether,而参与次数最高超过 18,000 次。而曲线的最高点则对应着 Fomo3D 游戏第一轮最高峰。

高峰过后,Fomo3D 游戏热度骤降,于 8 月 22 日前后结束第一轮,并随即进入第二轮,但游戏热度已然无法恢复。

f02.jpg

图二:Last Winner 玩家参与度与入场资金状况


类似地,上图展示了「Last Winner 玩家参与度与入场资金状况」。Last Winner 针对 Fomo3D 游戏做了部分修改,降低了游戏时间上限,因此每轮结束得更快。第一轮高峰出现在 8 月 8 日,此后有多个局部波峰,代表着不同轮次的开启,但显然调用次数和入场资金一轮不如一轮。


奖池资金

下图为 Fomo3D 合约中 Ether 余额的变化情况。Fomo3D 游戏在迅速火爆后,合约内 Ether 余额一度上升到峰值,第一轮游戏结束后,合约中的余额立即呈断崖式下跌,至今还处在缓慢减少的过程。

f03.jpg

图三:Fomo3D 合约 Ether 余额变化状况


无独有偶,Last Winner 合约中的余额也曾在短时间内迅速增长,而后随着几轮游戏的迭代而逐步下降,至今所剩的余额更是不足 5,000 Ether。

f04.jpg

图四:Last Winner 合约 Ether 余额变化状况


最终大奖

8 月 17 日,安比(SECBIT)实验室与 Anchain.ai 团队联合揭露了黑客团队 BAPT-LW20 利用空投机制漏洞,攫取大量奖金的攻击事件。同一天,Last Winner 游戏第一轮结束,最终大奖的获得者也是 BAPT-LW20 团队。据统计,该黑客团队从 Last Winner 首轮游戏中获利累计达 12,948 Ether。

在 Last Winner 已完成的前 9 轮游戏中,黑客团伙持有的账户 0x5167 共夺得 4 次最终大奖。

f05.jpg


仔细观察每轮游戏的最终大奖金额和持续时间,不难发现,奖金数量衰减非常快,而每轮也结束得越来越快。这与上面的游戏参与数据图十分吻合。

类似地,Fomo3D 游戏首轮和第二轮大奖分别于 8 月 22 日和 9 月 24 日开出,奖金额分别为 10,469.66 和 3,264.66 Ether。除了奖金数额锐减之外,安比(SECBIT)实验室还发现大奖获得者均使用了相同的攻击技巧。


反思       
机制漏洞是游戏没落的主因



除了市场萎靡以及玩家热情降低,安比(SECBIT)实验室认为“阻塞交易”攻击(针对最终大奖)[3]和空投漏洞攻击[4]打破了合约机制设计中的关键部分。这才是使游戏变冷的主要原因。

f06.jpg

图五:Fomo3D 游戏合约被攻击状况


上图是「Fomo3D 游戏合约被攻击状况」,第一轮游戏高峰前后以及第二轮开始后,有黑客疯狂地利用空投漏洞进行攻击,攫取高额收益。而在第一轮临近结束,以及第二轮倒计时快结束之际,有黑客疯狂尝试“阻塞交易”攻击,目标在于夺取巨额的最终大奖。

北京时间 9 月 24 日深夜 11 点 32 分,Fomo3D 第二轮最终大奖由地址 0x18a0451Ea56Fd4FF58f59837e9EC30f346ffDCa5 获得,奖金达 3,264.668 Ether。安比(SECBIT)实验室发现 Fomo3D 第二轮大奖获得者 0x18a0 创建了攻击合约 0x705203fc06027379681AEf47c08fe679bc4A58e1,并发起大量攻击交易,连续堵塞 10 余个区块,时间长达 2 分钟以上。这一系列攻击,在上图的游戏被攻击监控数据中展露无疑。

f07.jpg

图六:Last Winner 游戏合约被攻击状况


上图是「Last Winner 游戏合约被攻击状况」,与 Fomo3D 类似,黑客攻击规模在游戏热度高时十分巨大。


“阻塞交易”攻击

Fomo3D 游戏巧妙地设计了一个环节,最后一个参与游戏的人将获得奖池中一半的 Ether 做为奖励。开发者想通过此设计保持大量的玩家陆续进场,任何人都有可能成为那个“幸运儿”。但是在黑客利用“阻塞交易”攻击[5]来加快游戏结束成为受益人后,这个吸引玩家的设计被打破了。因此后进场的普通玩家只能成为被割的韭菜,自然很难再吸引玩家参与。


“空投漏洞”攻击

除了最后的大奖,游戏中还设计了空投奖励机制,玩家有一定的概率获得空投奖励,这也是吸引玩家参与的一个重要原因。但是由于空投机制存在随机数漏洞,黑客可以通过一定的技巧持续高概率地拿走奖励,而普通玩家几乎不可能成功。这样空投奖励的公平性也同样受到了挑战。


对策与展望
dApp 还有很长的路要走



这样一类红极一时的爆款游戏,必定会成为 dApp 游戏发展史上的一个重要里程碑。但是过快的萧条速度也给我们带来了很多的反思。对于类 Fomo3D 游戏,甚至是所有的 dApp 游戏,还有很长的路要走。要及时从黑客攻击的案例中吸取教训,并做好防御措施。

“空投漏洞”攻击是类 Fomo3D 游戏遭受攻击次数最多的一个破绽。黑客可低成本持续地攫取奖池中的资金。

一方面,Fomo3D 游戏的空投机制利用随机数来控制中奖概率,但是由于随机数的来源都是区块或者交易中特定的一些公开参数,如交易发起者地址、区块时间戳、区块难度等,所有以太坊智能合约都可以很容易的预测随机数[6]。因此在涉及到随机数的场景下,安比(SECBIT)实验室建议开发者应尤为慎重,或通过一定的手段来增加随机源的预测难度。如开发者可通过使用多次提交再披露、或延迟若干个区块开奖的方法来规避随机数被预测的风险。

另一方面,为了防止合约自动化攻击,Fomo3D 游戏合约对调用者是普通账户还是合约账户做了检测,但由于检测方式存在漏洞,黑客可以利用一些技巧绕开检测。因此项目方在对参与 dApp 游戏的玩家的身份做检测的时候,也应采用更加可靠的方式。例如,通过判断该笔交易最初的发起者(tx.origin)与当前合约的调用者(msg.sender)是否为同一地址。

前文提到的“阻塞交易”攻击,也是类 Fomo3D 游戏面临的另一重大挑战。

黑客通过高额手续费吸引矿工优先打包,并利用合约自动判断游戏进行状态,以之作为是否采取攻击的依据。黑客最终能够以较低成本堵塞区块,每个区块中仅打包很少的交易(降低他人交易被打包的可能性),使得游戏快速结束,并提高自己获得最终大奖的概率。

其实这一问题不止会威胁类 Fomo3D 游戏。所有类似机制,即需要玩家抢在某个时间范围内完成某种竞争操作的智能合约,都会受此威胁。要杜绝这一问题,安比(SECBIT)实验室建议游戏开发者,从游戏机制入手,切断游戏最终胜利(获得某个巨额大奖)和倒计时结束(最后一个交易被打包)之间的必然联系,从而使黑客的攻击获利概率和攻击意愿都降到最低。

类 Fomo3D 游戏中黑客利用了以太坊共识协议的特点,找到游戏机制的漏洞进而发起攻击。这也提醒我们,dApp 应用中的机制设计是一项极其复杂的工程,除了技术本身,还涉及到平台外部环境,博弈论等方面问题,这也是容易被黑客攻击的环节。因此,dApp 项目在机制设计过程中应尤为慎重。

正如安比实验室创始人郭宇所说:“新世界有生命,就有捕食者。有交易者,就有黑客。区块链上的应用在进化,攻击者也同样”。在技术和财富的交汇处,黑客永远保持着最灵敏的嗅觉。黑客的一次次攻击,给了我们很多的反思和改进的机会,这也是应用不断进化的催化剂。


参考文献

[1] Pwning Fomo3D Revealed: Iterative, Pre-Calculated Contract Creation For Airdrop Prizes!, https://peckshield.com/2018/07/24/fomo3d/
[2] 智能合约史上最大规模攻击手法曝光,盘点黑客团伙作案细节 https://zhuanlan.zhihu.com/p/42318584
[3] Fomo3D 千万大奖获得者“特殊攻击技巧”最全揭露 https://zhuanlan.zhihu.com/p/42742004
[4] Péter Szilágyi 提出的空投漏洞利用 POC,https://www.reddit.com/r/ethereum/comments/916xni/how_to_pwn_fomo3d_a_beginners_guide/, 2018/07/23
[5] 区块律动:8万笔交易「封死」以太坊网络,只为抢夺Fomo3D大奖?https://mp.weixin.qq.com/s/5nrgj8sIZ0SlXebG5sWVPw
[6] Predicting Random Numbers in Ethereum Smart Contracts https://blog.positive.com/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620

原创:安比实验室SECBIT

夏日将尽:以太坊的ERC-777能否顺利取代ERC-20?

chainb 发表了文章 • 2018-09-26 11:30 • 来自相关话题

夏天的结束是定下个人目标的好时机。我们不妨借着夏日最后的明媚阳光回顾这个夏天的重大事件,例如,Jordi Baylina、Jacques Dafflon 和Thomas Shababi承诺推出的已经准备好的ERC-777代币标准,它旨在取代目前世界上最受欢迎的代币标准,ERC-20。7月20日,Baylina在于柏林举行的DappCon论坛上做出了这个承诺。按照传统,人们在这个论坛上讨论与以太坊区块链相关的重要举措、工具和更新。开发者表示ERC-777已经做好发表准备,并且将于8月全面推出。

然而,8月来了又去,围绕着建立基于以太坊区块链的新标准的最新尝试,开发团队似乎依旧保持沉默,又或者他们正在默默酝酿一个大惊喜。虽然自7月以来在GitHub上就没有发布任何与ERC-777相关的更新,但我们或许可以从上周Baylina发布的一条推文中找出即将发布的新标准的蛛丝马迹。现在,让我们回过头来更好地了解这这个项目的背景。

为什么我们需要改变世界上最受欢迎的代币标准?这个标准是世界上最大的交易所之一Binance的交易代币以及超过6万个项目的基础,其中包括资本超过45亿美元的EOS。为了回答这个问题,我们需要比较现有标准和新标准,然后评估其应用风险。


以太坊成功史


尽管比特币被认为是世界上最受欢迎的加密货币,以太坊却不仅仅是第二大受欢迎的加密货币,它还是带来2016到2017年加密货币市场繁荣景象的区块链。如果没有以太坊平台,就永远不会出现“to the moon”这一短语,加密货币由此在几个月内从极客们的一种娱乐转变成了面向传统投资人和数百万普通人的新工具。

以太坊区块链的主要优点包括极简的应用程序开发过程以及通过智能合约实现的无障碍代币发行流程。现在,任何人都可以在一分钟内创建,也就是发行一种加密货币。这种便捷性导致了ICO的爆炸式增长。另一个可以进一步推动ICO市场的发展的工具则是一种简单的代币标准,由此就孕育出了ERC-20。


ERC-20代币标准


在标准化之前,以太坊开发人员必须为每一个代币创建一个独立的基于Solidity开发语言的智能合约。实际上,这意味着每一次都需要创建一个新的、独一无二的智能合约类型。而交换所或者钱包的创始人不得不为每一种新代币编写独一无二的编码来支持它们。出现的代币越多,这个过程的难度就越大。此外,在各自专属的智能合约上发行的代币彼此间几乎不兼容。

以太坊开发者创建了一种适用于所有代币的单一标准—ERC-20,ERC代表了“以太坊征求意见(Ethereum Request for Comment)”,而20则是GitHub的社区发行号码,这是随机的。

2015年,这个单一标准的出现彻底改变了加密货币行业,成为了该行业的核心指导方针,规范了在每个智能合约里需要执行的功能和事务。新货币的发行、兑换和变现从未如此简单。

该标准包含了智能合约的六个强制参数,并且负责三个主要方向:

1.设置代币的初始分布:

totalSupply — 决定了发行代币总量,在达到该数字后,智能合约将停止发行代币。

balance0f — 将初始数量的代币分配给任一地址的功能。

2.转移代币:

transfer — 根据ICO结果将初始地址的代币转移到指定地址的功能。

transferFrom — 在用户间转移代币的功能。

3.执行管理职能:

approve — 核实一个智能合约上可转移的代币额的功能。

allowance — 确定一个地址拥有足够代币以便向另一个地址转移代币的功能。

一旦制定了该标准,交易所和钱包就能够统一代码,以便处理用ERC-20协议创建的任何代币。正如预期的那样,采用以太坊技术的未来应用程序随之剧增。


ERC-20标准背后的挑战


去中心化网络的开发者首先是程序员,之后才是商人。因此,在决策过程中,他们几乎总是遵循形式逻辑。例如,一些开发人员可能不太关心“51%的黑客攻击”,或是因为币种本身贬值,或是因为攻击成本可能会超过黑客获得的利润。但似乎这种攻击的组织者有着完全不同的逻辑,2018年大量新的黑客攻击已经证明了这一点。

另外,对开发人员来说代币的功能只有在ICO发行中才是不可或缺的,他们并不在乎其他服务。事实证明并非如此,一些团队,甚至那些谈不上编程的团队,也开始探索区块链的可能性。举例来说,这也带来了为了娱乐效果而创建的代币,例如以太坊Useless token。

而其他的自定义功能甚至可能破坏用户安全性。例如,一些开发人员通过同时执行“approve”和“transferFrom”功能来实现充值交易所账户的操作。资金从发送者的账户中扣除,但未记入他们在交易所的资产负债表中,因为接受者的智能合约的存款功能尚未确定。问题是,以太坊开发者没有提供这种转账方式的选项,但也没有禁止它,而区块链从一开始就不支持合约的自定义功能。因此,加密货币的持有者损失了数百万美元,这些钱都永远地消失在网络中了,因为如果这笔资金的转账者没有马上取消这笔未完成的交易,这些代币就会消失。

安全审计员Dexaran注意到了这个漏洞,于是他开发了ERC-223标准,在其中添加了“tokenFallback”这个功能。一旦“transferFrom”功能未能执行,这个新功能就会被触发。然而,尽管有了这项新发明,这个由不具名的程序员开发的功能却未被广泛接受。

6月,在Solidity更新后,Lucas Cremer发现了该标准的另一个漏洞,他是一名来自德国的Solidity开发者。事实证明,在执行transfer功能的价值返回时,很大比例的ERC-20代币,也就是作者所说的“坏代币”,以另一种方式运作。这些代币合约的transfer功能没有返回任何值。实际上,受到影响的代币中包括Binance和OmiseGO平台上的代币。Corner指出,人们应该关注的是,这类资产可能会以一种不可预测的方式开始执行操作,他还警告称这个漏洞必须被“尽快”修复。


ERС-777:对ERC-20的一记重拳


由于成千上万的代币、交易所和钱包都和ERC-20有着紧密的联系,它的漏洞是不可消除的,因此以太坊开发者们已经决定推出一种新的标准,而其名字的灵感则源自于幸运数字777。

ERC-777的以太坊改进协议(EIP)于2017年11月20日发布并获得了社区的批准。但是,为了充分发挥作用,新标准需要一个辅助型的ERC-820协议,该协议规定了完成统一的智能合约注册的原则。这个中心化的注册表解决了以太坊区块链的主要问题,即无法决定合约执行的职能的问题。

它现在如何运作?任何具有职能描述的合约都可以一劳永逸地被输入注册表;并且,在执行交易时,区块链可以通过注册表来核查允许执行的操作。如果用户尝试支付代币执行无效操作,代币会被保留在账户中而不会再消失。

在柏林的Dappcon论坛上,Jodi Baylina 和Jacques Dafflon利用一个新术语“hook”来定义“在转移代币期间可以执行的功能”,从而解释了这个新标准的具体内容。这些功能和ERC-820协议一起提供了一种在ERC-20标准中缺乏的,简单但细节化的内省。因此,我们就可以核实一个代币是否携带有具体的特征以执行或者拒绝某项操作,使智能合约更加智能。当接收者的合约并不支持某类资产的接收或管理时,新的ERC-777标准解决了接收者代币丢失的问题。以太坊社区已经由于这个漏洞损失了数百万美元。很大一部分资金似乎已经永远卡在了一些最高级ICO项目的合约里。以下是一些例子:

然而,预防由不正确的交易导致的代币损失并非是这项新标准的唯一创新,其目的还在于进一步开发以太坊区块链。

例如,ERC-777的创建者第一次嵌入了一个“可信运算符(trusted operator)”,它可以代表所有者转移或者销毁代币。这是通过执行“授权运算符(authorizeOperator)”函数实现的,举例来说,它可以被用于执行ETH的即时自动支付。

此外,这个标准还允许你通过ITokenRecipient函数检查接收人的地址是否支持“白”或“黑”名单。且上述“hooks”操作还帮助实现了不同情境下对代币操作的监视,使你能够屏蔽特定地址,同时执行一系列其他操作,包括发送者和接收者对交易过程的干预。

如果你还想了解关于ERC-777的更多细节,你可以访问以太坊的GitHub上的相关帖子。


ERC-20的谢幕


ERC-777标准向后兼容ERC-20,同时所有基于旧标准的项目都可以无缝转移到新的标准中。我们可以假设通过旧标准执行代币操作的交易所和钱包,将对ERC-777的引入作出积极反应,后者最终将终结以太坊区块链中的传奇性“漏洞”。事实上,这将意味着在新标准中发行代币流程的简化,这可能会造成加密货币业活动的又一次激增,且与2016-2017年的热潮不相上下。

此外,新标准大大扩展了以太坊区块链系统的功能性,这将吸引开发人员的注意。围绕新标准的激烈讨论就是最好的证明。

最后,ERC-777标准涵盖了经过彻底修改、再设计的功能和逻辑,将避免和其他代币标准的交叉以及在执行智能合约时出现混淆。

谈到ERC-777的缺点,确实有一个:它依赖于一个智能合约的中心化注册表,这在区块链的去中心化意识形态中并非是一种理想的方案。这就需要以太坊开发者们通过其它方法来确保注册表的安全性。

一位加密货币方面的知名油管博主“Ivan on Tech”称,他确信ERC-777的成功不过是时间问题,即使实际上以太坊基金会彻底注销ERC-20的过程可能会很慢:

 “展望未来,以太坊基金会确实需要支持ERC-777,它会取代ERC-20,因为它具有更出色的性能。因此,问题在于以太坊基金会依旧有相当的影响力,而他们目前在推广的还是ERC-20。这是他们目前推广最多的内容。但是,将来的情况可能是我们会转向ERC-777。”


或许,一个新的、充满潜力的代币标准将会为以太坊网络以及ETH的发展提供新的推动力,尤其是ETH自7月起已经跌至新低: 194美元。在此之前,既然GitHub正保持沉默,似乎除了等待以太坊团队完成他们的工作,我们也没有更好的选择。至少,我们都知道他们对此十分擅长。 


原文:Summer Is Ending: Will Ethereum’s ERC-20 Pass the Governance to ERC-777?
作者: Julia Magas
来源:cointelegraph
编译:Maya 查看全部
740_aHR0cHM6Ly9zMy5jb2ludGVsZWdyYXBoLmNvbS9zdG9yYWdlL3VwbG9hZHMvdmlldy80ODIzNWI1ZjRkNjNkNTcxY2FiNmZkNmY2NDdjZTE1OS5qcGc.jpg

夏天的结束是定下个人目标的好时机。我们不妨借着夏日最后的明媚阳光回顾这个夏天的重大事件,例如,Jordi Baylina、Jacques Dafflon 和Thomas Shababi承诺推出的已经准备好的ERC-777代币标准,它旨在取代目前世界上最受欢迎的代币标准,ERC-20。7月20日,Baylina在于柏林举行的DappCon论坛上做出了这个承诺。按照传统,人们在这个论坛上讨论与以太坊区块链相关的重要举措、工具和更新。开发者表示ERC-777已经做好发表准备,并且将于8月全面推出。

然而,8月来了又去,围绕着建立基于以太坊区块链的新标准的最新尝试,开发团队似乎依旧保持沉默,又或者他们正在默默酝酿一个大惊喜。虽然自7月以来在GitHub上就没有发布任何与ERC-777相关的更新,但我们或许可以从上周Baylina发布的一条推文中找出即将发布的新标准的蛛丝马迹。现在,让我们回过头来更好地了解这这个项目的背景。

为什么我们需要改变世界上最受欢迎的代币标准?这个标准是世界上最大的交易所之一Binance的交易代币以及超过6万个项目的基础,其中包括资本超过45亿美元的EOS。为了回答这个问题,我们需要比较现有标准和新标准,然后评估其应用风险。


以太坊成功史


尽管比特币被认为是世界上最受欢迎的加密货币,以太坊却不仅仅是第二大受欢迎的加密货币,它还是带来2016到2017年加密货币市场繁荣景象的区块链。如果没有以太坊平台,就永远不会出现“to the moon”这一短语,加密货币由此在几个月内从极客们的一种娱乐转变成了面向传统投资人和数百万普通人的新工具。

以太坊区块链的主要优点包括极简的应用程序开发过程以及通过智能合约实现的无障碍代币发行流程。现在,任何人都可以在一分钟内创建,也就是发行一种加密货币。这种便捷性导致了ICO的爆炸式增长。另一个可以进一步推动ICO市场的发展的工具则是一种简单的代币标准,由此就孕育出了ERC-20。


ERC-20代币标准


在标准化之前,以太坊开发人员必须为每一个代币创建一个独立的基于Solidity开发语言的智能合约。实际上,这意味着每一次都需要创建一个新的、独一无二的智能合约类型。而交换所或者钱包的创始人不得不为每一种新代币编写独一无二的编码来支持它们。出现的代币越多,这个过程的难度就越大。此外,在各自专属的智能合约上发行的代币彼此间几乎不兼容。

以太坊开发者创建了一种适用于所有代币的单一标准—ERC-20,ERC代表了“以太坊征求意见(Ethereum Request for Comment)”,而20则是GitHub的社区发行号码,这是随机的。

2015年,这个单一标准的出现彻底改变了加密货币行业,成为了该行业的核心指导方针,规范了在每个智能合约里需要执行的功能和事务。新货币的发行、兑换和变现从未如此简单。

该标准包含了智能合约的六个强制参数,并且负责三个主要方向:

1.设置代币的初始分布:

totalSupply — 决定了发行代币总量,在达到该数字后,智能合约将停止发行代币。

balance0f — 将初始数量的代币分配给任一地址的功能。

2.转移代币:

transfer — 根据ICO结果将初始地址的代币转移到指定地址的功能。

transferFrom — 在用户间转移代币的功能。

3.执行管理职能:

approve — 核实一个智能合约上可转移的代币额的功能。

allowance — 确定一个地址拥有足够代币以便向另一个地址转移代币的功能。

一旦制定了该标准,交易所和钱包就能够统一代码,以便处理用ERC-20协议创建的任何代币。正如预期的那样,采用以太坊技术的未来应用程序随之剧增。


ERC-20标准背后的挑战


去中心化网络的开发者首先是程序员,之后才是商人。因此,在决策过程中,他们几乎总是遵循形式逻辑。例如,一些开发人员可能不太关心“51%的黑客攻击”,或是因为币种本身贬值,或是因为攻击成本可能会超过黑客获得的利润。但似乎这种攻击的组织者有着完全不同的逻辑,2018年大量新的黑客攻击已经证明了这一点。

另外,对开发人员来说代币的功能只有在ICO发行中才是不可或缺的,他们并不在乎其他服务。事实证明并非如此,一些团队,甚至那些谈不上编程的团队,也开始探索区块链的可能性。举例来说,这也带来了为了娱乐效果而创建的代币,例如以太坊Useless token。

而其他的自定义功能甚至可能破坏用户安全性。例如,一些开发人员通过同时执行“approve”和“transferFrom”功能来实现充值交易所账户的操作。资金从发送者的账户中扣除,但未记入他们在交易所的资产负债表中,因为接受者的智能合约的存款功能尚未确定。问题是,以太坊开发者没有提供这种转账方式的选项,但也没有禁止它,而区块链从一开始就不支持合约的自定义功能。因此,加密货币的持有者损失了数百万美元,这些钱都永远地消失在网络中了,因为如果这笔资金的转账者没有马上取消这笔未完成的交易,这些代币就会消失。

安全审计员Dexaran注意到了这个漏洞,于是他开发了ERC-223标准,在其中添加了“tokenFallback”这个功能。一旦“transferFrom”功能未能执行,这个新功能就会被触发。然而,尽管有了这项新发明,这个由不具名的程序员开发的功能却未被广泛接受。

6月,在Solidity更新后,Lucas Cremer发现了该标准的另一个漏洞,他是一名来自德国的Solidity开发者。事实证明,在执行transfer功能的价值返回时,很大比例的ERC-20代币,也就是作者所说的“坏代币”,以另一种方式运作。这些代币合约的transfer功能没有返回任何值。实际上,受到影响的代币中包括Binance和OmiseGO平台上的代币。Corner指出,人们应该关注的是,这类资产可能会以一种不可预测的方式开始执行操作,他还警告称这个漏洞必须被“尽快”修复。


ERС-777:对ERC-20的一记重拳


由于成千上万的代币、交易所和钱包都和ERC-20有着紧密的联系,它的漏洞是不可消除的,因此以太坊开发者们已经决定推出一种新的标准,而其名字的灵感则源自于幸运数字777。

ERC-777的以太坊改进协议(EIP)于2017年11月20日发布并获得了社区的批准。但是,为了充分发挥作用,新标准需要一个辅助型的ERC-820协议,该协议规定了完成统一的智能合约注册的原则。这个中心化的注册表解决了以太坊区块链的主要问题,即无法决定合约执行的职能的问题。

它现在如何运作?任何具有职能描述的合约都可以一劳永逸地被输入注册表;并且,在执行交易时,区块链可以通过注册表来核查允许执行的操作。如果用户尝试支付代币执行无效操作,代币会被保留在账户中而不会再消失。

在柏林的Dappcon论坛上,Jodi Baylina 和Jacques Dafflon利用一个新术语“hook”来定义“在转移代币期间可以执行的功能”,从而解释了这个新标准的具体内容。这些功能和ERC-820协议一起提供了一种在ERC-20标准中缺乏的,简单但细节化的内省。因此,我们就可以核实一个代币是否携带有具体的特征以执行或者拒绝某项操作,使智能合约更加智能。当接收者的合约并不支持某类资产的接收或管理时,新的ERC-777标准解决了接收者代币丢失的问题。以太坊社区已经由于这个漏洞损失了数百万美元。很大一部分资金似乎已经永远卡在了一些最高级ICO项目的合约里。以下是一些例子:

然而,预防由不正确的交易导致的代币损失并非是这项新标准的唯一创新,其目的还在于进一步开发以太坊区块链。

例如,ERC-777的创建者第一次嵌入了一个“可信运算符(trusted operator)”,它可以代表所有者转移或者销毁代币。这是通过执行“授权运算符(authorizeOperator)”函数实现的,举例来说,它可以被用于执行ETH的即时自动支付。

此外,这个标准还允许你通过ITokenRecipient函数检查接收人的地址是否支持“白”或“黑”名单。且上述“hooks”操作还帮助实现了不同情境下对代币操作的监视,使你能够屏蔽特定地址,同时执行一系列其他操作,包括发送者和接收者对交易过程的干预。

如果你还想了解关于ERC-777的更多细节,你可以访问以太坊的GitHub上的相关帖子。


ERC-20的谢幕


ERC-777标准向后兼容ERC-20,同时所有基于旧标准的项目都可以无缝转移到新的标准中。我们可以假设通过旧标准执行代币操作的交易所和钱包,将对ERC-777的引入作出积极反应,后者最终将终结以太坊区块链中的传奇性“漏洞”。事实上,这将意味着在新标准中发行代币流程的简化,这可能会造成加密货币业活动的又一次激增,且与2016-2017年的热潮不相上下。

此外,新标准大大扩展了以太坊区块链系统的功能性,这将吸引开发人员的注意。围绕新标准的激烈讨论就是最好的证明。

最后,ERC-777标准涵盖了经过彻底修改、再设计的功能和逻辑,将避免和其他代币标准的交叉以及在执行智能合约时出现混淆。

谈到ERC-777的缺点,确实有一个:它依赖于一个智能合约的中心化注册表,这在区块链的去中心化意识形态中并非是一种理想的方案。这就需要以太坊开发者们通过其它方法来确保注册表的安全性。

一位加密货币方面的知名油管博主“Ivan on Tech”称,他确信ERC-777的成功不过是时间问题,即使实际上以太坊基金会彻底注销ERC-20的过程可能会很慢:


 “展望未来,以太坊基金会确实需要支持ERC-777,它会取代ERC-20,因为它具有更出色的性能。因此,问题在于以太坊基金会依旧有相当的影响力,而他们目前在推广的还是ERC-20。这是他们目前推广最多的内容。但是,将来的情况可能是我们会转向ERC-777。”



或许,一个新的、充满潜力的代币标准将会为以太坊网络以及ETH的发展提供新的推动力,尤其是ETH自7月起已经跌至新低: 194美元。在此之前,既然GitHub正保持沉默,似乎除了等待以太坊团队完成他们的工作,我们也没有更好的选择。至少,我们都知道他们对此十分擅长。 


原文:Summer Is Ending: Will Ethereum’s ERC-20 Pass the Governance to ERC-777?
作者: Julia Magas
来源:cointelegraph
编译:Maya

来看看,你的电脑替黑客挖了多少比特币

odaily 发表了文章 • 2018-09-25 14:26 • 来自相关话题

2018 年非法网络挖矿攻击的次数,比去年增加了 459%。


2017 年四季度,越来越多利用程序非法挖矿的事件被曝出来。一个叫 “网络危机联盟(CTA)” 的组织集合了一些网络安全专家去监控这些违法行为,其中包括著名网络安全软件公司 McAfee 的专家。

几天前,他们发布了一份深度报道,公布了最近的研究发现,包括现在网络攻击的现状、对大众的影响,以及我们该如何去保护自己。下面,就和冲科技一起来看看,情况到底有多坏。
 

日趋严重的网络攻击


网络挖矿攻击,也叫加密劫持,是黑客利用你的电脑、浏览器、物联网(IoT)设备、移动设备和网络基础设施,窃取这些机器的处理能力来挖掘加密货币。这种攻击在之前是几乎没有的,2017 年底才渐渐多了起来,2018 年就开始井喷了。





2014-2018 年,发生加密劫持的数量


根据 CTA 几个成员呈现的数据,我们合起来看了一下,发现在 2018 年这种非法网络挖矿攻击的次数,比去年增加了 459%。而且从最近的数据显示,根本没有放缓的迹象。

网络罪犯都是加密货币非常早期的使用者,他们用比特币在暗网上交易。以前他们会使用勒索软件要求我们用比特币交赎金,现在开始偷偷利用我们的电脑来挖矿了。

很多这种加密劫持并不复杂,黑客利用简单的垃圾邮件或者钓鱼网站攻击,很多工具都是现成的,非常简单。黑客的成本并不大,而且可以快速地覆盖大量受害者,从每一个人那里得到少量的加密货币,积少成多。

网络安全设备供应商 Fortinet 有 13% 的客户公司在去年第 4 季度发现被加密劫持,到了今年 1 月份,这个数据迅速攀升到了 28%。在 McAfee 的半年报告中,今年 1 月份就发现了 290 万起加密挟持的记录。

这些网络罪犯已经不怎么用勒索软件和 DDoS 攻击了,都开始用加密劫持。比如 2018 年 2 月,有一个叫 BlackRuby 的组织就在他们的软件中加入了一个挖矿工具,去挖门罗币。还有 Mirai 僵尸网络,这个 2016 年著名的利用 DDoS 攻击去黑物联网设备的组织,现在也把目标转移到了物联网挖矿的僵尸网络。

这种加密劫持攻击不仅收益大,还不容易被抓到。不像勒索软件和 DDoS 攻击那么张扬,受害者根本注意不到,可以长时间进行,来换取稳定的收益。

总结下来,加密劫持案件越来越多,主要原因有几个:

加密货币价值增加;

本身通过电脑和网络就可以获取;

加密劫持操作非常简单;

企业和个人安全意识太差。



加密劫持的现状


这种攻击现在分为两种途径。一种是通过编辑好的可执行文档来攻击,这种叫“二进制挖矿”。还有一种是通过浏览器攻击,叫做“浏览器挖矿”。

二进制挖矿攻击是在传输数据的时候,通常是使用垃圾邮件或者工具包来攻击。有很多开源的工具可以用来挖矿,比如 XMRig 是用来挖门罗币的,这是个合法的工具,但总是被不法分子用在加密劫持攻击上。

2018 年 1 月,Palo Alto 网络公司就发现了超过 1500 万用户感染了这种二进制挖矿攻击。这次攻击是通过恶意广告来进行的,XMRig 被下载到受害者的系统里,并且受害者毫不知情。





那次二进制挖矿攻击,受害者的点击次数


常见的用在浏览器挖矿中的工具是 Coinhive。它本来是合法的,通过货币化系统资源来为广告收入提供替代方案,但问题在于,它在运行的时候是不通知用户的,用户根本不知道有挖矿的代码存在。

就像是最近 Facebook Messenger 和星巴克的 WiFi 被攻击的情况一样。今年 7 月 2 日,PublicWWW 就有 2.3 万个网站里面包含了 Coinhive 挖矿代码。





Coinhive 脚本的例子


当然除了通过网站攻击,黑客们还有其他稍微复杂一点的方式,比如利用名为 EternalBlue 的漏洞,并且黑客们也有新办法躲避追踪,比如一种叫 “离开地面生活” 的方法,不仅能躲开追踪,还能提高挖矿能力。


加密劫持的影响


不管从短期还是长期来看,这种攻击对我们都有影响:

潜在的安全问题,容易引来下一次攻击;

对机器也有损伤;

公司正常的经营会受到影响。


能够以未经授权的方式使用电脑,说明系统肯定存在漏洞,黑客们可以随意利用这些漏洞。

利用 CPU 挖矿同时也会耗能耗电。小型设备会因此面临电池寿命的问题,对于大型系统来说,故障率会增加,可能需要高额的维修费来支持多余的负载。


推荐的防御建议


好消息是,防御加密劫持的方法和其他的都差不多,都是增强安全性的一些建议。

时常监测电脑耗能和 CPU 的情况,及时发现不正常的情况;

在电脑上搜索一些文本文档,关键词是 Crypto、Coinhive、XMR、 Monero, 还有 cpuminer;

别跟矿池联系;

使用浏览器插件来阻止浏览器加密劫持。


他们发现,这种攻击的密集程度似乎和比特币价格呈正相关,只要比特币还有价值,黑客就不会停手。





2018 年 1 月开始,加密劫持的比例(灰)与比特币价格(黄)的关系


这份报告就是想提醒大家,知道加密劫持这种攻击的危险性。通过提高机器的安全性,被攻击的难度会加大。不过技术总是在更新,CTA 也会随时监测最新动向。


本文来自冲科技(ID:chongkeji),原文来源:Cyber Threat Association,编译:张问 查看全部
29j54kt2ybh6gw0d.png!heading_.jpg


2018 年非法网络挖矿攻击的次数,比去年增加了 459%。



2017 年四季度,越来越多利用程序非法挖矿的事件被曝出来。一个叫 “网络危机联盟(CTA)” 的组织集合了一些网络安全专家去监控这些违法行为,其中包括著名网络安全软件公司 McAfee 的专家。

几天前,他们发布了一份深度报道,公布了最近的研究发现,包括现在网络攻击的现状、对大众的影响,以及我们该如何去保护自己。下面,就和冲科技一起来看看,情况到底有多坏。
 

日趋严重的网络攻击


网络挖矿攻击,也叫加密劫持,是黑客利用你的电脑、浏览器、物联网(IoT)设备、移动设备和网络基础设施,窃取这些机器的处理能力来挖掘加密货币。这种攻击在之前是几乎没有的,2017 年底才渐渐多了起来,2018 年就开始井喷了。

3vji7ib12jvdqhn9.png!heading_.jpg

2014-2018 年,发生加密劫持的数量


根据 CTA 几个成员呈现的数据,我们合起来看了一下,发现在 2018 年这种非法网络挖矿攻击的次数,比去年增加了 459%。而且从最近的数据显示,根本没有放缓的迹象。

网络罪犯都是加密货币非常早期的使用者,他们用比特币在暗网上交易。以前他们会使用勒索软件要求我们用比特币交赎金,现在开始偷偷利用我们的电脑来挖矿了。

很多这种加密劫持并不复杂,黑客利用简单的垃圾邮件或者钓鱼网站攻击,很多工具都是现成的,非常简单。黑客的成本并不大,而且可以快速地覆盖大量受害者,从每一个人那里得到少量的加密货币,积少成多。

网络安全设备供应商 Fortinet 有 13% 的客户公司在去年第 4 季度发现被加密劫持,到了今年 1 月份,这个数据迅速攀升到了 28%。在 McAfee 的半年报告中,今年 1 月份就发现了 290 万起加密挟持的记录。

这些网络罪犯已经不怎么用勒索软件和 DDoS 攻击了,都开始用加密劫持。比如 2018 年 2 月,有一个叫 BlackRuby 的组织就在他们的软件中加入了一个挖矿工具,去挖门罗币。还有 Mirai 僵尸网络,这个 2016 年著名的利用 DDoS 攻击去黑物联网设备的组织,现在也把目标转移到了物联网挖矿的僵尸网络。

这种加密劫持攻击不仅收益大,还不容易被抓到。不像勒索软件和 DDoS 攻击那么张扬,受害者根本注意不到,可以长时间进行,来换取稳定的收益。

总结下来,加密劫持案件越来越多,主要原因有几个:


加密货币价值增加;

本身通过电脑和网络就可以获取;

加密劫持操作非常简单;

企业和个人安全意识太差。




加密劫持的现状


这种攻击现在分为两种途径。一种是通过编辑好的可执行文档来攻击,这种叫“二进制挖矿”。还有一种是通过浏览器攻击,叫做“浏览器挖矿”。

二进制挖矿攻击是在传输数据的时候,通常是使用垃圾邮件或者工具包来攻击。有很多开源的工具可以用来挖矿,比如 XMRig 是用来挖门罗币的,这是个合法的工具,但总是被不法分子用在加密劫持攻击上。

2018 年 1 月,Palo Alto 网络公司就发现了超过 1500 万用户感染了这种二进制挖矿攻击。这次攻击是通过恶意广告来进行的,XMRig 被下载到受害者的系统里,并且受害者毫不知情。

ygmurferdanxod48.png!heading_.jpg

那次二进制挖矿攻击,受害者的点击次数


常见的用在浏览器挖矿中的工具是 Coinhive。它本来是合法的,通过货币化系统资源来为广告收入提供替代方案,但问题在于,它在运行的时候是不通知用户的,用户根本不知道有挖矿的代码存在。

就像是最近 Facebook Messenger 和星巴克的 WiFi 被攻击的情况一样。今年 7 月 2 日,PublicWWW 就有 2.3 万个网站里面包含了 Coinhive 挖矿代码。

30wunq72auowhzd7.png!heading_.jpg

Coinhive 脚本的例子


当然除了通过网站攻击,黑客们还有其他稍微复杂一点的方式,比如利用名为 EternalBlue 的漏洞,并且黑客们也有新办法躲避追踪,比如一种叫 “离开地面生活” 的方法,不仅能躲开追踪,还能提高挖矿能力。


加密劫持的影响


不管从短期还是长期来看,这种攻击对我们都有影响:


潜在的安全问题,容易引来下一次攻击;

对机器也有损伤;

公司正常的经营会受到影响。



能够以未经授权的方式使用电脑,说明系统肯定存在漏洞,黑客们可以随意利用这些漏洞。

利用 CPU 挖矿同时也会耗能耗电。小型设备会因此面临电池寿命的问题,对于大型系统来说,故障率会增加,可能需要高额的维修费来支持多余的负载。


推荐的防御建议


好消息是,防御加密劫持的方法和其他的都差不多,都是增强安全性的一些建议。


时常监测电脑耗能和 CPU 的情况,及时发现不正常的情况;

在电脑上搜索一些文本文档,关键词是 Crypto、Coinhive、XMR、 Monero, 还有 cpuminer;

别跟矿池联系;

使用浏览器插件来阻止浏览器加密劫持。



他们发现,这种攻击的密集程度似乎和比特币价格呈正相关,只要比特币还有价值,黑客就不会停手。

gsl4z774xgk4iu2f.png!heading_.jpg

2018 年 1 月开始,加密劫持的比例(灰)与比特币价格(黄)的关系


这份报告就是想提醒大家,知道加密劫持这种攻击的危险性。通过提高机器的安全性,被攻击的难度会加大。不过技术总是在更新,CTA 也会随时监测最新动向。


本文来自冲科技(ID:chongkeji),原文来源:Cyber Threat Association,编译:张问

区块链应该担心黎曼猜想么?

leek 发表了文章 • 2018-09-23 11:21 • 来自相关话题

黎曼
 

谁应该担心黎曼猜想?


1、事件

9月20日,89岁的知名数学家迈克尔· 阿蒂亚爵士宣布,将在9月24日海德堡获奖者论坛(HLF,Heidelberg Laureate Forum) 上,公布对黎曼猜想的证明。


2、结论

只要是真的,不管证明,还是证伪,对密码学领域,没有直接影响。同样,对基于密码学的区块链技术领域,没有直接影响。

简单点说,黎曼猜想被证明或证伪,都只是指出了质数的分布范围,是A规律、或是B规律,但对密码学相关的质数分解没有任何帮助。

受影响的,是数学和物理学的基础研究者,如几何、弦论……等等。


3、如果是证明(proof)

本身没有什么影响。但证明思路,则意义重大。

现在的数学家们,大多认为黎曼猜想是正确的,并以此为前提,进行了很多拓展研究。

所以,如果是证明,对基于黎曼猜想进行后续研究的数学家,影响不大。

但是,证明的方式,意味着一种全新的思路,这个思路有可能意义很大。


4、如果是证伪(falsification)

影响将极为深远。

因为,这表明“质数不是随机均匀分布的”。质数们,将以一种世人所无法想象的结构,呈现在你我面前。按丘成桐数学中心助理教授杨一龙的描述,这将会“发现质数们的惊天阴谋!”

这个全新的结构,可能会带来一场数学革命,影响广泛。但影响涉及什么方向,只能说,未公布之前,不知道。

首先受影响的,仅仅是以黎曼猜想为基础,搭建了后续理论的研究者们。

他们,得重新搭建自己的地基了。


5、证明?证伪?

从阿蒂亚爵士发布的说明来看,他用的是a simple proof(一个简单的证明)这样的描述。

所以,有极大可能是证明,而不是证伪。


6、恐慌?

有媒体,将黎曼猜想的被证明,解读为“基于互联网的所有安全加密方式将不再安全”、“使用了RSA这些加密算法的项目,要一夜归零”。

这样的论调,是基于对黎曼猜想的不了解,把黎曼猜想,当做质数公式来看了。

或者,是有意制造恐慌,哗众取宠。





恐慌传递者
 

7、密码学的难题有哪些?

基于公钥密码体制的经典研究难题,主要有三类:

(1)大整数的质数分解问题;(RSA加密算法属于这个领域)

(2)椭圆曲线上的离散对数问题(ECDLP)等。(椭圆曲线加密算法属于这个领域)

(3)有限域上的离散对数问题(DLP);


8、区块链技术领域,使用的加密算法是什么?

区块链,以数学为根基,以密码学为灵魂。

而区块链项目的加密算法,几乎都是椭圆曲线加密算法,而并未使用RSA加密算法。

所以,别仅为了唱空区块链,用什么黎曼猜想被证明,就是RSA加密会被轻易攻击了,来吓唬“韭菜”。


9、事件背景1:事情的由来

9月20日,南方科技大学数学教授汤涛(数学文化主编、南科大副校长、原香港浸会大学数学系系主任),将海德堡获奖者论坛的一个议题,在自己的微博发表出来了。

里面就是,菲尔兹奖和阿贝尔奖双料得主、英国皇家学会前主席迈克尔· 阿蒂亚爵士宣称证明了黎曼猜想,将在9月24日论坛上公布这件事。

汤教授作为中国最具开创精神的南方科技大学(这点一直很佩服南科大的校长们),用了“惊天动地、数学界出大事”这类正常、平淡,充满了智慧的语言,来描述这个事情。

不出意外,立刻引发了好朋友们的转发风暴。

继而,引发科技自媒体们的炫技式报道风暴。

接着,引发了科技媒体们的不明觉厉深度报道风暴。

最后,引发了一些神经质媒体的恐慌性风暴。

以上,为本次事件的由来,可以用1句话总结--数学界的《全球风暴》。





汤涛


10、事件背景2:迈克尔·阿蒂亚爵士是哪个?

迈克尔·阿蒂亚爵士(1929年—),英国著名数学家。主要研究领域为几何。

1960年代他与伊萨多·辛格合作,证明了阿蒂亚-辛格指标定理。该定理在数学的一些领域均有重要作用。他于1966年荣获菲尔兹奖(国际数学联盟设立的最高奖),2004年与辛格共同获得阿贝尔奖(挪威政府设立)。





迈克尔·阿蒂亚


11、事件背景3:阿蒂亚爵士说了啥?

2018年9月24日9:45-10:30,在海德堡大学新教学楼的新礼堂的第三层。迈克尔.阿蒂亚爵士将在此,花45分钟,讲述他的数学新发现。

在演讲稿的摘要里面,阿蒂亚爵士是这样说的:

the Riemann Hypothesis is a famous unsolved problem dating form 1859. i will present a simple proof using a radically new approach.it is based on work of von neumann(1936)、hirzebruch(1945) and dirac(1928) 。


1859年提出的黎曼猜想,是一个尚未解决的著名难题。我将用一种全新的方法给出一个简单的证明。它基于冯.诺伊曼(1936)、希尔泽布鲁赫(1945)和狄拉克(1928)的工作。


12、事件背景4:冯.诺伊曼是哪个?

美籍匈牙利科学家(1903~1957),数学全才,计算机之父和博弈论之父。

阿蒂亚爵士说是基于冯.诺伊曼1936年的工作。

那么,1936年前后,冯.诺伊曼主要的研究方向,还是纯粹数学。

这几年,冯.诺伊曼在数理逻辑方面,提出简单而明确的序数理论;对集合论进行新的公理化;为量子力学打下数学基础;开拓了遍历理论的新领域;解决了希尔伯特第五问题;在测度论、格论和连续几何学方面的开创性贡献……等等。

学霸,请收下读者们的膝盖。





冯.诺伊曼
 

13、事件背景5:希尔泽布鲁赫是哪个?

德国数学家(1927—2012),主要研究领域,是在拓扑、代数几何和整体微分几何等领域。

1959年,他与阿蒂亚爵士合作引入了K理论,证明了微分流形的黎曼-罗赫定理。

阿蒂亚爵士说是基于希尔泽布鲁赫1945年的工作,此时,希尔泽布鲁赫18岁……18岁、18岁……。

希尔泽布鲁赫的照片非常少,下图为他1950年与陈省身先生的一张合影。





1950年,从左至右:陈省身、塞缪尔·艾伦伯格、希尔泽布鲁赫
 

14、事件背景5:狄拉克是哪个?

英国物理学家(1902-1984),量子力学的奠基者之一,曾获1933年诺贝尔物理学奖。

阿蒂亚爵士说是基于狄拉克1928年的研究工作,那么,狄拉克1928年做了什么呢?

这一年,狄拉克把相对论引进了量子力学,建立了相对论形式的薛定谔方程,也就是著名的狄拉克方程。





狄拉克


15、事件背景6:黎曼猜想是啥?

黎曼猜想,是关于黎曼ζ函数ζ(s)的零点分布的猜想,由德国数学家波恩哈德·黎曼(1826-1866)于1859年提出,假设了质数分布的规律是“随机而均匀的”。

德国数学家戴维·希尔伯特在第二届国际数学家大会上提出了20世纪数学家应当努力解决的23个数学问题,其中便包括黎曼假设。

现今克雷数学研究所悬赏的世界七大数学难题中也包括黎曼假设。

黎曼猜想在数学上的重要性,要超过费马猜想和哥德巴赫猜想,是当今数学界最重要的数学难题。

现在,法国团队,已经用计算机将黎曼猜想,推导到Zeta函数前十万亿个非平凡零点,均符合了黎曼猜想,无一反例。
 

15、事件背景7:海德堡获奖者论坛是啥?

海德堡获奖者论坛(HLF,Heidelberg Laureate Forum),是德国海德堡理论研究所和克劳斯·茨奇拉基金会,在2013年设立的一个数学和计算机领域的论坛。论坛一年一次,每次为期一周,在海森堡大学举办,今年是第6届。

HLF旨在通过通过各种论坛演讲、主题讨论、公共活动,让年轻科学家、高中生与全球最知名的数学或计算机大奖获奖者进行互动,推动数学和计算机的普及。

HLF的口号“Laureates of mathematics and computer science meet the next generation”

出席论坛的获奖者,涵盖了5个大奖:阿贝尔奖(Abel Prize,数学类),图灵奖(ACM A.M. Turing Award,计算机类),ACM计算机奖(ACM Prize in Computing,计算机类),菲尔兹奖(Fields Medal,数学类)、奈望林纳奖(Nevanlinna Prize)。





海德堡大学新校区的夜晚





正在前往海德堡获奖者论坛的学者们


15、花絮1:区块链与海德堡

本届海德堡获奖者论坛上,讨论主题是“区块链背后的技术”(没错,就是你知道那个区块链)。

这个主题讨论,将在9月25日进行。由一个叫Eva Wolfangel的德国自由科学记者主持(没错,主持人绝对不是你知道的那个EVA)。EVA在本届论坛上,将会获得“2018年度欧洲科学作家奖”。





猜一猜,谁是Eva Wolfangel
 

对“区块链技术底层基础是数学”这件事,持怀疑态度的同学们,给你们一个机会。

你们现在,可以直视33位菲尔兹奖、奈望林纳奖、图灵奖、阿贝尔奖、ACM计算机奖获得者的眼睛,直接说出你们的观点了。


16、花絮2:机会

每年,海德堡获奖者论坛基金会(HLFF)都将为15名记者提供经费,入选记者将获得高达3000欧元的经费,以支付差旅、在海德堡停留期间的食宿费用。

中国懂数学的记者们,机会!

不过今年就没戏了,明年如果还想,可以找我,但不一定能帮你申请到。
 

作者:贾可,UOC创始人。UOC是一个底层公链。基于“在任意约定范围内,生成可信随机数”的数学突破,在以比特币为基础的区块链上,提出了在非金融领域的事务处理高效实现的可能,并且以网络游戏为首要应用方向。
邮箱: uochain@outlook.com 查看全部
l07.jpg

黎曼
 


谁应该担心黎曼猜想?



1、事件

9月20日,89岁的知名数学家迈克尔· 阿蒂亚爵士宣布,将在9月24日海德堡获奖者论坛(HLF,Heidelberg Laureate Forum) 上,公布对黎曼猜想的证明。


2、结论

只要是真的,不管证明,还是证伪,对密码学领域,没有直接影响。同样,对基于密码学的区块链技术领域,没有直接影响。

简单点说,黎曼猜想被证明或证伪,都只是指出了质数的分布范围,是A规律、或是B规律,但对密码学相关的质数分解没有任何帮助。

受影响的,是数学和物理学的基础研究者,如几何、弦论……等等。


3、如果是证明(proof)

本身没有什么影响。但证明思路,则意义重大。

现在的数学家们,大多认为黎曼猜想是正确的,并以此为前提,进行了很多拓展研究。

所以,如果是证明,对基于黎曼猜想进行后续研究的数学家,影响不大。

但是,证明的方式,意味着一种全新的思路,这个思路有可能意义很大。


4、如果是证伪(falsification)

影响将极为深远。

因为,这表明“质数不是随机均匀分布的”。质数们,将以一种世人所无法想象的结构,呈现在你我面前。按丘成桐数学中心助理教授杨一龙的描述,这将会“发现质数们的惊天阴谋!”

这个全新的结构,可能会带来一场数学革命,影响广泛。但影响涉及什么方向,只能说,未公布之前,不知道。

首先受影响的,仅仅是以黎曼猜想为基础,搭建了后续理论的研究者们。

他们,得重新搭建自己的地基了。


5、证明?证伪?

从阿蒂亚爵士发布的说明来看,他用的是a simple proof(一个简单的证明)这样的描述。

所以,有极大可能是证明,而不是证伪。


6、恐慌?

有媒体,将黎曼猜想的被证明,解读为“基于互联网的所有安全加密方式将不再安全”、“使用了RSA这些加密算法的项目,要一夜归零”。

这样的论调,是基于对黎曼猜想的不了解,把黎曼猜想,当做质数公式来看了。

或者,是有意制造恐慌,哗众取宠。

l01.jpg

恐慌传递者
 

7、密码学的难题有哪些?

基于公钥密码体制的经典研究难题,主要有三类:

(1)大整数的质数分解问题;(RSA加密算法属于这个领域)

(2)椭圆曲线上的离散对数问题(ECDLP)等。(椭圆曲线加密算法属于这个领域)

(3)有限域上的离散对数问题(DLP);


8、区块链技术领域,使用的加密算法是什么?

区块链,以数学为根基,以密码学为灵魂。

而区块链项目的加密算法,几乎都是椭圆曲线加密算法,而并未使用RSA加密算法。

所以,别仅为了唱空区块链,用什么黎曼猜想被证明,就是RSA加密会被轻易攻击了,来吓唬“韭菜”。


9、事件背景1:事情的由来

9月20日,南方科技大学数学教授汤涛(数学文化主编、南科大副校长、原香港浸会大学数学系系主任),将海德堡获奖者论坛的一个议题,在自己的微博发表出来了。

里面就是,菲尔兹奖和阿贝尔奖双料得主、英国皇家学会前主席迈克尔· 阿蒂亚爵士宣称证明了黎曼猜想,将在9月24日论坛上公布这件事。

汤教授作为中国最具开创精神的南方科技大学(这点一直很佩服南科大的校长们),用了“惊天动地、数学界出大事”这类正常、平淡,充满了智慧的语言,来描述这个事情。

不出意外,立刻引发了好朋友们的转发风暴。

继而,引发科技自媒体们的炫技式报道风暴。

接着,引发了科技媒体们的不明觉厉深度报道风暴。

最后,引发了一些神经质媒体的恐慌性风暴。

以上,为本次事件的由来,可以用1句话总结--数学界的《全球风暴》。

l02.jpg

汤涛


10、事件背景2:迈克尔·阿蒂亚爵士是哪个?

迈克尔·阿蒂亚爵士(1929年—),英国著名数学家。主要研究领域为几何。

1960年代他与伊萨多·辛格合作,证明了阿蒂亚-辛格指标定理。该定理在数学的一些领域均有重要作用。他于1966年荣获菲尔兹奖(国际数学联盟设立的最高奖),2004年与辛格共同获得阿贝尔奖(挪威政府设立)。

l03.jpg

迈克尔·阿蒂亚


11、事件背景3:阿蒂亚爵士说了啥?

2018年9月24日9:45-10:30,在海德堡大学新教学楼的新礼堂的第三层。迈克尔.阿蒂亚爵士将在此,花45分钟,讲述他的数学新发现。

在演讲稿的摘要里面,阿蒂亚爵士是这样说的:


the Riemann Hypothesis is a famous unsolved problem dating form 1859. i will present a simple proof using a radically new approach.it is based on work of von neumann(1936)、hirzebruch(1945) and dirac(1928) 。



1859年提出的黎曼猜想,是一个尚未解决的著名难题。我将用一种全新的方法给出一个简单的证明。它基于冯.诺伊曼(1936)、希尔泽布鲁赫(1945)和狄拉克(1928)的工作。


12、事件背景4:冯.诺伊曼是哪个?

美籍匈牙利科学家(1903~1957),数学全才,计算机之父和博弈论之父。

阿蒂亚爵士说是基于冯.诺伊曼1936年的工作。

那么,1936年前后,冯.诺伊曼主要的研究方向,还是纯粹数学。

这几年,冯.诺伊曼在数理逻辑方面,提出简单而明确的序数理论;对集合论进行新的公理化;为量子力学打下数学基础;开拓了遍历理论的新领域;解决了希尔伯特第五问题;在测度论、格论和连续几何学方面的开创性贡献……等等。

学霸,请收下读者们的膝盖。

l04.jpg

冯.诺伊曼
 

13、事件背景5:希尔泽布鲁赫是哪个?

德国数学家(1927—2012),主要研究领域,是在拓扑、代数几何和整体微分几何等领域。

1959年,他与阿蒂亚爵士合作引入了K理论,证明了微分流形的黎曼-罗赫定理。

阿蒂亚爵士说是基于希尔泽布鲁赫1945年的工作,此时,希尔泽布鲁赫18岁……18岁、18岁……。

希尔泽布鲁赫的照片非常少,下图为他1950年与陈省身先生的一张合影。

l05.jpg

1950年,从左至右:陈省身、塞缪尔·艾伦伯格、希尔泽布鲁赫
 

14、事件背景5:狄拉克是哪个?

英国物理学家(1902-1984),量子力学的奠基者之一,曾获1933年诺贝尔物理学奖。

阿蒂亚爵士说是基于狄拉克1928年的研究工作,那么,狄拉克1928年做了什么呢?

这一年,狄拉克把相对论引进了量子力学,建立了相对论形式的薛定谔方程,也就是著名的狄拉克方程。

l06.jpg

狄拉克


15、事件背景6:黎曼猜想是啥?

黎曼猜想,是关于黎曼ζ函数ζ(s)的零点分布的猜想,由德国数学家波恩哈德·黎曼(1826-1866)于1859年提出,假设了质数分布的规律是“随机而均匀的”。

德国数学家戴维·希尔伯特在第二届国际数学家大会上提出了20世纪数学家应当努力解决的23个数学问题,其中便包括黎曼假设。

现今克雷数学研究所悬赏的世界七大数学难题中也包括黎曼假设。

黎曼猜想在数学上的重要性,要超过费马猜想和哥德巴赫猜想,是当今数学界最重要的数学难题。

现在,法国团队,已经用计算机将黎曼猜想,推导到Zeta函数前十万亿个非平凡零点,均符合了黎曼猜想,无一反例。
 

15、事件背景7:海德堡获奖者论坛是啥?

海德堡获奖者论坛(HLF,Heidelberg Laureate Forum),是德国海德堡理论研究所和克劳斯·茨奇拉基金会,在2013年设立的一个数学和计算机领域的论坛。论坛一年一次,每次为期一周,在海森堡大学举办,今年是第6届。

HLF旨在通过通过各种论坛演讲、主题讨论、公共活动,让年轻科学家、高中生与全球最知名的数学或计算机大奖获奖者进行互动,推动数学和计算机的普及。

HLF的口号“Laureates of mathematics and computer science meet the next generation”

出席论坛的获奖者,涵盖了5个大奖:阿贝尔奖(Abel Prize,数学类),图灵奖(ACM A.M. Turing Award,计算机类),ACM计算机奖(ACM Prize in Computing,计算机类),菲尔兹奖(Fields Medal,数学类)、奈望林纳奖(Nevanlinna Prize)。

l08.jpg

海德堡大学新校区的夜晚

l09.jpg

正在前往海德堡获奖者论坛的学者们


15、花絮1:区块链与海德堡

本届海德堡获奖者论坛上,讨论主题是“区块链背后的技术”(没错,就是你知道那个区块链)。

这个主题讨论,将在9月25日进行。由一个叫Eva Wolfangel的德国自由科学记者主持(没错,主持人绝对不是你知道的那个EVA)。EVA在本届论坛上,将会获得“2018年度欧洲科学作家奖”。

l10.jpg

猜一猜,谁是Eva Wolfangel
 

对“区块链技术底层基础是数学”这件事,持怀疑态度的同学们,给你们一个机会。

你们现在,可以直视33位菲尔兹奖、奈望林纳奖、图灵奖、阿贝尔奖、ACM计算机奖获得者的眼睛,直接说出你们的观点了。


16、花絮2:机会

每年,海德堡获奖者论坛基金会(HLFF)都将为15名记者提供经费,入选记者将获得高达3000欧元的经费,以支付差旅、在海德堡停留期间的食宿费用。

中国懂数学的记者们,机会!

不过今年就没戏了,明年如果还想,可以找我,但不一定能帮你申请到。
 

作者:贾可,UOC创始人。UOC是一个底层公链。基于“在任意约定范围内,生成可信随机数”的数学突破,在以比特币为基础的区块链上,提出了在非金融领域的事务处理高效实现的可能,并且以网络游戏为首要应用方向。
邮箱: uochain@outlook.com

45%区块链项目一年后价值归零 人工智能的预测能信吗?

blockbeats 发表了文章 • 2018-09-21 12:05 • 来自相关话题

如果人工智能可以帮你预测未来的价格并且帮你做出投资决定,你会把钱交给人工智能吗?

在媒体上,我们看到有关人工智能帮助人类做出投资决策的新闻分为两类,一种是人工智能管理的基金在「一顿操作」之后没有赚钱、甚至亏钱,另外一种是人工智能在股票市场的表现超越专业的基金经理,实现逆市盈利。

国外有一家名为 Wallet Investor 的网站,专门做人工智能对各种金融产品的预测,包括股票、外汇、商品期货、基金等,最近他们还加入了对数字加密货币的人工智能预测。Wallet Investor 通过对金融产品的交易量、近期和历史价格、发展趋势等数据,将其投入人工智能预测模型中,得出一个有一定参考意义的投资参考。但是对于区块链世界的数字加密货币投资,这个市场真的可以预测吗?

以股票、大宗商品为例,老练的投资者是可以根据市场信息、波动趋势来判断买入卖出点的,总体宏观上是可以进行预测的。但是数字加密货币市场存在更多的不可控因素,比如私募投资者、交易所、黑客等诸多因素都将导致 BTC、ETH 等数字机密货币发生不可预测的变化。

让我们来看一下人工智能给数字加密货币投资建议,到底一顿操作之后,是猛如虎,还是 0:5 呢?


人工智能预测 45% 的 ICO 项目一年后价值归零


根据这家网站的人工智能分析,我们看到它对每个数字加密货币的价格都进行了预测,时间范围包括 14 天、3 个月、6 个月、1 年和 5 年等。

在这份数据中我们发现了几个有意思的数据,比如多个主流币种将在一年内归零,如 ETH、BCH、ADA、QTM 等,还有一些知名项目比如 OMG、Gifto、Cybermiles、Bit-z、秘银币等多个项目,也将面临归零的风险。而列表中,BTC、EOS、XRP、莱特币、门罗币等项目将实现翻倍。











在整个列表中,有约 960 个 Token 被人工智能预测为「一年后价值归零,价格下跌 100%」,还有上百个 Token 在未来一年里「价格下跌 80% 以上」,可以说是哀「红」一片。

有 355 个 Token 被人工智能预测为「一年后价值翻倍」,其中 19 个项目可以实现 10 倍的价值增长。我们熟悉的项目比如 BTC、EOS、XRP、LTC、DASH、ETC、TRX 等都将实现最少一倍的增长。


但是人工智能的预测真的准吗?


实际上,在预测价格方面,人工智能做的一直很差。曾一度被人称之为是「人工智障」。因为模型的精度、权重和预测数据来源等多方面原因,人工智能对于一件事情的预测仍然出在很早的阶段。

在 Wallet Investor 的暴涨 10 倍币列表里,我们看到了几个令人匪夷所思的项目,比如已经被宣判死刑的 Centra。这是一个被区块律动 BlockBeats 写过的项目,该项目由美国拳王梅威瑟代言,但是因为存在商业欺诈行为,该项目定美国方面定性为诈骗,创始人在机场被警方抓捕。该项目已经基本进入死亡阶段,仅剩少数人进行交易,过去 24 小时的交易量仅 2000 美元。






另外 10 倍币的榜单中也有大量空气币项目,比如排名第一的 Mercury Protocl 项目已经接近被统计网站除名的状态,过去 24 小时的交易量不足 100 美元。对,你没看错,这个项目已经死了。排名第三的 Blockchain Index,过去 24 小时的交易量不足 200 美元。排名第四的项目 10M Token 未被 CoinMarketCap 收录。排名第五的 Xplay,过去 24 小时的交易量不到 300 美元。

而在归零币的列表中,我们也看到几个令人感到困惑的项目出现在上面,比如以太坊的代币 ETH 将会在一年内归零,比特币现金一年后将下跌 99.9983%,几乎归零,达世币也会归零,知名技术项目 ADA 也会归零,每日交易量近 5000 币的量子链 QTM 等都将归零。

不可否认,上述 5 个项目近期的表现确实差强人意,尤其是 ETH 更是被媒体和专业人士做空即将归零。但是像以太坊、比特币现金、达世币、量子链等已经成型的项目,他们已经产生了相应的社会价值,理论上很难归零。

这里就不得不开始怀疑人工智能到底能不能做投资分析和判断,他们的决策真的有可信度吗?


人工智能到底行不行?


2017 年,全球第一支应用人工智能进行投资的 ETF 基金 AIEQ 开始运作。这只基金的经理是一个跑在 IBM Watson 超级计算机上「人工智能」,它可以一年 365 天、一天 24 小时不间断地对 6000 支股票进行分析和交易。

在许多人眼里,人工智能速度更快、判断更准,而且相比于传统的纯人工投资,可以对更多的投资标的做出操作。原先需要人工大量时间做出的投资决定,人工智能只需要几秒钟。在上线的前两天,这只人工智能投资基金轻轻松松地就跑赢了大盘,看上去人工智能好像即将实现惊天逆转,让不少基金经理、交易员和分析师开始担心自己饭碗不保。

然而一个月之后,AIEQ 累积跌了 3.27%,而同期美国标普 500 指数却上涨了 1.06%。在那波牛市里,投资者随便买一只股票都比 AIEQ 赚的多。但是在美股今年的利好下,AIEQ 又开始了漂亮转身的操作,标准普尔 500 指数今年回报约为 8%,而 AIEQ 的回报已经达到了 12%,后者的投资者可以获得 4% 的超额收益。

除了美国之外,中国的不少机构也在涉足人工智能投资顾问业务,比如招商银行的摩羯智投、工商银行的 AI 投、宜信投米 RA、理财魔法、璇玑等。根据《轻金融》统计,只有璇玑的投资收益是正的,其他四家的智能投顾都是负数。但是对比沪深 300 指数同期 10% 跌幅的话,剩下的四家表现其实也不算差。






风险分析师陆晨在一财的采访中表示,现在「很多的 AI」是回溯历史大数据的统计方法,统计的黑匣子胃口食量很大,要喂给它大量的历史数据才能对未来有非常局限的预测。同时这个预测是很固定静态的,根据这个预测再针对未来设定相应的解决方式,要面对未来的不确定性。然而,市场是瞬息万变的,时间又不停息,原有的固定起点变成了历史。

虽然上市公司会主动披露很多数据,而且隐藏在数据背后的很多信息是人工智能无法分析出来的。比如虽然披露了员工数量,但是员工的状态需要现场考察才能确定;虽然财报上展示了业务数据,但也有可能出现绿诺科技这种只有亲自去现场才能发现其造假。诸如此类的问题,人工智能虽然可以预测,但是其预测结果并不准确。

再回到本文的人工智能分析币价上,从这个网站给出的数据中的大量偏差就可以看出,数字加密货币市场几乎无法做出预测。这与数字加密货币市场的混乱现状有很大关系,也与参与分析的人工智能其智能程度也有很大的关系。

人工智能肯定是不知道庄家会在什么时候拉盘的。


文| 0x2  查看全部
algorithmic-trading-software-system.jpg

如果人工智能可以帮你预测未来的价格并且帮你做出投资决定,你会把钱交给人工智能吗?

在媒体上,我们看到有关人工智能帮助人类做出投资决策的新闻分为两类,一种是人工智能管理的基金在「一顿操作」之后没有赚钱、甚至亏钱,另外一种是人工智能在股票市场的表现超越专业的基金经理,实现逆市盈利。

国外有一家名为 Wallet Investor 的网站,专门做人工智能对各种金融产品的预测,包括股票、外汇、商品期货、基金等,最近他们还加入了对数字加密货币的人工智能预测。Wallet Investor 通过对金融产品的交易量、近期和历史价格、发展趋势等数据,将其投入人工智能预测模型中,得出一个有一定参考意义的投资参考。但是对于区块链世界的数字加密货币投资,这个市场真的可以预测吗?

以股票、大宗商品为例,老练的投资者是可以根据市场信息、波动趋势来判断买入卖出点的,总体宏观上是可以进行预测的。但是数字加密货币市场存在更多的不可控因素,比如私募投资者、交易所、黑客等诸多因素都将导致 BTC、ETH 等数字机密货币发生不可预测的变化。

让我们来看一下人工智能给数字加密货币投资建议,到底一顿操作之后,是猛如虎,还是 0:5 呢?


人工智能预测 45% 的 ICO 项目一年后价值归零


根据这家网站的人工智能分析,我们看到它对每个数字加密货币的价格都进行了预测,时间范围包括 14 天、3 个月、6 个月、1 年和 5 年等。

在这份数据中我们发现了几个有意思的数据,比如多个主流币种将在一年内归零,如 ETH、BCH、ADA、QTM 等,还有一些知名项目比如 OMG、Gifto、Cybermiles、Bit-z、秘银币等多个项目,也将面临归零的风险。而列表中,BTC、EOS、XRP、莱特币、门罗币等项目将实现翻倍。

c798ebe181de2c795513e91a1d0ddd31.jpg


fbadfa8e551577313147fc07ffa41f5a.jpg


在整个列表中,有约 960 个 Token 被人工智能预测为「一年后价值归零,价格下跌 100%」,还有上百个 Token 在未来一年里「价格下跌 80% 以上」,可以说是哀「红」一片。

有 355 个 Token 被人工智能预测为「一年后价值翻倍」,其中 19 个项目可以实现 10 倍的价值增长。我们熟悉的项目比如 BTC、EOS、XRP、LTC、DASH、ETC、TRX 等都将实现最少一倍的增长。


但是人工智能的预测真的准吗?


实际上,在预测价格方面,人工智能做的一直很差。曾一度被人称之为是「人工智障」。因为模型的精度、权重和预测数据来源等多方面原因,人工智能对于一件事情的预测仍然出在很早的阶段。

在 Wallet Investor 的暴涨 10 倍币列表里,我们看到了几个令人匪夷所思的项目,比如已经被宣判死刑的 Centra。这是一个被区块律动 BlockBeats 写过的项目,该项目由美国拳王梅威瑟代言,但是因为存在商业欺诈行为,该项目定美国方面定性为诈骗,创始人在机场被警方抓捕。该项目已经基本进入死亡阶段,仅剩少数人进行交易,过去 24 小时的交易量仅 2000 美元。

695472221f7db9fe0450aaf3d05c97f8.jpg


另外 10 倍币的榜单中也有大量空气币项目,比如排名第一的 Mercury Protocl 项目已经接近被统计网站除名的状态,过去 24 小时的交易量不足 100 美元。对,你没看错,这个项目已经死了。排名第三的 Blockchain Index,过去 24 小时的交易量不足 200 美元。排名第四的项目 10M Token 未被 CoinMarketCap 收录。排名第五的 Xplay,过去 24 小时的交易量不到 300 美元。

而在归零币的列表中,我们也看到几个令人感到困惑的项目出现在上面,比如以太坊的代币 ETH 将会在一年内归零,比特币现金一年后将下跌 99.9983%,几乎归零,达世币也会归零,知名技术项目 ADA 也会归零,每日交易量近 5000 币的量子链 QTM 等都将归零。

不可否认,上述 5 个项目近期的表现确实差强人意,尤其是 ETH 更是被媒体和专业人士做空即将归零。但是像以太坊、比特币现金、达世币、量子链等已经成型的项目,他们已经产生了相应的社会价值,理论上很难归零。

这里就不得不开始怀疑人工智能到底能不能做投资分析和判断,他们的决策真的有可信度吗?


人工智能到底行不行?


2017 年,全球第一支应用人工智能进行投资的 ETF 基金 AIEQ 开始运作。这只基金的经理是一个跑在 IBM Watson 超级计算机上「人工智能」,它可以一年 365 天、一天 24 小时不间断地对 6000 支股票进行分析和交易。

在许多人眼里,人工智能速度更快、判断更准,而且相比于传统的纯人工投资,可以对更多的投资标的做出操作。原先需要人工大量时间做出的投资决定,人工智能只需要几秒钟。在上线的前两天,这只人工智能投资基金轻轻松松地就跑赢了大盘,看上去人工智能好像即将实现惊天逆转,让不少基金经理、交易员和分析师开始担心自己饭碗不保。

然而一个月之后,AIEQ 累积跌了 3.27%,而同期美国标普 500 指数却上涨了 1.06%。在那波牛市里,投资者随便买一只股票都比 AIEQ 赚的多。但是在美股今年的利好下,AIEQ 又开始了漂亮转身的操作,标准普尔 500 指数今年回报约为 8%,而 AIEQ 的回报已经达到了 12%,后者的投资者可以获得 4% 的超额收益。

除了美国之外,中国的不少机构也在涉足人工智能投资顾问业务,比如招商银行的摩羯智投、工商银行的 AI 投、宜信投米 RA、理财魔法、璇玑等。根据《轻金融》统计,只有璇玑的投资收益是正的,其他四家的智能投顾都是负数。但是对比沪深 300 指数同期 10% 跌幅的话,剩下的四家表现其实也不算差。

250ca9bdd35ef4f60eb3eb63f8893732.jpg


风险分析师陆晨在一财的采访中表示,现在「很多的 AI」是回溯历史大数据的统计方法,统计的黑匣子胃口食量很大,要喂给它大量的历史数据才能对未来有非常局限的预测。同时这个预测是很固定静态的,根据这个预测再针对未来设定相应的解决方式,要面对未来的不确定性。然而,市场是瞬息万变的,时间又不停息,原有的固定起点变成了历史。

虽然上市公司会主动披露很多数据,而且隐藏在数据背后的很多信息是人工智能无法分析出来的。比如虽然披露了员工数量,但是员工的状态需要现场考察才能确定;虽然财报上展示了业务数据,但也有可能出现绿诺科技这种只有亲自去现场才能发现其造假。诸如此类的问题,人工智能虽然可以预测,但是其预测结果并不准确。

再回到本文的人工智能分析币价上,从这个网站给出的数据中的大量偏差就可以看出,数字加密货币市场几乎无法做出预测。这与数字加密货币市场的混乱现状有很大关系,也与参与分析的人工智能其智能程度也有很大的关系。

人工智能肯定是不知道庄家会在什么时候拉盘的。


文| 0x2 

“去中心化交易所” Newdex 为什么会混入EOS假币?

leek 发表了文章 • 2018-09-20 13:35 • 来自相关话题

由于出现了一个严重的安全漏洞,10亿个EOS假币流入了去中心化的代币交易平台。最终,攻击者直接从用户手中窃取了价值5.8万美元的加密货币。

攻击者创造了一种全新的EOS代币,并将其命名为“EOS”,在Newdex交易所买入了BLACK、IQ和ADD这三种代币。该公司随后证实了本次攻击。


EOS账户oo1122334455发行了10亿个EOS假币。经测试发现攻击可行之后,该账户开始挂出大额买单,共有11800个EOS假币用于购买BLACK、IQ和ADD这三种代币。


攻击者最终成功用这些代币买入了EOS。Newdex透露,攻击者拿到了4028个EOS(价值2万美元),并且转入了加密货币交易所Bitfinex。Newdex dApp用户因此承受了5.8万美元的损失。

Newdex团队已经就本次事件公开道歉,但依然没有说明将如何补偿受影响的用户。
造成这个漏洞的原因有两点:
 

首先,任何人都可以用EOS网络创建代币,命名也不受限制——很显然,就算你想叫自己的币“EOS”也不会有人反对。你只需要拥有一个EOS账户即可。

其次,Newdex并没有使用智能合约。没有智能合约就不能确认特定加密货币的真实性。


这一切都是因为Newdex的开发者利用了去中心化交易所(DEX)这个噱头,把这个平台也包装成了一个DEX。事实上,它只是伪装成一个资产交易所,背地里依然是由单个账户控制交易,非常的中心化。

而且某reddit网友其实在攻击之前就发现了这个平台的问题:

这个平台的登录和交易界面只是假象,让用户觉得自己在使用DEX,但事实上你并未把资金发送到任何智能合约,只有一个很普通的EOS账户‘newdexpocket’,根本不是通过智能合约运作的。


经证实,这个“newdexpocket”账户根本不包含任何智能合约代码,因此,Newdex的用户的资金只是在个人账户之间进行转移。

更糟糕的是,这个钱包的持有者和动态权限采用了同一个密钥。这就很容易造成单一攻击向量。大多数交易所至少还会用多重签名钱包。

不过本次攻击和密钥无关,只是因为这个交易所的开发者根本没有通过智能合约来保护用户资金。(巴比特) 查看全部
153735114351771.jpg

由于出现了一个严重的安全漏洞,10亿个EOS假币流入了去中心化的代币交易平台。最终,攻击者直接从用户手中窃取了价值5.8万美元的加密货币。

攻击者创造了一种全新的EOS代币,并将其命名为“EOS”,在Newdex交易所买入了BLACK、IQ和ADD这三种代币。该公司随后证实了本次攻击。



EOS账户oo1122334455发行了10亿个EOS假币。经测试发现攻击可行之后,该账户开始挂出大额买单,共有11800个EOS假币用于购买BLACK、IQ和ADD这三种代币。



攻击者最终成功用这些代币买入了EOS。Newdex透露,攻击者拿到了4028个EOS(价值2万美元),并且转入了加密货币交易所Bitfinex。Newdex dApp用户因此承受了5.8万美元的损失。

Newdex团队已经就本次事件公开道歉,但依然没有说明将如何补偿受影响的用户。
造成这个漏洞的原因有两点:
 


首先,任何人都可以用EOS网络创建代币,命名也不受限制——很显然,就算你想叫自己的币“EOS”也不会有人反对。你只需要拥有一个EOS账户即可。

其次,Newdex并没有使用智能合约。没有智能合约就不能确认特定加密货币的真实性。



这一切都是因为Newdex的开发者利用了去中心化交易所(DEX)这个噱头,把这个平台也包装成了一个DEX。事实上,它只是伪装成一个资产交易所,背地里依然是由单个账户控制交易,非常的中心化。

而且某reddit网友其实在攻击之前就发现了这个平台的问题:


这个平台的登录和交易界面只是假象,让用户觉得自己在使用DEX,但事实上你并未把资金发送到任何智能合约,只有一个很普通的EOS账户‘newdexpocket’,根本不是通过智能合约运作的。



经证实,这个“newdexpocket”账户根本不包含任何智能合约代码,因此,Newdex的用户的资金只是在个人账户之间进行转移。

更糟糕的是,这个钱包的持有者和动态权限采用了同一个密钥。这就很容易造成单一攻击向量。大多数交易所至少还会用多重签名钱包。

不过本次攻击和密钥无关,只是因为这个交易所的开发者根本没有通过智能合约来保护用户资金。(巴比特)

⼀个通杀绝大多数交易平台的 XSS 0day 漏洞

leek 发表了文章 • 2018-09-19 14:13 • 来自相关话题

慢雾区前后两位白帽黑客给我们反馈了这个 XSS 0day,第一位反馈的很早,但他自己把这个漏洞危害等级定义为低危,我们服务的交易所平台修复后,我们也没特别在意,直到第二位给我们再次提及这个 XSS。

昨天,我们开始对我们服务的所有客户下发这个预警,内容:


0day 漏洞预警


根据慢雾区匿名情报,通用 K 线展示 JS 库 TradingView 存在 XSS 0day 漏洞,可绕过 Cloudflare 等防御机制。该漏洞被利用会导致用户帐号权限被盗、恶意操作等造成资产损失。请确认是否使用到该组件,如有使用到请与我们联系。

当确定我们的客户修复后,我们开始对外发声,但隐去了存在漏洞的具体组件:TradingView。今天我们发现漏洞细节已经开始失控,特出此文,针对这个漏洞做个剖析。


防御方案


我们先给出当时我们同步给我们客户的临时快速解决方案:

TradingView 库 bundles ⽬目录下有个 library 开头的 js ⽂文件,检查这个⽂文件是否存在漏漏洞洞代码: getScript(urlParams.indicatorsFile)

如果存在,临时解决⽅方案可以把代码改为:getScript(""),如有问题和我们反馈。

聪明的前端黑只要看了防御⽅案就会知道怎么去构造这个利用。


漏洞细节


TradingView 是做 K 线展示最流行的 JS 库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:






通过分析,触发最小简化的链接是:






必须存在三个参数:

disabledFeatures
enabledFeatures
indicatorsFile


indicatorsFile 很好理解,而且利用逻辑非常简单,代码所在位置:TradingView 库 bundles 目录下有个 library 开头的 js 文件,触发点如下:






$.getScript 非常的熟悉了,在 jQuery 时代就已经实战了多次,这个函数核心代码是:






看代码,可以动态创建一个 script 标签对象,远程加载我们提供的 js 文件:

https://xssor.io/s/x.js

那么,另外两个参数(disabledFeatures 与 enabledFeatures)为什么是必要的?继续看代码(同样是 library 开头的那个 js 文件):






这段代码在触发点之前,如果没有提供合法的 disabledFeatures 及 enabledFeatures 参数格式,这段代码就会因为报错而没法继续。很容易知道,合法参数格式只要满足这两个参数是 JSON 格式即可。所以,最终利用链接是:







漏洞威力


TradingView 是做 K 线展示最流行的 JS 库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:

为什么我们会说这个 XSS 可以绕过 Cloudflare 等防御机制?这个“等”其实还包括了浏览器内置的 XSS 防御机制。原因很简单,因为这是一个 DOM XSS,DOM XSS 的优点是不需要经过服务端,不用面对服务端的防御机制,同时不会在服务端留下日志(除非自己特别去处理)。也正是因为这是 DOM XSS 且非常简单的触发方式,浏览器端的 XSS 防御机制也没触发。

然后这个 XSS 的触发域和目标重要业务所在的域几乎没有做什么分离操作,利用代码其实非常好写,比如直接基于 $ 里的一堆方法就可以轻易获取目标平台的目标用户隐私,甚至偷偷发起一些高级操作。

有经验的攻击者,是知道如何大批量找到目标的,然后写出漂亮的利用代码。这里就不展开了。


最后做个补充:

前端黑里,需要特别去做好的安全有:XSS、CSRF、CORS、Cookie 安全、HTTP 响应头安全、第三方 js 安全、第三方 JSON 安全、HTTPS/HSTS 安全、本地储存安全等。


文章来源:慢雾科技
作者:慢雾安全团队引子 查看全部
cryptocurrency-exchange-software-740x364.jpg

慢雾区前后两位白帽黑客给我们反馈了这个 XSS 0day,第一位反馈的很早,但他自己把这个漏洞危害等级定义为低危,我们服务的交易所平台修复后,我们也没特别在意,直到第二位给我们再次提及这个 XSS。

昨天,我们开始对我们服务的所有客户下发这个预警,内容:


0day 漏洞预警


根据慢雾区匿名情报,通用 K 线展示 JS 库 TradingView 存在 XSS 0day 漏洞,可绕过 Cloudflare 等防御机制。该漏洞被利用会导致用户帐号权限被盗、恶意操作等造成资产损失。请确认是否使用到该组件,如有使用到请与我们联系。

当确定我们的客户修复后,我们开始对外发声,但隐去了存在漏洞的具体组件:TradingView。今天我们发现漏洞细节已经开始失控,特出此文,针对这个漏洞做个剖析。


防御方案


我们先给出当时我们同步给我们客户的临时快速解决方案:

TradingView 库 bundles ⽬目录下有个 library 开头的 js ⽂文件,检查这个⽂文件是否存在漏漏洞洞代码: getScript(urlParams.indicatorsFile)

如果存在,临时解决⽅方案可以把代码改为:getScript(""),如有问题和我们反馈。

聪明的前端黑只要看了防御⽅案就会知道怎么去构造这个利用。


漏洞细节


TradingView 是做 K 线展示最流行的 JS 库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:

b78c52ce-f5cf-5fcd-94a2-a5fc1277eba1.jpg


通过分析,触发最小简化的链接是:

16646d91-9580-56ac-985d-d16c7baa5e3d_2UEcMIO.jpg


必须存在三个参数:


disabledFeatures
enabledFeatures
indicatorsFile



indicatorsFile 很好理解,而且利用逻辑非常简单,代码所在位置:TradingView 库 bundles 目录下有个 library 开头的 js 文件,触发点如下:

c896202e-0543-52bc-96ef-624e79567a5f_8tEAdA7.jpg


$.getScript 非常的熟悉了,在 jQuery 时代就已经实战了多次,这个函数核心代码是:

b92c7716-9614-5dfb-b075-38d850237a06.jpg


看代码,可以动态创建一个 script 标签对象,远程加载我们提供的 js 文件:

https://xssor.io/s/x.js

那么,另外两个参数(disabledFeatures 与 enabledFeatures)为什么是必要的?继续看代码(同样是 library 开头的那个 js 文件):

16646d91-9580-56ac-985d-d16c7baa5e3d.jpg


这段代码在触发点之前,如果没有提供合法的 disabledFeatures 及 enabledFeatures 参数格式,这段代码就会因为报错而没法继续。很容易知道,合法参数格式只要满足这两个参数是 JSON 格式即可。所以,最终利用链接是:

9b2a1bbb-62dc-5256-ae32-fae1d5260d8f.jpg



漏洞威力


TradingView 是做 K 线展示最流行的 JS 库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:

为什么我们会说这个 XSS 可以绕过 Cloudflare 等防御机制?这个“等”其实还包括了浏览器内置的 XSS 防御机制。原因很简单,因为这是一个 DOM XSS,DOM XSS 的优点是不需要经过服务端,不用面对服务端的防御机制,同时不会在服务端留下日志(除非自己特别去处理)。也正是因为这是 DOM XSS 且非常简单的触发方式,浏览器端的 XSS 防御机制也没触发。

然后这个 XSS 的触发域和目标重要业务所在的域几乎没有做什么分离操作,利用代码其实非常好写,比如直接基于 $ 里的一堆方法就可以轻易获取目标平台的目标用户隐私,甚至偷偷发起一些高级操作。

有经验的攻击者,是知道如何大批量找到目标的,然后写出漂亮的利用代码。这里就不展开了。


最后做个补充:

前端黑里,需要特别去做好的安全有:XSS、CSRF、CORS、Cookie 安全、HTTP 响应头安全、第三方 js 安全、第三方 JSON 安全、HTTPS/HSTS 安全、本地储存安全等。


文章来源:慢雾科技
作者:慢雾安全团队引子