Demos 基於區塊鏈的作業系統

買賣虛擬貨幣
Demos 來源於古希臘語,意為民主。在今天也有集合的意思,我們想給越來越多的 PoW 公鏈提供幫助,在幫助的過程中,集合公鏈。

Demos 的主體由一條基礎鏈和一條拓展鏈構成,它的形狀類似於 DNA 的雙螺旋結構,是一個無陣列對稱資料交叉記錄交叉校驗的結構。在兼顧效能和安全的同時,Demos 做到了完全的去中心化。

Demos 是完全開放的、去中心化的應用,內建有 DOS 基礎鏈代幣,透過 PoW+PoS混合共識機制產出。

DOS 可以透過雙向校驗的方式與拓展鏈 DAPP 進行互動,作為所有 DAPP 之間的橋樑和媒介。

DOS 還是兌換拓展鏈 Gas 的途徑。一般情況下,Gas 費用的產生有兩方面的原因:一是激勵機制,礦工可以透過打包資料獲取獎勵;二是利用手續費的概念防範流量攻擊。

Demos 面向哪些使用者?

Demos 除了提供一些基礎服務以外,還提供技術和工具上的支援,主要面對開發者、企業、普通使用者。 

一、面向開發者

Demos 中的開發者可以使用開發工具快速開發 DAPP 並且進行釋出,DAPP 可以執行在瀏覽器和移動端和 PC 端。

對此,我們提供了非常豐富的錢包工具,可以進行原生接入,也可以進行網頁入。我們還會將一些優秀的 DAPP 錄入到官方錢包,我們非常看重移動端支援和生態建設。 

二、面向企業和第三方公鏈

Demos 中的企業使用者可以使用 Demos 提供的開源拓展鏈,拓展鏈可單獨執行也可以構建聯盟鏈。

我們在後續會推出部署工具,讓企業部署起來更為方便,使用官方提供的 DAPP開發工具就可以快速開發、釋出基於企業私有鏈/聯盟鏈的 DAPP。

他們還可以使用原子交換的方式與 Demos 進行互動。

對於 POW 公鏈來說,未來的節點數量驟減是不可避免的,Demos 的出現會改善這一狀況,我們在後續會推出各公鏈相容拓展鏈的開原始碼,幫助 POW 公鏈應對節點流失和缺少應用場景等問題。

 三、面向普通使用者

Demos 中的普通使用者可以參與到整個 Demos 的治理中。

我們提供了基於 PoS 的投票自治的系統,使用者可以對 Demos 中每個社羣決策進行干預,也可以提出建設性的意見指引 Demos 的方向。

我們設立了社羣基金會,基金會將獎勵每一個對社羣做出貢獻或者提出寶貴意見的人。普通使用者還可以透過移動端、應用商店、網頁等入口體驗使用基於Demos 開發的 DAPP。

設計理論

一、圖靈完備和圖靈不完備

圖靈完備意味著你的語言可以做到能用圖靈機做到的所有事情,可以解決所有的可計算問題。圖靈不完備也不是沒有意義, 有些場景我們需要限制語言本身。如限制迴圈和遞迴, 以保證該語言能寫的程式一定是終止的。

簡單來說,圖靈完備的語言,有迴圈執行語句,判斷分支語句等,理論上能解決任何演算法,但有進入死迴圈而程式崩潰的可能。

圖靈不完備,應該是不允許或限制迴圈。可以保證,每段程式都不會死迴圈,都有執行完的時候。

比特幣指令碼語言考慮了安全等問題,設計為圖靈不完備的;而以太坊採用的是智慧合約語言是圖靈完備的。

圖靈完備語言最顯著的一個特點是支援迴圈,所謂迴圈,就是程式能不斷執行下去。那麼在區塊鏈支撐的分散式環境下,礦工如何判斷一個程式何時結束呢?

圖靈計算理論,已有人證明過,要證明一個程式能不能終止是不可能的(圖靈停機問題),所以這種“智慧合約”語言需要保證所寫出的程式不能存在死迴圈。

這也是為什麼以太坊語言會加入 Gas(燃氣)的原因,透過加入 Gas,使程式每個運算過程都會消耗一定成本,從而不會無限制地執行下去。

作為智慧合約機,使用圖靈完備的語言會比圖靈不完備語言更為優秀,在開發過程中對迴圈的依賴非常高。 

二、UTXO 模型和賬戶模型

未花費的交易輸出(Unspent Transaction Output)Transaction 被簡稱為TX。

比特幣的交易由交易輸入和交易輸出組成,每一筆交易都要花費(spend)一筆輸入,產生一筆輸出(output),而其所產生的輸出,就是“未花費過的交易輸出”,也就是 UTXO。

