区块链应用交互与安全

1、与用户、钱包的交互

私钥保存是否安全,能否保证正确调用私钥的情况下,私钥不被存储和窃取

2、与链的交互

交易发送节点是否足够安全,能否被拦截或篡改。

3、合约安全

智能合约做为Dapp的数据与通讯的基石,合约的开发更应该注重简洁,安全. 智能合约的重要性在于它处于透明的代码状态所有人都可以审视它的代码、尝试找出漏洞并攻击,而且只要有漏洞并攻击,往往项目方付出的代价是巨大且不可挽回的,这就相对于以往传统互联网项目面对更大的挑战。
在合约开发中首先注重的是如果在出现问题时快速发现问题和解决问题,要对所有将来预计要出现的问题、甚至于预计不会出现的问题进行预防。如果发生了攻击行为,如怎么最大程度的保障损失降低到最低。
第一我们要建立完善的预警机制,在发生不合理的行为时迅速报警,如在一个中奖率50%游戏中,连续中奖3次、5次、10次,应该怎么报警,什么级别的报警;
第二就是报警后的响应机制,是对应用户的历史操作,应不应该对用户做出限制,以及限制的时效和合理性,如果大面积发生问题,要有合约的停止机制,这些都需要综合考量;
第三就是合约的恢复机制考量,单用户如果恢复,合约如何修复,甚至如果复写,都是我们预开发时应该考虑的东西。
第四就是我们要在速度和安全之间考量,如发生交易生为时,确认需要的时间和把交易尽量散列,甚至限制数量
第五不使用和收集用户的支付权限,这一点很重要,可减少出现攻击的可能性。
第六就是保持合约的简洁、逻辑的简单、模块化、让你的代码清晰明确而不是复杂和臃肿。
第七 保持你的代码处于最新的状态,同步官方的漏洞,尽量采用最新的库和安全技术。

4、后台服务通讯安全

1)节点的安全,一般我们在设计dapp时,甚至与跨链的Dapp时,为了正确和快速的处理数据和用户交易,我们会采用自己独立的节点以确保安全,那么如何确保使用的节点是安全的并且不会被攻击?我们首先要确保我们使用的节点是数据的准确和最新状态;其次我们要建立多节点轮询交互机制;再有就是问题节点快速淘汰机制。
2)数据交互安全,如何确保后台服务和用户之间的通讯不被篡改、拦截?我们要对用户进行验证; 对非重要参数进行hash 校验,对重要参数进行高级别的加解密措施。
3)信息安全:建立中间交互层,限定信息的访问者,不收集和存储用户私密信息。

5、Dapp相互安全

这一点往往是攻击的重点和最容易被忽视的地方 :在Dapp足够安全的前提下:新Dapp与其它已上线Dapp是否有交叉漏洞,新Dapp是否与其它的非Dapp活动有冲。这里我们举两个例子;
1)Dapp1新上线打开空投5个Token然后鼓励用户通过购买、邀请等行为凑够10个Token就可以兑换奖品,而原有Dapp2上有冲1个Token体验抽奖赠送5个Token活动,这样用户可以先Dapp2 再Dapp1用1个Token就可以获取10个Token的奖品。
2)同样的Dapp1活动,而此时线下推广有空投5token的活动,造成了用户交叉,这样用户可以免费获取10个token奖品。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章