?如何在2022年更明智地應(yīng)用智能合約?
譯文作者 | Amit Agarwal
譯者 | 朱先忠
審校 | Noe
簡(jiǎn)介
數(shù)字化轉(zhuǎn)型正在擾亂全球業(yè)務(wù)。因此,法律行業(yè)必須考慮數(shù)字技術(shù),以便與時(shí)俱進(jìn)?;趨^(qū)塊鏈的智能合約就是此類技術(shù)的一個(gè)例子。
數(shù)字化轉(zhuǎn)型是一個(gè)采用新技術(shù)以提高效率和簡(jiǎn)化業(yè)務(wù)流程的過程,所有行業(yè)都被席卷其中。然而,根據(jù)位于英國(guó)倫敦的德勤公司的一項(xiàng)調(diào)查,71%的法律專業(yè)人士認(rèn)為他們的部門還沒有準(zhǔn)備好采用相關(guān)的數(shù)字技術(shù)。
由于其高風(fēng)險(xiǎn)和高曝光性,法律行業(yè)其實(shí)是在抵制此類變革。然而,傳統(tǒng)的基于紙張的合同創(chuàng)建起來既昂貴又耗時(shí),而且這些合同很容易被偽造篡改。合同簽署過程不透明,因?yàn)閭鹘y(tǒng)合同中沒有時(shí)間日志。而且紙質(zhì)合同在一定程度上增加了存儲(chǔ)和打印成本。
什么是智能合約?
智能合約是一種自我執(zhí)行和自我實(shí)施的合約,它們僅受其包含的條款和條件的約束。這些虛擬協(xié)議允許交換內(nèi)容、金錢、股份、財(cái)產(chǎn)或任何其他價(jià)值。這些合同是自我執(zhí)行的,在任何依賴數(shù)據(jù)推動(dòng)交易的行業(yè)中都具有巨大的使用潛力。
智能合約是一項(xiàng)至關(guān)重要的技術(shù),它允許開發(fā)商在DeFi(分散融資)等行業(yè)創(chuàng)建創(chuàng)新解決方案。此外,智能合約是開發(fā)分布式應(yīng)用程序(DAPP)的關(guān)鍵部分;但是,并非所有人都知道如何創(chuàng)建智能合約。
與Solidty簽訂智能合約有哪些商業(yè)好處?
與傳統(tǒng)方案相比,合同已經(jīng)提供了許多優(yōu)勢(shì)。不過,隨著技術(shù)的進(jìn)步,這一領(lǐng)域的數(shù)字化應(yīng)用可能會(huì)進(jìn)一步增加。
1、降低運(yùn)營(yíng)成本
通過以太坊智能合約,公司可以降低運(yùn)營(yíng)成本。這是自動(dòng)化事務(wù)的最佳方式。手動(dòng)數(shù)據(jù)處理可能會(huì)占用你大量的時(shí)間,并且需要人為的努力。顯然,這將增加成本投入。
基于以太坊的優(yōu)秀合約將自動(dòng)化所有業(yè)務(wù)邏輯,從而將錯(cuò)誤減少到零。因此,這種數(shù)字協(xié)約技術(shù)在減少處理時(shí)間的同時(shí),還提高了效率和準(zhǔn)確性。
2、透明度
各利益方都可以查看和訪問這些合同的條款和條件。一旦合同成立,則沒有任何辦法對(duì)其提出異議。
3、高安全性
智能合約采用可用的最高級(jí)別的數(shù)據(jù)加密技術(shù)。對(duì)于現(xiàn)代加密貨幣來說,安全標(biāo)準(zhǔn)是一個(gè)必不可少的因素。由于這種高級(jí)別的保護(hù),它們成為互聯(lián)網(wǎng)上最安全的技術(shù)之一。
4、減少欺詐案件
商業(yè)交易是欺詐的常見目標(biāo)。不幸的是,追蹤黑客也很困難,因?yàn)闆]有足夠的透明度。這使得人們很難知道在哪里以及交換了多少錢。然而,通過區(qū)塊鏈智能合約開發(fā),可以輕松監(jiān)控商業(yè)生態(tài)系統(tǒng)中的所有交易。
5、信任
智能合約存儲(chǔ)在區(qū)塊鏈上。因此,雙方可以確保其對(duì)應(yīng)方在簽署協(xié)議后不會(huì)更改條款。這些加密保證可以消除關(guān)于形式之爭(zhēng)的昂貴法律爭(zhēng)論,以及關(guān)于條款是額外的還是不同的、實(shí)質(zhì)性的還是附帶的現(xiàn)有爭(zhēng)論。
6、簡(jiǎn)化人力資源流程
智能合約可以執(zhí)行協(xié)議的條款和懲罰。這使得人力資源部門領(lǐng)導(dǎo)和員工更容易履行其義務(wù)并遵守公司政策和法規(guī)。
受益于區(qū)塊鏈智能合約的行業(yè)
除了支付示例之外,許多其他潛在的創(chuàng)新合同實(shí)施可以實(shí)現(xiàn)相應(yīng)領(lǐng)域應(yīng)用的自動(dòng)化。當(dāng)然,這些只是創(chuàng)新合同應(yīng)用的少數(shù)幾個(gè)例子。
1、保險(xiǎn)領(lǐng)域
智能合約可能是保險(xiǎn)策略應(yīng)用的一大優(yōu)勢(shì)。注冊(cè)一項(xiàng)策略可以使用戶有權(quán)與提供商簽訂智能合同。智能合約可以包含所有政策要求,而用戶能夠閱讀并同意這些要求。
2、供應(yīng)鏈管理
供應(yīng)鏈管理是指對(duì)物流的管理和供應(yīng)商活動(dòng)的增產(chǎn)節(jié)約等內(nèi)容。例如,一旦一件商品到達(dá)其最終目的地,其所有權(quán)就會(huì)在供應(yīng)鏈網(wǎng)絡(luò)中發(fā)生變化。智能合約允許供應(yīng)鏈中的每個(gè)人使用物聯(lián)網(wǎng)傳感器或智能合約跟蹤商品的位置。
3、財(cái)務(wù)數(shù)據(jù)記錄
公司或組織可以使用智能合約來提高速度和安全性,同時(shí)確保準(zhǔn)確、透明的數(shù)據(jù)記錄。智能合約允許跨組織進(jìn)行統(tǒng)一的財(cái)務(wù)數(shù)據(jù)記錄。這樣就無需共享其他文檔,如發(fā)票圖像等。此外,它還增強(qiáng)了財(cái)務(wù)報(bào)告和數(shù)據(jù)完整性,這有助于提高市場(chǎng)穩(wěn)定性。
4、財(cái)產(chǎn)所有權(quán)
智能合約可以用來加快財(cái)產(chǎn)所有權(quán)的進(jìn)程??删幊痰呢?cái)產(chǎn)所有權(quán)變更合同是可能的,并且可以立即執(zhí)行。智能合約可以根據(jù)存儲(chǔ)在區(qū)塊鏈上的支付信息自動(dòng)更改資產(chǎn)的所有權(quán)。例如,Prophy在2017年促成了第一筆智能合同財(cái)產(chǎn)交易。他們的第一筆交易是一套價(jià)值6萬(wàn)美元的烏克蘭公寓。
如何創(chuàng)建穩(wěn)定的智能合約?
智能合約是計(jì)算機(jī)程序。因此,你需要一種編程語(yǔ)言來創(chuàng)建它們。Solidity是以太坊核心貢獻(xiàn)者開發(fā)的一種編程語(yǔ)言,用于創(chuàng)建智能合約軟件。這些計(jì)算機(jī)程序在區(qū)塊鏈上運(yùn)行。Solidity是受JavaScript或C++啟發(fā)而開發(fā)的一種高級(jí)面向?qū)ο笳Z(yǔ)言,它在語(yǔ)法上與JavaScript非常相似。
1、定義目的
在開始之前,確保你了解智能合約的功能。例如,使用智能合約的價(jià)值是什么?它能夠與應(yīng)該做什么?不妨詢問一下開發(fā)商是否真正需要開發(fā)區(qū)塊鏈?zhǔn)綉?yīng)用程序。也許,在以往已建立的技術(shù)平臺(tái)上實(shí)施信息技術(shù)更加有效,等等。
2、在MetaMask創(chuàng)建錢包
MetaMask可以安裝在Chrome中并啟用。單擊瀏覽器頁(yè)面頂部的圖標(biāo)即可將其激活。單擊此圖標(biāo)后,將在新選項(xiàng)卡中打開MetaMask。
然后,單擊“Create wallet”命令繼續(xù)往下執(zhí)行。接下來,你必須創(chuàng)建一個(gè)密碼。
創(chuàng)建密碼后,系統(tǒng)將向你發(fā)送一個(gè)秘密的備份密鑰。它可用于備份或還原你的帳戶。例如,某某短語(yǔ)可以用來表示你的以太坊,等等。
3、選擇任意一個(gè)測(cè)試網(wǎng)絡(luò)
你還可以在MetaMask帳戶中找到并使用下面這些測(cè)試網(wǎng)絡(luò):
Robsten測(cè)試網(wǎng)絡(luò)
Kovan測(cè)試網(wǎng)
Rinkeby測(cè)試網(wǎng)絡(luò)
Goerlich測(cè)試網(wǎng)絡(luò)
與以太坊智能合約
注意,上面這些網(wǎng)絡(luò)僅可用于測(cè)試目的。
4、它是獨(dú)立的智能合約嗎?
有時(shí),智能合約變得既冗長(zhǎng)又極其復(fù)雜。如果你的合同很復(fù)雜且責(zé)任太多,那么,強(qiáng)烈建議你考慮使用多個(gè)智能合同。
如果你計(jì)劃讓項(xiàng)目跨越多個(gè)智能合約,那么Truffle
Suite就是一個(gè)提供方面支持的很好的框架。其中的Truffle項(xiàng)目可以讓你輕松地將DAPP添加到合同中。
5、選擇合適的Solidity版本
建議你獲取最新穩(wěn)定版本的Solidity,并認(rèn)真學(xué)習(xí)它的語(yǔ)法內(nèi)容。如果你想創(chuàng)建它的擴(kuò)展庫(kù)的話,請(qǐng)確保你的版本與庫(kù)版本兼容。
當(dāng)前,OpenZeppelin的智能合約代碼庫(kù)(Contracts
Library)版本0.2.5僅支持Solidity版本0.5.5,尚不支持0.6.x版本。
使用編輯器Remix和Solidity語(yǔ)言編寫智能合約
開發(fā)人員首選Remix瀏覽器來創(chuàng)建穩(wěn)定的智能合約代碼。Remix瀏覽器IDE是編寫智能合約的最佳選擇,因?yàn)樗峁┝瞬簧俚南嚓P(guān)特性支持和完整的智能合約開發(fā)體驗(yàn)。
1、部署你的智能合約
通過單擊Remix窗口右側(cè)的“deploy”按鈕,可以將智能合約部署到基于以太坊的應(yīng)用程序測(cè)試網(wǎng)絡(luò)上。
當(dāng)然,在交易完成之前不要繼續(xù)往下執(zhí)行。
交易成功提交后,智能合約的地址將顯示在窗口的右側(cè)。
最初,所有ERC20代幣將存儲(chǔ)在部署智能合約的用戶的錢包中。
你可以切換到Metamask窗口并通過單擊相應(yīng)按鈕來添加代幣(tokens)。輸入智能合約地址,然后單擊“確定”查看代幣數(shù)量。
2、徹底測(cè)試
編寫盡可能多的測(cè)試。測(cè)試每個(gè)可能的代碼路徑,并考慮所有可能的場(chǎng)景,以確保每次都有結(jié)果。
在本地區(qū)塊鏈上測(cè)試。此外,在盡可能多的測(cè)試(TestNet)網(wǎng)上測(cè)試并部署它們。這些測(cè)試網(wǎng)更像是實(shí)時(shí)的Mainnet網(wǎng)絡(luò)環(huán)境,更能代表應(yīng)用程序的性能。
3、確保工作正常
是否可以編寫一個(gè)應(yīng)用程序前端,將你的智能合約轉(zhuǎn)換為完整的DApp?你認(rèn)為這是你想要的嗎?無論如何,確保它符合你創(chuàng)建智能合約應(yīng)用的理由。
4、要點(diǎn)歸納
現(xiàn)在,你已經(jīng)了解了Solidity和智能合約。并且,已經(jīng)創(chuàng)建并成功部署了一個(gè)功能完備的智能合約應(yīng)用。該程序允許租戶直接用以太幣支付租金,而無需向調(diào)解人支付任何費(fèi)用。
原文鏈接:https://readwrite.com/how-to-be-smarter-about-developing-smart-contracts-in-solidity-in-2022/
譯者介紹
朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。早期專注各種微軟技術(shù)(編著成ASP.NET AJX、Cocos 2d-X相關(guān)三本技術(shù)圖書),近十多年投身于開源世界(熟悉流行全棧Web開發(fā)技術(shù)),了解基于OneNet/AliOS+Arduino/ESP32/樹莓派等物聯(lián)網(wǎng)開發(fā)技術(shù)與Scala+Hadoop+Spark+Flink等大數(shù)據(jù)開發(fā)技術(shù)。