UTXO 的主要優勢在於很強的私密性,每筆交易都可以生產新的地址,從而無法追蹤,對於貨幣來說這是好事,但是對於 DAPP 來說更多的是弊端,很多需要跨鏈的公鏈都遇見了這個問題,並且基本沒有得到很好的解決。

Demos 使用了兩套模型,即 UTXO 模型和賬戶模型,並在賬戶模型中新增了許可權屬性。我們用這種方式去兼顧隱私安全和智慧合約開發。

在 Demos 中,你在基礎鏈上的互動是採用的是 UTXO 模型,而你在拓展鏈上的互動採用的是賬戶模型。 

三、去中心化、安全和高效能

DCR 被人津津樂道的地方,是在於其 PoW+PoS 的共識機制,這個共識機制確保了安全性和去中心化的最大實現,可以說將二者的兼顧做到了近乎極致。但由於 DCR 是 UTXO 模型與比特幣一致,而智慧合約需要使用圖靈完備語言進行開發,所以 DCR 想要完成智慧合約機的相容非常困難。

Demos 高度贊成 PoW+PoS 的共識機制,並且在 Demos 基礎鏈中保留了這些屬性,在高度自治的去中心化基礎鏈中加入了可相互校驗的高效能拓展鏈,相容了 EVM 智慧合約機。Demos 在確保了高效能智慧合約的執行的同時,還確保了交易的安全性和去中心化。

Demos 的特點

一、基礎鏈

(1)PoW+PoS 共識機制

在 Demos 中,每個區塊產生一定數量的 DOS 作為獎勵,但是這個獎勵並不會全額髮放給 PoW 礦工。30%的獎勵由 PoS 投票者獲得,60%的獎勵由 PoW 礦工獲得,剩餘 10%的獎勵會進入到社羣賬戶中作為社羣基金。社羣基金將會用於獎勵每一個對社羣提供有效意見或對社羣做出貢獻的人。

在 PoW 方面,Demos 使用的是 Blake256 演算法,需要顯示卡的硬計算能力,該演算法在 x86-64 架構上面有著更好的效能表現,而且安全性更高。

在 PoS 方面,Demos 上的 PoS 協議使得使用者可以透過持票(ticket)來為 Demos的某項改進提案(DCC,類似於比特幣裡面的 BIP 與以太坊裡面的 EIP)進行投票,比如:開發團隊是否需要在某項新功能的開發上投入時間,是否要啟用某項功能,如何使用經費,等等。

為了參與 PoS,使用者需要鎖定自己的一部分 DOS 代幣來換取 ticket,每張ticket 可以進行一次投票,投票完成之後,使用者解鎖相應的 DOS 代幣並能夠獲得一定的獎勵,這個過程我們稱之為 PoS 挖礦。

每張 ticket 會被隨機選舉以參加投票,平均時間大約是 28 天,但最高可能會達到 142 天,並有 0.5%的機率選票被作廢。

PoW 礦工生成每個區塊時,至少需要有 5 張選票進行確認,如果少於 5 張,PoW礦工的獎勵會減少以示懲罰,同時最多可以有 20 張選票。

PoS 的難度調整演算法將每隔 144 個區塊調整一次 ticket 的價格,以維持票池裡的票數在 40960 左右。

使用者參與 PoS 挖礦需要支付選票費給 PoW 礦工,以便 PoW 礦工將自己的 ticket打包放入新挖的區塊之中。當 ticket 被選中進行投票的時候,使用者的錢包應當線上以行使自己的投票權,如果無法投票,則使用者不能獲得獎勵。

為了方便無法保持全天線上的使用者,使用者可以選擇 PoS 礦池代為投票,這需要向 PoS 礦池支付一定的代理費用。 

(2)社羣百分之百自治

在 Demos 主網中,使用者可以發起提案和參與提案投票,這個投票系統我們把它叫做 demos Convention Center,簡稱為 DCC,是一個脫離區塊鏈儲存版本和時間戳資料的系統,本質上是“git,一個流行的版本控制系統,外加時間戳”。

我們並不是試圖把所有與 Demos 管理有關的資料在區塊鏈上儲存起來,而是選擇建立一個脫離區塊鏈儲存的資料,並將其錨定在 Demos 的區塊鏈中,從而最大限度地減少鏈上的佔用空間。

使用者可以在版本控制和時間戳環境中建立和維護任意資料。DCC 可以脫離 Demos而被使用,儘管它依賴 Demostime 伺服器來建立時間戳。

因為提交收錄的資料可能存在格式錯誤、包含不恰當的內容或者在納入 DCC 之前需要滿足其他限制條件,DCC 需要透過人工審查提交的提案。因此,我們為新的提案建立了兩個狀態:未審查和審查。此分類非常有用。

