編寫智能合約——我的個人筆記和看法

那麼,同志們,我來告訴你們如何真正編寫智能合約,毫無粉飾和互聯網上充斥的愚蠢。我自己也爲此苦惱了很久,準備分享我的經驗。

我首先要說,編寫智能合約並不像看起來那麼復雜,但也沒有那些"大師們"所承諾的那麼簡單,他們的課程收費高得離譜。尤其讓人惱火的是,當市場上的大玩家試圖壟斷這一知識領域時。

選擇一門語言是決定成敗的第一步

在編寫智能合約時,主要使用Solidity——這在行業中被視爲標準。但說實話,這種語言本身相當不成熟,存在很多漏洞。我使用它已經幾年了,常常碰到沒人警告的問題。

有替代方案——例如,TON 的 FunC。但這裏還有一個問題——文檔很少,而且通常是英語的糟糕翻譯。

設置工作區

忘記復雜的說明吧。對我來說,最合適的是 Visual Studio Code + Solidity 擴展 + Remix IDE 進行快速測試。無需像官方指南所建議的那樣發明輪子並安裝一堆程序。

編寫合同 — 潛在的風險

當你寫合同時,要記住的主要事情是你犯的任何錯誤都可能被用來偷錢。幾乎任何!當我忘記在一個簡單的函數中檢查溢出時,我自己也踩到了這個耙子,幾乎損失了一大筆錢。

我想告訴你們——不要相信文檔中的示例。它們通常包含不安全的代碼,絕對不能在生產環境中使用。而各種企業模板則是由一些甚至不理解區塊鏈基本工作原理的人編寫的。

測試 — 不要在這方面節省

測試一切要一百次!不要相信那些說“測試可以稍後進行”的人。在加密世界中,這是一條失去一切的道路。我通常在編寫合約之前就編寫測試,考慮不同的攻擊場景。

我看到過一些項目,因開發者懶得測試所有邊界情況或急於發布而損失了數百萬。

部署到網路

當您部署合約時,別忘了檢查手續費。有時網路會很擁擠,您可能會爲部署支付一大筆費用,而不是正常的金額。我曾經差點以超過項目本身價值的手續費發送交易。

並且不要盲目相信任何流行的錢包——它們也會出錯。最好使用像hardhat或truffle這樣的可靠工具。

下一步是什麼?

即使在部署後,還需要監控合約。黑客們不睡覺,每天都能找到新的漏洞。在這一點上,區塊鏈是無情的——一旦錯誤部署,結果就難以挽回。

而且,不要認爲智能合約是靈丹妙藥。大多數區塊鏈項目都是在浪費錢。但如果你在做一些有價值的事情,就要做到高質量。

請記住:區塊鏈中沒有交易回滾和退款!在這裏,您完全對自己的代碼負責。

祝你在你的合約上好運!是的,不要聽這些“專家”的話,他們的經驗只有兩周。要向他人的錯誤學習,而不是自己的。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)