基於ODIN和PPTP協議構建去中心化數字資產管理網路

買賣虛擬貨幣
資產區塊鏈化是近期全球業界研究的焦點, 包括Ethereum,Chain, 甚至部分基於二層交換協議的專案都在圍繞這個方向打造生態。 目前有一個成功的例子就是USDT,它是基於比特幣鏈上的omni協議或以太坊ERC20規範發行的第三方背書資產,作為法幣世界與區塊鏈世界中間的潤滑劑,在行業中已經非常重要。資產上鍊預期會成為區塊鏈的殺手級應用,但目前存在兩個問題阻礙其大規模推廣:1. 區塊鏈資產的標示問題

傳統網際網路透過DNS域名系統,IP和HTTP協議,來標示資訊。比如訪問google,我們只會透過瀏覽器輸入域名來跳轉到對應的站點,而不會去記住相應的IP地址。 同樣對比區塊鏈,當我們需要執行dapp或者訪問鏈上資訊時,都必須部署節點,並根據HashID來對映資源,這顯然是十分不友好的。區塊鏈也需要構建網路, 透過URI和獨有易讀ID來唯一標示資料, 如下圖所示,構建一個對等可信區塊鏈網際網路, 相應要有跨鏈,對等可信協議等組合,現在缺少完整的協議棧。

2. 區塊鏈資產的統一性問題

資產發行方在不同區塊鏈上發行同一種資產,由於缺乏統一的管理方案,導致偽資產假地址等欺詐事件層出不窮。 比如如何確定某個ERC20代幣和比特幣上的衍生代幣都是USDT資產,目前來看是存在困難的。這就需要有資產統一管理協議來解決這個痛點。

業界提出了很多解決方案,例如namecoin,onename和taqanu等,但特點都是要依附某一獨立區塊鏈,眾所周知維護一個區塊鏈系統工作量和成本極大,所以這並不是一個很好的選擇。介於此,我們更青睞輕量級的解決方案,選擇基於ODIN+PPTP協議來構建去中心化對等可信資產管理網路。

ODIN (Open Data Index Name) 是遵從 URI(統一資源識別符號)規範,用於標識和交換資料內容索引的一種開放性系統。以比原鏈為例,其上的數字資產能夠透過ODIN轉義標識,如URI: ppk:BTM/asset/#1.0, 這是區別於區塊鏈RPC呼叫獲得資訊的訪問模式。 ODIN規範是基於比特幣主鏈, 優點在於

自主性與便捷性:ODIN標識僅被一對非對稱加密的公私鑰所控制,而ODIN標識的資料訪問點,公鑰索引等相關配置,則透過封裝成比特幣交易的形式永久儲存在比特幣區塊鏈上。

去中心化與魯棒性:能夠避免傳統中心化的URI實現形式的單點故障和抵禦DDoS攻擊。

不可篡改與安全性:ODIN 識別符號擁有者可以透過私鑰對自主釋出的資料內容進行簽名,而公鑰是透過ODIN標識機制關聯存放在區塊鏈上,接受資料內容的個體可以透過區塊鏈獲得可信的公鑰進行驗證,以確保收到的資料是來源可信和不被篡改的。

PTTP是 Peer Trusted Transfer Protocol(對等可信傳輸協議)的縮寫。每一個ODIN標識URI會被解析對映到一個或若干個AP(Access Point,即資料訪問點)上,由AP節點按照PTTP協議負責中轉或提供具體資訊服務。 AP可以理解為網路裡的”中繼”和”WEB伺服器“。 這樣就組成了完整的區別於網際網路的區塊鏈網路。 使用者不需要關心節點在哪裡,應用在哪裡,透過瀏覽器就可以可信地訪問區塊鏈。

如下圖所示,實現整個資產管理網路關鍵點在於結合ODIN和PTTP設計一個完備的資料互動規則。

實踐:

我們拿比原鏈進行落地嘗試, 實現一個資產管理網路的Demo。

示例一:註冊BTM的根標識,建立基礎訪問鏈路

首先,基於ODIN註冊BTM的根標示,在比特幣鏈上建立交易 ,透過註冊地址設定管理員和資料訪問點。在交易得到確認後,透過讀取區塊鏈資料可知如下資訊,設定了2個訪問點,和相應ODIN名稱和管理員地址,