每個提案提交都有相應的審查令牌,允許提案提交者公開證明他們的提案被審查透過,如果未審查透過,管理者將刪除它。這個審查標記能夠讓 DCC 避免現代社交媒體網站中一個更隱秘和常見的做法--即在這些網站上資料被內部審查。透過使用審查令牌,DCC 建立了一個透明的審查程式,所以當被發現不合適的審查行為時,管理員將被公開對其審查行為問責。 

(3)防止硬分叉

Demos 不會發生像比特幣那樣的分叉問題。

首先,我們有一個鏈上投票機制,以表決與硬分叉相關的問題;

其次,Demos 分叉絕不會像位元現金或 Segwit2x 那樣,這是因為 PoW 礦工產生的新區塊需要與 Demos 股東(PoS 礦工)的意願相吻合。

如果 PoW 曠工拒絕遵從集體政策,那麼 PoS 股東可以判定新區塊無效。比如,80%的股東支援啟用閃電網路,而 20%的股東拒絕,那麼這 80%的股東就可以直接投票讓舊鏈上的新區塊無效。這樣一來,PoW 礦工就會直接從舊鏈轉移到啟用了閃電網路的新鏈上,舊鏈也就無效了。

這一部分的設計也包含在我們的拓展鏈當中,用來保證雙鏈的一致性和未來Demos 發展的民主自治。

傳統基礎鏈對硬分叉問題非常無奈,基礎鏈為了維護自身的先進與合理,在某些時候不得不做出分叉行為,但是這對於以應用為主的基礎鏈來說就等同於使用者流失,惡劣影響是長遠存在的。 

(4)原子交換

2013 年,Tier Nolan 在 Bitcoin Talk 論壇上首次提出了原子交換。Nolan 透過使用不同型別區塊鏈上的簡單加密貨幣交易,概述了跨鏈加密貨幣互換的基本原則。

像 Coinbase Pro,Binance 或 Gemini 這樣的中心化交易平臺,可以說是加密貨幣世界的金融機構。如果沒有這些平臺,大多數加密交易者和投資者都很難交換加密貨幣。實際上,集中交換已成為加密貨幣交易的守門人。

那麼,原子交換是如何工作的呢?原子交換使用一種特殊型別的智慧合約,稱為雜湊時間鎖合約(hash timelock contract,簡稱 HTCL)。

這就像一個需要兩個特殊鑰匙的“虛擬保險箱”:

1. 一個是 HashLock 金鑰:只有當所有各方都在各自的交易上簽名時,才會將已交易的加密貨幣分發給交易者;

2. 一個是 TimeLock 金鑰:一種安全機制,如果交易沒有在指定的時間內完成,它會將交易的加密貨幣返還給交易者。

要進行原子交換,第一方將建立一個 HTCL 地址,然後存入加密貨幣。之後,建立此加密貨幣的密碼,這被稱為原像,隨後進行雜湊加密(一個“鎖住”原像的過程)。

接著,將這個雜湊加密後的原像轉發給另一方,後者將驗證加密貨幣的資金是否已存入。然後,第二個交易者將把他們的交易資金存入一個新地址,這個新地址是用相同雜湊建立的。

第一方使用用於存放初始交易資金的密碼,解鎖由第二方存入的交易資金。然後,第二方可以解鎖第一方存入的交易資金。這就是進行了原子交換。

這種方式的優點在於:

· 做到了真正的去中心化
原子交換允許加密貨幣交易者交換數字資產,無需第三方仲裁,沒有交易對手的風險。

· 降低了投資者風險
原子交換使加密貨幣持有者始終完全控制其加密貨幣,消除了中心化交易所帶來的駭客風險。

· 降低了交易費用
與原子交換相關的唯一費用是標準的區塊鏈交易費用,使原子交換成為免費的交易方式。

(5)閃電網路

閃電網路(Lightning Network)簡稱 LN,是一個去中心化的系統。它的卓越之處在於,無需信任對方或第三方即可實現實時的海量交易。主要作為用於即時、高容量的微支付。

閃電網路起源於比特幣的擴容問題,狀態通道的典型應用,也是一個分散式網路,利用區塊鏈的特性消除將資金託管給第三方帶來的風險。

閃電網路的目的是實現安全的鏈下交易,本質上是使用了雜湊時間鎖智慧合約來安全地進行 0 確認交易的一種機制,透過設定巧妙的智慧合約,完善鏈下通道,使得使用者可以在閃電網路上進行 0 確認交易。

下面引用一個簡單易懂的例子:

