自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

六個(gè)簡(jiǎn)單的步驟來(lái)保護(hù)你的以太坊智能合約安全

開(kāi)發(fā) 前端
以太坊智能合約是用Solidity編寫(xiě)的,這是一種類似于C++和Javascript的語(yǔ)言。以太坊智能合約在以太坊區(qū)塊鏈上運(yùn)行,其執(zhí)行由以太坊虛擬機(jī)(EVM)管理--這是一臺(tái)執(zhí)行以太坊智能合約的虛擬超級(jí)計(jì)算機(jī),并分布在世界各地的多個(gè)節(jié)點(diǎn)上。

以太坊使用 "智能合約",或建立在區(qū)塊鏈技術(shù)上的可編程軟件程序,為去中心化的應(yīng)用程序(dApps)、不可偽造的代幣(NFT)和去中心化的自治組織(DAO)提供動(dòng)力。以太坊智能合約提供的豐富功能使web3開(kāi)發(fā)者能夠創(chuàng)建復(fù)雜的基于區(qū)塊鏈的應(yīng)用程序。

然而,智能合約的不穩(wěn)定性增加了漏洞、bug和錯(cuò)誤,隨著加密貨幣市值達(dá)到數(shù)萬(wàn)億美元,黑帽黑客正在尋找智能合約中可以利用的弱點(diǎn)。

在這篇文章中,我們將介紹智能合約安全的最佳做法,故障保護(hù)措施,以及用于加強(qiáng)智能合約安全的智能合約分析工具。

以太坊智能合約簡(jiǎn)介

以太坊智能合約是用Solidity編寫(xiě)的,這是一種類似于C++和Javascript的語(yǔ)言。以太坊智能合約在以太坊區(qū)塊鏈上運(yùn)行,其執(zhí)行由以太坊虛擬機(jī)(EVM)管理--這是一臺(tái)執(zhí)行以太坊智能合約的虛擬超級(jí)計(jì)算機(jī),并分布在世界各地的多個(gè)節(jié)點(diǎn)上。

以太坊智能合約的架構(gòu)可能與其他合約不同。智能合約可以是功能有限的簡(jiǎn)單合約,也可以是具有多層次功能的復(fù)雜合約。

智能合約的4個(gè)好處

無(wú)論他們的預(yù)期設(shè)計(jì)如何,智能合約都提供了相同的好處。

1. 不變性

智能合約不能被輕易修改(除非它被預(yù)先編程),這使得它們可以抵抗未經(jīng)批準(zhǔn)的改動(dòng)。一旦合同被驗(yàn)證并在區(qū)塊鏈上存活,要改變或升級(jí)智能合同的代碼需要很大的努力。

2. 信任

根據(jù)設(shè)計(jì),智能合約在滿足預(yù)定條件時(shí)自動(dòng)執(zhí)行一組指令。這發(fā)生在沒(méi)有外部控制的情況下,所以參與的用戶可以信任代碼在沒(méi)有人類中介的情況下工作。兩個(gè)人可以在不信任對(duì)方的情況下進(jìn)行交易,因?yàn)樗麄冎乐悄芎霞s將充當(dāng)一個(gè)公平的仲裁者。

3. 成本效益

智能合約與法律文書(shū)的結(jié)合,(智能法律合約)可以簡(jiǎn)化個(gè)人之間的交易,消除對(duì)中間人的需求。由于沒(méi)有中間人的補(bǔ)償,各方可以在執(zhí)行和實(shí)施協(xié)議上花費(fèi)更少。

4. 速度

每個(gè)智能合約都在條件性編程(即如果這樣,那么那樣)上運(yùn)行。當(dāng)合同的邏輯規(guī)則得到滿足時(shí),這些程序化的行動(dòng)立即發(fā)生。因此,交易可以比傳統(tǒng)系統(tǒng)更快發(fā)生。

保護(hù)以太坊智能合約的6種行之有效的方法

