智能合約開發實戰(一) - 什麼是智能合約?

更新於 發佈於 閱讀時間約 3 分鐘

智能合約(英語:Smart contract)是一種特殊協定,在區塊鏈內製定合約時使用,當中內含了程式碼函式 (Function),亦能與其他合約進行互動、做決策、儲存資料及傳送以太幣等功能(出處:維基百科),簡單的說就是在區塊鏈上做以太幣的交易或互動的一種程式(合約)。

但知道智能合約後,該怎麼寫?怎麼放到區塊鏈上?怎麼跟它溝通?該有什麼開發環境?身為一個開發人員,心中一定會有這樣的疑問?所以我們就來看看有哪些東西能幫忙我們實現開發智能合約。

談到智能合約就不免必須了解什麼是DApp(Decentralized Applications)去中心化應用程式,App我們都知道它是應用程式,所謂的去中心化就是不需要依賴伺服器運作就可以全自己運行,區塊鏈的理念就是去中心化,所以它所運行的應用程式當然也必須去中心化,才有了DApp的產生。

由於智能合約無法只有它單獨放到區塊鏈中,必須要和外部做溝通來能達到應用的效果,所以一般我們都是開發DApp,然後在裡面包含智能合約,然後靠其他套件程式讓智能合約可以和外面做溝通,讓我們可以去呼叫它,進而做合約和其他合約的交易,常見的智能合約開發架構如下:
1.IDE 開發環境:RemixVisual Studio Code
2.開發智能合約:Solidity、Vyper。
3.開發框架:Truffle、Waffle。
4.web與智能合約互動套件:Web3.js、ethers.js。
5.發佈網段:公鏈(比特幣-Bitcoin,以太坊-Ethereum)、測試鏈(Ropsten、Kovan、Rinkeby、Goerli)、個人鏈(Ganache),開發人員在開發初期建議用個人鏈就好,它是一個可以安裝在本地端的鏈,使用上還蠻方便的,只要安裝好Ganache這個軟體就能在本地端發佈智能合約到個人鏈去。

raw-image

由上面的開發架構可以了解,想要開發智能合約就是先選擇一個習慣用的IDE當做開發環境VS Code或Remix,然後安裝Truffle或是Waffle當做開發的主要框架,使用Solidity(和JavaScript較相似)或Vyper(和Python較相似)當做開發智能合約的主要程式語言,安裝Truffle + web3.js或是Waffle + ethers.js開發框架(選其中一個),開發完成後就發佈到鏈上面,一開始當然是發佈到Local的個人鏈(ganache)上或是測試鏈上做測試,等都沒有問題了才會上到公鏈(EVM:Ethereum Virtual Machine)上面執行了,整個開發智能合約的架構大概就是這樣,接下來在下面的章節我們就來細部的說明。

有什麼想要了解或是不清楚的部份,歡迎留言和我分享,謝謝。
如果喜歡我的文章歡迎追隨,按愛心,我每週都會上新文章。

留言
avatar-img
留言分享你的想法!
avatar-img
宅D嘉的開發人生
20會員
46內容數
加密貨幣很有趣,遊戲開發也很有趣,AI也有點意思,身為一個跨多領域的軟體工程師,喜歡研究新鮮的事物,歡迎來到我的世界,一起坐上這艘開往未來探索新奇的列車。
宅D嘉的開發人生的其他內容
2025/03/28
    每個程式開發的開始都是從Hello World開始的,當然我也不免淑的來個Hello World。
2025/03/28
    每個程式開發的開始都是從Hello World開始的,當然我也不免淑的來個Hello World。
2025/03/22
 Cocos Creator 2D實戰(一) 環境設定 第二步先做環境設定:環境設定、VS Code 正常來說跟著做就可以完成環境設定了,由於是開發2D,所以右上角先選擇2.4版(目前最高版本)會比較好,比較不容易錯亂,畢竟3.x和2.x的差異很大。
Thumbnail
2025/03/22
 Cocos Creator 2D實戰(一) 環境設定 第二步先做環境設定:環境設定、VS Code 正常來說跟著做就可以完成環境設定了,由於是開發2D,所以右上角先選擇2.4版(目前最高版本)會比較好,比較不容易錯亂,畢竟3.x和2.x的差異很大。