A 每天都要在包子鋪買早餐,但是 A 覺的每天都用加密貨幣結算太麻煩,不僅到賬速度慢,而且每天都產生手續費。消耗的手續費甚至比包子的價格還要高,所以 A 決定和商店老闆 B 說,能不能在你這裡掛個帳月底結算。老闆 B 說,不行說一旦你跑了怎麼辦,你可以預付給我一個月的錢然後我給你記賬。這樣A 也覺得不妥。最後兩人決定找一個箱子,然後 A 把幣放在箱子裡,箱子裡上了兩把鎖,只有 A 和 B 同時有鑰匙才能開啟,A 和 B 有一個共同的賬本,每一筆交易都會記錄在賬本上,每一筆交易只要雙方籤個字就能確認這筆交易,只要箱子裡的錢還夠這個支付就會一直進行下去。

這樣的過程就是相當於形成了之前說的鏈下通道,全部是在鏈下進行的,只有最後結算的時候才會放到基礎鏈上結算,計入區塊。

從頭到尾只有兩條資訊是計入公鏈上的,一個是將幣放在箱子裡的鎖幣資訊,還有一個就是結算時候的資訊。

閃電網路真正厲害的地方是利用這種通道讓沒有建立關係的兩個人建立通道:假設有 ABC 三個人,A 和 B 之間有通道,B 和 C 之間有通道,A 想要把幣轉給C,就可以透過 B,但是其中產生了信用問題,如果 B 在中間把錢拿跑了怎麼辦?

為了解決這種問題,閃電網路引用了鏈下暗語,相當於公鑰私鑰。A 把箱子給B,箱子上帶有 A 設定的暗語,B 是無法拿出來,當 B 把箱子發給 C 後,A 會把暗語告訴給 C,這樣 C 就能拿到箱子裡的幣了。

二、拓展鏈

在基於安全、穩定、去中心化之上的高效能智慧合約實現方案。

(1)Demos 共識機制

Demos 拓展鏈使用的共識機制是結合了 PoW 和 PoB 共識機制新型共識機制。傳統 PoW 共識機制在發展過程中逐漸從原先的注重節點數量演變成了全球的算力比拼,這完全背離了中本聰設計比特幣的初衷。

而 PoS 包括 PoS 的延伸共識機制也變成了一場全球的財力比拼。

Demos 想用一種方式將共識機制迴歸至本源,讓節點數量越來越多,並且安全可靠,去中心化的體現越來越強,並且兼顧效能。

Demos 共識機制與其他工作證明機制最大的區別是它的證明關鍵點是前置的。也就是說,你要參與這個工作就必須要證明你有這方面的能力,為此我們構建了信譽漏斗系統,這個系統會負責礦工列表的篩選和維護。

Demos 的工作原理是這樣的:

Demos 共識機制是沒有挖礦難度的。

信譽漏斗的結構類似於記憶體池,記憶體池主要的工作就是篩選和維護交易列表,而信譽漏斗的工作是篩選和維護礦工列表。

信譽漏斗分成三個部分:優質節點、普通節點、劣質節點。

優質節點進行日常打包工作,普通節點為待選節點、劣質節點則永遠不會納入普通節點列表。

信譽漏斗會將連線時長大於 1 天的普通節點加入到優質列表當中,參與打包工作。

如果優質節點未在當前打包時間內完成打包則將清空連線時長,並將其移至普通節點列表,也就是說,未能及時進行打包並廣播的節點會有一天的等待時間作為懲罰。

優質節點進行廣播時,資料校驗不透過的節點將會被加入到劣質節點中,不可參與繼續挖礦工作。

· Demos 工作流程

每次有交易產生,Demos 網路就會進行如下共識過程:

1)每個滿足連線時長大於 1 的節點都將列入優質節點名單,並進行編號。每個優質節點都將接收到不斷從網路上傳送過來的交易,透過與本地賬本資料驗證後,不合法的交易直接丟棄,合法的交易將彙總成交易候選集(candidateset);

2)每隔一段時間進行一次打包節點的抽取,礦工在抽中打包時必須在產塊間隔上限內產塊,如無法及時產塊,則會選擇下一個礦工進行產塊,並將該節點移動至普通節點列表中;

3)打包節點的抽取是根據上一個區塊的雜湊決定的,如該節點沒有響應,則由優質列表中另外節點擔任打包工作;

4)產塊間隔上限決定了礦工的響應時間,這就等同於算力。在 Demos 共識機制中,根據當前產塊間隔上限,算出一週理想出塊數量。當到達一週理想出塊高度時,進行時間戳的對比,計算出實際消耗時間的平均值是否大於當前產塊間隔上限,如果大於產塊間隔上限,則增加產塊間隔上限,反之減少。

下面描述了產塊間隔上限:

A(產塊時間上限),604800000(一週毫秒),time1(起始時間戳),time2(結束時間戳)理想時間內出塊數量:604,800,000/A

實際出塊時間隔:(time2 - time1) /(604800000/A)

