You are viewing a single comment's thread from:

RE: [EpicDice] 內心不夠亂,暫時停止營業

in #sct5 years ago

简单看了一下,这完全是EpicDice规则的漏洞嘛
任何人都可以操作,完全和见证人没有关系
(你也可以生成一个符合条件的txid,然后广播)

被掌握出塊的見證人以及略欠周詳的掌握txid產生過程細節不足

作为一个见证人,表示见证人不背这锅

关于txid,其实就是transaction的HASH,所以通过构造transaction来生成符合规则的txid完全是没有问题的

我以前写过一个从transaction中获取txid的帖子,https://steemit.com/steemdev/@oflyhigh/steem-transaction-txid
自己构造transaction也是完全没有问题的,可惜最近太忙,没去研究这个EpicDice,否则发现漏洞的可能性还是极大的

至于乱数来源,我觉得用整个块的hash啥的应该问题不大吧?这个仅供参考,被盗概不负责。😀

Sort:  

請問Epidice骰出的數字是從txid衍生出來的,然後mys是利用預先算出下注的txid, 算會骰出數字來獲利?所以在之前Epidice制度, 這跟mys是否是見證人無關嗎?
整塊的hash的來源應該是雜湊整個塊包含的交易吧?那的確更增加亂度。如果要用這作弊,是不是就真的要是見證人,剛好輪到出塊時才好作弊?

是的,其实就是Epidice的漏洞,谁发现了都可以利用,与见证人无关。

整块HASH只能作为随机数种子之一,不能直接使用的,否则一个块里大家都投注,算谁赢?

比如算法中f(txid)可以改成f(block_hash+txid),其中block_hash用投注区块的下一区块的,这样见证人想作弊也要傻眼吧?

現行steem如果一個見證人的節點沒有打包好負責出塊區間內所有廣播的交易出塊,有其他補充措施嗎?若沒有,用f(block_hash+txid),其中txid是可控的,如果攻擊者算好想要的結果,然後攻擊該時段的負責見證人,阻斷他打包接下來的交易,可能可以控制block_hash+txid, 得到預期的結果。如果算上攻擊的成本,作弊贏錢還是有利益,這種攻擊可行嗎?

见证人的出块节点都是隐藏的
很难攻击到见证人的出块节点

那接收交易廣播的節點總要表明身分說自己是節點,這應該是明顯攻擊目標吧?排名靠前的節點或許防禦比較強不好攻,可能有多個伺服器連結,有明有暗。不過等剛好輪替到排後面的見證人,或許他的節點就只運行一台伺服器,成功機率應該能提升吧?

见证人节点只负责出块,API节点就那么几个啦都是独立的。

突然想起来,或者在自己出块前的一块广播出去一个txid,然后自己这块筛选出一个符合条件的块hash,有一定的攻击可能。

不过这样作恶的成本太高了,能实现这种攻击的,应该不屑得赚这点钱吧?

我對這些不清楚。結構是不是
使用者—前端程式—api節點—見証人節點
Api只有幾個,他們的防禦力夠嗎?API節點是誰負責運作、管理的?

哎,其實我也是略看一下,哈!但是mark有提到見證人利用職務之便的之類的說法,是說錯了囉?

ED應該聘O哥當顧問的~~ @fr3eze,參考一下建議吧!(30 STEEM釣出O哥)

确实是和见证人的职务无关,够深入明白区块是如何产生的就足以发动攻击。刘美女这重金下的,真是有心了啊。

@oflyhigh 有兴趣来当安全/开发顾问那是最好不过了,如果不介意酬劳是 EPC 的话。和 mys 私下讨论了一阵,似乎 nextcolony 使用的 (txid + block prev + block hash)是不依赖线下乱数最安全的做法,值得研究一番,不知大神有什么看法?Anyway 现在 ED 已经加入了传统的 server seed 配上 txid 来恢复营业了。可以完全使用线上产生的乱数那当然是最好。

不是发啥酬劳的问题,而是水平真的有限,哈哈。

@john371911 在我的帖子下边的一条回复挺有参考价值的
https://steemit.com/cn/@oflyhigh/epicdice-and#@john371911/re-oflyhigh-px3rbk

仔细想了一下:
算法中f(txid)改成f(next_block_hash+txid),其中next_block_hash为投注区块的下一区块的块hash

这样或许安全了

哈哈,做顾问得水平完全不够
不过txid这事我恰巧懂一丁点
30STEEM留着钓大鱼吧😀

公正公開其實不怎麼,該你的就是你的,不該你的我也不會給。你也無法拒絕我的轉帳的。哈哈哈~~~