TERA 是一個去中心化應用的平臺。這類似于一個‘’操作系統。TERA 由一個集成到互聯網的程序和數據存儲庫構成。在該平臺上發布程序和數據的機制不受審查,加密貨幣是通證經濟的血液,而區塊鏈則使其流淌。
考慮以下幾層:
在 21 世紀,每個人都有一個計算設備,比如一臺電腦,一臺筆記本,一部智能手機,一塊智能手表等等。就其本身而言,這樣的設備對一個人來說是沒有意義的,所以它總是運行一個程序并且執行一些有用的東西。程序的結果顯示在用戶界面中。通常,結果持久地存儲在設備的數據層中,以便能夠再次訪問。更大的用處是允許其他用戶通過網絡訪問這些數據。因此,來達到為用戶增加每一個連續實用性的目的。
為了相互通信,由設備組合而成的每一個節點構成了一個網絡拓撲結構。將節點組合成網絡的最簡單方法是使用單個協調服務器。,但由于單點故障導致相應的不可靠性也表明這樣的解決方案是中心化的。
還有一些其他的解決方案,所有的設備都是平等的,具有相同的等級和優先級,我們叫它去中心化網絡。。重要的是要理解去中心化網絡的整體工作原理;節點之間作為一種協調良好的機制在整個網絡中進行通信。為了實現這一點,有一些特殊的算法用于節點之間的交互,我們將其稱為共識。可以是:時間共識、傳輸共識或數據鏈共識。
理論角度
一個快速的路由網絡
傳統的區塊鏈不使用節點之間的順序。整個網絡看起來是隨機的,就像這樣:
這種隨機的鏈接組織并不能保證在所有節點之間的快速傳遞。
而在 TERA 中,節點自發組織成有序的通信方式:
區塊鏈將數據從第一個節點傳遞到最后一個節點的時間不超過 3 秒。
為了實現這一點,基于節點地址之間的相似性,節點之間通過特殊的連接方式進行連接。節點地址是隨機值(32 字節),在節點操作期間不會更改。與其他節點的連接數與網絡中節點的數量呈對數關系,從而實現相對恒定的交易傳輸時間。
因此,如果網絡由 10 億個節點組成,節點之間的傳輸時間仍然不超過 100 毫秒(ms),因此最大時間將是 30*100 ms = 3 秒。節點之間傳輸交易的延遲時間 100ms 是上限,但在實踐中,它小于 100 ms,因為延遲較小的節點間具有連接優先級。
為了使成功的連接更加持久,每個節點會統計不同區塊內容之間成功交換的信息。此統計的信息會影響連接優先級。
網絡協議
交易由用戶發送到 N 個相鄰節點(其中 N 是從 5 到 16)。交易被添加到新生成的區塊中(當前第二個塊)。當交換階段到來時,交易開始從一個節點移動到另一個節點,并在區塊中積累。如果一個塊包含的交易多于它的容量,那么需要大量工作量證明的交易會被留下——這就是 DDOS 保護的實現方式。在區塊生成階段結束時,執行簽名階段和 PoW 區塊計算(1 秒),然后開始為期 3s 的具有最大工作量證明的區塊搜索。這樣的區塊被添加到區塊鏈中。
區塊傳輸處理
區塊鏈:每秒形成塊的次數,但區塊的確認時間(即區塊鏈中區塊的接通持續時間)為 8 秒。為了使創建區塊的速度比確認時間快 8 倍,使用了區塊的流水線處理。這可以被認為是 8 個獨立的區塊鏈,形成周期為 8 秒。每一個這樣的區塊鏈相對于其他都會相對移動一秒鐘。因此,我們在一秒內創建第一個區塊鏈的區塊,在第二秒內創建第二個區塊鏈的區塊,以此類推,直到第 8 個區塊鏈。為了將這些區塊鏈連接成一個區塊鏈,它們被粘在一起。在傳統的區塊鏈中,前一個塊的哈希包含在每個單鏈的區塊頭中。在 TERA 區塊鏈中,為了達到這些目的,前一個區塊的哈希值是基于 8 個區塊鏈中每個的前幾個區塊計算出來的。在這個階段,我們將 8 條鏈的邏輯綁定成一條。
幾個塊并行處理,處理順序取決于當前時間(當前塊):
區塊上傳以及上傳到網絡
時間點:
1. 新(當前)區塊,從 MemPool 加載交易,計時器激活
2. 同步單元(分布式單元)的開始
3. 同步結束
4. 將數據塊與前面的區塊捆綁在一起,POW 運算
5. 最大 PoW 網絡搜索開始
6. 最大工作量證明搜索結束
7. 檢查該單位的有效性,考慮到由于下載新的區塊鏈與大的完整的工作量證明而可能改變的之前區塊。
從圖中您可以看到,該區塊引用前面的區塊,但是增量為 8 個區塊。一旦確定有效并存儲在數據庫中,來自第 8 個節點的塊就會參與到其他節點的卸載中(類似地,它們也可以從其他節點加載)。
這是在 TERA 區塊瀏覽器頁面中的區塊:
數據傳輸與驗證分離
網絡中的每個節點都相等。節點的數量是無限制的。節點之間的通信通過組織單個數據鏈來實現,其中的信息以命令(交易)的形式記錄下來。通常這樣的鏈稱為區塊鏈,但是在這個平臺中,它的應用程序被擴展。傳統區塊鏈中,交易被寫到區塊中。在這種情況下,不允許寫入交易塊,這是無效的(例如,數字簽名不正確、賬戶資金不足、雙花等)。在 TERA 平臺中,區塊鏈作為一種傳輸工具,可以將任意的信息寫入區塊中(以后我們稱之為交易)。對信息正確性的解釋取決于更高層次的應用。區塊鏈有一個共識機制來確定哪個數據鏈為真,但是這個共識不會解釋區塊內交易的規則。區塊數據是一個黑匣子——所有操作都是用一組字節執行的。PoW 算法用于抵御 DDOS 攻擊。交易的長度越長,PoW 的值就必須越大。在將交易發送到網絡之前,客戶端計算 PoW 值。
數據河
TERA 平臺可以抽象地表示為一個水道,它保證了集裝箱船舶通過的連續性和數理順序。航道不對船舶和貨物負責管轄。船舶的效用包括港口、漁場、倉庫等,它們為船舶裝載提供有用的工作。
它是如何使用的?
假設你需要把貨物送到 B 港,而 A 港已經把貨物裝進集裝箱并送到了港口。在B 港,檢查所有的集裝箱是否有正確的內容,當你找到貨物時就去提貨。該通道僅用 8 秒就能將船只運送到目的地的所有港口。
這里的一個重要方面是數理順序。區塊鏈的目的是確保每個設備有一個區塊的單一順序和組成。如果提供了這種方法,那么讀取它們的程序將在世界上所有的計算機上生成相同的結果——所以數據是相同的。因此,即使這些區塊包含不正確的交易、雙花等等,用戶端的程序也會看到它并拒絕執行。這稱為交易驗證過程。為了加快整個系統的速度,我們將其從區塊傳輸過程中分離出來。因此,我們可以在另一個時間和另一個進程中執行驗證,而不影響區塊鏈,由于大量檢查,我們可以更快地執行驗證——由于較少的數據庫訪問,我們可以對操作進行分組并加快工作速度。
自定義區塊鏈數據庫大小
對于在 1000 tps 時不可避免地會出現的大量數據,新用戶應該能夠快速下載區塊鏈來驗證它并開始使用它。因此,下載順序發生了變化——如果以前是從鏈的開頭下載的,現在將從鏈的末尾下載。
加載信息將取決于用戶的設置——取決于他為區塊鏈分配的磁盤內存大小。根據大小的不同,下一個下載優先級將是:
1. 賬戶圖表
2. 區塊頭
3. 區塊或者交易的內容
它將怎樣工作:
1. 對于超輕量級客戶端:只加載頭文件的一部分和發票表的一部分。
2. 對于普通用戶:整個帳戶和標題表,以及部分塊的內容
3. 對于全節點客戶端-所有數據(如現在所做的)
例子:
用戶為磁盤上的區塊鏈分配空間,例如 12GB。這個磁盤空間會被分為三個部分:
?常規區塊結構(從末尾開始),例如 5GB
?其他不包含在常規結構中但需要存儲在節點上的區塊(由 DHT 原則決定,即,節點地址的相似度),例如 5GB
?最后一個常用的區塊,例如 2 GB
安全
雙花
TERA 區塊鏈使用 PoW 共識機制。所有的交易都會按照一定順序安排執行。
從賬戶中提現時,要核對必要的數量。在記錄時,計數器“OperationID”會遞增。每個后續的支付交易必須有下一個“OperationID”號來防止同一交易被多次花費。
計算區塊確認數
在比特幣網絡中,為了防止用戶雙花,至少需要等待 10 分鐘,有時甚至一小時。在 TERA 網絡中,每秒鐘都會創建一個區塊,但是如果你想要具有和比特幣網絡一樣的可靠性的話——你需要等待同樣的時間。你等待的時間與可靠性的程度相關。這不存在魔法;在任何 PoW 算法中,您都要用時間來換取一定的可靠性。在 TERA 中,我們做出了更靈活的選擇。您可以等待 8 秒、1 分鐘或 1 小時(例如,如果,轉移價值數百萬美元的資金)。
礦工經濟激勵
礦工平臺為區塊執行復雜的哈希計算,以保證區塊鏈的不變性。對找到的哈希塊的獎勵為礦工提供了經濟激勵。這個獎勵的計算方法如下:剩余未分配貨幣余額的十億分之一(0.000000001)乘以全網算力對數的平方的百分之一。
最初,未分配的總額等于 10 億枚硬幣(tera 的總發行量),所以隨著時間的推移,獎勵將下降,但這將由實際交易率上得到補償,以及反向補給由于支付交易的未分配代幣余額:
?10 TERA -為限制隊列之外的用戶創建一個新賬戶
?100 TERA-創建一個智能合約/DApp
?10000 TERA -創建智能通證(即發行代幣)
付款進入賬戶 0(即回到未分配的挖礦余額)。通過 DAO 投票機制,交易費率將繼續發生變化。
抵御 DDOS 攻擊
每個區塊的大小限制為 130kb;平均交易大小為 130 字節,因此平均每個區塊可以承載 1000 個交易。每個交易必須有一個工作量證明字段,它記錄哈希計算所做的工作。此字段用于確定該交易是否包含在該區塊中。它必須至少有一個確定的值,并且必須足以與其他交易競爭。只有前(大約)1000 個工作量證明值最高的交易包含在區塊中。
計算:
區塊鏈的大容量,以及在發送的每個交易中強制執行 PoW 的要求,使您可以有效地組織 DDOS 防御,但有以下限制:
?攻擊者的處理能力為普通用戶的 1000 倍以內。
?平均網絡負載為 50%,即每秒 500 個交易。
在這種情況下,攻擊者每秒可以發送 1000 個交易。當您第一次在網絡中發送時,將有 1000 個交易,并攻擊 500 個常規用戶,只有 1500 個交易。區塊鏈只接受1000 個交易,因此將舍棄 500 個交易(普通用戶和攻擊者將各自丟失三分之一的交易)。但與此同時,PoW 交易的平均算力將會增加,因此,在下一個塊中,普通用戶將花費更多的計算時間來發送交易(即兩倍的時間)。與此同時,攻擊者將無法增加 PoW 交易計算的能力,因為他最初工作在容量的極限(100%)。因此,一個普通用戶的 PoW 交易的平均算力將增加一倍,并且在普通交易之間的區塊中所占的比例也將增加一倍。攻擊者的攻擊將會 500 筆 500 筆的出現。也就是說,所有用戶交易都將被接受。
從這些參數可以看出,區塊鏈的工作負載越小,應用 DDOS 攻擊就越困難。一旦區塊鏈的平均負載超過 50%,我們就會增加交易的上限閾值。目前,每個礦工的節點實際上只使用一個線程支持交易處理。考慮到目前多核處理器是標準的,因此將每個節點的交易處理性能相乘并不困難。
實踐角度
規范
共識機制:POW
算法:TERAhash (sha3 +優化 RAM hashing)
總供應量:10 億
區塊獎勵: 剩余未分配代幣余額的十億分之一(0.000000001)乘以全網算力對數的平方的百分之一
區塊大小:130KB
預挖: 5%
發展基金:1%挖礦所得
區塊生成時間:1 秒
區塊確認時間:8 秒
速度:每秒 1000 個交易
礦工費:免費
密碼學應用:sha3 secp256k1
防止 DDoS: PoW(哈希運算)
平臺:node 。 js
處理器線程的組成
TERA 中區塊鏈的一個重要特點是網絡的連續運行。該網絡是通過創建一個具有動態結構支持的多維網格拓撲結構而形成。每秒鐘進行一次交換。節點必須不斷地與其鄰居交換關于新區塊的信息(此任務稱為傳輸)。即使節點處于區塊鏈加載模式(即不同步),也應該執行這種交換。
當您啟動一個全節點時,將創建以下進程(節點):
1. MAIN -程序的主線程+傳輸。向數據庫寫入新塊。不同步時加載歷史。
2. 靜態——向其他節點(頭、區塊、狀態)提供靜態信息
3. TX-執行交易(更改狀態表)。
4. Web-通過 HTTP 檢索 WEB 數據,以便與 WEB 完全集成
5. POW-挖礦進程。哈希運算使得內存占用提升并且快速搜索給定匹配。
評論
查看更多