曲速未來 消息:區(qū)塊鏈Oracle如何與智能合約交互區(qū)塊鏈
區(qū)塊鏈安全咨詢公司曲速未來表示:智能合約的概念在區(qū)塊鏈技術(shù)領(lǐng)域已經(jīng)使用了很長時間。比特幣允許編寫程序代碼以迫使各方遵守協(xié)議條款。實(shí)現(xiàn)更復(fù)雜的編程語言來編寫合同是為了增加它們的潛力并擴(kuò)展它們的使用。以太坊本身可以被視為這種智能合約應(yīng)用的原始模型。
區(qū)塊鏈安全咨詢公司 曲速未來 表示:智能合約的概念在區(qū)塊鏈技術(shù)領(lǐng)域已經(jīng)使用了很長時間。比特幣允許編寫程序代碼以迫使各方遵守協(xié)議條款。實(shí)現(xiàn)更復(fù)雜的編程語言來編寫合同是為了增加它們的潛力并擴(kuò)展它們的使用。以太坊本身可以被視為這種智能合約應(yīng)用的原始模型。
使用智能合約可確保在滿足特定條件時自動執(zhí)行協(xié)議。但是,必須驗(yàn)證是否滿足這些條件。如果事務(wù)只涉及區(qū)塊鏈及其組件,則沒有問題。不幸的是,區(qū)塊鏈不存儲有關(guān)離線世界的任何信息。因此,這種驗(yàn)證不能完全通過區(qū)塊鏈和智能合約來實(shí)現(xiàn)。
智能合約有缺陷
一些區(qū)塊鏈解決方案允許編寫智能合約以便能夠處理外部數(shù)據(jù)源。不幸的是,這涉及各種并發(fā)癥和不可接受的后果。由于不同地理位置,網(wǎng)絡(luò)時間滯后,分布式服務(wù)等對計算機(jī)網(wǎng)絡(luò)的破壞,同一智能合約的兩個實(shí)例在計算后可能會有不同的結(jié)果。如果不同節(jié)點(diǎn)上的兩個類似的合同得出不同的結(jié)論,則會發(fā)生事務(wù)不一致。因此,交易可能永遠(yuǎn)不會被添加到塊中,甚至可能導(dǎo)致分叉。此外,智能合約的主要概念有以下缺點(diǎn):
·合同以區(qū)塊鏈為基礎(chǔ);
·正確的目標(biāo)執(zhí)行需要考慮變化的因素;
·正確寫合同很困難;
·無法更改或刪除已激活的合同。
Oracle簡介
為了補(bǔ)償訪問限制,智能合約需要區(qū)塊鏈和外部環(huán)境之間的鏈接。一個名為“Oracle”的軟件扮演著這樣的角色。簡而言之,oracle是一個提供基于區(qū)塊鏈的合同的程序,可以訪問外部信息。合同要求Oracle提供有助于其做出決策的信息,Oracle將相應(yīng)地向合同提供此信息。
Oracle可以被認(rèn)為是一種特殊類型的智能合約。實(shí)際上,oracle代碼必須放在一個完整的節(jié)點(diǎn)中。它與來自智能合約的請求交互,并根據(jù)嚴(yán)格的算法運(yùn)行。另一方面,oracle本身不會對區(qū)塊鏈內(nèi)容進(jìn)行任何更改。它只能向外部數(shù)據(jù)源發(fā)送請求,并將響應(yīng)重新傳輸?shù)街悄芎霞s。
應(yīng)該指出的是,每個區(qū)塊鏈的智能合約都是不同的。這是由于應(yīng)用了不同的編程語言。就比特幣而言,它是一種腳本語言。以太坊智能合約是一個用多種語言編寫的成熟程序。其他加密貨幣可能有完全不同的方法。契約的差異決定了眾神的多樣性。盡管如此,甲骨文在智能合約中的作用并沒有根本的不同。
后記
區(qū)塊鏈安全咨詢公司 曲速未來 表示:智能合約是區(qū)塊鏈中包含的小型程序產(chǎn)品。每個完整節(jié)點(diǎn)所有者都擁有所有智能合約的完整副本。智能合約只能使用區(qū)塊鏈內(nèi)容來制定決策。
Oracle是位于區(qū)塊鏈邊界的程序代碼,可以與智能合約交換數(shù)據(jù)。 Oracle扮演著硬件或軟件界面的角色。顯然,區(qū)塊鏈上唯一的智能神諭威脅到完全不信任交易對手的原則。為解決此問題,Oracle使用了多種方法,包括驗(yàn)證硬件組件。
本文內(nèi)容由 曲速未來 (WarpFuture.com) 安全咨詢公司整理編譯,轉(zhuǎn)載請注明。 曲速未來提供包括主鏈安全、交易所安全、交易所錢包安全、DAPP開發(fā)安全、智能合約開發(fā)安全等相關(guān)區(qū)塊鏈安全咨詢服務(wù)。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。