作者 | 复杂美区块链
出品 | 区块链大本营(blockchain_camp)
经过2018一整年的发展,区块链的应用落地普遍增加,在公链领域中备受瞩目的链上应用DAPP开发也随着EOS主网的开源而白热化。
根据DappReview平台统计,EOS 2019年第一季度的DAPP交易额达$1.72B,活跃用户达274.93K,交易笔数达282.99M。
可伴随着这漂亮数据而来的却是EOS Dapp智能合约漏洞问题,其中大部分成功攻击的原因都和随机数漏洞有关,那如何优化这个问题呢?
在复杂美开源的Chain33区块链底层架构中,有一个共识模块叫作SPOS(safe pos),它通过Ticket实现POS的挖矿逻辑。
在这篇文章中,我将详细讲解SPOS模块的实现原理,以及其解决随机数漏洞的方式。
在Chain33的公链案例比特元中,用户使用钱包账户中BTY余额购票(挖矿权,目前10000个BTY可购买一票),一票对应一个唯一的TicketID,同时拥有一份挖矿权;一个区块只能由一票挖出,实际的挖矿几率各票均分(如全网有N张票,则一张票挖到矿的几率为1/N)。
Ticket挖矿流程如下所示:
-
钱包:定期检查账户中的BTY余额来购买票, 当满足购票条件后构造一条买票交易发往区块链。
-
共识</