XDAG 是一種基於 PoW 共識算法和 DAG 技術的加密貨幣。 XDAG 是在 2017 年 9 月份前後由俄羅斯匿名數學家開始獨自開發,2018 年 1 月 5 日主網正式上線,2018 年 2 月 2 日 XDAG 代碼移交社區,由社區開始進行開發和維護。項目沒有 ICO,沒有預挖,完全由社區驅動。

目前社區由各國各地區的愛好者組成,社區開發者團隊共有 17 人,分別負責代碼開發、顯卡礦機軟件、錢包開發、區塊瀏覽器、礦池腳本工具以及各種小工具開發。

1. 區塊鏈行業現狀

XDAG 是什麼?DAG 技術+PoW 共識算法的一種加密貨幣

比特幣開創了區塊鏈的先河,公認是區塊鏈 1.0 時代,Ethereum 將全球計算機的概念帶入現實,被認爲是區塊鏈 2.0 時代,當前的 EOS 則將 blockchain 的技術發揚廣大,有人認爲是區塊鏈 3.0 時代的開篇。

雖然行業經過多年發展,但是基於 blockchain 的區塊鏈技術本身也面臨諸多問題,並且隨着普及範圍擴大這些問題也越來越突出。

儘管業內衆多 blockchain 開發者,都在嘗試尋找各種技術手段解決當前遇到的這些問題,但是從當前技術發展現狀來看,各種嘗試並沒有取得突破性進展。

目前遇到的問題主要有以下兩個方面:

1、 blockchain 本身的 TPS 瓶頸限制了區塊鏈技術的性能

2、 blockchain 較長的確認時間也限制了區塊鏈技術的廣泛應用

針對以上兩個問題,不管是 EOS 偏中心化的解決方案,還是目前如火如荼的分片技術、側鏈技術都存在一些無法解決的問題。

這一現狀間接說明基於 blockchain 本身再去擴展將面臨巨大困難和挑戰。那除了 blockchain 上再進行擴展是否還有其他的方向可以去突破?答案是有的。

那就是 DAG 技術!

2. Why DAG+PoW?

DAG (Directed Acyclic Graph 有向無環圖) 並不是一個剛出現的技術,而是在數學的一個分支——圖論中的數學概念。 早在 1736 年被提出,在計算機技術中,則是在計算機科學與技術初期就已經存在的一種數據存儲結構。從理論上而言 DAG 結構比單鏈結構更復雜,但擁更好的擴展性。

與衆不同的是 XDAG 嘗試通過從區塊鏈技術底層的數據結構開始重新設計,並採用另外一種 DAG 構成方式,巧妙的將 PoW 共識算法和 DAG 技術相結合, 並同時提供了不同節點之間交易併發處理方式,在確保網絡安全性和公平性的前提下提高 TPS 降低確認時間。

XDAG 是什麼?DAG 技術+PoW 共識算法的一種加密貨幣

A 表示錢包地址塊,Tx 表示交易塊,M 表示 PoW 產生的主塊,W 將其命名爲見證塊。

在 XDAG 中一直有個特點,就是區塊 = 交易 = 地址

XDAG 是什麼?DAG 技術+PoW 共識算法的一種加密貨幣

在 XDAG 中區塊的數據 結構如上圖所示,這個數據結構是用來持久化存儲數據使用。

塊結構通過 16 個名爲 xdag_field 的結構組成,每個 xdag_field 都是一個結構體,其中由結構體和聯合體組成。

transport_header 在傳輸時用來表示序列號,在接收後處理時用來保存下一個塊的地址。

type 是一個 64 位的字段,用來表示一個塊中 16 個 field 的類型,其中劃分成 16 部分,每部分 4bit,也就是半個字節,4 位可以表示 16 種類型,因此 type 這個字段每 4 位表示一個 field 對應的類型。

time 是用來表示塊產生的時間,採用的格式是 1/1024 秒,一秒鐘在其中表示爲 2^10。 同時在節點間數據交換時作爲請求時間範圍的起始時間點。

hash 是一個 24 字節的截斷哈希值,通常是另一個區塊的截斷哈希值。 amount 是以 cheato 爲單位的數量值,用來記錄 XDAG 數量,cheato 是 XDAG 中的基本單位,1 個 XDAG 包含有 2^32 個 cheato。

end_time 用來表示節點間數據交換時作爲請求時間範圍的終止時間點。data 是 32 字節的哈希值。

在 XDAG 中以上描述的塊是完全由每個節點、每個錢包自己獨立生成,不會受其他干擾,從而在基礎設計上保證了區塊處理的獨立性,也爲後續提到的高 TPS 打下基礎。