假如 A=100 毫秒:(1573371246000-1572766446000)/(604800000/100)=100新產塊間隔=A*((time2 - time1)/604800000)

4)如礦工廣播時交易是非法交易,則將該節點移動至劣質節點,不再參與打包工;
5)參與區塊打包工作的礦工會獲得交易費用的獎勵,獲得特殊的產塊獎勵。

這麼做可以將 Demos 拓展鏈的效能發揮至最大,並且合理評估了 Demos 整個拓展鏈的效能情況,做出最合理的效能排程規劃,避免無理由的浪費資源。

Demos 共識機制是沒有挖礦難度的。如果需要確保被選中時及時產塊,主要考慮的是網路狀況、硬碟容量等因素,而不是算力,這樣才可以將節點提供的資源合理運用起來。

因為有這樣的設計,在未來硬體和網路得到提升時,Demos 可以自我進行升級。

· 選擇打包節點

打包節點的選擇,是透過目前優質列表中的節點數量去擷取上一個區塊雜湊頭的數值來選擇的。比如目前的礦工數量是 100 個節點,則擷取上一個區塊雜湊頭的末尾 2 位。如果這個節點未響應,則由列表中該序列的下一個節點進行打包。

(2)賬戶和以太坊智慧合約機整合

OP_CREATE 將合約位元組碼指令構建指令碼
OP_CALL 將執行合約資料指令構建指令碼
OP_GRANT 將執行合約資料指令構建指令碼

拓展鏈交易也是套用 UTXO 結構,使用輸入輸出構建,雖然加入了許可權部分,但是整體結構還是以 UTXO 為主。 

部署合約
呼叫地址的 nonce 值構建輸入的 outpoint,輸出為合約地址,使用 OP_CREATE指令和合約位元組碼構建指令碼。 

呼叫合約
呼叫地址的 nonce 值構建輸入的 outpoint,輸出為合約地址,使用 OP_CALL 指令和合約介面資料構建指令碼。 

合約監聽轉賬
拓展鏈礦工打包新區塊時會處理基礎鏈上最新區塊的交易,交易輸出存在合約,則處理合約監聽介面呼叫。

合約呼叫基礎鏈轉賬

需要設定合約的 active 許可權為 dosd.code,拓展鏈賬戶模型加入 EOS 的許可權分配。

合約呼叫基礎鏈轉賬介面來實現基礎鏈轉賬,但合約呼叫介面,虛擬機器將生成內部交易,由 dosd.code 許可權來簽名,生成成功並加入基礎鏈交易池之後,合約呼叫才算成功,否則合約呼叫失敗。

以太坊底層透過 EVM 模組支援合約的執行與呼叫,呼叫時根據合約地址獲取到程式碼 ,生 成環 境後 載入 到 EVM 中運 行。 通常 智慧 合約 的開發 流程 是 用solidlity 編寫邏輯程式碼,再透過編譯器編譯後設資料,最後再發布到以太坊上。

因為 Demos 基礎鏈是 UTXO 模型,想要和賬戶模型打通非常困難,我們在這裡加入了類似 EOS 的賬戶許可權體系,使用者授權給 dosd.code, 透過 dosd.code 將合約中需要呼叫的基礎鏈轉賬放入記憶體池中。

拓展鏈礦工先收到一筆內部交易,這筆內部交易呼叫了基礎鏈轉賬,這時候拓展鏈礦工先對其校驗,驗證這筆交易是否合法。校驗透過後廣播並且將這筆交易傳送給 Post office module,Post office module 處理好交易後,再次放入記憶體池,基礎鏈礦工在接到這筆交易後會反向對拓展鏈上的這筆交易做校驗。

這裡我們打了個時間差,拓展鏈上的交易速度遠超於基礎鏈,所以這個交易如果是合法的,它將很快被確認,也就是說,基礎鏈礦工如果要校驗這筆交易,只需要檢視拓展鏈上的這筆交易是否真實存在即可,這樣做既確保了安全性的,又兼顧了去中心化。

 (3)新增交易型別

部署新的智慧合約的參考程式碼如下:

1:the version of the VM
[Contract EVM bytecode]
OP_CREATE

向鏈上合約傳送資金的指令碼為:

1:the version of the VM
[Data to send to the contract]
[ripemd-160 hash of contract transaction id]
OP_CALL

賬號授權

1:the version of the VM
[grant name bytecode]
[grant value bytecode]
OP_GRANT

(4)合約型別

為了滿足不同的需要,比如拓展鏈 Gas 費用的抵押和贖回等,我們設定了三個級別的合約型別。

system-level(系統級別)合約

這個型別的合約需要進行社羣投票來新增和刪除,對應的會有版本升級。

