項目的特點
1. 共識協議:DDPOS。高TPS,兼顧精英治理與大眾普選,避免成為少數人的專政。
2. 完善的系統升級機制:區塊鏈系統的每次升級即是一次硬分叉。由于各種原因,部分用戶選擇不更新客戶端,因此和升級后的客戶端失去共識,造成系統價值的損失。Genesis將投票功能built in客戶端,系統升級在系統中多數人達成共識后自動進行,保證了系統升級的時候的價值得以延續。
3. DApp Store(1.0版):傳統的區塊鏈主鏈像windows一樣,開發者開發的DApp散落無組織。 Genesis中有一個DApp store作為面對普通用戶的入口,開發者和用戶都必須遵守一定的規則和監管。作為一個去中心的自制社區,這個監管由社區自行投票擬定。最初的原始規則采用類似reddit的排名機制(基于用戶投票排名)。
4. 自帶存儲側鏈:目前市面上的公鏈大都不具備存儲能力。Storj和siacoin之類 雖然允許開發者存儲數據,但是這些鏈設計復雜,更適合于專業的去中心存儲場景。Genesis存儲側鏈自帶數據存儲的經濟體系,開發者可以直接調用來開發需要存儲大量數據的應用。
5. 開發進度30%:基于Rust開發,系統編程、安全、并發、高效。Framework鏈計劃于2018年9月測試,主網testnet計劃于2018年12月上線。
6. 和其他主鏈項目的對比:Genesis作為一條公鏈,通過側鏈實現擴展,和現有的公鏈的對比如下:
?
項目的目標
我們希望最終Genesis要打造的不僅僅是一個區塊鏈基礎鏈,更是John Barlow 夢想中的,能實現DAO治理的理想國,一個全新的,完全獨立自治的,不受任何中心化權威控制的互聯網虛擬世界,一個未來將顛覆所有現有社交網絡和互聯網生產關系的互聯網空間。
Genesis系統介紹
出發點
用戶為社交平臺貢獻了大量的內容,成就了臉書等社交平臺的巨大成功。然而,用戶提交的內容所產生的收益大部分被這些平臺拿走,并沒有分享給這些用戶。實際上,用戶只有這些社交平臺的使用權,沒有所有權。Genesis用區塊鏈技術打造一個去中心的社區。社區所有內容由全體用戶擁有,社區的規則也由用戶自己制定。社區依托于一條高性能的公鏈,用戶可以通過在其上發布的各種去中應用來實現各種功能和場景。
治理機制
Genesis用區塊鏈技術打造一個去中心的社區。社區所有內容由全體用戶擁有,社區的規則也由用戶自己制定。Genesis的核心治理原則為“自治”, 用戶參與自治最重要的工具是“投票”。
Genesis里有下面這些核心對象:
1. 人
Genesis系統里的第一要素是人,也就是用戶。Genesis由共享同一用戶系統的一條主鏈和多條側鏈組成。Genesis中的用戶可分為普通用戶、地主和元老三種。其中地主負責維護一個云盤,而元老負責維護整個區塊鏈系統。
Genesis的用戶具有如下特點:
● 用戶名無需注冊,生成私鑰/公鑰即可以使用。
● 出生紙:用戶激活時,設定一個僅自己知道的字符串,用于被質疑時驗證身份。
● 投票權:每個用戶都有投票權利,用于對各種事件作出選擇。
Genesis的用戶在系統里有不同角色,例如:
● 元老 Block Producer:元老負責對全網數據進行共識維護。
● 地主 Landholder:地主負責以Merkle Tree的形式維護一個云盤。
● 普通用戶 Users:普通用戶可以從市場購買應用并且參與投票等。
2. 貨幣
Genesis系統流通的貨幣叫Gencoin或者創世幣。創世幣是驅動Genesis生態系統的動力。
獲得創世幣渠道:
● 普通用戶:
○ 保持在線狀態會有機會獲得創世幣
○ 用戶的事件記錄被應用端程序調用時會獲得創世幣
○ 參與投票等活動會獲得發起投票的人所附上的獎勵
○ 創造出有用的內容
○ 創建應用程序并發布在應用商店上
● 地主:維護云盤獲得創世幣
● 元老:維護區塊鏈共識機制等獲得創世幣
消耗創世幣的渠道:
● 應用端程序每次獲得用戶授權需要消耗創世幣
● 普通用戶:
○ 發起投票等活動可能會消耗創世幣
○ 使用應用程序或購買應用程序內的功能
類似EOS的模式,基本上任何需要消耗計算力的事件都需要用創世幣做抵押,這樣可以有效防止Ddos攻擊。 以下是Genesis創世幣的經濟關系圖:
3. 市場
市場(Genesis Market/DApp store)是DApp的交易場所,也叫應用商店。在這里,普通用戶可以找到所有在Genesis生態圈里的應用。用戶通過對這些應用的下載和使用來實現其在Genesis虛擬世界的各項生活需求。對于開發者來說,這里是他們發布應用并獲取收入的場所。
4. 憲法
Genesis允許用戶簽訂共同希望遵守的協議,即憲法(如果是少數用戶直接的協議,則叫法律)。憲法是系統的最高規則,所有用戶和活動必須遵守憲法。憲法由大法官來負責發起投票動議,并且由全體用戶投票的方式來更新。
5. 投票
通過投票來參與到管理是Genesis的核心治理原則。用戶的投票權作為核心機制寫在區塊鏈里。系統運行之后,算法成為基本邏輯的堅定執行者,任何一種全局性改變都需要群體通過投票的來決定。投票的機制是Genesis演化和用戶自治的核心手段。區塊鏈中記錄的不可篡改的特點讓Genesis里的投票具有絕對的公信力,因此集體通過投票達到的系統進化即可以代表大多數用戶的意愿。
Genesis主要通過用戶投票的機制完成對自身協議的更新, 實現進化。對于程序無法處理的邏輯,Genesis通過人工投票來完成決策。例如軟件出現bug,必須更新的情況,即可由系統里的任何一個人提出動議,并且附上更新后的版本以及愿意為該動議支付的貨幣,其它人用投票方式表決是否接受新版本。Genesis中投票應用廣泛,還可以用于仲裁用戶之間的糾紛等場合。
Genesis的區塊鏈技術
Genesis的共識機制
Genesis項目在發展過程中,設計過兩種共識機制。第一種是將POW的算力用于數據模型訓練的POC(Proof of Comprehension)共識。第二種是民主代理人權益證明 DDPOS(Democratic Delagated Proof of Stake)共識。兩種機制都為Genesis團隊原創并申請專利。POC作為Genesis共識的最初版本,將被做成一個DApp放在側鏈。目前Genesis采用第二種共識機制,即DDPOS。
1.0版:POC(Proof of Comprehension)
POC(Proof of Comprehension)是一種基于POW的改良。傳統區塊鏈工作量證明POW是一個復雜的加密機制, 當礦工節點試圖去制造一個區塊時, 會將若干筆交易通過hash算法進行加密,來形成一個符合協議的字符串。這個加密的過程會消耗幾乎100%的cpu運算量以及時間,加密出來的字符串被稱為解。傳統POW機制產生的解是無意義的,其好壞只由反映出區塊鏈的健壯性的特定序列的長度來決定。
眾所周知基于深度學習的人工智能算法近些年在包括語音識別,圖像識別等領域都取得了突破性進展。而訓練深度學習模型需要消耗大量的算力,可以說算力的堆積對于深度學習模型的效果有著決定性的作用。由于GPU等高性能計算設備價格昂貴且在市場上經常供不應求,而算力的缺乏成為了學術界和工業界搭建更優秀深度學習系統的瓶頸之一。
Genesis將區塊鏈加密所必須的工作量證明和深度學習進行了有機結合。不同于傳統的POW方法僅僅依賴于算力的多少來進行工作量證明,我們通過驗證礦工使用算力訓練所得到的深度模型的有效性來判斷其工作量,這也就是所謂的POC(Proof of Comprehension)。鑒于之前我們提到的模型有效性與算力之間的正比關系,因此礦工所訓練深度模型的有效性可以作為其工作量的證明,同時,挖礦的過程最終將締造出強大的人工智能系統,使整個求解的過程具有實際意義,解決了傳統POW算力浪費的問題并且為Genesis提供了一個極其廣闊的應用空間。
Genesis的Proof of Comprehension 本質上是一個具有自動學習和理解能力的人工智能機制。POC在不斷的數據訓練中會變得更強大和聰明,讓Genesis的共識過程更高速,單位時間內處理更多交易。不同于大多數區塊鏈項目,Genesis單位時間處理交易的次數tps是隨著系統的進化動態增加的一個指標,隨著使用人數和處理數據越多,系統tps反而會越大。
另外一方面,隨著Genesis訓練的數據越多,Genesis將有能力理解更多人類邏輯,從而未來系統有可能進入到其它需要大量運算力的領域,前景非常廣闊。需要強調的是,Genesis 的POC共識機制僅僅會放在側鏈上作為一個DApp運行。
Genesis的POC機制是Genesis團隊原創,已經申請專利。POC的詳細實現流程如下:
數據獲取和模型輸出
數據通過DApp store里的DApps輸入Genesis。第三方的應用程序開發團隊可以在Genesis現有的基礎上進行DApps的開發,并通過這些DApps提供個人或者實體上傳數據的渠道。同時數據提供者也通過DApps獲得補償。
數據進來Genesis后,將會被存在一個分布式的文件存儲系統。Genesis中,每一個farmer都是一個數據資源的維護者,而所有的farmer的集群可以看作是一個由所有farmer共同維護的可實時擴充的分布式文件存儲系統。
數據經過POC訓練后,通過DApp輸出結果。
數據存儲
數據在Genesis中被存儲在一個虛擬數據中心當中供下一步POC使用。
1. 虛擬數據中心
Genesis系統中用于存儲數據的節點被稱為存儲節點,存儲節點和普通節點使用一樣的地址空間。數據集將以碎片的形式復制并分散到不同的存儲節點上。 存儲節點的集群被稱為虛擬數據中心。每當用戶提交transaction時, 該用戶將會和虛擬數據中心的若干節點簽訂存儲合約來租賃數據中心的存儲空間。該技術將確保Genesis的可擴容性和數據一致性。
2. 默克爾樹
默克爾樹常用于不可信源數據驗證。 默克爾樹有如下特征:
● 默克爾樹的葉子節點上的值為等長數據塊。
● 非葉子節點的value是根據它下面所有的葉子節點值,然后按照一定的HASH算法計算而得出的。如果非葉子節點的子節點也同為非葉子節點,該非葉子節點的值由其子節點的值組合后HASH加密后得到。
● 用戶會以默克爾樹的一個分支路徑進行數據同步。這個路徑被稱為驗證路徑。 每一個驗證路徑會被默克爾樹根驗證。
Genesis使用二叉默克爾樹進行數據存儲。假設數據塊的數量為N, 那么根據二叉樹的特性可知一個默克爾樹的生成復雜度為O(2-N)。
3. 數據存儲方式
Genesis的數據以默克爾樹的形式存于不同的存儲節點中。處于激活狀態的存儲節點在p2p網絡中廣播自己的IP,用戶收到廣播后會將可信度高的存儲節點置于節點隊列中并構建虛擬數據中心。之后用戶將自己的默克爾樹同步到虛擬數據中心并在數據同步校驗成功后和虛擬數據中心簽訂存儲合約。
4. 存儲合約的制定與發布
存儲合約是存儲空間租賃者和存儲節點之間達成的協議。 協議內容以腳本的形式存在于合約的payload中, 協議內容包含簽訂者雙方應當履行的義務。合約在發布前會要求合約附上數據提供者與數據中心的數字簽名組。 一旦合約簽訂發布,合約將不能被修改。合約內容包含:
● 合約hash頭
● 合約創建時當前區塊鏈高度
● 租賃周期(以區塊高度計算)
● 驗證數據有效性的默克爾樹根
● 數字簽名組(包含數據提供者和虛擬數據中心的數字簽名)
● 存儲節點的外網IP組
● 雙重鎖定腳本(數據上傳者會將一個周期內的獎勵通過虛擬數據中心的公鑰組合特殊驗證路徑進行雙重鎖定, 需要礦工使用特殊驗證路徑以及存儲節點使用私鑰進行解鎖)
● 存儲合約將以transaction的形式發布到存儲區塊鏈上。
5. 存儲鏈與存儲合約的執行
負責維護存儲合約的側鏈名為存儲鏈。存儲鏈由礦工負責維護。礦工在創建新存儲鏈塊的時候會將當前有效周期內的部分存儲合約指向的數據進行下載驗證,當數據被存儲合約上的數據可信根驗證通過,礦工會將一個帶有特定數據驗證路徑的交易發布到主鏈上,該交易會復制存儲合約中雙重鎖定腳本并進行一次解鎖,上述過程被稱為合約履行。用戶客戶端會監聽區塊鏈上的交易并收到合約履行成功的事件。存儲合約在有效周期過后會從存儲側鏈上移除。在合約周期快結束時,用戶可以選擇是否向數據中心進行續租。
6. RS碼糾錯
由于網絡抖動或者數據損壞等原因,虛擬數據中心的節點會提供錯誤數據。Genesis采用RS編碼來進行數據糾錯。 RS編碼是一種簡單實用的代數編碼模式,該技術廣泛用于數據傳輸中并有著較強的抗干擾能力。
POC實現
Genesis的POC機制采用基于深度神經網絡模型的優化和驗證邏輯,下面詳細描述其實現。
1. 深度神經網絡
基于深度神經網絡(Deep Neural Network)的深度學習已經被證明在包括圖像識別,自然語言處理在內的人工智能應用中極其有效。神經網絡模型采用類似大腦神經突觸聯接的結構進行信息處理,主要用于監督式學習領域。通過處理給定的帶有標簽的數據,抽象數據的分布特征,從而學習出從數據特征到標簽的映射,使訓練出的模型具有數據分類(classification),回歸(regression)等功能。增加神經網絡的層數后,即可通過組合低層特征形成更為抽象的高層標書屬性類別或特征,可更好地刻畫數據的分布。
例如在圖1展示的深度神經網絡,通過對將數據輸入模型的輸入層(input layer),經過多層隱含層(hidden layers)的特征提取及抽象,在輸出層(output layer)生成數據的標簽。其中,層與層之間的聯系往往是線性變換,而每一次的神經元則對應了一個非線性變換。深度神經網絡可以用于解決不同的實際問題。舉例而言,當使用神經網絡進行人臉識別時,將圖片通過輸入層,經過隱含層的特征提取及抽象,判斷該圖片是否包含人臉(例如,當輸出層輸出1則有人臉,輸出0為無人臉)。
神經網絡的架構有很多種,卷積神經網絡(Convolutional Neural Network)通常用于圖像識別。遞歸神經網絡(Recurrent Neural Network)以及衍生出來的長短期記憶網絡(LongShort Term Memory)則更多的應用于自然語言處理。生成對抗網絡(GAN)則是一類在無監督學習中使用的神經網絡,在圖片,視頻,自然語言和音樂的生成方面有著廣泛應用。
2. 深度神經網絡的參數優化
在使用深度神經網絡時,除了設計網絡結構(網絡的層數及每層的結構)一個重要的問題是如何通過給定的訓練集(數據及對應的標簽)對模型進行訓練,以決定其每一層的參數。具體而言,這個問題可以定義為,給定數據集D = {X,Y},其中X={X_1,。..X_N}為輸入數據,且每一個樣本向量xk為一個d維的向量,Y={y1,…,yN}為對應樣本的標簽。而我們優化的目的就是找到一個由X到Y的映射F(X),這樣給定一個樣本向量,我們可以確定它的標簽。為了達成這個目標,一般的做法是確定一個損失函數L(F(X),Y),使得映射F(X)相對于Y的損失值最優。常見的損失函數包括squared loss,cross-entropy等。
其中n是預先設定的學習率。在實際的訓練過程中,通常會在開始訓練的時候選取一個稍微大一點的學習率(比如0.1),加速訓練的過程,在訓練的過程中慢慢的調小學習率,以求達到精確的結果。由于深度神經網絡模型所需優化的參數數量很多,即使使用了不同的正則化方法(如使用卷積神經網絡,或使用Dropout技術)稀疏所需優化的參數,想要訓練如此巨大的模型仍舊需要大量數據,那么計算梯度往往會導致運算速度過慢。一個標準化的處理方法是使用隨機梯度下降(stochastic gradient descent)的方法。具體而言,就是每次計算梯度以更新參數時,都隨機從原訓練數據集中抽取部分數據計算梯度并進行參數更新,在有限次迭代更新中同樣可以取得穩定的表現。
3. 驗證深度神經網絡的表現
在實際的使用中,我們需要在訓練好模型后判斷神經網絡的表現是否足夠優秀。在訓練模型時,我們已經使用了大量數據進行參數優化,由于在訓練樣本的過程中已經包含了訓練時使用數據的信息,那么在測試模型是否真正有效時,我們需要預留一部分用于交叉驗證的測試數據,并只是用訓練數據進行模型訓練,以規避模型訓練中常見的過擬合信息。如圖2所示,一個在訓練集中表現優秀的模型可能對于新數據表現不夠穩定。而只有當測試數據在訓練好的模型中表現優秀,我們才可以信任訓練好的深度學習模型。
4. 模型訓練與工作量證明
Genesis的POC共識機制是基于深度神經網絡模型的優化及驗證邏輯,通過模型的有效性來驗證miner的工作量證明。同時,POC中深度學習模型的訓練是和側鏈技術緊密結合的,其中每個模型訓練任務都是互相獨立并由一條側鏈單獨完成。
2.0版:DDPOS(Democratic Delegated Proof of Stake)
傳統共識機制的弊端
目前市面上有各種各樣的共識機制,應用比較廣泛的有POW(Proof of Work)、POS(Proof of Stake)和DPOS(Delegated Proof of Stake)。這些共識機制在實際應用中,逐漸暴露出來一些問題。
POW強調“全民參與”,任何節點都可以成為礦工去挖礦,維護整個系統。然而實際應用中,特殊礦機的出現讓普通人幾乎不可能挖到礦,更糟糕的是,礦場和礦池的出現讓系統的挖礦算力變得越來越集中,系統越來越中心化。
POS采用通過計算節點持有幣數占總幣數的百分比,包括節點占有幣數的時間來決定一個節點獲得本次記賬權利的概率,這導致窮人參與到系統維護的機率渺茫,可以說POS是一種”富人游戲“。
DPOS是 POS 的進化方案。DPOS中,系統首先選出delegates,然后由這些超級節點來負責維護整個系統。這些超級節點被賦予了對系統維護的至高權力,同時他們也因為提供維護系統的服務進而獲得更多系統的stake,和POS一樣,這會導致富人更富,系統越來越中心化的問題。
DDPOS簡介
Genesis團隊經過長時間的研究后,提出一種全新的共識機制DDPOS(DemocraticDelegated Proof Of Stake)。DDPOS可以完美的保留DPOS的高速tps的特性,同時又可以有效的解決DPOS的“富人更富”的問題。
以下詳細描述DDPOS的概念與邏輯。
元老院:元老院由21個超級節點組成,這些節點有維護區塊的絕對權利,包括打包,回滾,刪除賬號等。
元老選舉:元老的選舉指元老院的超級節點通過某種機制將其中全部或者部分成員換成新的節點的過程。所有元老都可以從普通節點中直接選舉產生。每次選舉根據之前的表現更換排名最靠后的3位元老。
選舉期:系統正常運行一定階段后,會自動進入的一個進行元老院中元老的選舉和置換的過程,稱為選舉期。 并且,在上一個選舉期之后系統內發生的任何投票動議(系統升級,回滾,刪除賬號等所有投票動議)都會在這個選舉期中匯總,并決定是否執行。
第一次全民公選:第一次元老會成員的選舉通過全民公投來進行。采用某種投票的辦法,系統的開發者發起第一次全民公投,由所有節點參與投票后選出21個元老。
DDPOS的選舉過程:
(1)元老院的第一期成員由全網公投選舉產生。
(2)維持循環,并且按一定周期自動調整元老會。
執政期:系統正常運行的時期,由若干個循環周期組成,其中每21個塊周期為一個循環周期(Round),元老院每產出一個塊為一個塊周期(slot);在執政期內,所有的區塊由元老院的全部元老依次生成,每個元老生成一個塊。
選舉期:當一輪執政期完成后,系統會迎來為期若干個循環周期(Round)的選舉期。值得一提的是,在DDPOS中,每個元老會成員會在打包時以自己的區塊頭生成一個Hash謎題發布到區塊中,謎題類型與POW中的Hash碰撞謎題相似。選舉期開始時,當前最高區塊的有效謎題會被推舉為選舉謎題。全網任何節點都可以提交對謎題的解,每次提交需要支付一定的token作為費用;選舉期結束后,剩余的18名元老會通過謎題答案來推選出3名新的元老會成員。 因為每一個區塊的區塊頭都必須由前一個區塊的區塊頭組成,我們不用擔心最高區塊的打包者會以此作弊。通過對每一個節點有效提交次數的限制,我們可以在確保不對選舉期的整個網絡造成擁堵同時盡可能地篩選出優質的競選者。
獎勵周期:根據區塊鏈高度,設置里程碑時間(Milestone),在某個時間點調整區塊獎勵。
(3)循環產生新區塊,廣播
DDPOS的創新之處
DDPOS中更換元老的方式通過在選舉期的算力比拼,讓那些有較強算力的普通節點也有機會成為元老會成員,進而參與到系統的治理過程中,避免了整個系統被小部分節點壟斷的風險。同時,通過嚴格的懲罰機制和末位輪換制度,即使進入了元老會的超級節點也需要提供高效的出塊率來保障自己的長期收益,整個系統因此更公平高效。
Genesis的DDPOS機制也是Genesis團隊原創,已經申請專利。DDPOS的詳細技術原理請見Genesis的專利申請。
Genesis的升級機制
在一個中心化的軟件系統里,系統的升級一般通過服務器來完成。當有新的軟件版本時,服務器推送消息給用戶,提醒用戶去官網下載或者如果更新包比較小的話,直接將新版本推送到用戶客戶端,用戶安裝新的版本后,更新過程完成。
在一個去中心的分布式系統中,節點與節點通過共識機制形成聯系,整個系統沒有服務器的概念,因此一旦系統客戶端有了新版本,是否升級取決于每個節點:
1. 是否得知這個新版本的消息。
2. 是否愿意自己去下載這個新版本并且進行升級。
這個情況導致系統的更新并不像中心化系統那樣有效率,新舊客戶端混合在一起。如果這個版本更新是一次硬分叉的話,會導致舊版的客戶端和新版客戶端實際運行在兩個不同的共識機制下,整個系統也一分為二,這個對一個分布式系統來說,是一種嚴重價值的損害。
Genesis系統的升級采用發起特殊投票的方式,這個機制的目標是讓盡可能多的節點在同一時間完成升級。分為以下幾個步驟:
1. 提出投票動議
任何節點都可以提出一個投票動議,在系統里相當于發起一個特殊類型的交易。這個交易包含以下內容:
● 動議的描述
● 愿意為此投票動議所支付的token獎勵
● 可執行代碼
2. 投票
動議提出后,這個動議(特殊交易)通過p2p網絡在全網廣播,系統中的所有節點將收到這個動議以及其附帶的獎勵和可執行代碼。這些節點必須對這個動議做出選擇:同意、不同意、棄權(默認無操作)
3. 動議通過,客戶端完成升級
當滿足要求數量的節點對這個動議做出選擇后,如果選擇同意的節點超出一定的比例,則認為這次投票動議獲得通過,這時,該動議所附的可執行代碼被激活,將所有節點的客戶端自動升級到新版本,同時把附帶的獎勵平均分配給參與了投票的節點。
這個投票的機制保證了系統升級只是在大多數節點人工投票“同意”后才進行,系統升級后,大多數節點也將運行在同一個共識機制下,系統的價值得以最大程度的保留。
Genesis里,投票可以分為多個級別的投票,一般遵循的方案是只需要涉及到的節點參與投票。如果一個動議只涉及到側鏈上的少數人,則這個動議只需要側鏈上的少數人投票即可。如果這個動議涉及到系統里所有的節點,則這個動議是一次對憲法的公投,需要系統內所有節點的參與率達到一定比例,并且選擇“同意”的節點和選擇“不同意”的節點超過一定比例才可以。
側鏈技術
Genesis的將大部分核心內容放在主鏈上,同時大量采用側鏈技術來分擔網絡的負擔并且增加可擴展性。Genesis的主鏈上包含用戶核心信息、交易(Genesis所有行為都以交易的形式來呈現,如投票、 用戶互動 以及提交文件等)。Genesis的主鏈全部采用經過驗證的成熟技術,以穩定為優先。
側鏈是實現Genesis進化的關鍵技術。用戶可以通過投票更新側鏈協議,甚至可以整體遷移到一個全新的側鏈,從而達到系統的進化。
Genesis的側鏈都可以有單獨的合約,主鏈通過動態索引實現與側鏈溝通。Genesis目前有兩條內置側鏈,分別負責實現文件存儲、應用商店機制,未來還將上一條側鏈運行POC。另外,Genesis上可以快速生成一條和主鏈架構完全一樣的側鏈,作為程序員的開發測試環境。
Genesis的側鏈技術詳細描述如下:
雙向錨定以及簡化支付驗證機制(SPV)
簡化支付驗證(SPV)的概念最初出現在Satoshi2008年寫的一個區塊鏈文檔中。Satoshi沒有運行完整的節點來驗證區塊鏈中的交易,而是討論了一種更有效(更輕)的方法,即簡化版驗證過程。這個機制是這樣的:只保留最長工作證明鏈的塊頭的副本。可以通過查詢盡可能多的網絡節點來獲得區塊鏈的頭部,直到獲得滿足可信度的最長鏈為止。然后,獲得一個包含這筆交易的,帶有時間戳的Merkle分支。
與全節點驗證相比,SPV不會驗證所有內容,而是將其作為高難度的可信度作為有效性證明的代理。這是一種DMMS,可以使用概率和隨機游走進行進一步的理論分析來證明這一點。從實際角度來看,SPV提供了一種簡易的方法來確定某個特定交易處于區塊鏈的某一塊中,而無需存儲和檢查整個區塊鏈。由于每個交易都具有哈希值,并且每個塊都有哈希值,因此可以建立Merkle樹證明交易的哈希和區塊的哈希。
Merkle樹是一種數學模型,其中樹根位于頂點,所有交易都放置在樹葉中。整個結構呈一個樹狀。 Merkle樹證明包含頂點(塊)和葉子(交易)之間所有哈希的列表。為了證明某一筆交易在某個區塊中,只需要塊的一小部分。基本驗證有兩個步驟:1。驗證Merkle分支的存在,證明交易處于塊中。 2.驗證塊本身是否在區塊鏈的主鏈中。這兩個步驟足以證明交易的真實性。
在Genesis Space中,我們使用SPV和Merkle樹來實現父鏈和側鏈之間的驗證過程。我們現在討論虛擬幣轉移示例的步驟。該設計主要基于Back等人的Enabling Blockchain Innovations with Pegged Sidechains 理論的常見側鏈框架。最初,父鏈上的幣被發送到父鏈上的特殊輸出,該輸出只能通過側鏈上的SPV證據解鎖。為了使兩個鏈保持同步,定義了兩個等待(緩沖)周期:
1)確認期。側鏈之間轉移的確認期是在將虛擬幣轉移到側鏈之前必須將虛擬幣鎖定在父鏈上的持續時間。此確認期的目的是允許創建足夠的工作量證明,使得在下一個等待期間的DDOS攻擊變得更加困難。典型的確認期限為一天或兩天。
在父鏈上創建特殊輸出后,用戶將等待確認期,然后在引用此輸出的側鏈上創建一個交易,提供SPV證明它已創建并隱藏在父鏈的足夠工作量證明之下。確認期是一個每側鏈的安全參數,它以交叉鏈傳輸速度換取安全性。
2)競爭期。然后用戶必須等待驗證期間。其的目的是通過在重組期間轉移先前鎖定的硬幣來防止雙花。如果在此延遲期間的任何時候,發布的新證據包含具有更多聚合工作的鏈,該鏈不包括創建鎖定輸出的塊,則轉換將追溯無效。我們稱之為重組證明。
如果可能的話,側鏈的所有用戶都有動機提出重組證明,因為證據不正確的結果是所有虛擬幣價值的稀釋。典型的競爭期間也將是一天或兩天的量級。為避免這些延遲,用戶可能會使用原子交換進行大多數傳輸。
當鎖定在母鏈上時,虛擬幣可以在側鏈內自由轉移而無需與母鏈進一步交互。但是,它保留了作為母鏈幣的身份,并且只能轉移回它來自的鏈。當用戶想要將幣從側鏈轉移回母鏈時,他們會按照原始轉移過程執行相同的操作:將側鏈上的幣發送到SPV鎖定輸出,生成足夠的SPV證明,這樣做,并使用證明解鎖父鏈上具有相等面額的多個先前鎖定的輸出。
Genesis的存儲側鏈
作為社交社區平臺,當用戶與Genesis Space交互時,預計會產生大量數據。因此,為數據存儲的可擴展性和安全性建立分散的存儲機制至關重要。在Genesis Space中,采用了存儲側鏈以滿足這些要求。除了一些核心敏感數據(如用戶配置文件和錢包數據)之外,大多數數據都存儲在此存儲側鏈中。這樣既保證了社交網絡對區塊鏈的快速反應和記錄的要求,同時也滿足了社交網絡等系統產生的大數據的存儲需求。在目前的設計中,輕量級數據將直接存儲在側鏈上(類似與Steemit存儲方案);更大的數據(超過1MB的文件等)將采用ipfs進行存儲,僅在側鏈上記錄指向該塊存儲的Hash值。提供存儲的側鏈節點將受到獎勵。
Genesis 中的存儲鏈用作對等存儲網絡,其中文件管理記錄在存儲側鏈中被索引。當Genesis Space用戶想要存儲文件時,用戶可以創建包含文件元信息的文件合同,以及他愿意為此支付的付款。 Genesis 中的其他用戶可以將文件存儲在本地硬盤上來充當主機。文件合同由客戶簽署,主機指定存儲協議以及獎勵。合同存儲在存儲側鏈上并且是不可變的。為避免虛假的主機,還需要從主機進行存儲證明。在發送來自客戶的獎勵付款之前,證據將被發送到存儲側鏈。此外,該文件可以分為幾個部分和多個副本,以提高文件的完整性和可檢索性。
Genesis的去中心應用商店側鏈
Genesis包含一個DApp的商店(即Genesis市場),幫助開發者發布應用,同時方便所有的用戶查找并下載應用。Genesis的應用商店有一個基于投票的應用審核、上架、下架和反饋的機制。同時,Genesis采用類似Reddit的vote機制對應用做出排名,讓優秀的應用更容易被用戶發現。Genesis的應用商店是整個Genesis系統基礎設施建設中最主要的表現形式,也是最重要的一個環節。
Genesis Space中的DApp Store通過側鏈實現。 DApp開發人員可以在DApp商店中發布他們的應用程序。當他們這樣做時,相關的應用程序信息將被散列并添加到側鏈中。為了使用戶更容易找到相關的應用程序,DApp元數據被索引為Merkle樹,并且根將被記錄在塊頭中。
如圖所示,Genesis Space中DApp Store Side Chain的框架。客戶端和DApp開發人員之間的應用程序購買交易是通過側鏈完成的。此外,為了鼓勵應用用戶提高參與率,開發人員還可以根據用戶在DApp上的注意力提供獎勵激勵(以Gencoins的形式)。關注度是Herbert A. Simon于1971年在“為信息豐富的世界設計組織”中創造的一個概念。它指的是消費者對信息作為稀缺資源的關注。注意模塊是預定義的智能合約,用于評估客戶參與度。根據用戶的關注量向用戶授予獎勵,并將反饋發送給開發人員以進一步改進應用程序。同時,為了鼓勵開發人員提供高質量的應用程序,還在側鏈上跟蹤聲譽記錄。基于用戶投票和評級來評估信譽。較高的聲譽將使應用程序獲得更高的排名,并且還將向開發者授予獎勵。
Genesis的測試鏈
除了使用側鏈進行數據存儲和實現應用程序市場外,我們還實現了第三個側鏈,使開發人員能夠試驗和測試他們的應用程序。此側鏈可幫助開發人員在DApp Store鏈中發布高質量且穩定的DApp,而不會讓迭代的應用測試影響到應用商店鏈。該鏈也可供部分用戶訪問,例如自愿選擇開發人員進行測試的用戶(調查,行為反饋等)。獎勵也以實驗參與的形式授予,以開發人員和志愿者之間的交易形式。
獨立合約
Genesis的每條側鏈都可以有自己的合約,可以單獨用來解決某一方向的問題。這種架構讓單一業務的處理變的更容易,同時又極具擴展性和維護性。
索引
Genesis的主鏈包含側鏈的索引,鏈與鏈之間可以很容易通過主鏈的Merkle Tree以及外部消息的輸入驗證來交互。
Genesis的經濟模型
一個去中心的系統,除了技術以外,最重要的是保證系統內的各個元素有一個合理并且公平的經濟平衡,只有這樣才能激勵系統內的各個對象,為系統的繁榮作出貢獻,保證一個可持續的系統。Genesis的經濟模型圖如下:
系統中各個角色如下:
● 普通人:
正如現實世界從太陽獲取能量,Genesis里用戶花在系統里的時間就是系統的原始驅動力。因此普通用戶只要保持在線狀態就可以獲得系統的token獎勵。系統將BP的收入的一部分隨機分配給在線的用戶。
● 開發者:
Genesis強調將應用開發者的地位提高到和礦工一個等級,給他們直接的經濟反饋,激勵他們來開發更多更好的DApp。
● 大法官:
Genesis作為一個去中心系統,其發展依賴于持續不斷的版本迭代。Genesis專門在系統里設置大法官的角色,用來推動系統的更新。大法官在系統里可以提出對憲法的更新的投票動議。大法官分享部分參議院(即Block Producer)的收益。
● 參議員:
參議院負責出塊,又叫BP(Block Producer),負責維護整個系統,每次出塊會獲得系統的獎勵。這個獎勵的一部分自動分配給普通人和大法官。
● 地主:
地主負責維護一條存儲側鏈,為用戶提供存儲服務,通過智能合約的方式獲得收益。
整個系統采用通貨膨脹的方式每年增發5%的貨幣,用于支付上述的各項活動。系統范圍內的所有服務都不需要費用,但是部分服務將需要用戶將自己的財產抵押,這個設計主要是防止DDoS攻擊。
評論
查看更多