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