【開發智能合約 — Solidity系列】概念篇: 淺談智能合約

更新於 2023/04/30閱讀時間約 4 分鐘
為什麼會有合約的誕生? 大家想過這個問題嗎?
試想,當陌生人與陌生人之間如果要產生與金錢相關的交易時,在沒有第三方機構的見證下,我想一般人應該也會存在著「不信任」的狀況產生,因此造就了「合約」的誕生,而這個「合約」主要目的在於確保雙方能夠在不損害對方的利益下完成交易的一種約定,其中包括了雙方的資訊、條款的內容、有效期限、簽名的不可變動性,滿足這些條件後方可形成「合約」,並由第三方機構進行認證來增加公信力。
既然已經有合約的產生,那又為什麼還要創造智能合約呢? 究竟相較於傳統合約之下,更為優勢的原因在哪裡呢? 我們將在以下逐一進行說明。

首先來談談傳統合約

在開始說明智能合約之前,我們先來了解一下合約的本質,什麼是合約? 其實「合約」常常出現在我們的周遭,就以買房來說,買賣雙方簽訂契約後,會需要許多第三方機構的保證才能讓雙方安全的完成交易,諸如: 建商、銀行、代書…等,這些第三方雖然保障了雙方交易的安全性,但某一方如果發生問題也會連帶影響,況且尚未完成交易之前就支付了許多費用給這些第三方單位,有沒有可能讓這個過程更加簡單,並且更加安全呢? 答案是有機會的,智能合約就是為了滿足這樣的需求而生,當然在這裡並不是說「智能合約」就是完美無缺,我們看到好處之外,也得了解現況與缺陷,才能不會被艱澀難懂的技術名詞給誤導了。

再來看看智能合約

我想智能合約與傳統合約最大的差異就在於沒有第三方機構的介入,一但合約成立、條件滿足,雙方的交易自然得到保障,驗證、不可竄改、自動金流…等,這些過往在傳統合約的組成中,還會分別依賴外部,因此就會產生所謂的手續費,而且過程中也未必具備公平性,但在智能合約的世界裡,由於一切皆由程式執行,只要確保條件沒問題自然就不會有例外狀況,這也就是為什麼大家都在談的「去中心化」的主要核心,但值得注意的是條件必須符合合約的需求,否則需求讓的落差也是一種例外狀況。

可以用在哪些領域?

金融

智能合約非常適合用於金融領域,交易過程中的不信任是過往遇到的最大挑戰,因此造就了無數個第三方機構,就為了保障雙方的可信任度,一但智能合約引入之後,打破了第三方的存在,讓交易雙方直接溝通,過程中透明、不可竄改,對於金融領域來說真的是一大福音,但對於傳統的金融體系卻是一大挑戰,也是較難盛行的原因。

保險

試想我們平常遞繳保險費用就是為了在意外發生時能夠有一份保障, 那麼「理賠」就非常重要了, 如果在合約初始設計時就設定當某個事件發生時, 需賠付的範圍條件, 就能夠讓一份保單透明、不可竄改的留存於區塊鏈, 而被保人只要同意並簽訂合約即可, 剩下的就是待事件發生時自動化金流給付。

投票系統

投票是一種非常講求公平性的動作,因此也非常適合不易竄改的特性,加上沒有中心化的過程,能夠大幅減少舞弊的現象,最終合理的統計出正確的票數。

風險與隱憂

前面的介紹大致上已經了解「智能合約」所帶來的諸多好處,但難道只有好處沒有任何的缺點嗎? 這是值得我們深思的問題,基本上創造「合約」的還是「人」,只要本質上離不開人性,就無法保證完全公平的狀況,歸納以下幾個可能的風險與隱憂,純屬個人觀點,如若有朋友具有不同的看法歡迎下方留言討論,讓我們互相學習,共同理解智能合約的本質。
● 開發人員撰寫合約觸發條件後,發生與用戶的預期結果不符,其實就想像軟體業的專案開發,開發者與需求者之間的認知落差,但不同的是「智能合約」一但上鏈後就無法竄改。
● 由於合約在區塊鏈上是透明的,因此合約漏洞只要被駭客發現就能夠根據漏洞造成一些危害。
● 法律尚未成熟,由於這一塊屬於較新穎的領域,因此仍處於灰色地帶,也因為去中心化的特性,導致現有的法規並無法去規範這一塊的交易。

結語

