区块链上智能合约的讲解
生活随笔
收集整理的這篇文章主要介紹了
区块链上智能合约的讲解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
智能合約
- 智能合約是在區(qū)塊鏈上運(yùn)行的應(yīng)用或者程序。通常情況下,智能合約是一組具有特定規(guī)則的數(shù)字化協(xié)議,且這些協(xié)議能夠強(qiáng)制化執(zhí)行。這些規(guī)則由計(jì)算機(jī)代碼預(yù)先定義,所有節(jié)點(diǎn)會(huì)復(fù)制和執(zhí)行這些計(jì)算機(jī)源碼。
- 智能合約不需要依靠雙方互相信任的前提,只需要雙方根據(jù)事先協(xié)商好的內(nèi)容形成合約,在特定的觸發(fā)條件下執(zhí)行合約,省略了對(duì)于第三方中介的需求,從而降低了運(yùn)營(yíng)的成本。
- 簡(jiǎn)單的講,智能合約是一個(gè)確定性的計(jì)劃。當(dāng)滿(mǎn)足某些條件的時(shí)候,則會(huì)執(zhí)行特定的任務(wù)。因此,智能合約系統(tǒng)通常遵循“if...then...”的條件語(yǔ)句。智能,僅僅體現(xiàn)在它可以自動(dòng)執(zhí)行,不需要人工參與。
- 再次精簡(jiǎn):當(dāng)我們?cè)O(shè)置銀行自動(dòng)還款,這樣每到還款日,銀行賬戶(hù)會(huì)自動(dòng)從余額中扣除固定的金額轉(zhuǎn)給信用卡,如果銀行賬戶(hù)錢(qián)數(shù)不夠那么付款就會(huì)失敗,將會(huì)觸發(fā)另外一套工作流程。智能合約也依據(jù)這個(gè)邏輯自動(dòng)化執(zhí)行,除了智能合約是部署在區(qū)塊鏈上,由多方運(yùn)行,而不是單方控制。
智能合約的特征
- 分布式。智能合約在以太坊網(wǎng)絡(luò)的所有節(jié)點(diǎn)中被復(fù)制和分發(fā),這種方式與基于中心化服務(wù)器的其他解決方案區(qū)別顯著。
- 一致性。在滿(mǎn)足要求的情況下,智能合約僅執(zhí)行其預(yù)先設(shè)計(jì)的操作。而且,無(wú)論任何節(jié)點(diǎn)執(zhí)行,結(jié)果都是一致的。
- 自動(dòng)化。智能合約可以自動(dòng)執(zhí)行各種任務(wù),就像自動(dòng)執(zhí)行程序一樣。但是,在大多數(shù)情況下,如果未觸發(fā)智能合約,它將保持“休眠”狀態(tài),并且不會(huì)執(zhí)行任何操作。
- 不可篡改。智能合約一經(jīng)部署,則無(wú)法更改。只有預(yù)先實(shí)現(xiàn)了特定功能,才能執(zhí)行“刪除”。因此,我們可以說(shuō)智能合約可以提供防篡改程序。
- 定制化。在部署之前,智能合約可以通過(guò)多種不同方式進(jìn)行編碼。因此,它可用于創(chuàng)建許多不同的分布式應(yīng)用程序。這與以太坊具有圖靈完備的區(qū)塊鏈特征相關(guān)。
- 無(wú)需信任。兩方或多方可以通過(guò)智能合約進(jìn)行互動(dòng),而無(wú)需相互了解或取得信任。此外,區(qū)塊鏈技術(shù)可確保數(shù)據(jù)準(zhǔn)確無(wú)誤。
- 透明性。由于智能合約基于公有區(qū)塊鏈,因此其源代碼不僅不可篡改,而且對(duì)任何人都是透明的。
智能合約更改或者刪除
- 以太坊智能合約一經(jīng)部署,則無(wú)法再繼續(xù)添加新功能。但是,如果其合約創(chuàng)建者在代碼中預(yù)留了名為SELFDESTRUCT的函數(shù),那么將來(lái)可以“刪除”智能合約,也可以用新的合約替換它。如果未在合約代碼中預(yù)留該函數(shù),則它們將無(wú)法被刪除。
- 值得注意的是,所謂的可升級(jí)智能合約支持開(kāi)發(fā)人員在不可篡改方面擁有更大的靈活性。有許多方法可以創(chuàng)建可升級(jí)的智能合約,每個(gè)合約都可具有不同程度的復(fù)雜性。
- 舉一個(gè)簡(jiǎn)單的例子,我們假設(shè)將智能合約分為多個(gè)較小的合約。其中一些被設(shè)計(jì)為不可變更的,而另一些則啟用了“刪除”功能。這意味著可以刪除和替換部分代碼(智能合約),而其他功能保持不變。
局限性
- 智能合約由人工編寫(xiě)的計(jì)算機(jī)代碼組成。這也帶來(lái)了許多風(fēng)險(xiǎn),代碼容易受到攻擊和漏洞的影響。理想情況下,它們應(yīng)由經(jīng)驗(yàn)豐富的程序員編寫(xiě)和部署,特別是涉及敏感信息和大量資金時(shí)。
- 除此之外,有人認(rèn)為中心化的系統(tǒng)也可以提供智能合約的大部分解決方案和功能。主要區(qū)別在于智能合約在分布式的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中運(yùn)行,而不是運(yùn)行在中心化服務(wù)器上。因?yàn)樗鼈兓趨^(qū)塊鏈系統(tǒng),所以它們往往是不可篡改的。
- 在某些情況下,智能合約的不可篡改性?xún)?yōu)勢(shì)明顯,但其他情況下卻很糟糕。例如,由于其智能合約代碼存在缺陷,名為“The DAO”的分布式自治組織(DAO)在2016年被黑客攻擊時(shí),損失高達(dá)數(shù)百萬(wàn)枚以太幣(ETH)。由于他們的智能合約是不可變更的,開(kāi)發(fā)人員無(wú)法修復(fù)代碼。這最終導(dǎo)致出現(xiàn)了硬分叉,誕生了第二個(gè)以太坊鏈。簡(jiǎn)而言之,一條鏈進(jìn)行“回退”,并將資金返還給了合法的所有者(這是當(dāng)前以太坊區(qū)塊鏈的一部分)。而另一條鏈決定不受此次攻擊影響,堅(jiān)持區(qū)塊鏈上發(fā)生的事情永遠(yuǎn)不可改變(這個(gè)鏈現(xiàn)在稱(chēng)為以太坊經(jīng)典)。需要注意的是,造成該問(wèn)題并不是以太坊區(qū)塊鏈的原因,它是由智能合約的錯(cuò)誤執(zhí)行所引發(fā)的。
- 智能合約的另一個(gè)限制與其不確定的法律地位有關(guān)。智能合約在大多數(shù)國(guó)家仍處于灰色地帶,且不適應(yīng)當(dāng)前的法律監(jiān)管框架。例如,許多合約都要求交易雙方彼此實(shí)名認(rèn)證且超過(guò)18歲。但區(qū)塊鏈技術(shù)提供的匿名性,加上缺乏中間人,可能會(huì)影響這些要求。雖然有潛在的解決方案,但目前看,智能合約的法律可執(zhí)行性是一項(xiàng)真正的挑戰(zhàn),尤其是在沒(méi)有邊際的分布式網(wǎng)絡(luò)中。
圖片
參考鏈接
- 一篇文章讓你了解什么是智能合約
總結(jié)
以上是生活随笔為你收集整理的区块链上智能合约的讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中科大 计算机网络16 P2P应用
- 下一篇: 使用Remix编写Solidity语言的