KT小白筆記|第9課 ULORD原鏈及技術優勢(下)
整理這堂筆記時,市場上依舊片野哀嚎...
這個小白筆記系列...記錄著自己一步一步學習一個嶄新科技領域的過程,同時也記錄著有那麼一群人(ULORD團隊及社區志願者)為了世界更好更公平一直默默的持續努力與付出著...
不論未來成敗如何,至少我們曾經一起走過科技領域上歷史性的階段...
時間:2018年11月21日
講師:ULORD技術團隊/優得學院 丁博士
本次課程以四個方面來說明ULORD突破性的核心關鍵技術:
一、ULORD智能合約;
二、ULORD共識算法;
三、ULORD隱私保護;
四、ULORD即時支付。
ULORD突破性的核心關鍵技術
一、ULORD智能合約
智能合約
智能合約是一套以「數字形式」定義的承諾,包括合約參與方可以在上面執行承諾的協議。
通俗來講,智能合約是一個在計算機系統上,當一定條件被滿足的情況下可以被自動執行的合約。
(一)智能合約與區塊鏈的關系
智能合約與區塊鏈的關系密碼學家尼克薩博(Nick Szabo)發明瞭智能合約的概念,但因為缺乏能夠支持可編程合約的數字系統和技術,導致智能合約的工作理論遲遲無法實現。
然而,區塊鏈技術的出現解決了該問題,不僅可以支持可編程合約,而且具有去中心化、不可篡改、過程透明、可追蹤等優點,天然適合於智能合約。
將智能合約以數字化的形式寫入區塊鏈中,由區塊鏈技術的特性保障存儲、讀取、執行整個過程透明可追蹤、不可篡改。同時,由區塊鏈自帶的共識演算法構建出一套生態系統,使得智能合約能夠高效地運行。
(二)智能合約的工作原理
智能合約的工作原理智能合約的工作原理包括三個步驟:
第一步是「智能合約的構建」:智能合約由區塊鏈的多個用戶共同參與制定一份智能合約。
第二步是「智能合約的存儲」:智能合約通過P2P網路擴散到每個節點,並存入區塊鏈。
第三步是「智能合約的執行」:智能合約定期進行自動機狀態檢查,將滿足條件的事物進行驗證,達成共識後自動執行並通知用戶。
(三)ULORD統一域名機制
下面說明ULORD系統中「統一域名機制」是如何使用智能合約。
ULORD允許用戶調用平臺層的API(Application Programming Interface;應用編程介面),發布自己的站點服務,並且可以使用可讀的、易記字元串作為域名,來讓ULORD用戶更能便捷的訪問其他用戶在ULORD平臺上的資源。
用戶發布資源之前,通過指定域名站點申請可讀易記的域名(就像平常上網的域名),但是在區塊鏈應用中,需要綁定一定數目的ULORD Token(簡稱UT)。
隨著時間推移,UT會隨著區塊的增加而逐漸消耗,用戶可以通過充值的方式,讓域名持續有效。所有因申請域名所消耗的UT將流入底層網路,變為記賬的一部分費用。因此為了支持可讀統一域名機制,ULORD系統引入了一個新的數據結構,叫做域名樹。
在域名樹的數據結構中保存ULORD上所有的域名以及關聯的信息,每個節點對應一個域名,同時每個節點還保留著該節點相關的交易信息。 每個域名在ULORD網路中是獨一無二,註銷域名後,域名會自動釋放。
為了確保完整性,ULORD對域名的區塊結構進行了修改,添加了一個域名樹的欄位,有域名樹的哈希,這就是ULORD系統中很主要的一個關鍵技術,這個統一域名機制就是運用了智能合約中的資源消耗。
ULORD統一域名機制何謂智能合約的資源消耗?
ULORD智能合約引入以太gas概念區塊鏈裡面有礦工的概念,礦工有權利選擇先打包哪一個交易,你支付的交易費越多,礦工就越喜歡幫你打包,這樣交易的速度也越快。
在以太坊的智能合約中有一個gas的概念,gas就類似於汽車汽油,也就是必須支付的交易費。比如說我完成一筆交易,交易費是0.001eth,這個就是我們說的交易手續費。
ULORD系統在智能合約上,便引入了這個gas的設計理念,但是不同於以太坊的gas概念,在每一個操作上都會消耗gas,而是採用了更簡化的做法:
用戶在發布ULORD上的資源和站點,都是消耗ULORD網路的資源;用戶綁定一個域名,也是消耗ulord上的資源。因此,用戶在發布資源或者站點時,需要綁定一定量的UT,隨著區塊高度的增加,UT會逐漸消耗掉,用戶需要在UT消耗掉之前往站點充入新的UT,才能確保擁有域名的所有權。
同時ULORD通過側鏈技術建立以太虛擬機,發布智能合約。Ulord允許用戶自定義發布自己的站點服務,並通過發行自己的代幣,運行自己的站點。代幣與UT之間存在一定比例的兌換關系。
這就是ULORD在智能合約上的技術突破及優勢。
二、ULORD共識算法
ULORD共識算法ULORD系統同時採用了兩個很重要的共識演算法,一個是「工作量證明機制」(Proof of Work;簡稱 PoW演算法),另一個是「權益證明機制」(Proof of Stake;簡稱 PoS演算法)。
ULORD的PoW演算法採用了CPU挖礦演算法,通過採用多級串列密碼學原語操作,同時結合計算機體系結構特徵,具備永久防ASIC的挖礦特徵。
ULORD的PoS演算法主要是為了鼓勵更多的主節點加入,通過提供更多的存儲空間,在為自身帶來收益的同時,也為ULORD提供海量的分佈式存儲空間。一個UlLORD主節點,需要抵押10000個UT當作押金和1TB以上的存儲空間。這些存儲在主節點上的押金不會丟失或損耗,這可讓主節點擁有者為全網提供服務的同時,賺取一定的投資收益,減少UT的價格波動。
PoW挖礦機制永久防止ASIC的壟斷式挖礦,而PoS演算法能鼓勵更多主節點參與進來,因此,ULORD結合了PoW和PoS共識演算法將使得整個ULORD生態環境更加優秀。
三、隱私保護
(一)零知識證明(zero-knowledge proof)
零知識證明是由 S.Goldwasser、S.Micali及 C.Rackoff 在20 世紀 80 年代初提出的。它指的是證明者向驗證者證明並使其相信自己知道或擁有某一消息,但證明過程無須向驗證者泄漏任何關於被證明消息的信息。
引用阿裡巴巴的經典故事來說說零知識證明的運作機制:
有一天,阿裡巴巴被強盜抓住了,為了保命,他必須向強盜證明自己擁有打開山洞石門的咒語,但又不能直接把咒語告訴強盜。於是,阿裡巴巴想了一個好辦法,當強盜向他拷問打開山洞石門的咒語時,他對強盜說:“你們離我一箭之地,用弓箭指著我,你們舉起右手我就念咒語打開石門,舉起左手我就念咒語關上石門,如果我做不到或逃跑,你們就用弓箭射死我。”
強盜們欣然的接受了這個辦法,因為這個辦法不僅對他們沒有任何損失,而且還能幫助他們搞清楚阿裡巴巴到底是否知道咒語這個問題。同樣的,阿裡巴巴也沒損失,因為處於一箭之地的強盜聽不到他念的咒語,不必擔心泄露了秘密,而且他確信自己的咒語有效,所以也不會被強盜射死。
簡而言之,證明自己能做某事,但又不泄露與做某事有關的重點信息,這一過程就可以說是零知識證明過程。這里的“知識”大家可以用“信息”來替代就更便於理解了。
(二)零知識簡潔非互動性知識參數(zero-knowledge Succint Non-interactive Arguments of Knowledge;簡稱zk–SNARK)
每個單詞都有特定的含義:
Zero knowledge:零知識證明;
Succinctness:簡潔的證據信息,更便於驗證;
Non-interactivity:沒有交互性,對於區塊鏈來說,這一點至關重要,可以放心把消息放在鏈上公開驗證;
Arguments:證明過程是計算完好(computationally soundness)的,證明者無法在合理的時間內造出偽證(破解);
of knowledge:對於一個證明者來說,在不知曉特定證明 (witness) 的前提下,構建一個有效的零知識證據是不可能的。
(三)零知識證明技術在ULORD上的應用
在隱私保護上,ULORD採用了「零知識簡潔非互動性知識參數」(zk–SNARK))來驗證智能合約,對客戶提供隱私保護。
零知識證明技術在ULORD上的應用例如,用戶A 要轉 2個UT給用戶C,如果直接採用比特幣的方法,會有隱私泄露的風險。
因此用戶A 把自己的 2個UT分成若干份隨機投入一系列中間公用的“混合容器”,容器將內部所有的幣再隨機拆分成若干份,最後將總量為 2個UT的數份轉給C。
這種方法的好處就是,我們成功地證明瞭 2個UT屬於 A,但不能通過交易知道 B 的2個UT是 A 轉過來的,成功地保護了用戶的隱私。
每一筆交易使用零知識證明來驗證以及輸入輸出,地址不用暴露到整個網路中,這就是零知識證明在ULORD裡面的隱私保護上的一個好處。
四、ULORD即時支付
ULORD即時支付ULORD主要使用主節點技術,用戶能夠發送和接收即時不可逆轉的交易。一旦即時交易形成,該交易的輸入被鎖定在對於的特定交易處。
目前ULORD全網交易鎖定的時間大約為4秒, 一旦在主節點網路達成鎖定的共識,除非它們能匹配當時鎖定的交易對應ID,否則所有與之沖突的交易和區塊將會被永久拒絕。
用戶可以通過ULORD進行商品的服務和購買,快速得到支付確認,而且整個支付過程中沒有任何中心機構的干預,因此ULORD可以輕易滿足即時支付的相關商業場景。