在區(qū)塊鏈上運(yùn)行的智能合約將為世界各地的用戶改變治理、金融、物聯(lián)網(wǎng)和許多其他行業(yè)。然而,由于開(kāi)發(fā)人員必須考慮所有的安全挑戰(zhàn),智能合約的安全漏洞必須得到認(rèn)真對(duì)待。

以下是web3開(kāi)發(fā)者在以太坊和EVM兼容的區(qū)塊鏈上構(gòu)建dapp時(shí)必須采用的一些基本智能合約安全最佳實(shí)踐。

1. 嚴(yán)格執(zhí)行智能合約審計(jì)

在2022年,在沒(méi)有安全審計(jì)的情況下部署智能合約應(yīng)該是一種犯罪。即便如此,許多開(kāi)發(fā)者仍在推出未經(jīng)審計(jì)的智能合約。來(lái)自Certik的DeFi安全狀況報(bào)告顯示,大多數(shù)被利用的智能合約沒(méi)有得到安全審計(jì)。

可以理解的是,聘請(qǐng)智能合約審計(jì)師的費(fèi)用并不便宜。但正確的安全檢查可以為你在接下來(lái)的日子里節(jié)省更多。在DeFi,數(shù)百萬(wàn)人在利用拙劣代碼的弱點(diǎn)進(jìn)行的黑客攻擊中損失。

一個(gè)好的區(qū)塊鏈安全審計(jì)師遵循一個(gè)成熟的審計(jì)過(guò)程,以發(fā)現(xiàn)智能合約代碼中的缺陷,并發(fā)現(xiàn)在開(kāi)發(fā)過(guò)程中未被注意到的錯(cuò)誤。此外,他們可以在部署前對(duì)智能合約的修復(fù)和優(yōu)化給出有用的建議。

2. 測(cè)試你的代碼

測(cè)試、測(cè)試、再測(cè)試你的代碼,以發(fā)現(xiàn)錯(cuò)誤和其他漏洞。

嚴(yán)格的測(cè)試也許是確保智能合約在部署到主網(wǎng)后按預(yù)期執(zhí)行的最簡(jiǎn)單和最有效的方法。

將智能合約部署在測(cè)試網(wǎng)絡(luò)上,觀察它是否有任何異常。這樣,你就可以知道協(xié)議是否按照它應(yīng)該的方式運(yùn)行。

推薦用于測(cè)試Ethereum智能合約的測(cè)試網(wǎng)包括:

? Rinkeby

? Kovan

? Ropsten

? Truffle

需要測(cè)試網(wǎng)ETH嗎?使用Alchemy的免費(fèi)Rinkeby ETH龍頭,開(kāi)始測(cè)試你的合約。

運(yùn)行單元測(cè)試來(lái)隔離單個(gè)代碼片段

單元測(cè)試也是提高合約安全性的一個(gè)好主意。單元測(cè)試著眼于你的代碼的單一部分,所以如果發(fā)生故障,你可以知道什么地方出錯(cuò)了。

在將每個(gè)新功能整合到智能合約之前,最好為其運(yùn)行單元測(cè)試。記住,智能合約在本質(zhì)上是不可改變的,如果以后出現(xiàn)漏洞,就不可能對(duì)代碼進(jìn)行修補(bǔ)。

3. 與同僚一起審查代碼

如果你在一個(gè)團(tuán)隊(duì)中工作,確保每個(gè)成員都進(jìn)行獨(dú)立的代碼審計(jì)并提供詳細(xì)的反饋。單獨(dú)的開(kāi)發(fā)人員可能希望在整個(gè)開(kāi)發(fā)過(guò)程中找到一個(gè)值得信賴的同事來(lái)同行審查他們的智能合約代碼,以提高安全性。

4. 降低軟件的復(fù)雜度

軟件安全的最終規(guī)則是保持代碼簡(jiǎn)單。代碼中的復(fù)雜性越高,變量就越多,從而增加了失敗的機(jī)會(huì)。

正如荷蘭計(jì)算機(jī)科學(xué)家Edsger W. Dijkstra所說(shuō)。"簡(jiǎn)單是可靠性的先決條件"。

