智能合約不智能
我們將分別探討智能合約的常見誤解、智能合約的限制及其實際應用例子。
在上一篇《區塊鏈術語全解析》提到,智能合約是指在去中心化的區塊鏈上運行的程式碼,由於去中心化的區塊鏈具有抗審查的特性,因此部署在上面的程式碼也會同樣獲得抗審查能力,即是任何人都不可修改程式碼或阻止程式碼執行。在中心化的區塊鏈上運行的程式碼有時也會被叫作智能合約,然而由於沒有抗審查能力,因此和一般程式碼根本沒有區別,其實並不應該稱之為智能合約。
然而,智能合約並不智能,也不是合約。所謂的「合約」,是指通過去中心化和區塊鏈,令程式碼不能被 修改的特性;而「智能」則是指自動化,這一點和一般的程序碼是一樣的。這次我們將分別探討智能合約的常見誤解、智能合約的限制及其實際應用例子。
智能合約的常見誤解
智能合約一經部署便不可修改程式碼或阻止程式碼執行,其實這一說法是不準確的。正確的說法為若果智能合約一開始便被設定為不可停止的話,那麼不管是誰,就算是編寫智能合約的人也不可以令它停止運行。但有些智能合約是設計成可以停止的。還有一點必須注意,那就是不可修改的只是程式碼,而不是參數。假定我們現在有區塊鏈上的港元和美元,我可以編寫一張智能合約來進行港元和美元的兌換,程式碼規定用戶存入港元時智能合約會按比例向存入地址發送美元。
收到時數量為A的港元時,會向存入地址發送數量為(A ÷ 滙率𝑥)的美元
存入港元發送美元是不可修改的程式碼。然而,滙率𝑥卻是可以修改的參數。而且,當智能合約所控制的美元不足以向存入方進行支付時,這程式碼也會失效。
智能合約的限制
上面的例子中有一個假設,就是港元和美元都在區塊鏈上發行和流通,這時智能合約的兌換機制才可以成立。一但我們把智能合約應用於非區塊鏈上的行為時,所謂的合約其實只是一則笑話。各大報章時有提到一些創業公司以智能合約程式作訂立遺囑、交通意外和解協議等之用。箇中邏輯顯然是經不起推敲的。試問在區塊鏈上的智能合約如何能把立遺囑人的房產進行分配呢?智能合約又如何判斷交通意外的責任誰屬呢?
智能合約的用途體現於去中心化應用程式,將核心邏輯放在區塊鏈上,而程式完全自動執行。因此我們可以判斷程式所宣稱的是否真確如實。但是,僅僅把程式碼放在區塊鏈上並不能使它成為去中心化應用程式。請看看下面的例子:
程式 1: 一個已存儲了1000枚代幣的智能合約, 該合約會每分鐘隨機向一個錢包地址發送一枚代幣,直到所有的代幣都發送完畢。
程式 2: 一個智能合約列明將公司的收入平均分配給合約上登記了的人。而每個季度,公司的首席執行官會把公司的利潤轉換為加密貨幣,並傳進智能合約中進行分配。
顯然,我們可以通過檢查代碼來判斷程式1是否可以兌現他們的承諾,然而我們卻無法判斷程式2會否被執行。儘管智能合約不可竄改,但沒有人能夠保證首席執行官會將所有利潤都換成加密貨幣並傳送到智能合約中。因此,程式2不能被視為有效的去中心化應用程式,因為核心邏輯和執行並沒有去中心化。
智能合約的實際應用例子
賭博
去中心化應用程式在某些情況下很有價值。例如,去中心化的賭博應用程式 ( 根據研究指出,賭博應用占整個區塊鏈交易的 40%)。他們沒有牌照,使用者甚至不知道運營商是誰,驟眼看對參與賭博的人毫無保障。然而,使用者依然可以信任它們,因為去中心化應用程式保證了程式碼不能更改,並且會確實執行。例如智能合約彩票程式,把所有人投入的資金集中後,隨機抽出一個得獎地址,智能合約可以杜絕彩票發行方的承兌風險。
中心化金融服務(DeFi)
- 去中心化抵押貸款
借款人把加密貨幣A存入智能合約中作為抵押,借出另一種加密貨幣B,借款人如果未能在限期前歸還借出款項,智能合約中的加密貨幣A便會歸貸款人所有。 - 去中心化交易所
交易雙方同意按一定的比例交換兩種加密貨幣,當雙方都向智能合約存入所需的加密貨幣後,智能合約便會按協定進行清算,如果任何一方未能在指定時間內存入足夠的加密貨幣,交易便會取消,已存入的款項亦會向雙方歸還。
對智能合約的了解是投資應用型加密貨幣的關鍵,只有當我們都清楚其技術原理、限制及應用後,才有辦法判斷一種加密貨幣是否值得投資。關於應用型加密貨幣,我們會在後面的《加密貨幣投資全攻略》中提到。
在香港投資加密貨幣,BitGinko比特幣平台是你的最好選擇。
著作權歸作者所有。
商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
原文: 智能合約不智能