Velas 是一個會自主學習和優化的區塊鏈平臺,用于安全、可交互操作、可擴展性極好的交易和智能合約。Velas使用基于 AI 的 DPoS(AIDPoS)共識來
Velas 是一個會自主學習和優化的區塊鏈平臺,用于安全、可交互操作、可擴展性極好的交易和智能合約。Velas使用基于 AI 的 DPoS(AIDPoS)共識來確保區塊鏈的高容量交易處理安全,同時不減弱去中心化特性、穩定性和安全性。通過使用基于 AI 的 DPoS 共識算法,消除了人性腐敗問題,從而形成了一個容錯系統,防止了現有大多數公鏈項目的主要問題,如 51% 的攻擊和無抵押問題。
介紹
Velas 區塊鏈平臺采用 AI 優化的神經網絡來增強其共識算法。Velas 的目的是解決和修正大多數現有區塊鏈所面臨的問題和挑戰。
神經網絡用于作為計算節點運行和區塊形成時間的獎勵。矩陣計算服務器(神經網絡權重)位于網絡成員的節點上,用于接收獎勵。與比特幣礦工類似,節點需要有大量的算力來計算矩陣。例如,安裝功能強大的專用顯卡(GPU)。
為了訓練神經網絡,在訓練前采用遺傳算法,利用誤差反向傳播的方法,求出目標函數的最小值。
網絡訓練算法
遺傳算法:
1. 創建一個樣本:一個權重隨機(基因)的矩陣
2. 競爭:獲得目標函數的最小值
3. 選擇:按誤差排列樣本,誤差最小的獲得勝利。
4. 復制:矩陣元素或基因的交換,從前兩個最成功的以 50/50交換。
5. 重復該循環,直到達到 70% 的概率。
選擇最好的網絡。
·在形成新的區塊循環之前,節點形成一個測試數據集。
·在形成測試樣例后,檢查矩陣。
·誤差最小的矩陣獲勝,進入下一個周期。
·獲勝矩陣的節點從網絡接收 Velas(VLX)
銷售和購買最有效樣本的市場將不斷進化,這將打開區塊鏈網絡維護算法的發展,并獎勵基于 Velas 的其他系統。
在基于量子技術的超高速計算系統時代,在短時間內可以實現接近理想狀態的神經網絡,在商用量子計算機中對其進行訓練,而隨著時間的推移只需增加一些新功能。
通過解決區塊鏈網絡維護任務,各 AIDPoS 節點實際上為后續開發神經網絡貢獻了智能計算。這一切都是在不需要所選節點的運行者理解任何編程語言的情況下,就可以發生的。
網絡版本推出計劃
階段 1(預 Alpha ):
創建區塊鏈系統結構、代幣、4 個節點上的交易。節點將由網絡組織者在Pre-Alpha 階段運行。錢包中的智能合約將允許所有 CPS 幣(CoinPaymentsCoin)用戶被 1:1 轉換為 VLX(Velas)。創建代幣或自定義數字資產。
階段 2(Alpha):
創建一個穩定的系統,在 10 個節點上部署 Velas,從網絡組織者 4 個服務器測試 AI 。引入支持多幣種的錢包容器,支持公共和私有發送功能。
階段 3(Beta):
添加 AI 填充測試節點,與服務器端 AI 競爭。進一步擴展支持多幣種的錢包容器系統,支持所有主流加密數字貨幣,支持發送、接收和智能合約等功能。
階段 4(候選發布):
將 AI 集成到現有 advisor 節點中,其數量由 AI 邏輯設置。
第 5 階段(發布):
啟動系統的全部功能。用戶可以下載神經網絡工具包,并使用可視化工具為他們的項目進行優化,并根據貢獻獲得獎勵。代幣節點將使用經過訓練的神經元網絡在大多數環境下進行預備訓練,并允許輕松設置和維護代幣節點。
Velas 平臺概述
術語和定義
·VelasCycle——有限時間段和區塊數。每個 VelasCycle 由 一個 SimpleBlock+ 一個 CycleBlock 組成;
·CycleBlock– 一個區塊,其包含允許在當前 VelasCycle 中出塊節點列表;
·SimpleBlock– 包括交易列表 – 不與 CycleBlock 混淆;
·NodeID– 每個節點都包含一個密鑰和公鑰。公鑰是節點標識符,密鑰用于生成 BlockSign;
·BlockSign– 區塊創建者標識區塊編號的簽名;
·TxQuery– 查詢或“特殊交易”。它必須廣播到網絡,以顯示其在下一個 VelasCycle 內生產區塊的意圖。此交易將包括NodeID。生成 TxQuery 需要 100,000 個 Velas 代幣。
在 VelasCycle 結束時,每個節點必須通過以下方式定義下一個算法:
1. 從上一個 VelasCycle 收集所有 TxQueries;
2. 按 NodeIDs 對 TxQueries 列表按詞典順序排序;
3. 為下一個 VelasCycle 生成一個潛在節點列表;
4. 收集上一個 VelasCycle 的所有 BlockSign;
5. 用 BlockSign 做一棵默克爾樹,這將產生一個 VelasSeed。VelasSeeds 用于同步 Velas 網絡中所有節點之間的隨機函數。算法具有確定性;
6. 利 用 一 個 VelasCycle 的 時 間 周 期 和 區 塊 時 間, 計 算 下 一個 VelasCycle 的 區 塊 數。 例 如,VelasCycle–20 小 時,區塊時間 –1 秒;20 小時 *60 分鐘 /1 秒 =72000 個區塊每VelasCycle;
7. VelasSeed 用于隨機化函數;
8. 最后一步包括在下一個 VelasCycle 中調用隨機函數,調用次數和下一 VelasCycle 中的區塊一樣,以此來同步所有節點;
出塊節點的選擇標準最初將完全基于抵押的 Vela 數量。因此,一個節點抵押越多代幣,它越有可能被選為出塊節點,并收到 Velas(VLX)回報。
例如,一個擁有 2,000,000 VLX 的節點被選中的概率是擁有 1,000,000 VLX的節點的 2 倍。
請注意,大多數抵押 Velas 的節點需要抵押累積 51% 的代幣。這是在 Velas區塊鏈上達成共識所需的最低限度。
VelasCycle 被 允 許 跳 過 SimpleBlocks。 至 少 51% 的 區 塊 需 要 在VelasCycle 中進行驗證。
達成共識的方法
AIDPoS 能夠成功地解決現有備選方案的許多缺點和局限性。當網絡開始 1:1 轉換 CoinPayments Coin(CPS)到 Velas(VLX)時,2,000,000,000 枚代幣被預挖。
1. 形成區塊鏈時,所有代幣在服務組織者之間共享。
2. 當形成新區塊并結束循環區塊時,將釋放代幣。
3. 發行的代幣被獎勵給出塊者。
交易驗證是通過在附屬網絡上“抵押”(持有)代幣來執行的。Velas(VLX)的抵押建立了一個可信的驗證人網絡,該網絡將處理和形成一個到鏈的交易區塊。從本質上講,正是所抵押的 Velas(VLX)數量使人們對區塊鏈的當前狀態達成共識。
參加者將獲得易于使用的錢包軟件來抵押代幣。通過收取一段時間的網絡費用來補償驗證人的抵押。抵押的越多,分配到的 Velas(VLX)越多。對于那些擁有專用 GPU 的參與者,將提供額外的軟件供選擇,以提升神經網絡,并因其對 AI的貢獻和訓練而獲得獎勵。因此,PoS 方法可以激勵大量的長期投資,并結合正確的驗證行為和回報,提供可靠的、規模可觀的代幣流,同時盡可能減少開銷或對高級編程語言知識的要求。
Velas 人工直覺 DPoS 算法
人工直覺 DPoS(AIDPoS)用于確保 Velas 區塊鏈安全。AIDPoS 試圖提供一種可以替代常用的共識機制,比如比特幣傳統的 PoW,Peercoin 和 NXT 的PoS 系統。
Velas AI
人工直覺是一系列用于識別一組數據中關系和模式的算法。網絡可以調整輸入,從而在不必重新設計輸出標準的情況下產生最佳的可能結果。
Velas 系統的選定技術參數包括:
·每秒交易數:>30,000;
·每秒區塊數:1 秒 -2 分鐘,取決于 AI 算法的計算結果;
區塊時間取決于網絡負載(TPS)。如果網絡每秒有許多交易,則區塊時間將很短。如果網絡沒有交易,則區塊時間將很長。在生成空塊的情況下,它只包含沒有主體的區塊頭。
AI 算法將從以下歷史數據中得出:
·VelasNodes 數量
·每個 VelasCycle 的交易數
VelasCycle 的特殊交易
神經算法將優化以下參數:
·Velas 節點網絡
·區塊大小
·區塊時間
·增加 TPS
優化后的參數將是抵押者的交易傭金總額。
Velas 獎勵
獎勵將提供給節點 / 區塊生成者,用于主動正確地參與系統,并取決于獲得的分數。算法更改是動態進行的,考慮到以下參數:
·每 VelasCycle 時間
·每區塊時間
·每區塊包含的交易
節點分級評分算法
使用重要性證明算法。之后用于優化的關鍵參數包括:
·一個節點的交易數,并考慮其質量。假的交易會導致減分,而真實交易會得到加分獎勵。
· 賬戶余額。額外的分數根據抵押的代幣分配。Advisor 節點(區塊生產商)在早期階段預估至少需要 1,000,000 個 VLX。
·在線時間。根據區塊生成節點的總正常運行持續時間分配額外的分數。
·區塊生成事件。每個區塊生成節點接收每個生成的區塊分數。
如果某個節點由于任何原因(例如,由于網絡問題,處理能力不足或運行時間不足)未生成區塊,則會扣除該節點上一點分數。當形成一個區塊時,也會生成驗證人列表。根據收到的分數,驗證人被添加到列表中。
上面指定的數據通過神經網絡,然后我們接收 y' =f(x)目標函數的數據。每一個 y' 都會經過 softmax 層。在此之后,我們得到最大質量偏差的百分比。區塊生成的獎勵取決于在神經網絡中收到的貢獻的百分比。
獎勵代幣
假設區塊的總獎勵為 100%,參與者將按照他們在神經網絡中收到的分數所占百分比對總獎勵進行分配。
人工直覺(AI)將基于線性回歸模型。該模型采用隨機方法訓練。AI 基于兩個模型。利用多維線性回歸模型計算類的概率分布密度,貝葉斯分類器利用后驗最大概率估計確定正確的決策。
由于在超復雜的環境中應用了大量的輸入數據流,因此采用了基于遺傳算法的AI ,因為它能夠比采用誤差反向傳播方法的標準神經網絡更有效地進行多次處理。
遺傳算法用于使用進化方法解決優化問題,即從各種最合適的解決方案中進行選擇。它們不同于傳統的優化方法,具有以下特性:
1. 他們處理問題參數的編碼形式,而不是它們的值。
2. 基于一定的人數尋找解決方案。
3. 使用的是目標函數,而不是其導數。
4. 算法是隨機的。
將遺傳算法用于神經網絡訓練,作為反向傳播誤差法的替代方法。訓練的目的是使成本函數最小化。此外,使用遺傳算法可以避免局部極小值中的代價函數。
需要強調的是,誤差的反向傳播算法通常比遺傳算法執行得更快,因為后者要掃描所有可能的結果。然而,梯度法并不總能得到預期的結果,這取決于起始點的選擇。此外,誤差反向傳播方法的一個基本缺陷是局部最優中的“干擾”。這就是為什么遺傳 AI 是一種更具創新性和前景的神經網絡學習方法。
算法實現細節
確定節點等級的人工直覺算法和確定一個階段中區塊數的算法。
確定區塊數量的 AI 算法:每個區塊由既定的交易數組成。這個數字取決于區塊鏈的使用強度。如果在區塊形成期間,未確認的交易仍然存在,那么有必要通過減少區塊之間的時間來增加這個階段中的區塊數量。
當形成一個新的區塊周期時,有必要通過使用增長函數的行列式確定每個時期的標準差,來檢查前面階段中未確認的交易數量。接下來,我們通過計算偏差來計算塊中應該有多少個交易。然后,我們計算出所需的區塊數和出塊時間。
確定節點等級的 AI 算法:節點區塊生成者在確認出塊時得到分數。如果一個節點由于各種原因(缺乏計算能力或網絡問題)未形成區塊,則從該節點中減去分數。當形成一個區塊周期時,也會形成一個 advisor 列表。Advisor 將收到的分數添加到列表中。
人工直覺決定了投票名單中的評分。輸入參數為:
a)節點交易數
b)帳戶余額
c)網絡時間
d)形成區塊的分數
訓練示例包括在前一個周期中出塊時的錯誤、延遲和未確認交易。
AI 的結果應該是候選節點列表中的一個等級。這四個參數是輸入數據,我們將根據輸入數據對流量進行分類。
DNA 是神經網絡(矩陣)的層,將在分離的節點上計算。可以添加更多的輸入參數:
1. 在形成區塊之后剩余的未確認交易數。
2. 一個參與交易檢查的節點(針對 51% 的攻擊和雙倍消耗的攻擊的保護)
3. 當一個節點在一個 cycle-block 內時,真實的投票和交易檢查速度。
AI 在 Velas 上的應用
在 Velas 平臺上使用 AI 的目的是降低共識的成本。
Velas 平臺頂部的 AI 框架:
1. 激勵網絡(節點)參與者在網絡中的可靠性、活躍性,最大化相關分數 / 獎勵。
2. 阻止關于錯誤交易的虛假消息,從而提高消息的質量和網絡對攻擊的抵抗力。
3. 形成每個階段的計時,從而加速 TPS,減少一般的計算網絡工作量。換言之,它是關于在高工作負載期間出塊的動態時間,同時將出塊任務分配給具有較高計算能力的節點。
4. 正確、最優地分配獎勵。
防 51% 攻擊:
我們使用 DPoS 算法。這個階段持續 24 小時。
創建一個階段時,將創建一個循環塊,其中選擇具有更多權重的節點。選擇到循環塊的節點將離開其樁號。
新塊必須由 80% 的循環區塊節點簽名。因此,為了侵入系統,入侵者需要進入一個 80% 以上參與率的循環區塊,并創建占整個系統 80% 以上的假節點。在這種情況下,入侵者會擁有整個系統,他們搶劫自己是沒有意義的。
Velas 節點選擇
Velas 節點選擇的目的是計算神經網絡的矩陣。GPU“機載”是必要條件。網絡管理器設置多個節點。矩陣計算的輸入從區塊鏈接收。
該算法是公共的,因此每個網絡成員都可以:
1. 獲取輸入;
2. 完成矩陣;
3. 進行控制計算。
根據神經網絡的計算結果,一個節點形成一個具有時序的循環區塊,并將其發送給所有網絡參與者。
一個節點存儲一個循環塊的節點參與者的抵押代幣。通過計算神經網絡,一個節點在一個階段結束后分配獎勵。
如果檢測到攻擊,節點將分解一個循環區塊并出新塊。
循環區塊結構
循環時間 = 72001 區塊(72000 SimpleBlocks 每循環 +Cycle-block)
進入網絡的節點
所有試圖抵押的節點必須向網絡發送一個特殊交易,以便在下面的區塊周期中將自己記錄為出塊者。
區塊循環結束
選擇節點以出塊
Velas 平臺上的交易
交易模型的描述
Velas 平臺上的 Velas 代幣的轉讓是通過將新代幣的公鑰重新發布給后續所有者來執行的,同時保留上一筆交易的哈希值。交易的驗證是通過鏈的驗證來完成的。
為了防止諸如“雙花”這樣的難題,可以通過網絡驗證鏈的真實性來解決。這是通過引入“Epoch”協議實現的,其提供了更高的安全級別,允許在特定的時間內將區塊添加到區塊鏈。這些區塊是公開的,可以在區塊瀏覽器上查看和檢查到。每個區塊包含前一個區塊的哈希和一個時間戳。每個包含的時間戳增強了整個鏈的有效性。
每秒交易數
舉例:
·區塊時間 -2 秒 (1 秒 -2 分鐘 );
·每個區塊的交易量 - 60,000 筆 ;
·每秒交易數 - 60,000 / 2 = 30,000 TPS;
交易過程
在這個部分中,我們將總結創建和處理 Velas 交易的關鍵細節
1) 每個交易都有以下參數 :
·交易哈希
·區塊鏈交易類型
·交易被區塊確認時的區塊數或時間戳
·使用的交易輸入數量
·使用的交易輸入列表
·創建的交易輸出數量
·創建的交易輸出列表
2) 所有交易輸入的值在處理之前都要經過驗證。必須審查所需參數的規格。例如,傭金不能小于或等于零。如果有問題的交易沒有得到確認,則該交易將不被處理。
3) 必須啟動和處理交易驗證程序。這項核查應確保下列事件按計劃進行:
·新交易創建完成
·生成新代幣新交易標識符
·獲得新代幣所有者簽名
·執行信息中指示網絡節點處理交易的數據的加密
·成功生成并記錄傳輸到網絡所有節點的數據
交易結構
交易確認
所有的 Velas 交易均被視為是未經確認的,直到它們包含在一個有效的區塊中。近創建的區塊由出塊節點分發到網絡。由于新的區塊被添加到現有的塊鏈中,所以每個額外的區塊都會增加一個交易確認驗證。已發送至網絡中但未包含在區塊中的交易將無法得到確認。交易的優先級基于其相關費用的多少。
交易成本
當代幣的組合、分割或重新發行添加到區塊中時,與區塊相關的所有交易費用都將分布在網絡中的節點中。委員會成員從各區塊內的所有交易中按其由網絡選出的次序獲得 Velas 代幣的獎勵。
如果區塊中所有交易的大小不超過 1 MB,那么最小的 Velas (VLX) 將足以支付與處理相關的所有費用。當未確認交易的數量超過可置于區塊中的數量時,節點將選擇傭金最高的交易。
交易哈希的生成
交易和區塊哈希值是使用 Schnorr 簽名算法生成的。之后我們將討論更多關于這種算法的邏輯、優點和工作原理。Velas 將始終支持安全的多重簽名交易。
·版本
·鎖定時間 - 0
·交易輸入
·哈希 - 交易哈希
·指數(代幣形成時的輸出數量)
價值(代幣在 CCN 的數量)
·簽名腳本
·簽名
·交易輸出
代幣結構
代幣是在交易過程中形成的,其結構如下 :
·密鑰(交易中產生)
·交易哈希(從創建時就存在)
·指數(交易指數)
·單位(代幣數量)
每個區塊在加入區塊鏈之前必須得到委員會成員的確認。每個成員驗證區塊中的所有交易,確認以下數據:交易數量、輸入、數字簽名和輸出。如果驗證成功,在將交易合并到區塊鏈之前,將簽名發布到網絡的其他部分進行最終驗證。為了參與其中,節點必須將其目的通知網絡,從而獲得一枚獨特的代幣,用于存儲在其整個過程中所完成工作的報酬數據。委員會新成員的選拔標準如下:網絡節點的活動時間、錢包的大小、參加委員會的頻率。
區塊頭包括以下參數:
·高度(區塊的高度)
·尺寸(區塊大小)
·版本(區塊鏈版本)
·之前的區塊哈希
·時間戳(當前時間以秒為單位)
·Bits(命令窗口)
·nonce,一次性隨機數 ( 命令窗口 )
·每個區塊中的交易數
Velas 區塊生成節點(BGN)的詳細信息
當前網絡節點分為兩種類型 :
·區塊生成節點(BGN);
·所有剩余節點。
連接時,節點向 DNSSeeds 發出請求并接收一個列表 (slice)。BGN 向任何地址發出請求,并接收 BGN 分支的列表 (node_slice)。
節點向列表中的任意節點發出請求,并嘗試連接。如果連接成功,則注冊節點。如果節點沒有空閑插槽,它將給出一個可以向其發出連接請求的從節點列表,否則,它將通過連接到任何可能的從節點來自行注冊。
此外,在整個“樹”中搜索,這個循環將繼續,直到新節點找到一個空閑的連接插槽。
節點同步并發出請求 :sync()
此外,如果節點不在 NAT 后面,它將啟動一個服務器來連接剩余的 7 個節點。節點發送一個 ping 碼來確定路徑長度。節點總是連接到 TCP 服務器。如果節點在沒有通知的情況下失去連接,它也會失去這些分數。
網絡中有兩種類型的消息:
· 節點和主節點間的消息;
·不通過從節點的消息。
每個附加節點都對前面結構的哈希值進行簽名,并將其發送出去,直到 ping碼到達 BGN
這些記錄的結構如下:
{
address_node,
hash,
sign
}
BGN 對哈希進行簽名并將其發送回去。此時,節點記錄跳轉到 BGN。當投票發生時,節點根據跳數和前面討論的其他參數給 master 打分。如果需要連接一個新節點,該節點將用一個空閑插槽和躍點數 BGN。如果沒有空閑插槽,節點只響應“無法連接”,并給出從節點列表。
哈希算法
我們使用 Schnorr 簽名而不是 ECDSA。Velas 實現將使用 Secp256k1 曲線,因為它是可預測的,因此性能更好。對 Velas 區塊使用 Schnorr 簽名的最大好處是可以獲得可觀的性能提升。
由于 Schnorr 簽名的線性特性(簽名的“總和”等價于“總和”的簽名),我們可以對區塊中所有交易 / 輸入的驗證簽名進行批處理。
并且,我們只需要存儲一個單獨的簽名,通過簡單的計算就可以聚合該區塊的所有簽名。而這只需要更少的存儲成本就可以達到更快的驗證。畢竟,節點現在只需要兩個相對簡單的計算就可以根據區塊簽名驗證所有交易的簽名,區別于以往成千上萬次計算。
使用 Schnorr 算法而不是 ECDSA 還允許密鑰聚合和改進隱私性,這樣就再也無法將多重簽名交易與常規交易區分開來。
中間人保護
該系統通過以下方式防止 MITM 攻擊:
·每個節點的公鑰存儲在區塊鏈中。
·此外,在區塊鏈中還有一個別名—公鑰串。
·當容器從 subscriber A 向 subscriber B 發送時,subscriberA 在區塊鏈中接收 subscriber B 的公鑰,并對其容器加密。它以加密的形式發送到 subscriber B 的的支持多幣種的錢包。
Subscriber B 的使用私鑰解密容器。
支持多幣種的錢包技術
Velas 區塊鏈可以為所有支持的代幣創建公共和私有容器。Velas 將為所支持的各種加密貨幣,如比特幣、以太坊和代幣、 柚子幣、瑞波幣、門羅幣等生成私鑰。密鑰通過用戶的私鑰種子創建。所有容器都可以通過創建 Velas 錢包時的原始種子或私鑰中恢復。這些容器允許創建所有其他代幣的鏈上鏈下可擴展性方案,并作為Velas 中所有的智能合約的一個生態系統錢包。用戶還可以受益于將當前安全保存在 Velas 錢包中的所有代幣存儲起來,并為非原生代幣創建多簽備份。
傳輸存儲私鑰的容器
1. 從節點列表中選擇可以作為代理的節點。例如 : 設置了一個標志,并且節點有一個公共地址。
2. 然后,subscriber A 將節點地址發送給 subscriber B。
3. 兩個 subscriber 都通過指定的通道連接到代理服務器。在代理服務器上創建映射(Map),圖中的代理服務器,Key 是通道名稱,Value 是兩個連接的結構。
4. 連接完成后,subscriber A 將其公鑰發送給 subscriber B。
5. subscriber B 驗 證 subscriber A 的 地 址 并 發 送 公 鑰。 如果 它 們 一 致, 擁 有 包 含 私 鑰 容 器 的 subscriber B 將 使 用subscriberA 的公鑰加密容器并將傳輸給他 / 她。
6. 接收容器后,subscriber A 使用他 / 她的私鑰解密。
7. 關閉連接。(考拉)