一門技術的發展都是為了改變我們過往不方便的流程,我們應該試著接納而不是抗拒,分析與理解技術的本質與帶來的好處之外,亦需考慮到衍生的風險,世界上的財富都取決於我們的認知程度,因此只要抱著持續學習的心態,就能夠賺到認知上的財富,也不會隨意的被詐騙,個人也是一路跌跌撞撞,慢慢學習,並將學習過程化為圖文,與大家共享,期望一起成長。
下一篇我們就來談談開發智能合約的入門教學:
讓我們一步一腳印,學習與探索智能合約誕生的過程,讓我們對這個專有名詞具有更深入的了解。
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
喜歡撰寫文章的你,不妨來了解一下:
Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?
歡迎加入一起練習寫作,賺取知識,累積財富!
為什麼會看到廣告
avatar-img
116會員
261內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
台股收在21858點,然後就端午節了。有好幾年都很怕端午變盤,沒想到做股票久了就也不怕了。 端午節前發現開發金有漲,查了一下,原來是改名+二王子要回來了,目前股價15元。
Thumbnail
親愛的讀者,你知道什麼是LOGO嗎? LOGO是:外來語到對標誌擁有公司的識別和推廣的作用,透過形象的logo可以讓消費者記住公司主體和品牌文化。 標誌特徵與特性: 延展性:企業logo是應用最為廣泛,出現頻率最高的視覺傳達要素,必須在各種傳播媒體上廣泛應用。logo圖形要針對印刷
Thumbnail
《經濟日報》日前於台北國際會議中心盛大舉辦「2023生技論壇」,邀請衛福部長薛瑞元、生策會副會長楊泮池、長佳智能董座陳明豐在內的多位官、商、學界專家、學者參與盛會,深入研討新冠肺炎疫情後的經濟重組;瞄準再生醫療、精準醫療、大健康領域等生技產業範疇,藉由共同發聲、齊心努力,對此應有推波助瀾之效。
Thumbnail
剛好前陣子在求職平台/人力銀行服務,一直在思考整個產品要如何進行迭代優化,以及要如何根據使用者需求來制定產品路線圖、開發優先順序,這篇會介紹求職平台的產品特點、使用者路徑、以及從產品優化的角度如何拆解。
Thumbnail
購買網站:https://shopee.tw/【樂意創客官方店】 使用方式 擴展網址:https://github.com/lzty634158/GHBit 在擴展頁面輸入“https://github.com/lzty634158/GHBit” 按下Enter 搜尋,就可以發現GHBit
Thumbnail
這篇我們來講一下還蠻重要也蠻常用到的一個自定義型別,叫:struct struct是來自於C/C++的結構,目的是把不同資料型態的參數串在一起,成為一個自定義的資料型態,我們也稱它是一個自定義的結構體。
此篇我們也來介紹另外一個也是蠻常用又蠻重要的Mapping,它和陣列有點像,但比較不同的是:它不能用迴圈的方式取出裡面所有的資料,但陣列可以,Mapping比較像是一個查詢系統,用key值可以取出裡面的value值。
Thumbnail
這篇我們來看一個在程式開發很常見也很常用的一個東西:Array 陣列 Array在所有的程式開發中還蠻常見的,也一定會出現,因為有很多的資料都會是一長串的,需要有一個物件來去做集中管理。
在寫程式裡面,錯誤的檢查和處理是一定要有的,也是相對重要的,但Solidity裡面並沒有ErrorMessage這種東西,有的是Require()、Revert()、Assert()這三個函數,作用大概也跟ErrorMessage差不多,這裡介紹這三種函數的用法
我們知道function除了四種可見度 (visibility) 之外,還有三種比較常見的函式修飾詞(view、pure、payable),這篇就也來認識一下這三種函式修飾詞是做什麼用的吧。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
台股收在21858點,然後就端午節了。有好幾年都很怕端午變盤,沒想到做股票久了就也不怕了。 端午節前發現開發金有漲,查了一下,原來是改名+二王子要回來了,目前股價15元。
Thumbnail
親愛的讀者,你知道什麼是LOGO嗎? LOGO是:外來語到對標誌擁有公司的識別和推廣的作用,透過形象的logo可以讓消費者記住公司主體和品牌文化。 標誌特徵與特性: 延展性:企業logo是應用最為廣泛,出現頻率最高的視覺傳達要素,必須在各種傳播媒體上廣泛應用。logo圖形要針對印刷
Thumbnail
《經濟日報》日前於台北國際會議中心盛大舉辦「2023生技論壇」,邀請衛福部長薛瑞元、生策會副會長楊泮池、長佳智能董座陳明豐在內的多位官、商、學界專家、學者參與盛會,深入研討新冠肺炎疫情後的經濟重組;瞄準再生醫療、精準醫療、大健康領域等生技產業範疇,藉由共同發聲、齊心努力,對此應有推波助瀾之效。
Thumbnail
剛好前陣子在求職平台/人力銀行服務,一直在思考整個產品要如何進行迭代優化,以及要如何根據使用者需求來制定產品路線圖、開發優先順序,這篇會介紹求職平台的產品特點、使用者路徑、以及從產品優化的角度如何拆解。
Thumbnail
購買網站:https://shopee.tw/【樂意創客官方店】 使用方式 擴展網址:https://github.com/lzty634158/GHBit 在擴展頁面輸入“https://github.com/lzty634158/GHBit” 按下Enter 搜尋,就可以發現GHBit
Thumbnail
這篇我們來講一下還蠻重要也蠻常用到的一個自定義型別,叫:struct struct是來自於C/C++的結構,目的是把不同資料型態的參數串在一起,成為一個自定義的資料型態,我們也稱它是一個自定義的結構體。
此篇我們也來介紹另外一個也是蠻常用又蠻重要的Mapping,它和陣列有點像,但比較不同的是:它不能用迴圈的方式取出裡面所有的資料,但陣列可以,Mapping比較像是一個查詢系統,用key值可以取出裡面的value值。
Thumbnail
這篇我們來看一個在程式開發很常見也很常用的一個東西:Array 陣列 Array在所有的程式開發中還蠻常見的,也一定會出現,因為有很多的資料都會是一長串的,需要有一個物件來去做集中管理。
在寫程式裡面,錯誤的檢查和處理是一定要有的,也是相對重要的,但Solidity裡面並沒有ErrorMessage這種東西,有的是Require()、Revert()、Assert()這三個函數,作用大概也跟ErrorMessage差不多,這裡介紹這三種函數的用法
我們知道function除了四種可見度 (visibility) 之外,還有三種比較常見的函式修飾詞(view、pure、payable),這篇就也來認識一下這三種函式修飾詞是做什麼用的吧。