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