這并不意味著你應(yīng)該避免構(gòu)建功能豐富的智能合約,然而,你應(yīng)該在一開(kāi)始就從簡(jiǎn)單的架構(gòu)開(kāi)始,并隨著時(shí)間的推移使用干凈的代碼和熟悉的模式慢慢擴(kuò)展功能。

5. 實(shí)施故障安全保護(hù)

編寫(xiě)Ethereum智能合約時(shí)的一條經(jīng)驗(yàn)法則是 "為失敗做準(zhǔn)備"。無(wú)論你測(cè)試多少次,你都不可能涵蓋所有可能影響智能合約的錯(cuò)誤。因此,為你的Ethereum智能合約設(shè)計(jì)一個(gè)故障安全機(jī)制是必要的。

故障安全模式對(duì)于限制惡意攻擊的損害是很有用的。它們被設(shè)計(jì)為一旦檢測(cè)到異常的智能合約活動(dòng)就會(huì)觸發(fā)。

智能合約故障安全保護(hù)的4個(gè)例子

兼容EVM的智能合約的故障安全保護(hù)的例子包括。

1. 短路器

當(dāng)發(fā)現(xiàn)錯(cuò)誤和漏洞時(shí),"短路器 "可以用來(lái)阻止功能的執(zhí)行。對(duì)于短路器,你有兩個(gè)選擇來(lái)激活它們。

? 給予受信任的管理員以觸發(fā)斷路器的權(quán)限

? 對(duì)短路機(jī)制進(jìn)行編程,使其在滿足預(yù)設(shè)條件后運(yùn)行。

因?yàn)橹悄芎霞s是自動(dòng)化的,當(dāng)錯(cuò)誤發(fā)生時(shí),短路器會(huì)限制操作。

2. 速度緩沖器

減速器是一種減緩惡意行為的防故障機(jī)制,盡管它不會(huì)阻止攻擊,但減速器給管理員足夠的時(shí)間來(lái)立即采取糾正措施。

加速器的一個(gè)主要例子來(lái)自于2016年臭名昭著的DAO黑客攻擊。該程序確保在27天后才有可能從DAO中提取資金,這使得資金一直在智能合約中,直到開(kāi)發(fā)者能夠取回它們。

3. 速率限制

速率限制可以控制特定時(shí)間范圍內(nèi)調(diào)用函數(shù)的頻率,提供了一個(gè)權(quán)宜之計(jì),以防止重復(fù)調(diào)用函數(shù)以耗盡鎖定的資金(如重入攻擊)、發(fā)行大量ETH代幣或執(zhí)行多次提款的漏洞。

此外,合同層面的速率限制可以用來(lái)限制在一個(gè)時(shí)間間隔內(nèi)發(fā)行代幣的數(shù)量。

鑒于不良行為者在短時(shí)間內(nèi)發(fā)行大量代幣的漏洞數(shù)量,速率限制是加強(qiáng)智能合約安全的良好預(yù)防措施。

4. 余額限制

余額限制通過(guò)限制單個(gè)智能合約中可鎖定的ETH總量來(lái)降低智能合約風(fēng)險(xiǎn)。

余額限制將監(jiān)測(cè)智能合約中持有的資金余額。一旦達(dá)到閾值,該機(jī)制會(huì)觸發(fā)自動(dòng)拒絕后續(xù)付款。

如果你正在推出一個(gè)新的智能合約,在你對(duì)合約的安全性有信心之前,余額限制可能是一個(gè)很好的預(yù)防性安全措施。

5. 設(shè)計(jì)安全的訪問(wèn)控制機(jī)制

訪問(wèn)控制機(jī)制決定了誰(shuí)可以管理和改變合約的某些元素,它是你的Ethereum智能合約架構(gòu)的一個(gè)關(guān)鍵路徑。

如果錯(cuò)誤的人得到所有權(quán)或管理權(quán)限,他們可以重新編程合同,執(zhí)行惡意交易。

