當(dāng)前解決比特幣可擴(kuò)展性問題的解決方案有哪些
我們都知道比特幣不是最可擴(kuò)展的加密貨幣,每秒大約只能進(jìn)行6.5次交易。好吧,這樣的說法其實(shí)也并不是很靠譜,因?yàn)楸忍貛庞虚W電網(wǎng)絡(luò),并接受SegWit,但簡而意知,比特幣仍然沒有那么大的可擴(kuò)展性。我喜歡社區(qū)里真正聰明的人來積極開發(fā)比特幣。今天我將討論一下我的一些想法。這些想法是我在提交大學(xué)論文時(shí)的理論基礎(chǔ)。
閃電網(wǎng)絡(luò)
目前可用的最酷的解決方案。閃電網(wǎng)絡(luò)可以被認(rèn)為是比特幣的另一層。閃電網(wǎng)絡(luò)允許雙方進(jìn)行近乎即時(shí)的交易,而不會(huì)阻塞比特幣的主要層。雙方之間的這些交易發(fā)生在閃電網(wǎng)絡(luò)建立的支付通道上。一旦建立了支付通道,雙方就可以發(fā)送數(shù)千筆不需要出現(xiàn)在主區(qū)塊鏈上的交易。這明顯減少了區(qū)塊鏈上的擁塞。然后,當(dāng)任何一方一旦終止合同,他們就會(huì)將合同廣播到主網(wǎng),然后礦工就會(huì)將其作為單個(gè)交易進(jìn)行驗(yàn)證。
我喜歡閃電網(wǎng)絡(luò),我甚至可能在某個(gè)時(shí)候建立我自己的節(jié)點(diǎn)。閃電網(wǎng)絡(luò)也有一些缺點(diǎn)。例如,它們只適用于很小的交易。
SegWit
另一種解決方案是所謂的隔離證人(SegWit)。這個(gè)解決方案的思想是將簽名分割成一個(gè)單獨(dú)的結(jié)構(gòu)。由于簽名約占塊大小的65%,這就為交易提供了更多的空間。
比特幣現(xiàn)金
比特幣現(xiàn)金選擇了一個(gè)更簡單的解決方案。只需增加塊大小。比特幣塊大小為1MB,比特幣現(xiàn)金塊大小為8MB。這使得比特幣的吞吐量比比特幣高出8倍。這個(gè)解決方案與原來的比特幣網(wǎng)絡(luò)不兼容。因此,比特幣現(xiàn)金和比特幣是兩種不同的貨幣,當(dāng)這種變化發(fā)生時(shí),它被稱為硬分叉。比特幣現(xiàn)金的批評者表示,這只是一個(gè)創(chuàng)可貼式的解決方案,會(huì)拖延規(guī)模問題,并導(dǎo)致社區(qū)分裂。
背景
簡單介紹一下我的背景,我是一名網(wǎng)絡(luò)安全專業(yè)的應(yīng)屆畢業(yè)生。在我的論文中,我寫了一篇關(guān)于比特幣可擴(kuò)展性問題的論文。我已經(jīng)丟失了原來的文件,只能找到一個(gè)粗略的副本,如下圖所示。
本文收集了我的一些想法,這些想法可以直接或間接地幫助解決比特幣可擴(kuò)展性問題。我想對它們做一個(gè)快速的概述。
分類賬的壓縮
關(guān)于區(qū)塊大小爭論的一個(gè)擔(dān)憂是,分類賬的大小將迅速增長。例如,BTC中的塊是1MB,而BHC中的塊是8MB??紤]到一個(gè)區(qū)塊大約每10分鐘就會(huì)被開采一次,隨著時(shí)間的推移,分類賬將會(huì)慢慢增長。我做了一張圖表,向你展示總賬的增長情況。
我想快速指出,這是假設(shè)所有的塊都被填滿到最大容量。比特幣的現(xiàn)金流量從未達(dá)到8MB的塊大小。
雖然數(shù)學(xué)計(jì)算起來很簡單,結(jié)果卻很令人驚訝。假設(shè)比特幣將存在100年甚至1000年左右,我們很快就能看到賬本的規(guī)模將變得大得離譜。100年后,比特幣賬戶將達(dá)到5000Gb左右。
節(jié)點(diǎn)有兩種類型,完整節(jié)點(diǎn)和輕節(jié)點(diǎn)。完整的節(jié)點(diǎn)存儲(chǔ)整個(gè)區(qū)塊鏈而輕量級的節(jié)點(diǎn)使用一種稱為Simрlifiеdрауmеnt vеrifiсаtiоn (SPV)來驗(yàn)證交易。輕量級節(jié)點(diǎn)錢包跳過了幾個(gè)安全步驟,這可能會(huì)使用戶容易受到攻擊。這一點(diǎn)很重要的一個(gè)例子是在2015年7月4日發(fā)生的意外分叉,其中更新的完整節(jié)點(diǎn)錢包不受影響,而輕量級節(jié)點(diǎn)錢包處于危險(xiǎn)之中。
在基于區(qū)塊鏈的項(xiàng)目中,這個(gè)問題顯然會(huì)隨著時(shí)間的推移而增長。解決這個(gè)問題的一種方法是壓縮這個(gè)數(shù)據(jù)。我將假設(shè),隨著分類帳規(guī)模的增長,完整節(jié)點(diǎn)和輕節(jié)點(diǎn)之間的比例將傾向于完整節(jié)點(diǎn)。這是因?yàn)榇鎯?chǔ)整個(gè)分類帳將變得越來越昂貴。這是一件壞事,因?yàn)橥暾?jié)點(diǎn)的數(shù)量越少,網(wǎng)絡(luò)的集中度就越高。由于比特幣是一種去中心化的貨幣,及時(shí)解決這個(gè)問題符合社區(qū)的利益。
我的想法是,以某種方式實(shí)現(xiàn)壓縮到比特幣分類賬,減少分類賬的大小。其中一個(gè)問題是熵。熵在外行術(shù)語中是隨機(jī)性的度量。
熵是壓縮算法的一個(gè)重要方面。這是因?yàn)楦哽財(cái)?shù)據(jù)更難壓縮。簽名和哈希值的熵非常大,這意味著它們壓縮得不好。另一個(gè)問題是使用的壓縮算法必須是無損的。無損壓縮就是在壓縮過程中不丟失任何數(shù)據(jù)。這是至關(guān)重要的,因?yàn)楸粔嚎s的信息是至關(guān)重要的。這意味著大約35%的數(shù)據(jù)可以被壓縮。我沒有具體數(shù)據(jù)來支持這一點(diǎn),但我將作出一個(gè)假設(shè),超過數(shù)據(jù)可以有一個(gè)2:1的壓縮比。根據(jù)我上面描述的數(shù)字,隨著時(shí)間的推移,我們可以看到分類賬的規(guī)模減少了17.5%。對于BCH,它可以節(jié)省幾個(gè)TB。
我們該如何實(shí)現(xiàn)呢?
目前,比特幣區(qū)塊的形成看起來像一條直線的區(qū)塊。
BTC區(qū)塊鏈結(jié)構(gòu)
模式簡單。當(dāng)找到一個(gè)新塊時(shí),將它添加到區(qū)塊鏈中,然后重復(fù)。如果我們添加檢查點(diǎn)塊呢?我將檢查點(diǎn)塊定義為n個(gè)塊的合并。當(dāng)找到n個(gè)塊時(shí),它們被用來創(chuàng)建檢查點(diǎn)塊。然后塊1到塊n可以刪除。
檢查點(diǎn)塊
有什么優(yōu)點(diǎn)?
· 首先,可以壓縮檢查點(diǎn)塊。
· 這一額外步驟還允許刪除冗余數(shù)據(jù)塊。(您可以從數(shù)據(jù)庫中刪除或刪除歷史信息,并減小數(shù)據(jù)庫的大?。?/p>
· 不需要硬分叉。
· 降低運(yùn)行完整節(jié)點(diǎn)的成本。
· 更有效地實(shí)現(xiàn)分片。
分片是什么?
數(shù)據(jù)庫分片是數(shù)據(jù)庫或搜索引擎中的數(shù)據(jù)水平分區(qū)。每個(gè)單獨(dú)的分區(qū)都被稱為分片或數(shù)據(jù)庫分片。每個(gè)分片都保存在一個(gè)單獨(dú)的數(shù)據(jù)庫serverinstance上,以分散負(fù)載。數(shù)據(jù)庫中的一些數(shù)據(jù)仍然以所有分片的形式存在[notes 1],但是一些數(shù)據(jù)只出現(xiàn)在單個(gè)分片中。每個(gè)分片(或服務(wù)器)作為這個(gè)數(shù)據(jù)集子集的單一源,基本上不同的節(jié)點(diǎn)可以存儲(chǔ)少量檢查點(diǎn)塊,而不是區(qū)塊鏈的Gb甚至Tb。然后,當(dāng)一個(gè)礦工想要某個(gè)檢查點(diǎn)塊時(shí),他們可以廣播他們想要的塊,而另一個(gè)擁有正確塊的節(jié)點(diǎn)將用有效數(shù)據(jù)響應(yīng)。
這種技術(shù)在集中式系統(tǒng)上非常有效,可以通過節(jié)點(diǎn)或服務(wù)器實(shí)現(xiàn)信任。但正如你所知,比特幣是一個(gè)不可信的系統(tǒng)。我們?nèi)绾沃拦?jié)點(diǎn)4不是惡意的,并給我們一個(gè)未修改的檢查點(diǎn)塊呢?目前,我們還不知道。這個(gè)的解是什么? Merkel的根源在于比特幣如何確保交易沒有被篡改。如果檢查點(diǎn)塊4的Merkel根位于檢查點(diǎn)塊5之前的Merkel根標(biāo)題中,那么我們就可以假設(shè)這是一個(gè)有效的塊。攻擊者要生成假塊,必須挖掘2n個(gè)塊。
分割塊以增加吞吐量
現(xiàn)在想象一下,如果我們可以讓不同的團(tuán)隊(duì)或節(jié)點(diǎn)池處理不同的問題。例如,檢查點(diǎn)塊中的每個(gè)塊可以有一個(gè)團(tuán)隊(duì)。團(tuán)隊(duì)可以解決不同的問題,允許吞吐量增加n。
此解決方案可以與其他擴(kuò)展解決方案共存,如閃電網(wǎng)絡(luò)、SegWit或增加塊大小。