預(yù)言機(jī)
在區(qū)塊鏈和智能合約的背景下,預(yù)言機(jī)只是一個(gè)代理,用于查找并驗(yàn)證真實(shí)世界的事件并將此信息提交給智能合約使用的區(qū)塊鏈。
智能合約包含資產(chǎn),并且只有在滿足某些預(yù)定條件時(shí)才解鎖該資產(chǎn)。當(dāng)達(dá)到一個(gè)特定的值時(shí),智能合約改變其狀態(tài)并執(zhí)行程序化的預(yù)定義算法,自動(dòng)觸發(fā)區(qū)塊鏈上的事件。預(yù)言機(jī)的主要任務(wù)是以安全可信的方式將這些值提供給智能合約。
區(qū)塊鏈不能訪問(wèn)網(wǎng)絡(luò)之外的數(shù)據(jù)。 預(yù)言機(jī)是一種數(shù)據(jù)傳送,由第三方服務(wù)提供,用于區(qū)塊鏈上的智能合約。當(dāng)預(yù)定條件滿足時(shí),預(yù)言機(jī)提供外部數(shù)據(jù)并觸發(fā)智能合約執(zhí)行。這種情況可以是任何數(shù)據(jù),如天氣溫度,成功支付,價(jià)格波動(dòng)等。
預(yù)言機(jī)是多重簽名合同的一部分,例如原始受托人只有在滿足特定條件時(shí)才簽署有關(guān)將來(lái)釋放資產(chǎn)的合同。在任何資產(chǎn)被釋放之前,預(yù)言機(jī)還必須簽署智能合約。
預(yù)言機(jī)的類型
根據(jù)使用類型有不同類型的預(yù)言機(jī)。
Software Oracles:用于處理在線信息。例如溫度,商品和商品價(jià)格,航班或火車延誤等。數(shù)據(jù)來(lái)源于在線資源,如公司網(wǎng)站。Software Oracles提取所需信息并將其推送到智能合約中。
Hardware Oracles:一些智能合約需要直接來(lái)自物理世界的信息,例如汽車越過(guò)障礙物,移動(dòng)傳感器必須檢測(cè)車輛并將數(shù)據(jù)發(fā)送至智能合約。另一個(gè)用例是供應(yīng)鏈行業(yè)的RFID傳感器。Hardware Oracles的最大挑戰(zhàn)是在不犧牲數(shù)據(jù)安全性的情況下報(bào)告數(shù)據(jù)的能力。 Oracles通過(guò)提供傳感器讀數(shù)和防篡改機(jī)制的密碼證據(jù),提出了兩步的解決風(fēng)險(xiǎn)的方案,使得設(shè)備在違規(guī)情況下無(wú)法工作。
Inbound Oracles:提供來(lái)自外部世界的數(shù)據(jù)的智能合約。例如,如果美元達(dá)到一定價(jià)格,自動(dòng)執(zhí)行買入指令。
outbound Oracles:提供了將數(shù)據(jù)發(fā)送到外部世界的智能合同。例如,物理世界中的智能鎖會(huì)在其區(qū)塊鏈地址上收到付款并需要自動(dòng)解鎖。
Consensus Based Oracles:如Augur和Gnosis預(yù)測(cè)市場(chǎng)時(shí),嚴(yán)重依賴預(yù)言機(jī)來(lái)確認(rèn)未來(lái)的結(jié)果。只使用一種信息來(lái)源,可能存在風(fēng)險(xiǎn)。為了避免操縱預(yù)測(cè)市場(chǎng),實(shí)現(xiàn)了預(yù)言機(jī)的評(píng)級(jí)系統(tǒng)。為了進(jìn)一步的安全性,可以使用不同的預(yù)言機(jī)的組合,例如用5個(gè)預(yù)言機(jī)中的3個(gè)輸出作為事件的結(jié)果。
安全挑戰(zhàn)
預(yù)言機(jī)是第三方服務(wù),不屬于區(qū)塊鏈共識(shí)機(jī)制。 預(yù)言機(jī)的主要挑戰(zhàn)是人們需要信任這些信息來(lái)源。 無(wú)論是網(wǎng)站還是傳感器,信息的來(lái)源都需要值得信賴。 可以使用不同的可信計(jì)算技術(shù)來(lái)解決這些問(wèn)題。 例如Oracalize等公司一直在利用基于TLSNotary的技術(shù)。 Town Crier則專注于利用英特爾的Software Guard Extensions (SGX)。 提供可靠的信息來(lái)源的智能合約對(duì)用戶來(lái)說(shuō)至關(guān)重要,因?yàn)橐坏┏鲥e(cuò)就沒(méi)有后悔藥吃。
分散式應(yīng)用程序(dApp)
分散式應(yīng)用程序(dApps)是在多臺(tái)計(jì)算機(jī)的P2P網(wǎng)絡(luò)上運(yùn)行的應(yīng)用程序,而不是在一臺(tái)計(jì)算機(jī)上運(yùn)行的。 dApps自P2P網(wǎng)絡(luò)出現(xiàn)以來(lái)一直存在。 它們是一種軟件程序,其設(shè)計(jì)目的是以不受任何單一實(shí)體控制的方式存在于互聯(lián)網(wǎng)上。
分散式應(yīng)用程序不一定需要在區(qū)塊鏈網(wǎng)絡(luò)之上運(yùn)行。 BitTorrent,Popcorn Time,BitMessage,Tor都是在P2P網(wǎng)絡(luò)上運(yùn)行的傳統(tǒng)dApp,但并不是在區(qū)塊鏈上(區(qū)塊鏈?zhǔn)且环N特定的P2P網(wǎng)絡(luò))。
與簡(jiǎn)單的智能合約相反,就比特幣的經(jīng)典意義而言(A轉(zhuǎn)賬給B),dApps在市場(chǎng)上的各個(gè)方面擁有無(wú)限數(shù)量的參與者。
DApps vs Smart Contracts
dApps是一個(gè)“支持比特幣”的網(wǎng)站,其中智能合約允許它連接到區(qū)塊鏈。 了解他們之間的區(qū)別的最簡(jiǎn)單方法是了解傳統(tǒng)網(wǎng)站的運(yùn)作方式。
傳統(tǒng)的Web應(yīng)用程序使用HTML,CSS和JavaScript來(lái)呈現(xiàn)頁(yè)面。 它還需要利用API從數(shù)據(jù)庫(kù)中獲取細(xì)節(jié)。 當(dāng)您進(jìn)入Facebook時(shí),該頁(yè)面將調(diào)用API來(lái)獲取您的個(gè)人信息并將其顯示在頁(yè)面上。
dApps類似于傳統(tǒng)的Web應(yīng)用程序。 前端使用完全相同的技術(shù)來(lái)渲染頁(yè)面。 一個(gè)關(guān)鍵的區(qū)別是,沒(méi)有連接到數(shù)據(jù)庫(kù)的API,而是有一個(gè)智能合約連接到區(qū)塊鏈
與傳統(tǒng)的集中式應(yīng)用程序(后端代碼在集中式服務(wù)器上運(yùn)行)相反,dApp的后端代碼運(yùn)行在分散式P2P網(wǎng)絡(luò)上。 分散式應(yīng)用程序由從后端到前端的整個(gè)軟件包組成。 智能合約只是dApp的一部分。
另一方面,智能合約僅包含后端,并且通常只包含整個(gè)dApp的一小部分。 這意味著,如果您想在智能合約系統(tǒng)上創(chuàng)建分散式應(yīng)用程序,則必須合并多個(gè)智能合約,并依靠第三方系統(tǒng)作為前端。
dApp可以用何語(yǔ)言編寫(xiě)前端代碼和用戶界面(就像應(yīng)用程序一樣),可以調(diào)用其后端。 此外,其前端可以托管在分布式存儲(chǔ)上,如Swarm或IPFS。
dApps Requirements
如果一個(gè)應(yīng)用程序?yàn)榛趨^(qū)塊鏈的dApp,它必須符合以下條件:
(1)必須完全開(kāi)源。它必須自主運(yùn)作,并且沒(méi)有實(shí)體控制其大部分代幣。 應(yīng)用程序可能會(huì)根據(jù)建議的改進(jìn)和市場(chǎng)反饋調(diào)整其協(xié)議,但其用戶必須在所有更改上達(dá)成共識(shí)。
(2)應(yīng)用程序的數(shù)據(jù)和操作記錄必須以加密方式存儲(chǔ)在公共的,分散的區(qū)塊鏈中,以避免出現(xiàn)中心節(jié)點(diǎn)故障。
(3)必須使用訪問(wèn)應(yīng)用程序所需的加密代幣(比特幣或其系統(tǒng)本身的令牌),并且(礦工)的任何貢獻(xiàn)應(yīng)得到應(yīng)用代幣獎(jiǎng)勵(lì)。
(4)應(yīng)用程序必須根據(jù)標(biāo)準(zhǔn)加密算法生成代幣,作為節(jié)點(diǎn)為應(yīng)用程序做出貢獻(xiàn)的證明(比特幣使用PoW算法)。
dApp開(kāi)發(fā)過(guò)程
(1)白皮書(shū)和相關(guān)協(xié)議。發(fā)布白皮書(shū)描述dApp及其功能。 白皮書(shū)可以概述dApp開(kāi)發(fā)的想法,但也需要一個(gè)工作原型。
(2)建立初始的代幣。
(3)初始發(fā)行代幣,分散Dapp的所有權(quán)。
(4)開(kāi)發(fā)和部署。
Example: Ethereum dApps
以太坊計(jì)劃為分散式應(yīng)用程序創(chuàng)建協(xié)議。 以太坊為開(kāi)發(fā)人員提供了一個(gè)基礎(chǔ)層:內(nèi)置確定型圖靈機(jī)編程語(yǔ)言的區(qū)塊鏈,它允許任何人編寫(xiě)智能合約和分布式應(yīng)用程序,在這些應(yīng)用程序中他們可以為所有權(quán),交易格式和狀態(tài)轉(zhuǎn)換創(chuàng)建他們自己的任意規(guī)則。 總的來(lái)說(shuō),在以太坊之上有三種類型的應(yīng)用程序:
(1)金融應(yīng)用。為用戶提供更強(qiáng)大的管理方式,用他們的訂合同
(2)半金融應(yīng)用。涉及貨幣的方面,但是所做的事情也有非常重要的非貨幣方面的。
(3)政府應(yīng)用。如,在線投票,分金融的分布式管理。
dApps的例子
(1)代幣系統(tǒng):區(qū)塊鏈代幣系統(tǒng)有許多應(yīng)用程序,從代表資產(chǎn)(如美元或黃金)的子貨幣到公司股票,代表智能財(cái)產(chǎn)的個(gè)人代幣,安全且不可偽造的優(yōu)惠券,甚至與傳統(tǒng)貨幣無(wú)關(guān)的代幣系統(tǒng),用作激勵(lì)的積分系統(tǒng)。
(2)金融衍生工具和價(jià)值穩(wěn)定的貨幣:例如,一個(gè)非常理想的應(yīng)用程序是一個(gè)智能合約,通過(guò)使用數(shù)據(jù)饋送(如來(lái)自納斯達(dá)克),避免以太幣相對(duì)于美元的波動(dòng)性。。
(3)身份與聲譽(yù)系統(tǒng):聲明土地所有者名稱的合同可以添加到以太坊網(wǎng)絡(luò)中,但不能修改或刪除。任何人都可以注冊(cè)一個(gè)具有一定價(jià)值的名稱,然后該注冊(cè)將永久保存。
(4)分散式文件存儲(chǔ):類似Dropbox的dApp,其中智能合約將所需數(shù)據(jù)分成塊,對(duì)每個(gè)塊進(jìn)行隱私加密,并從中構(gòu)建Merkle樹(shù),然后將整個(gè)數(shù)據(jù)分散到計(jì)算機(jī)的p2p2網(wǎng)絡(luò)。但私人數(shù)據(jù)不會(huì)存儲(chǔ)在區(qū)塊鏈中。
(5)分散的自治組織(DAO):擁有一定數(shù)量的成員或股東的虛擬實(shí)體,可能擁有67%的多數(shù)股份,有權(quán)使用該實(shí)體的資金并修改其代碼。成員們將共同決定組織如何分配資源。
在開(kāi)放源代碼的許可下,允許dApps在不受版權(quán)或?qū)@拗频那闆r下開(kāi)放創(chuàng)新。 另外,通過(guò)完全開(kāi)放源代碼,分散式應(yīng)用程序可以在開(kāi)源軟件的合法模式下運(yùn)行。 比如,比特幣使用MIT開(kāi)源軟件許可證。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47820瀏覽量
415067 -
區(qū)塊鏈
+關(guān)注
關(guān)注
112文章
15577瀏覽量
111004 -
以太坊
+關(guān)注
關(guān)注
14文章
1838瀏覽量
33387
原文標(biāo)題:當(dāng)物聯(lián)網(wǎng)邂逅區(qū)塊鏈
文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一篇文章帶你了解什么是物聯(lián)網(wǎng)技術(shù)?
激光雷達(dá)點(diǎn)云為什么會(huì)出現(xiàn)吸點(diǎn)現(xiàn)象?
Lora基站在物聯(lián)網(wǎng)應(yīng)用的重要性
食品冷鏈物聯(lián)網(wǎng)平臺(tái)解決方案
物聯(lián)網(wǎng)與區(qū)塊鏈的邂逅會(huì)出現(xiàn)什么火花!
評(píng)論