為了防止錯(cuò)誤的人獲得管理權(quán)限,確保敏感功能需要多級(jí)授權(quán)才能訪問(wèn)。

Web3開(kāi)發(fā)者應(yīng)該知道的4個(gè)智能合約安全工具

智能合約的安全性是很?chē)?yán)肅的。這里有一些分析工具,可以幫助你保護(hù)你的智能合約,防止被利用,bug,和漏洞。

1. Octopus

Octopus是一個(gè)高功能的分析工具,用于分析智能合約的字節(jié)碼,深入了解內(nèi)部行為。它與建立在流行區(qū)塊鏈上的智能合約兼容,如NEO、比特幣,當(dāng)然還有以太坊。

2. Oyente

Oyente是一個(gè)自動(dòng)化的智能合約審計(jì)工具,用于識(shí)別常見(jiàn)的智能合約安全漏洞。它包括一個(gè)驗(yàn)證器、資源管理器、CoreAnalysis工具和CGF構(gòu)建器。每個(gè)組件都執(zhí)行一個(gè)關(guān)鍵功能;例如,資源管理器運(yùn)行智能合約,CoreAnalysis檢測(cè)所產(chǎn)生的輸出中的任何問(wèn)題。

3. Mythril

Mythril是一個(gè)由ConSensys建立的智能合約安全工具,對(duì)測(cè)試以太坊虛擬機(jī)(EVM)字節(jié)碼很有用。它使用污點(diǎn)分析、SMT解算和符號(hào)執(zhí)行的組合來(lái)發(fā)現(xiàn)智能合約代碼中的漏洞。

4. Securify

Securify是一個(gè)由Ethereum基金會(huì)支持的智能合約漏洞掃描器。這個(gè)流行的以太坊智能合約掃描器可以檢測(cè)到多達(dá)37個(gè)智能合約漏洞,并實(shí)現(xiàn)了針對(duì)上下文的靜態(tài)分析,以獲得更準(zhǔn)確的安全報(bào)告。

用智能合約安全的最佳實(shí)踐保護(hù)你的下一個(gè)項(xiàng)目

當(dāng)正確實(shí)施時(shí),智能合約技術(shù)可以被調(diào)整以支持各種使用情況。然而,智能合約是代碼,由人類編寫(xiě),有時(shí)并不完美。

作為一個(gè)智能合約的開(kāi)發(fā)者,你在編寫(xiě)代碼時(shí)必須遵循安全的最佳實(shí)踐,包括運(yùn)行詳細(xì)的安全分析,利用多種安全分析工具和資源,獲得同行評(píng)審,簡(jiǎn)化代碼結(jié)構(gòu),并實(shí)施故障安全機(jī)制。

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2023-05-05 08:00:00

2022-01-06 11:49:59

以太坊漏洞安全觀察

2011-10-14 10:48:02

2021-09-26 09:26:46

開(kāi)發(fā)安全CICD管道

2011-12-15 09:38:38

100Gb以太網(wǎng)100Gb以太網(wǎng)

2019-10-08 11:48:20

PythonGitHub程序員

2022-04-29 17:03:37

WordPress開(kāi)發(fā)者網(wǎng)站安全

2023-11-03 15:38:17

2010-09-07 14:42:28

2021-06-22 14:53:35

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2023-01-31 11:22:34

2024-11-08 17:07:56

2021-01-26 00:30:05

HTTPSWordPress網(wǎng)站網(wǎng)站安全

2019-02-20 13:25:28

無(wú)邊界網(wǎng)絡(luò)網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2022-04-07 12:03:28

云安全CSPM云計(jì)算

2018-09-03 05:03:43

2021-12-30 21:45:55

物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)安全IOT

2021-07-13 14:45:49

網(wǎng)絡(luò)戰(zhàn)略網(wǎng)絡(luò)威脅安全技術(shù)

2010-08-30 11:28:53

DHCP工作過(guò)程

2021-10-21 08:00:00

開(kāi)發(fā)技能技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)