Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - logxing

#1
首发链接:https://talk.dacplay.org/index.php?topic=12906.0

【攻击概况】
2016年6月15日,攻击者发动了首次攻击(https://blocks.dacplay.org/blocks/block?id=3630918),该攻击无中生有了2000万PLS。随后攻击者又发出了2次攻击,累计无中生有了共计1亿PLS,其中4000万PLS转账到云币卖掉并换成BTC成功提现。我们于2016年6月16日早上发现区块链上的异常交易数据,立刻确认问题并于1小时内紧急发布了受托人专用客户端,避免了损失进一步扩大。

【攻击原理】
本次攻击是利用了整数溢出原理。当发生一笔转账交易时,提取与存入要求相同。同时BTS1允许一笔交易中有多笔存入。攻击者构造了一个转账交易,提取为0.5PLS,存入为3笔,分别是92,233,720,368,547.7800 PLS,92,233,700,368,547.7800 PLS和20,000,000.0000 PLS。在纯粹的数学比较中,0.5肯定不等于92,233,720,368,547.7800 + 92,233,700,368,547.7800 + 20,000,000.0000。但是在程序运行中,由于一个整数在内存中的存储字节是有限的,当相加和超出整数的最大范围时会发生溢出,也就是程序判定两者相等。其中前两笔超大数存入实际导致该地址余额为负数,是无法进一步转账的,但第三笔2000万的存入是可以进一步转账的。这就是导致本次攻击的基本原理。

目前我们已经针对该问题发布了新版PLAY客户端,目前最新版为0.4.5版。在新版本中已经修正了该问题。请所有用户及时更新。

【问题的由来】
我们已经确认该问题来自BTS1的代码,不是PLAY的新增代码。

可以确定,至少在BTS1的早期版本中存在该问题。在BTS1的最终版本0.9.3c中,转账代码仍然没有修复该问题,但我们并不确定BTS1开发者是否通过其他方式已经修正了该问题(要修正该问题,不一定非要通过修改转账代码来进行)。PLAY作为BTS1代码的fork,我们始终关注着BTS1的进展,但我们并未见过该问题相关的issue。我们也不确定,BTS1上是否曾经发生过类似攻击。

此外,据我们的初步研究,由于BTS2采用了不同的实现方式,从原理上BTS2很可能不存在该问题。

注意,以上关于BTS的分析是我们的初步研究结论,仅作为开源社区之间的友情提示,并不能保证绝对正确性。关于BTS客户端以及区块链的情况,一切以BTS开发者的公告为准。

PLAY开发组对广大PLS持有人表示诚挚的道歉。我们将来会加强代码的审核和测试,尽最大可能避免类似问题发生。

【补救措施】
本次攻击,攻击者共成功售出4000万PLS,即市场PLS流通总量增加了4000万,该笔资金已经分布在并无过错的购买者手中,已经无法追回。因此我们将销毁储备中的4000万PLS来确保PLS的流通总量不变。攻击者剩余的攻击所得6000万PLS在新版本中已经失效,不会对流通总量有影响。

【风险提示】
值得一提的是,就在PLAY被攻击的第二天,运行于以太之上的著名合约DAO也发生了被攻击事件。DAO攻击属于智能合约攻击,与PLAY此次发生的攻击都属于直接针对区块链数据的攻击,而不同于以往常见的盗取私钥的传统黑客行为。我们深深感受到区块链产品仍处于相当早期的研发阶段,请各位参与者在充分理解风险的前提下谨慎参与。
#2
目前已经确认1个bug,请大家暂停转账和交易PLS,等待新版本发布。

之后会对该问题及影响做详细描述。
#3
DAC PLAY / Re: We got scammed?
March 15, 2016, 07:45:04 AM
Soon there will be an update with dice game base on javascript & google V8 engine.
#4
DAC PLAY / Re: any update?
March 02, 2016, 05:59:38 AM
Soon there will be an update with dice game base on javascript & google V8 engine.
#5
DAC PLAY / Re: What happened to PlayTalk?
January 28, 2016, 11:10:58 AM
Quote from: TravelsAsia on January 27, 2016, 01:30:24 PM
The last post was November 30th. Is this project still alive?
Yes.
#6
DAC PLAY / Re: My DACPLAY blockchain is different
December 14, 2015, 03:34:56 AM
You can download chain data directly from http://pan.baidu.com/s/1bn0ifKz#path=%252FPLAY_blockchain.
It is Chinese page.
#7
Everyone can express his own opinion. It is not about "Chinese Community" or "most Chinese".
Stop misleading the public.
Focus on the proposal itself please.
#8
Stop using the word "Chinese Community" please!
#9
Yes, let's do it!
#11

Now you can get all the infomation about DACPLAY just by dacplay.org.

Download Latest Client https://dacplay.org/

Blockchain explorer https://blocks.dacplay.org/ or http://play.bitsharesblocks.com/

Forum https://talk.dacplay.org/

wiki https://wiki.dacplay.org/

You can find all these link at the top of  https://dacplay.org/.

Now just remember only one Domain dacplay.org, you can get all the infomation about DACPLAY.
#12
为方便用户集中获取信息,今后DACPLAY的全部信息都将集中于dacplay.org网站。

客户端下载访问https://dacplay.org/cn/即可看到。

区块链浏览https://blocks.dacplay.org/

论坛https://talk.dacplay.org/

wikihttps://wiki.dacplay.org/

以上链接你也可以在https://dacplay.org/的顶部找到。
现在只需要记住一个域名https://dacplay.org/,你就可以获取关于PLAY的全部信息了。
#13
DAC PLAY / Re: What happened to PlayTalk?
November 24, 2015, 05:57:15 AM
Now we use https://talk.dacplay.org/.

We have not the ownership of domain playtalk.org.
#14
DAC PLAY / Re: PLS Large Amount Trade Service
November 08, 2015, 03:37:48 AM
Quote from: cass on November 07, 2015, 05:59:23 PM
how you would define a larger trade, if i may ask?

+10 BTC / +25 BTC / +50 BTC ?

I think 10BTC is a larger trade. +2M PLS will be ok.
#15
Quote from: Xeldal on November 07, 2015, 01:25:47 PM
Quote from: logxing on November 07, 2015, 07:14:06 AM
I checked %appdata% and "C:\Program Files\BitShares 2\bin", can not find wallet data.
Pls help. Thanks.

I found my wallet.json located at "C:\Program Files\BitShares 2\bin\wallet.json"

It may be named something different if when you run cli_wallet.exe you specify with "-w NameWallet"

Not using the -w  , I think the default is wallet.json


Thanks, I didn't use "-w". I set password, unlock, and import a privatekey.
I can't find wallet.json at "C:\Program Files\BitShares 2\bin".
And then when I restart cli_wallet.exe, command "is_new" returns TRUE.
The wallet is blank.
Seems failed when save file to hard disk.