Thumbnail
2025/03/21
Cocos Creator 實戰     Cocos Creator是個用來開發2D或是3D遊戲的整合開發環境(IDE),程式語言是使用Javascript或TypeScript,Unity是用C#,但如果是Cocos Creator 3D的話是只能用TypeScript,所以建議還是用TypeS
Thumbnail
2025/03/21
Cocos Creator 實戰     Cocos Creator是個用來開發2D或是3D遊戲的整合開發環境(IDE),程式語言是使用Javascript或TypeScript,Unity是用C#,但如果是Cocos Creator 3D的話是只能用TypeScript,所以建議還是用TypeS
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
相信到了這邊大家或多或少都有聽過智能合約吧! 這篇來介紹智能合約是什麼以及應用場景,最重要的是我們平常要怎麼看合約的內容! 一次教你怎麼看什麼是智能合約和一般的NFT合約怎麼看!
Thumbnail
相信到了這邊大家或多或少都有聽過智能合約吧! 這篇來介紹智能合約是什麼以及應用場景,最重要的是我們平常要怎麼看合約的內容! 一次教你怎麼看什麼是智能合約和一般的NFT合約怎麼看!
Thumbnail
每個產品在實驗室研發出來後,勢必會面臨到賣給客戶的階段,那麼當我們將產品移交給客戶時,意味著也要進行環境的安裝,但問題來了,每一個客戶的環境差異甚大,總不可能為了A客戶就建立一個A客戶的環境,因應B客戶就建立B客戶的環境,這樣隨著產品的銷售量增長也將連帶耗盡公司的資源,想必這不是我們所樂見的現象,當
Thumbnail
每個產品在實驗室研發出來後,勢必會面臨到賣給客戶的階段,那麼當我們將產品移交給客戶時,意味著也要進行環境的安裝,但問題來了,每一個客戶的環境差異甚大,總不可能為了A客戶就建立一個A客戶的環境,因應B客戶就建立B客戶的環境,這樣隨著產品的銷售量增長也將連帶耗盡公司的資源,想必這不是我們所樂見的現象,當
Thumbnail
上一篇我們介紹了智能合約的基本概念,而在開發智能合約之前, 建議先對智能合約具備基礎的概念, 往後進行開發時較容易融會貫通, 還沒閱讀的朋友可以參閱此篇「【開發智能合約 — Solidity系列】 淺談智能合約」。 理解完「智能合約」之後,相信大家已經開始手癢了吧! 應該很想開始動手完成第一個自己專
Thumbnail
上一篇我們介紹了智能合約的基本概念,而在開發智能合約之前, 建議先對智能合約具備基礎的概念, 往後進行開發時較容易融會貫通, 還沒閱讀的朋友可以參閱此篇「【開發智能合約 — Solidity系列】 淺談智能合約」。 理解完「智能合約」之後,相信大家已經開始手癢了吧! 應該很想開始動手完成第一個自己專
Thumbnail
為什麼會有合約的誕生? 大家想過這個問題嗎? 試想,當陌生人與陌生人之間如果要產生與金錢相關的交易時,在沒有第三方機構的見證下,我想一般人應該也會存在著「不信任」的狀況產生,因此造就了「合約」的誕生,而這個「合約」主要目的在於確保雙方能夠在不損害對方的利益下完成交易的一種約定,其中包括了雙方的資訊、
Thumbnail
為什麼會有合約的誕生? 大家想過這個問題嗎? 試想,當陌生人與陌生人之間如果要產生與金錢相關的交易時,在沒有第三方機構的見證下,我想一般人應該也會存在著「不信任」的狀況產生,因此造就了「合約」的誕生,而這個「合約」主要目的在於確保雙方能夠在不損害對方的利益下完成交易的一種約定,其中包括了雙方的資訊、
Thumbnail
智能合約和 NFT 是非常硬的主題,基本上是一種技術和商業的混用,不過有趣的是:市場卻又透過積極的參與給出了肯定,哪怕是在熊市。 區塊鏈 2.0:智能合約 智能合約,有人又稱區塊鏈 2.0,原本區塊鏈僅被用於去中心化交易,後來以太坊推出智能合約後,許多的去中心化應用(dApp)誕生,你可以將智能合約
Thumbnail
智能合約和 NFT 是非常硬的主題,基本上是一種技術和商業的混用,不過有趣的是:市場卻又透過積極的參與給出了肯定,哪怕是在熊市。 區塊鏈 2.0:智能合約 智能合約,有人又稱區塊鏈 2.0,原本區塊鏈僅被用於去中心化交易,後來以太坊推出智能合約後,許多的去中心化應用(dApp)誕生,你可以將智能合約
Thumbnail
這次的 NFT 開發,希望讓讀者們在實作時,盡量用最少的程式碼也能夠完成你的 NFT 作品,而這篇文章可以當做是一個暖身,我們會大致瀏覽本次開發 NFT 所需要用到的一些工具與小知識,大概整理之後暫時先分為六大主題...
Thumbnail
這次的 NFT 開發,希望讓讀者們在實作時,盡量用最少的程式碼也能夠完成你的 NFT 作品,而這篇文章可以當做是一個暖身,我們會大致瀏覽本次開發 NFT 所需要用到的一些工具與小知識,大概整理之後暫時先分為六大主題...
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News