區塊鏈應用交互與安全

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獎品。

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