【幣圈】區塊鏈的智能合約

更新於 2024/12/14閱讀時間約 11 分鐘


raw-image


●智能合約 : 區塊2.0的產物

 

智能合約(Smart Contracts)最早是在1994年由Nick Szabo提出的概念,但一直到2015年,以太坊的創辦人Vitalik Buterin推出了智能合約,並運行於以太坊上,至今以太坊仍是最多人使用的智能合約區塊鏈。

 

●智能合約3個要素


《寫給未來社會的新帳本——區塊鏈》一書指出,智能合約必須包含3個要素:

raw-image


智能合約是將雙方的協議條款,並用代碼形式在區塊鏈上運行,儲存在一個公共資料庫中,不能被更改。

智能合約中發生的交易是由區塊鏈處理的,通常以 “IF…”, “THEN…” 的邏輯語法構成,它們是在沒有第三者的情況下自動執行,只有當協議中的條件得到滿足時,交易才會發生,是完全去中心化的交易。


●智能合約的架構


raw-image


raw-image


●建立一個典型的 "Hello World" 的合約

(此段摘錄自 https://github.com/kairen/learning-blockchain/blob/master/ethereum/smart-contracts.md )

本節將透過建立一個典型的 "Hello World" 的合約,然後你可以建立自己的加密 token 去存送給任何你喜歡的人。一旦你掌握了,那你將透過群資募款來集資,如果成功了,將提供一個完全透明、民主的組織,將只服從它自己的公民,將永遠不會遠離它的憲法,以及受到審查與關閉。

程式價購說明如下:

Smart Sponsor

本節將說明一智能合約範例,透過建構一個合約來允許以下賬戶持有人進行互動。

  • 一個慈善機構舉行籌款活動,我們稱之為 thebenefactor
  • 一個受贊助的 runner 想為慈善機構募款,我們稱之為 therunner
  • 其他的人想要贊助 runner,我們稱之為 thesponsor
  • 一個 Ethereum 節點,用來開採區塊鏈以驗證交易,我們稱之為 theminer

我們的合約(smartSponsor):

  • 是由一位 runner 透過贊助的執行來為慈善機構募款。
  • 當建立合約時,runner 會任命為募集錢的捐助者。
  • runner 則邀情其他人去進行贊助。用戶透過呼叫一個在智能合約上的函式,將乙太幣從 贊助商的帳戶 轉移到 合約,並保持乙太幣於合約,直到有進一步的通知。
  • 在合約的時限期間的所有人都能看到誰是 捐助者,有多少的乙太幣被從誰捐(雖然贊助者可以匿名,當然:p)。


raw-image


那麼有兩件事情可能發生:

  • 執行都按計劃進行,以及 runner 指示合約轉移到所有資金的捐助者。


raw-image


  • 執行由於謀些原因無法承擔,而 runner 指示合約將退還贊助商的抵押。


raw-image


Ethereum 允許智能合約由撰寫 Solidity 語言來定義。Solidity 的合約是類似於 Java 的類別定義。成員變數的儲存採用區塊鍊交易與合約的方法,來詢問合約或改變的其狀態。作為區塊鏈的副本會分散到網路中的所有節點,任何人都可以詢問合約,以從中搜尋公開的訊息。

合約有以下幾種方法:

  • smartSponsor:合約的建構子。它初始化合約的狀態。合約的建立者傳入賬戶的位址,有利於合約的 drawdown。
  • pledge:任何人都可以呼叫捐贈乙太幣贊助基金。贊助商提供支援的選擇性訊息
  • getPot:回傳當前儲存在合約的總乙太幣。
  • refund:把贊助商的錢退回給贊助商。只有合約的擁有者才能呼叫這個函式。
  • drawdown:傳送合約的總價值給捐助者賬戶。只有合約的擁有者才能呼叫這個函式。

這個想法是使一個合約擁有約束力。他們不能拿回任何資金,除非整個合約被退還。在這種情況下,所有資料都是被公開存取的,這意味著任何人都有存取 Ethereum 區塊鏈,來查看誰建立了合約,誰是捐助者,以及誰透過存取合約程式碼本身保證了每一筆資金。

要注意很重要的一點,任何改變合約的狀態(建立、承若、退還或 drawing down)都需要在區塊鏈上建立交易,這意味著這些交易不會被儲存,要直到這些交易的區塊被開採。操作只能讀取到一個現有合約狀態(getPot 或讀取公有成員變數)都不需要進行挖礦。這是一個很重要且微妙的點:寫入操作是很慢的(因為我們要等到採礦完成)。由於這情況合約可能永遠不會被建立到區塊鍊中,因此呼叫方需要提供一些獎勵,來促進礦工去工作。這是被稱為 gas 的 Ethereum 術語,所有的寫入操作都是需要 gas 的支出來改變區塊鍊的狀態。

幸運的是我們不需要購買真正的乙太幣,以及參與 Ethereum 網路。我們可以使用相同的軟體,但要配置它運行一個本地測試區塊鏈,以及產生自己的假乙太幣。

以下為一個 Solidity 語言的智能合約範例:

contract smartSponsor {

  address public owner;

  address public benefactor;

  bool public refunded;

  bool public complete;

  uint public numPledges;

  struct Pledge {

    uint amount;

    address eth_address;

    bytes32 message;

  }

  mapping(uint => Pledge) public pledges;

 

  // constructor

  function smartSponsor(address _benefactor) {

    owner = msg.sender;

    numPledges = 0;

    refunded = false;

    complete = false;

    benefactor = _benefactor;

  }

 

  // add a new pledge

  function pledge(bytes32 _message) payable {

    if (msg.value == 0 || complete || refunded) throw;

    pledges[numPledges] = Pledge(msg.value, msg.sender, _message);

    numPledges++;

  }

 

  function getPot() constant returns (uint) {

    return this.balance;

  }

 

  // refund the backers

  function refund() {

    if (msg.sender != owner || complete || refunded) throw;

    for (uint i = 0; i < numPledges; ++i) {

      pledges[i].eth_address.send(pledges[i].amount);

    }

    refunded = true;

    complete = true;

  }

 

  // send funds to the contract benefactor

  function drawdown() {

    if (msg.sender != owner || complete || refunded) throw;

    benefactor.send(this.balance);

    complete = true;

  }

}

  • 一個Pledge結構模型的捐贈,儲存著贊助商的帳戶 ID、承若押金,以及一些訊息字串。
  • 這個 pledges 陣列儲存了一個承若方的列表。
  • 合約中的所有成員變數都是公開的,所以getters將自動被建立。
  • throw被稱為某些函式(functions),用以防止資料被寫入錯誤的資料到該區塊鏈中。



【TIPS】零基礎邁向區塊鏈工程師:Solidity 智能合約

raw-image

https://hahow.in/courses/5b3cdd6ed03140001eebeadc


●智能合約實際應用

智能合約在區塊鏈技術中有許多實際應用,以下是一些常見的舉例:

1.   去中心化金融(DeFi):DeFi是目前智能合約最流行的應用之一。它包括去中心化借貸、交易、擔保和資產管理等金融服務。智能合約在DeFi平台上用於自動化借貸、利息支付、抵押、流動性提供和去中心化交易,而無需傳統金融機構的參與。

2.   NFT 市場:智能合約可用於管理 NFT 的創建、銷售、轉讓和驗證。NFT市場允許藝術家、音樂家、遊戲開發者等創作者創建和出售其作品,智能合約確保了資產的不可變性和擁有權。

3.   基於區塊鏈的供應鏈管理:智能合約可以用於跟蹤和管理商品供應鏈中的物品,從生產到分發的每一個步驟都可以透明地紀錄在區塊鏈上,以提高可追蹤性和防止偽造。

4.   投票和治理:智能合約可以用於組織內部或協作平臺上的民主決策和投票。通過智能合約,投票可以變得透明、不可篡改且去中心化,用戶可以參與項目的治理。

5.   身分證明:智能合約可用於建立不可篡改的身份證明系統,這有助於解決身份盜竊和詐騙等問題。

6.   遊戲和虛擬世界:智能合約在虛擬遊戲中用於虛擬貨幣的管理、物品的交易和遊戲規則的執行。它們也支持虛擬世界中的擁有權。

7.   過貸款,讓貸款加速了貸款速度也減少了人為失誤。

8.   投票:若以相對多數投票制為例,將智能合約所有條件設定好後,票數較多的提案將通過,且也能夠避免釣人為判斷的失誤,且資料難以竄改。

 



raw-image










    avatar-img
    76會員
    122內容數
    1.占星軟體及運用 2.各種推運法(Transit / 次限 / 主限 / Solar Arc / 法達星限 / 中點占星等)
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    跨元探索的沙龍 的其他內容
    ■區塊鏈技術發明者:中本聰(Satoshi Nakamoto) 區塊鏈起源於2008年的一篇網路論文「比特幣:點對點的電子交易系統」,作者中本聰(Satoshi Nakamoto),至今沒人知道他到底是何方神聖,這篇論文概述了一個去中心化的交易系統,並透過加密技術實現這樣的系統。    
    ■什麼是區塊鏈技術? 區塊鏈是透過點對點(P2P)運行的網路,這個網路由分散式節點組成,可以把它想成是共享的數據庫,也就是分散式帳本(DLT),分散式帳本技術是一種去中心化的帳本,儲存著網路上進行的所有交易。 中心化帳本:也稱為集中式帳本,由一個中心化的機構去做驗證、記帳、訂立規則。
    ●Lookonchain https://twitter.com/lookonchain 不定期提供鏈上數據:機構投資人的 LDO 持倉與買入均價分析彙整 ●Coin360 網站 https://coin360.com/ ●Odaily News https://
    很多新手進入加密貨幣市場會首先選擇幣幣交易,這時候你會發現很多交易所貨幣對是以泰達幣(USDT)計價的,如BTCUSDT, ETHUSDT。 也就是你需要先用TWD買USDT,然後用USDT交易BTC比特幣等幣種。   ●什麼是Tether (USDT) 虛擬貨幣 在2014
    2024 農曆新春短段幾天 BTC 就由44K 上漲突破至 48K, 基本確立 BTC牛市已啟動。 ●探討造成暴漲的因素不外下列幾個重大因素 1.   BTC數量減半的FOMO情緒化 依照BTC每半年減半的慣例, 今年4月即將減半,每次BTC減半其現貨幣價走勢離奇相似
    如果你不懂下列這些加密貨幣術語和俚語,那就快閱讀一下,這是幣圈人必修功課 ●FOMO   FOMO的這種現像是一種強迫性恐懼症,即錯過一個有趣的事件或一個有利可圖的機會。它起源於社交媒體,甚至被添加到牛津英語詞典中。一但BTC 被認定是 FOMO化,等同BTC就像人人的手機一樣,人人
    ■區塊鏈技術發明者:中本聰(Satoshi Nakamoto) 區塊鏈起源於2008年的一篇網路論文「比特幣:點對點的電子交易系統」,作者中本聰(Satoshi Nakamoto),至今沒人知道他到底是何方神聖,這篇論文概述了一個去中心化的交易系統,並透過加密技術實現這樣的系統。    
    ■什麼是區塊鏈技術? 區塊鏈是透過點對點(P2P)運行的網路,這個網路由分散式節點組成,可以把它想成是共享的數據庫,也就是分散式帳本(DLT),分散式帳本技術是一種去中心化的帳本,儲存著網路上進行的所有交易。 中心化帳本:也稱為集中式帳本,由一個中心化的機構去做驗證、記帳、訂立規則。
    ●Lookonchain https://twitter.com/lookonchain 不定期提供鏈上數據:機構投資人的 LDO 持倉與買入均價分析彙整 ●Coin360 網站 https://coin360.com/ ●Odaily News https://
    很多新手進入加密貨幣市場會首先選擇幣幣交易,這時候你會發現很多交易所貨幣對是以泰達幣(USDT)計價的,如BTCUSDT, ETHUSDT。 也就是你需要先用TWD買USDT,然後用USDT交易BTC比特幣等幣種。   ●什麼是Tether (USDT) 虛擬貨幣 在2014
    2024 農曆新春短段幾天 BTC 就由44K 上漲突破至 48K, 基本確立 BTC牛市已啟動。 ●探討造成暴漲的因素不外下列幾個重大因素 1.   BTC數量減半的FOMO情緒化 依照BTC每半年減半的慣例, 今年4月即將減半,每次BTC減半其現貨幣價走勢離奇相似
    如果你不懂下列這些加密貨幣術語和俚語,那就快閱讀一下,這是幣圈人必修功課 ●FOMO   FOMO的這種現像是一種強迫性恐懼症,即錯過一個有趣的事件或一個有利可圖的機會。它起源於社交媒體,甚至被添加到牛津英語詞典中。一但BTC 被認定是 FOMO化,等同BTC就像人人的手機一樣,人人
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    創創早餐會,每週一次的線上聚會,由 EiMBA 校友會發起,藉由創業家們交流經驗,開啟更多的機會。此次分享者為 DNA club 的葉書維 Kevin,分享他的兩家公司目前在經營的事業,以及他對於區塊鏈幣圈的觀察。
    Thumbnail
    上一篇介紹了區塊鏈是怎麼運作的,還沒看過的人可以看[入門篇] 區塊鏈是什麼? 看看比特幣到底是怎麼運作!!!。在我們更深入的了解區塊鏈以及比特幣網路以外的鏈之前,我們可以先來宏觀的看看到底我們在區塊鏈裡面可以做些什麼? 為什麼這些應用適合使用區塊鏈?
    Thumbnail
    前言 💥新系列開啟【幣圈空投手把手】走過路過,撿到空投 索引連結💫如果不知道怎麼領交互用的「GoerliETH測試代幣」,裡面都有講解前置作業喔。 Mantle Network 是做什麼的? 他們是具有低費用和高安全性的高性能以太坊二層網絡(Layer 2)。 Mantle又稱為「電鰻」鏈,是B
    Thumbnail
    今天這篇文章來簡短跟大家介紹一下平常我會看的新聞媒體,希望能幫助剛踏入加密貨幣領域的新手們更了解這個產業!
    Thumbnail
    隨著區塊鏈不斷透過NFT、藝術和遊戲滲入到我們的生活中,五花八門的資訊越來越多,總是覺得有讀不完的新聞、文章和報告,許多人可能都和我們一樣,感受到了更明顯的「知識焦慮」。今天我們邀請到人稱創業里長伯的Fox,來跟我們分享如何跟上區塊鏈世界中的最新資訊。
    Thumbnail
       區塊鏈在這幾年引領風潮,  從2008年比特幣創立後,改變了世人原先的交易方式,被世人稱之為「區塊鏈1.0」。而在2015年以太坊研發DeFi和智能合約等金融相關程式,寫入區塊鏈中,再一次被世人稱之「區塊鏈2.0」。但什麼是DeFi,甚麼是智能合約呢?接下來就帶各位一起淺談一下DeFi和智能合
    Thumbnail
      台灣時間10/5的凌晨,社群網路巨頭Facebook發生了一個世界末日級的大斷線,約六個小時無法使用臉書,使其競爭對手Telegram當天增加7000萬名用戶,此次斷線造成臉書創辦人祖克柏的身家蒸發了約六十億美金,而加密貨幣社群則開始大肆諷刺Facebook過於腐敗的中心化集權體制
    Thumbnail
     先前有與大家淺談區塊鏈的運作方式,而這次來聊聊區塊鏈的「去中心化、不可篡改性、公開透明及可追溯性」。
    穩定幣的介紹   穩定幣的原名叫做StableCoins,中文名字就是直翻英文名字,顧名思義就是它是一個價值固定的加密貨幣,大多會和美元掛勾,形成一比一的匯兌標準.   在踏入幣圈之前,大家一定聽過比特幣,而這個幣別就不是穩定幣,因為他會衝上衝下的,所以想當然他就不是穩定幣, 那穩定幣的重點,就是
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    Thumbnail
    創創早餐會,每週一次的線上聚會,由 EiMBA 校友會發起,藉由創業家們交流經驗,開啟更多的機會。此次分享者為 DNA club 的葉書維 Kevin,分享他的兩家公司目前在經營的事業,以及他對於區塊鏈幣圈的觀察。
    Thumbnail
    上一篇介紹了區塊鏈是怎麼運作的,還沒看過的人可以看[入門篇] 區塊鏈是什麼? 看看比特幣到底是怎麼運作!!!。在我們更深入的了解區塊鏈以及比特幣網路以外的鏈之前,我們可以先來宏觀的看看到底我們在區塊鏈裡面可以做些什麼? 為什麼這些應用適合使用區塊鏈?
    Thumbnail
    前言 💥新系列開啟【幣圈空投手把手】走過路過,撿到空投 索引連結💫如果不知道怎麼領交互用的「GoerliETH測試代幣」,裡面都有講解前置作業喔。 Mantle Network 是做什麼的? 他們是具有低費用和高安全性的高性能以太坊二層網絡(Layer 2)。 Mantle又稱為「電鰻」鏈,是B
    Thumbnail
    今天這篇文章來簡短跟大家介紹一下平常我會看的新聞媒體,希望能幫助剛踏入加密貨幣領域的新手們更了解這個產業!
    Thumbnail
    隨著區塊鏈不斷透過NFT、藝術和遊戲滲入到我們的生活中,五花八門的資訊越來越多,總是覺得有讀不完的新聞、文章和報告,許多人可能都和我們一樣,感受到了更明顯的「知識焦慮」。今天我們邀請到人稱創業里長伯的Fox,來跟我們分享如何跟上區塊鏈世界中的最新資訊。
    Thumbnail
       區塊鏈在這幾年引領風潮,  從2008年比特幣創立後,改變了世人原先的交易方式,被世人稱之為「區塊鏈1.0」。而在2015年以太坊研發DeFi和智能合約等金融相關程式,寫入區塊鏈中,再一次被世人稱之「區塊鏈2.0」。但什麼是DeFi,甚麼是智能合約呢?接下來就帶各位一起淺談一下DeFi和智能合
    Thumbnail
      台灣時間10/5的凌晨,社群網路巨頭Facebook發生了一個世界末日級的大斷線,約六個小時無法使用臉書,使其競爭對手Telegram當天增加7000萬名用戶,此次斷線造成臉書創辦人祖克柏的身家蒸發了約六十億美金,而加密貨幣社群則開始大肆諷刺Facebook過於腐敗的中心化集權體制
    Thumbnail
     先前有與大家淺談區塊鏈的運作方式,而這次來聊聊區塊鏈的「去中心化、不可篡改性、公開透明及可追溯性」。
    穩定幣的介紹   穩定幣的原名叫做StableCoins,中文名字就是直翻英文名字,顧名思義就是它是一個價值固定的加密貨幣,大多會和美元掛勾,形成一比一的匯兌標準.   在踏入幣圈之前,大家一定聽過比特幣,而這個幣別就不是穩定幣,因為他會衝上衝下的,所以想當然他就不是穩定幣, 那穩定幣的重點,就是