Vortex共識算法對超級節(jié)點(diǎn)競選的意義是什么
掃描二維碼
隨時(shí)隨地手機(jī)看文章
好的共識機(jī)制是一個(gè)區(qū)塊鏈項(xiàng)目的靈魂,它決定著項(xiàng)目生態(tài)能否最終走向繁榮。前不久,我們正式開啟了VNT超級節(jié)點(diǎn)競選及投票活動(dòng),這讓不少社區(qū)愛好者對VNT Chain采用的共識機(jī)制產(chǎn)生了興趣。
在區(qū)塊鏈?zhǔn)澜纾沧R一般都是通過特定的數(shù)學(xué)算法實(shí)現(xiàn),常見的共識機(jī)制有PoW(工作量證明),PoS(股權(quán)證明),DPoS(委托權(quán)益證明),BFT(拜占庭容錯(cuò))等。但每種單一的算法都有自己的優(yōu)點(diǎn)和缺點(diǎn),例如PoW模式具備高安全性與穩(wěn)定性,卻犧牲了性能,其中最為典型便是比特幣。再如PoS模式是通過算法來選擇出塊共識節(jié)點(diǎn),具備高性能,卻犧牲了部分的安全性與去中心化。
那么能否博取眾長設(shè)計(jì)一個(gè)即公平、安全又能保證性能的共識算法呢?這是我們創(chuàng)新采用Vortex共識算法的初衷,Vortex共識算法融合了DPoS、BFT與硬件加速,并融入了保證金、高安全、終局性、激勵(lì)機(jī)制等設(shè)計(jì)。
如何保證網(wǎng)絡(luò)安全高效
Vortex通過融入DPoS,能夠加速打包交易、生成區(qū)塊和驗(yàn)證區(qū)塊,獲得較高的交易吞吐量;并讓所有持有代幣的用戶都可以參與到網(wǎng)絡(luò)治理,投票選出若干委托節(jié)點(diǎn),區(qū)塊鏈完全由這些委托節(jié)點(diǎn)按照一定算法生成和維護(hù)。通過融入BFT,Vortex能夠?qū)崿F(xiàn)快速終局,任何交易經(jīng)過一段時(shí)間之后,總能被區(qū)塊鏈最終確認(rèn),并且無法進(jìn)行回滾。同時(shí)我們對傳統(tǒng)BFT算法進(jìn)行改進(jìn),把交易和共識拆分在兩個(gè)通道中做異步處理,提升消息處理效率;這樣取消了交易全網(wǎng)廣播,能夠降低網(wǎng)絡(luò)帶寬需求。此外Vortex還能夠應(yīng)對各種攻擊,包括Nothing at stack、Long range attack、Double spending attack、Bribery attack等,有效防止分叉和數(shù)據(jù)篡改。
如何在低能源成本下提高性能
在當(dāng)前嚴(yán)格的效率要求下,數(shù)據(jù)中心面臨著越來越大的數(shù)據(jù)量和工作量復(fù)雜性的需求。為了滿足高性能、可擴(kuò)展性和可伸縮性的目標(biāo),服務(wù)通常運(yùn)行在數(shù)百到數(shù)千臺機(jī)器上。這就需要一些合作共識來維護(hù)機(jī)器的一致性。不可避免的性能開銷和需要的附加資源往往會(huì)降低一致性,導(dǎo)致較少的用戶必須建立更復(fù)雜的應(yīng)用程序來處理潛在的不一致性。一致性需要的高成本來自達(dá)成協(xié)議所需的多輪溝通,傳統(tǒng)的網(wǎng)絡(luò)棧沒有對時(shí)間延遲或者特定的通信模式進(jìn)行優(yōu)化,使共識協(xié)議的加速變成了一個(gè)瓶頸。我們的另一個(gè)策略是做硬件加速,通過對共識算法里涉及到的驗(yàn)簽環(huán)節(jié)做硬件加速,以實(shí)現(xiàn)在低能源成本下提高系統(tǒng)的性能。
如何尋求各方平衡點(diǎn)
除了考慮性能及效率之外,對于智能網(wǎng)絡(luò),要想把共識作為網(wǎng)絡(luò)的一種屬性,而不是只讓它在應(yīng)用層上實(shí)現(xiàn),還需要在實(shí)現(xiàn)的復(fù)雜度和中間件可達(dá)到的吞吐量中找到平衡點(diǎn)。而在網(wǎng)絡(luò)中加入?yún)^(qū)塊鏈共識協(xié)議提高系統(tǒng)效率是很好的選擇,如PBFT(實(shí)用拜占庭容錯(cuò)算法)/SBFT(簡化拜占庭容錯(cuò)算法)/RBFT(冗余拜占庭容錯(cuò)算法)等共識協(xié)議。我們通過FPGA實(shí)現(xiàn)共識驗(yàn)證的系統(tǒng)運(yùn)行框架,F(xiàn)PGA(現(xiàn)場可編程門陣列)具有低功耗的特點(diǎn),不受傳統(tǒng)的CPU在數(shù)據(jù)處理方面的線速限制,在上面運(yùn)行共識協(xié)議能夠降低時(shí)間延遲,通過擴(kuò)展中間件的功能或添加廉價(jià)的共識給網(wǎng)絡(luò)處理節(jié)點(diǎn),將共識協(xié)議更多的價(jià)值推廣到網(wǎng)絡(luò)。
通過這種在網(wǎng)絡(luò)級采用硬件實(shí)現(xiàn)共識驗(yàn)證的方法,可以不增加數(shù)據(jù)中心的容量,在FPGA上實(shí)現(xiàn)PBFT/ SBFT/RBFT等區(qū)塊鏈共識協(xié)議,降低了時(shí)間延遲。具體運(yùn)作步驟如下:
1)首先構(gòu)建在網(wǎng)絡(luò)級采用FPGA實(shí)現(xiàn)共識驗(yàn)證的系統(tǒng)運(yùn)行框架;
2)FPGA節(jié)點(diǎn)之間通過執(zhí)行TCP/IP(傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議)協(xié)議進(jìn)行點(diǎn)對點(diǎn)連接;3)FPGA節(jié)點(diǎn)采用ARP(地址解析協(xié)議)、ICMP(控制報(bào)文協(xié)議)、DHCP(動(dòng)態(tài)主機(jī)配置協(xié)議)輔助TCP/IP協(xié)議與其他FPGA節(jié)點(diǎn)交互,縮短TCP/IP堆棧,使FPGA處于真真實(shí)網(wǎng)絡(luò)中;
4)FPGA節(jié)點(diǎn)將數(shù)據(jù)消息轉(zhuǎn)化為滿足共識協(xié)議需要的報(bào)文格式;
5)由FPGA節(jié)點(diǎn)采用PBFT、SBFT或RBFT的區(qū)塊鏈共識協(xié)議對數(shù)據(jù)消息進(jìn)行傳遞廣播,其他FPGA節(jié)點(diǎn)收到后發(fā)生發(fā)聵并進(jìn)行投票。
如何保障節(jié)點(diǎn)公平競選
那么在VNT超級節(jié)點(diǎn)競選投票中,我們?nèi)绾伪U贤镀惫脚c生態(tài)平衡。如上述步驟,在加入網(wǎng)絡(luò)的FPGA節(jié)點(diǎn)生成注冊證書的前提下,即FPGA節(jié)點(diǎn)作為合法節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)。假設(shè)將三個(gè)FPGA節(jié)點(diǎn)編號0、1、2,首先根據(jù)區(qū)塊高度對3個(gè)節(jié)點(diǎn)取模(三個(gè)FPGA節(jié)點(diǎn)),得到的余數(shù)即對應(yīng)FPGA的編號,這樣選出領(lǐng)導(dǎo)節(jié)點(diǎn)。領(lǐng)導(dǎo)節(jié)點(diǎn)將規(guī)范了報(bào)文格式之后需要廣播的數(shù)據(jù)消息使用哈希函數(shù)SHA-256生成摘要,然后生成一個(gè)隨機(jī)數(shù)nonce,并用硬件加密模塊進(jìn)行ECDSA計(jì)算,生成對摘要的簽名,向其他節(jié)點(diǎn)提交證明。其他節(jié)點(diǎn)收到數(shù)據(jù)信息后,通過隨機(jī)數(shù)nonce驗(yàn)證簽名是否是數(shù)據(jù)發(fā)出者的,確定數(shù)據(jù)合法性,然后進(jìn)行收到消息的反饋通知并對數(shù)據(jù)進(jìn)行投票工作。
相比于公有鏈常用的幾類共識機(jī)制,Vortex在保證共識效率的同時(shí),確保快速實(shí)現(xiàn)交易的終局性,防止交易回滾;同時(shí)在網(wǎng)絡(luò)中可保證持續(xù)的安全運(yùn)行,在部分委托節(jié)點(diǎn)作惡的情況下也能繼續(xù)工作,并通過投票來替換惡意的委托節(jié)點(diǎn),直到恢復(fù)到100%可靠的委托節(jié)點(diǎn)。此外Vortex的設(shè)計(jì)還融入激勵(lì)機(jī)制,對區(qū)塊鏈網(wǎng)絡(luò)中的交易打包節(jié)點(diǎn)、交易傳輸節(jié)點(diǎn)、監(jiān)督節(jié)點(diǎn)進(jìn)行獎(jiǎng)勵(lì),形成高效的傳輸通路和快速處理交易,對揭露節(jié)點(diǎn)惡意行為進(jìn)行獎(jiǎng)勵(lì)。
VNT Chain采用Vortex共識算法,最終目的是希望給社區(qū)成員提供更好的體驗(yàn),與廣大社區(qū)愛好者共同構(gòu)建生態(tài)未來。現(xiàn)在VNT超級節(jié)點(diǎn)競選及投票活動(dòng)正在火熱進(jìn)行,歡迎每一位社區(qū)成員參與到VNT社區(qū)的治理中,推動(dòng)網(wǎng)絡(luò)和整個(gè)生態(tài)的穩(wěn)定運(yùn)行,共同打造更加良性、豐富、多元化的VNT社區(qū)生態(tài),共享VNT生態(tài)繁榮。