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