系統級別的合約是不需要繳納 Gas 費用的,這個級別的合約主要是負責一些系統工作,比如 Gas 抵押的餘額查詢等。如果社羣對於拓展鏈系統級別合約有新的需求或者好的提議,將進行投票並且由 Demos 開發團隊進行開發維護。該級別的合約伴隨黑洞地址使用,沒有任何第三方能在不符合執行邏輯的情況下私自盜取賬戶資產。

如果 system 合約是由第三方公鏈發起的,比如 BTC 的 Demos 拓展鏈 system 合約,使用者可以將 BTC 轉入該合約中,進行使用,可以在去中心交易所交易,也可以用來支付購物、遊戲等費用。原理和 Demos 基礎鏈轉到 Demos 拓展鏈一樣,第三方公鏈可以在該合約中設定 Gas 的兌換比例,Demos 拓展鏈上支援使用第三方公鏈代幣支付 Gas 費用。

每個做基礎鏈和拓展鏈之間互動的的 system 合約都必須要設定一個手續費用,用來獎勵礦工。

每次進行基礎鏈和拓展鏈轉賬時,將會扣除千分之二的手續費,全部用來獎勵礦工,可以在 Demos 原始碼中看到。這個千分之二會隨著業務量的增加一直持續擴大,它和 PoW 挖礦是反比,PoW 隨著減產獎勵會越來越少。

通常我們設定為一年週期發放獎勵。隨著業務量增加,每筆礦工手續費都會增加。按照當前收取到的手續費/365 天產塊數量獎勵給每個礦工。在 Demos 良好發展的前提下,這個獎勵會越來越多,而收取的每筆手續費是恆定的。

Ark- level(方舟級別)合約

這個級別的智慧合約,是完全向使用者免費提供的智慧合約,Gas 完全由合約開發者賬戶進行支付。Ark 級別的智慧合約是 Demeos 團隊設計之初就一直堅持的智慧合約型別,也是我們最為推崇的智慧合約型別。

Base-level(基礎級別)合約

在合約型別中,我們也提供了使用者付費的合約型別,這個型別的合約是為了保證合約方在受到流量攻擊的時候可以快速切換進行防禦。

如果一個 Ark- level 合約受到流量攻擊,Ark-level 合約方可以重新部署合約,將合約型別轉變成 Base-level 來應對流量攻擊。

我們非常建議合約開發者試用 Ark- level 的智慧合約,它極大的降低了使用者的上手門檻,對於使用者來說非常友好。 

(5)Gas 模型

Gas 翻譯成中文就是“燃氣”,它支撐起 Demos 網路生態系統的正常執行。Gas用來衡量執行某些動作需要多少“工作量”,這些“工作量”就是為了執行該動作支付給網路的費用額。

通俗理解,Gas 是給礦工的佣金,並且是以 DOS 支付。無論是交易、執行智慧合約並啟動 DApp,還是支付資料儲存費用,都需要用到 Gas。

Demos 還支援其他第三方公鏈代幣抵扣 Gas 費用,在非 system 級別合約中可以設定每次抵扣的代幣種類,如果該幣種是 system 級別合約支援的幣種,將呼叫成功。

Demos 的 Gas 消耗模型是在以太坊的基礎上新增不同的支付方案,一種是使用者支付,一種是合約方支付。

標準的轉賬交易的基本費用為 21000Gas。

附帶 data 的位元組數長度所消耗的 Gas,如附帶了 0x4920676f74206f6e652062616e616e61(對應“I got one banana”的十六進位制)這個訊息,長度為 16 個位元組,需要消費 16*68 個 Gas(每個非 0 位元組消耗 68Gas,16 個位元組就 16*68)。

總消耗的 Gas 就是 21000+16*68=22088Gas。

Demos 中 Gas 是需要保證絕對充足的,所以我們使用抵押的方式來進行預先充值。每次執行合約所消耗的 Gas 會換算成 DOS 進行扣除,並獎勵給礦工。

Base-level 的合約需要使用者預先將 DOS 抵押到拓展鏈的系統級別 Gas 合約中,在合約監聽到使用者轉賬後會記錄使用者的抵押額度,用於之後智慧合約呼叫的開銷。

使用者也可以透過系統合約回退 Gas,系統合約將會把剩餘部分的 DOS 全部退還到使用者賬戶上。這裡我們將智慧合約的接入成本降低,任何第三方錢包都可以接入 Demos 錢包庫,呼叫智慧合約完成 Gas 的抵押和回退。

Ark- level 的合約需要開發商預先將 DOS 抵押到 Gas 合約中去,每一次使用者呼叫合約都將在 Ark- level 的合約賬戶上扣除 DOS。使用者不需要支付 Gas,甚至不需要持有 DOS。

