區(qū)塊鏈在應用程序開發(fā)中的應用介紹
區(qū)塊鏈技術一直在顛復和傳播數(shù)據(jù)的民主化。這促進了它的使用。區(qū)塊鏈范式已經(jīng)從金融用途轉向了應用程序開發(fā)用途。
在使用區(qū)塊鏈技術的應用中,游戲應用是使用區(qū)塊鏈技術開發(fā)最為廣泛的應用。比特幣通過共享數(shù)據(jù)結構或賬本提供小原子數(shù)據(jù)的交易。數(shù)據(jù)交易的去中心化結構保證了一個高效的系統(tǒng)。
隨著區(qū)塊鏈技術在物聯(lián)網(wǎng)(Internet of Things)范式中的應用,出現(xiàn)了一個新的應用領域,稱為自主去中心化點對點遙測(ADEPT),
這是設備之間的另一種自通信方法,它消除了中介,與區(qū)塊鏈方法非常相似。
這里的問題是,什么是節(jié)點?“節(jié)點是通過數(shù)據(jù)塊存儲和共享數(shù)據(jù)的節(jié)點,這些數(shù)據(jù)塊是用于提高交易處理速度和可伸縮性的批量數(shù)據(jù)。傳統(tǒng)的數(shù)據(jù)傳播是通過網(wǎng)絡中的多個節(jié)點來進行的。
但是,如果數(shù)據(jù)量很大,那么塊的大小也很大,并且塊將數(shù)據(jù)共享給網(wǎng)絡中的每個節(jié)點,直到所有節(jié)點都有了新信息,這將導致數(shù)據(jù)傳播速度變慢。
這就是Velocity可以創(chuàng)造奇跡并加速數(shù)據(jù)傳播速率的地方。Velocity使用噴泉代碼進行高效和細粒度的交易處理,以防止中斷通道上的任何傳輸。它提供了急需的事交易吞吐量。
在進一步討論之前,讓我們首先了解基本的傳播過程。
區(qū)塊鏈協(xié)議和數(shù)據(jù)傳播:
我們都知道,區(qū)塊鏈是一個通過若干節(jié)點分批共享數(shù)據(jù)的網(wǎng)絡,這些節(jié)點中存儲著不受信任的參與者,這些參與者通過協(xié)商共識算法對相同的數(shù)據(jù)進行驗證。
當這些信息到達節(jié)點時,通常稱為引導,當這種引導節(jié)點用于數(shù)據(jù)交換時,這種交換稱為塊傳播。
有幾種不同的方法來阻止傳播:
緊湊的塊:
這是一種經(jīng)過BIP(區(qū)塊鏈改進協(xié)議)驗證的有效載荷降低方法。這種方法的工作原理是假設必要的信息集已經(jīng)發(fā)送給對等節(jié)點,并且只需要與節(jié)點交換集合的差異。
圖像源:低帶寬緊湊塊傳播
該方法通過高、低帶寬提供了一個有效的中繼過程。它利用額外的帶寬來停止往返時間(RTT)。這種方法減少了有效載荷的大小。但這一方法有兩大缺點:
· 需要“短id”來標識丟失的交易,這些交易需要更多的存儲空間。
· 每當一個節(jié)點處理多個交易時,由于缺少對未知交易的優(yōu)化,就會出現(xiàn)差異。
Thinblocks (Xthin):
由比特幣無限改進協(xié)議(BUIP)開發(fā)和提出,這種方法使用bloom過濾器來更有效地比較集合差異。它允許更有效地檢測未知交易,但它通過編碼成員信息增加了傳播過程的開銷。存在安全問題,因為惡意節(jié)點可以發(fā)送偽造的過濾器來創(chuàng)建沖突攻擊。
石墨烯:
針對Xthin塊方法的不足,提出了一種新的改進方法。它重新傳輸塊來接收故障。它利用單個對等點作為關鍵點,節(jié)點一次性發(fā)送所有數(shù)據(jù),而不是多個節(jié)點共享部分數(shù)據(jù)。這些塊僅用于塊傳播,而不用于節(jié)點引導。
分布式哈希表(DHT):
DHT t主要用于對等發(fā)現(xiàn)。將DHT作為“初始播種機”的系統(tǒng)——這是一個負責構建整個系統(tǒng)的單個節(jié)點,其中引導過程允許多個參與者共享公共DHT。
該方法減少了上述三種方法中出現(xiàn)的問題,利用節(jié)點所擁有的部分信息作為新的資源,緩解了未知交易檢測的瓶頸或差異。但也有兩個重要的缺點:
· 由于工作量證明挖掘協(xié)議,企業(yè)參與是一個問題,它已經(jīng)成為移動應用程序開發(fā)使用的障礙,涉及協(xié)議遵守和收入模型的問題。
· 該系統(tǒng)需要一個通用的中心節(jié)點來引導發(fā)現(xiàn),這本身就違反了區(qū)塊鏈的去中心化結構。
通過噴泉速度編碼
噴泉碼——通常被稱為無速率擦除碼,它提供了一種獨特的方式,將信息編碼成片段,當片段數(shù)量達到閾值時,可以將這些片段重新組裝為原始數(shù)據(jù)。
由于數(shù)據(jù)的重構是基于段而不是單獨的塊,因此與DHTs、相比,它能提供更健壯、更平滑的數(shù)據(jù)傳輸。雖然噴泉代碼的概念在區(qū)塊鏈范例中非常有用,但它還沒有在區(qū)塊鏈領域中使用。
對于區(qū)塊鏈應用程序,噴泉代碼是理想的,它可以將單個信息分割成大小相等的元素。然后這些元素被編碼成特定的“符號”。這些符號是特定于任務的,并傳輸?shù)揭粋€或多個源,由接收者聚合信息。
這個接收者為每個符號編碼一個算法。但是解碼算法的可能性幾乎為零。可以將Velocity與噴泉代碼一起使用。
Velocity使用這些噴泉碼的糾錯特性來允許來自多個源并具有同步廣播的塊傳播。
通過噴泉代碼逐步阻止傳播:
1. 在實現(xiàn)新節(jié)點時,發(fā)送方節(jié)點將Inv發(fā)送到附近的節(jié)點。塊被編碼為預先確定大小的符號。
2. 接收方接收Inv消息,并使用get_sym請求所有節(jié)點的任何未知塊。
3. 擁有所請求塊信息的對等節(jié)點通過sym響應重復提供響應,在符號中對每個塊進行編碼。
4. 接收器收集所有的符號,并使用塊標頭id提供的映射形成一類符號對。這個過程確保了塊的安全性,因為每個塊必須擁有一個頭來避免DOS攻擊。
5. 接收機有一個預先確定的符號體積閾值,當這些符號達到閾值時,接收機開始重構塊。
6. 在執(zhí)行重構過程時,如果相同的操作失敗,則接收方嘗試檢測不符合的符號對。
7. 如果重構過程成功,則將接收到的消息發(fā)送到發(fā)送節(jié)點,以停止符號的傳輸。
了解“Velocity”速度使用的收入點:
挖掘池通常使用歷史數(shù)據(jù)來確定收入模型塊的最佳大小。有時,交易費用并不能成為孤立塊的理由。為了緩解這些問題,并根據(jù)交易費用來決定塊的大小,我們可以使用兩個參數(shù):
符號大小:
塊大小和符號大小的比例對于確定符號大小非常重要,因為我們希望在對等通信中聚合符號。
孤立率:
這些是未被接受的孤立塊,因為在區(qū)塊鏈操作期間問題中的塊存在時間延遲。
結論:
使用Velocity可以優(yōu)化塊傳播以獲得更好的收益,從而利用區(qū)塊鏈增強對企業(yè)和企業(yè)的財務激勵。這種方法當然可以改變區(qū)塊鏈進程以優(yōu)化塊大小,幫助采礦者在更高的安全性下實現(xiàn)更流暢、更快的交易。