ppk:519502.2699 代表在高度為519502的區塊中的第2699筆交易中記錄了資訊,且定義了BTM資產的根標識,同時按ODIN標識協議規範轉化成短標識286和BTM。從這個轉義過程能看到ppk:BTM/, ppk:286與ppk:519502.2699/從邏輯上是等價的,可以從具體業務場景出發靈活選擇使用。按照標準格式的ODIN標識,客戶端根據該標識對應存放在比特幣區塊鏈上的訪問點AP引數,進一步解析指向實際的AP節點URL(類似傳統DNS域名解析到IP地址的過程),在此示例裡客戶端獲得的AP節點URL是 http://blockmeta.com/api/odin。

由客戶端按AP URL中對應的實際承載協議型別(如此示例的HTTP協議)來組織傳送符合PTTP協議的興趣包(Interest)給AP節點,這此例中為比原鏈區塊瀏覽伺服器。

查詢結構資料結構為:

伺服器得到興趣報文,主要解析interest欄位內的uri欄位,透過解析uri欄位,獲取相關資料,併傳送RPC請求到後端比原鏈節點,返回得到應答後,再基於迴應資料構造內容資料包,其中包含對內容雜湊進行簽名,確保資料的完整性和安全性。最後傳送回客戶端。

客戶端獲得應答的內容資料包,然後按該ODIN標識存放在比特幣區塊鏈上索引的公鑰等可信驗證引數自主對內容資料包進行可信驗證,驗證透過後顯示綠色字型的“Valiade OK”, 這樣鏈路打通了, 後續就可以基於二級路徑ppk:BTM/asset 來直接訪問資產資料。

示例二:輸入ppk:BTM/asset/ #1.0返回關於指定資產的JSON格式的相關詳細資訊

示例二與示例一的主要區別在與訪問ppk:BTM/asset/#1.0存在多級標識的遞迴解析。多級ODIN標識的解析過程如下:客戶端首先訪問ppk:BTM/asset#獲得定位下一級標識的解析內容資料包,其content內容為

客戶端解析步驟1得到的內容資料包,進一步遞迴訪問下一級標識的內容資源如ppk:286/asset/#1.0,並向對應的AP節點http://blockmeta.com/api/odin傳送請求,獲得返回的資產詳細內容資料包,並顯示至前臺,如下圖所示:

由此得到示例一和二,解決了區塊鏈資產標識問題,只要建立了網路,使用者無需執行比原鏈客戶端無需透過中心化瀏覽器訪問,就可獲得鏈上可信的資產資訊。 那麼如何解決多鏈同資產統一性問題呢, 可以透過AP擴充套件的方式實現

示例三: 一種資產在以太坊上和比原鏈上同時發行,透過ODIN標識為兩者確權。

要確定這是否是同一類資產且屬於同一發行方, 就需要同一發行方掌握兩條鏈上資產的管理私鑰,假定資產先在以太坊上發行,後在比原鏈上發行,那麼就需要在比原鏈資產定義中加入相應的資訊,如下圖所示:

data欄位代表在以太坊上資產的定義, attach是與相應的odin標識匹配, signed資料是資產發行方對data資料的簽名資訊, 這樣就可以證明兩者的資產發行方是相同的, 同時我們透過以太坊資產的odin標示,來直接訪問相應的資產資訊, 這需要在odin瀏覽器中實現遞迴訪問的功能。

另外假如同種資產要在第三個區塊鏈上發行,同樣需要將比原鏈上的資產資料放於鏈上,形成一種”鏈式”巢狀定義,實現三方錨定。

未來發展:

可以看到,示例中對鏈上資料的操作和訪問還是非常初級的,要實現複雜完備的功能,需要三方面的工作:

1.處理複雜遞迴資料的訪問,需要有定義高效的跨鏈資產訪問協議,與易用友好的瀏覽器支援。

2.基於現有架構,可以觀察到資料在AP與AP間或者AP與區塊鏈節點間流動,因此AP單點可用性擴充套件性會遇到挑戰,設計一個高可用高效能的AP服務框架,這是未來重要的工作。

3.完善AP與節點的通訊協議,定義和支援“bytom:”形式的服務介面,封裝和對接比原鏈節點的RPC介面服務,可以實現更為靈活、複雜的功能,如類似ERC20的數字資產發行和交易介面,形成一套完整的數字資產管理系統。

透過上述基於比原鏈的示例,很好地展示了ODIN標識和PTTP協議結合區塊鏈資產管理網路的創新概念,體現對跨平臺數字資產發行和流通的支援潛力,從而為實現“連通原子世界與位元世界,促進資產在兩個世界間的互動和流轉”的長遠目標提供確實的支撐。只要有越來越多的區塊鏈能加入這個網路,那麼資產區塊鏈化的爆發奇點一定會馬上到來。

更多數字貨幣資訊:http://www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;