依據此,開發商可以完全獨立地開發自己的 DAPP,並且依照自己的執行邏輯去對 DAPP 進行構架。比如,開發商發行了 A123 代幣,這個合約透過監聽 ETH 代幣的轉賬進行 A123 代幣的發放兌換。這個過程中 Demos 只是作為代幣的基礎建立平臺,而沒有要求 A123 的代幣持有者持有 DOS,使用者可以無感體驗智慧合約。

使用者只需要符合開發商的 DAPP 執行邏輯去使用 DAPP 即可,這個構架將大大降低使用者門檻,並衍生出更廣泛的 DAPP 應用場景。

使用者呼叫智慧合約時,因 Gas 不足而呼叫失敗是不會扣除 DOS 的。 

指令 Gas 費用清單:

(6)抵押退還

已抵押未花銷的 DOS,可以透過呼叫 Gas 合約來完成 DOS 的退還。Gas 合約提供退還介面,直接呼叫即可,退還地址為抵押地址,DOS 會在扣除已使用的 Gas後原路返回。 

(7)版本控制

和基礎連相同,Demos 拓展鏈中也加入了版本控制,以此來做向後拓展。版本號和基礎鏈同步,每一個基礎鏈版本更新,拓展鏈如果有改動並且被社羣認可,則會同步更新,同樣依賴於社羣自治系統。 

三、相容

Demos 的相容體現在兩方面:一方面是對於傳統 PoW 公鏈的相容,另一方面是對於企業、政府聯盟鏈的相容。

為此 Demos 中有兩套相容機制:

一種是強相容,透過授權一種特殊簽名來和基礎鏈互動,這裡需要使用到系統級別的合約,雙方都要做相容方面的調整;

另一種則是弱相容,以原子交換的方法做到跨鏈互動,這種方法不需要去做雙Demos 基礎鏈與拓展鏈使用的是第一種互動方式,對於去中心化的公鏈而言,這樣的方式顯然更好,但是對於有行業機密的聯盟鏈和私有鏈來說,則推薦使用弱相容的互動。 

四、基礎鏈和拓展鏈的依賴關係

Demos 基礎鏈和拓展鏈之間的關係是密不可分的:基礎鏈記錄了拓展鏈每一個區塊的交易 hash,用來保證兩條鏈的一致性和加強不可篡改性。

雙鏈之間的互動部分,由不同分工的礦工完成資料校驗,保證雙鏈互動的去中心化和安全。

Demos 的基礎是 PoW+PoS 機制,這樣的機制帶來的好處是社羣高度自治,並且保護 Demos 的完整性。而 Demos 機制又很好地將多節點、高效能的需要引匯出來。

DOS 作為雙鏈的流通資產,既是鏈上資產儲存的關鍵,又是智慧合約使用的必要儲備資產。

這樣的設計的一個優勢是,在基礎鏈因為算力增加導致節點數量減少時,由拓展鏈礦工來穩定節點數量並且得到整體的節點數量穩步增加,將去中心化貫徹到底。

要打包拓展鏈區塊就必須要同步基礎鏈資料,無形中就增加了基礎鏈區塊的資料備份。而基礎鏈礦工在打包拓展鏈合約發起的主交易時,也需要對拓展鏈區塊進行校驗,這時候同樣需要基礎鏈礦工對拓展鏈區塊進行同步。

Demos 需要最為直觀地將 DOS 作用於基礎鏈和拓展鏈上,以此真正實現以應用落地為基礎的區塊鏈價值升級。

我們設計了全新的共識機制和合約體系來降低應用落地的門檻,基礎鏈就像一個保險箱,牢牢的將使用者資產保管好,而這些資產不僅僅使用在支付環節中,它還支撐起 Demos 整個應用生態的執行。

移動端支援

在白皮書中著重提到這個部分,因為我們不僅考慮到了公鏈結構,更是以應用落地為核心,去開發相關產品。雖然這個過程很難,但是我們依然堅持要這麼做,可以負責任的說,Demos 就是為應用落地而生。

我們比以往任何一個以 PoW+PoS 共識機制為基礎的公鏈都要注重移動端的支援,為此我們設計並開發出一整套移動端錢包庫,以滿足投票提案、投票挖礦、智慧合約呼叫等功能。

我們將所有的移動端操作都設計得簡單且安全,下面是我們的移動端錢包測試網版本,我們會在官網上開放水龍頭讓使用者進行體驗,並開源整個專案。

我們希望反哺 DCR 這樣開創 PoW+PoS 共識機制的優秀區塊鏈專案,DCR 社羣可以藉助我們開源的錢包完成整個專案使用者體驗方面的巨大提升。

Demos 的階段性任務

Demos 團隊思考了中本聰的初衷等問題,得到以下結論:

1.區塊鏈的未來一定是應用落地,比特幣也是一種區塊鏈的應用。
2.社羣的完全自治是抵禦硬分叉的唯一合理方式。
3.區塊鏈專案不應該只做前瞻性的設計,也要有對應時代變化的機制。
4.要推動區塊鏈產業發展,就必須要做出大膽的創新性嘗試,前提是這樣的嘗試是合理的,並且具備以上三點。

為此我們設定了兩個時代,來應對和期待區塊鏈技術的未來。 一、基礎時代在這個階段,Demos 會在主網上線後透過定期出售的形式將 DOS 投入市場。

我們不做私募,也不會在主網上線前以任何一種形式出售任何一枚 DOS,我們清楚私募對於開發團隊的重要性,但是我們寧願艱苦地走完開發路程,也不願意讓使用者與開發團隊共擔風險。

Demos 會藉助優秀的經濟模型去推動整個 Demos 的發展程序,並試圖將速度加快。

與交易所和錢包、第三方支付等平臺打通,並推行 Demos 的經濟模型使其穩定。

推動社羣高度自治的普及,來達到共識的穩定與良性發展。

方舟級別的智慧合約型別的推薦,建立方舟級別智慧合約的使用習慣。

加強區塊鏈應用商業化落地的建設,為企業乃至政府提供有效的區塊鏈技術支援,我們歡迎更多的開發者加入到 Demos 開發者團隊當中,社羣自治基金會對開發者進行獎勵。

Demos 社羣的穩定建設,併為方舟時代的來臨做準備。

二、方舟時代

在這個階段,Demos 的主要工作重心放在與第三方 PoW 公鏈結合方面,我們已經構建足夠穩定社羣,並擁有覆蓋全球的節點,使我們成為全球最大的去中心化公鏈。

我們會主動研發並推出第三方 PoW 公鏈的相容開源版本,以此來幫助第三方公鏈完成公鏈升級,並且主動提供節點支援,加速第三方公鏈和 Demos 拓展鏈的融合。

並在這個階段,推動 Demos 拓展鏈的 Demos 共識機制+PoS 共識落實。以此來賦予融合進來的 PoW 公鏈以權力。使其在融合當中獲取到對於 Demos 拓展鏈的社羣權力,讓其真正成為 Demos 不可分割的成員。

在此階段,會有很多公鏈與 Demos 拓展鍊形成 DNA 螺旋結構,圍繞著拓展鏈的發展做出貢獻。

Demos 開發團隊會將社羣基金賬戶永久關閉,並改變基礎鏈 DOS 產出的分配機制,將 PoW 收益從 60%提升到 70%。

將社羣基金賬戶中的所有資金全部空投給每一個 Demos 賬戶,以感謝每個人對於 Demos 的支援。

Demos 社羣將不再以獎勵驅動,所有人包括第三方公鏈、開發者、DAPP 專案方、普通使用者都將呈現一種“人人為我、我為人人”的狀態。

Demos 開發團隊的使命也在這個時代的開始時完成,無須再持有社羣基金賬戶。也許那個時候 Demos 開發團隊已經為 Demos 奉獻出了一生,甚至是好幾代的 Demos 開發者也已經為其做出寶貴貢獻,但是隻要這一天最終來臨,所有的付出都將是值得的!

戰勝“不可能三角”的不是技術,而是人類本身。

結論

Demos 提供了全新的智慧合約解決方案,我們詳細介紹了 PoW+PoS 共識機制如何使社羣高度自治,並且提高攻擊成本,此外我們還解釋了 Demos 共識機制是如何幫助 Demos 實現自我升級,並保持工作效率的。UTXO 模型和賬戶授權體系的結合,讓 Demos 的跨鏈互動安全且去中心化。

多種級別的智慧合約可滿足不同開發者的需求,提供全新的運營思路和可能性。Demos 非常重視移動端的支援,並在專案初期就將這個工作提上日程,同步進行開發。

目前,在國家政府的大力推動下,智慧合約的普及與應用已推上日程,區塊鏈應用的大規模落地即將到來。

Demos 以去中心化、安全、高效能為專案基礎,移動端的便捷、安全、多功能為核心,必將把智慧合約的應用落地推向一個前所未有的高度,併為區塊鏈技術的普及起到至關重要的作用。

關於更多Demos資訊:https://www.doschain.org/
更多區塊鏈專案介紹:http://www.qukuaiwang.com.cn/news/xiangmu 
風險提示:區塊鏈投資具有極大的風險,專案披露可能不完整或有欺騙。請在嘗試投資前確定自己承受以上風險的能力。區塊網只做專案介紹,專案真假和價值並未做任何稽覈!

免責聲明:

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

推荐阅读

;