鏈上擴容是針對區塊鏈協議層的擴容,是對底層區塊鏈進行改造,包括其數據層、網絡層、共識層和激勵層,使得區塊鏈自身變得更快、容量變得更大,達到擴容的目的。本文將從共識層、網絡層以及數據層出發介紹現有鏈上擴容技術。
數據層
有向無環圖
DAG是一種數據結構。原本是計算機領域一種常用數據結構,因為獨特的拓撲結構所帶來的優異特性,經常被用于處理動態規劃、導航中尋求最短路徑、數據壓縮等多種算法場景。
作為最新的分布式賬本主力競爭技術,DAG可以用來解決傳統區塊鏈的效率問題。最早是在2013年的bitcointalk論壇中作為“Ghost協議”被提出,這一提議是為了解決當時比特幣的擴容問題,Vitalik在以太坊紫皮書描述的PoS共識協議Casper,也是基于GHOSTPoW協議的PoS變種。后來,在NXT社區,又有人提出了DAGofblock,將DAG的拓撲結構用來存儲區塊并解決性能問題。
傳統區塊鏈只有一條單鏈,打包出塊無法并發執行,而DAG的網狀拓撲可以并發寫入。通過將把同步記賬提升為異步記賬,DAG被認為可以解決傳統區塊鏈的高并發問題,是區塊鏈從容量到速度的一次革新。
什么是有向無環圖?
簡單來講,有向無環圖就是多條支鏈跟隨主鏈,這些鏈的大方向一致且不存在環路。
圖:有向無環圖數據結構
DAGvsBlockchain
資料來源:https://medium.com/@kotsbtechcdac/dag-will-overcome-blockchain-problems-dag-vs-blockchain-9ca302651122?
區塊鏈的組成單元是block,DAG的組成單元是tx。
區塊鏈是單線程的,DAG是多線程的。
區塊鏈所有交易記錄記在一個個區塊中,DAG每筆交易單獨記錄在每筆交易中。
區塊鏈上最新的區塊只需要加入到最長的一條鏈上,DAG中的新增交易需要加入到之前的所有“鏈”上。
區塊鏈需要礦工,DAG不需要礦工。
優點:
提高交易速度:DAG可以多線程交易,而區塊鏈只能單線程交易,而且DAG中交易者越多速度越快。
節省成本:DAG把交易確認的環境直接下放給交易本身,因此不需要手續費,這一點將有助于提升交易量。
動態 | 支付寶使用區塊鏈技術解決商家原創圖片被盜糾紛:金色財經報道,作為阿里爸爸原創保護計劃的行動之一,支付寶的區塊鏈技術首次應用在淘寶商家服務平臺上,上線了商家可信數字存取證工具——鵲鑿。該工具為商家提供電子數據存證、侵權取證和電子數據證據核驗的一站式線上自助服務。使用這項服務的淘寶店主,如果發現自己的原創圖片被盜,在產生糾紛之后可以一鍵要求對方刪圖。[2019/11/8]
節約資源:DAG中沒有礦工角色,所以不需要消耗社會資源。
缺點:
交易時間難確定:DAG是一種異步通訊模式,異步通訊所帶來最大的問題在于一致性不可控,因此確認時間會更長。
雙花問題難解決:DAG是多鏈結構,因此很容易出現雙花問題,并且這個問題目前還沒有很好地解決方案。
交易冗余:很容易出現多條鏈處理同一交易的情況、從而造成系統壓力指數增長。
DAG?
項目:
圖:DAG相關項目,圖片來源:https://www.daglabs.io
IOTA、?Byteball?以及?NANO?作為代表項目,分別提出了各自的創新點,例如IOTA提出的Tangle是基于DAG的分布式賬本結構。這幾個項目其實挺有意思,這里先挖個坑,后面有時間來填。
總結
總的來說,DAG憑借其速度快、吞吐量高的優勢,有望在區塊鏈數據層這一塊被使用以尋求突破。但作為一個較新的數據結構,其安全性和一致性等問題還亟待解決,大規模的測試也還需要一定時間。我們關注到,越來越多基于DAG的創新項目和DApp正源源不斷的涌現,DAG值得我們保持持續關注。
隔離見證or擴塊
我們知道,BTC的出塊時間約為10分鐘=600秒,每個區塊的大小為1MB,每筆交易的交易狀態和見證數據的大小約為250B,這樣算下來,BTC的每秒交易上限約為1,000,000/250/600≈7tps(txpersecond)。7tps意味著什么呢,與現有的銀聯、支付寶等交易系統動輒上百萬的tps相比,實在相形見絀。我們再來看看這個簡單的公式,BTC的吞吐量由三個因素決定:分子——區塊大小,分母——一筆交易的大小和出塊間隔時間。
吞吐量≈區塊容量大小/(交易數據大小*出塊間隔時間)
出塊間隔時間
中本聰在比特幣網絡中,使用difficulty參數,每間隔2016個區塊會動態調節一次新區塊的產生速率,使得平均出塊時間約等于10min不變。這么做是有原因的,出塊間隔時間是由驗證時間、傳播時間和共識時間構成的,一味降低出塊間隔,會使得分叉率上升,BTC選擇的10min作為出塊間隔時間其實是對于網絡效率和網絡安全性的一個折衷。看來縮短出塊時間帶來的提升有限且對于BTC而言暫時是行不通的。
聲音 | Swift高管:Swift不打算直接利用DLT技術解決銀行間轉賬問題:據dailyhodl報道,Swift亞太區總經理Lisa O'Connor在接受CNBC的采訪時表示,其部分成員正在使用分類賬技術(DLT)支持其基礎設施,但Swift并不打算直接利用該技術來解決銀行間轉賬問題。當被問及Swift是否擔心Ripple和XRP會挑戰其在金融領域的主導地位時,O'Connor表示,跨境支付的許多問題已經被克服,過去需要花費數天的時間來進行跨境支付的情況已不復存在。[2019/3/12]
單筆交易大小
比特幣的交易信息主要包括兩個部分,交易狀態和見證數據。這兩個部分的數據大小約是相同的,實際情況是,并不是所有的參與者都需要關心這兩部分數據。也就是說,如果將見證數據從從單筆交易數據中抽離出來,即使在區塊大小不變的情況下,也能提升打包區塊中的交易數量,從而提升比特幣的吞吐量,這一技術,稱為隔離見證。
隔離見證,即?Segregated?Witness,由PieterWuille在2015年12月首次提出。見證在比特幣里指的是對交易合法性的驗證。隔離指的就是把見證數據從交易信息里抽離出來,單獨存放。
大致上隔離見證的底層數據變化如下:
1)SegWit為區塊中定義了一個新的數據結構,增加了一個屬性“witness”;
2)將原區塊數據中的見證數據部分,挪到witness數據結構中,
并且該結構數據是與交易數據獨立分開提交到區塊中的。
3)在witness結構中的數據只與驗證交易有效性有關,與實際的交易詳情數據無關。
4)在“隔離見證”版本中,增加了一種新的權重計量單位:WU。每個區塊的大小最大允許4MWU。
處在原始1MB區域中的數據,每1字節大小等于4WU;處在witness數據結構中的數據,每1字節大小等于1WU。
5)雖然隔離見證并沒有直接提升原始區塊大小,但將見證數據抽離,簽名等信息后移,實際上的區塊容量大小已經到了1.8MB
在此之外,隔離見證更主要的目標是
解決比特幣的交易延展性問題。
為閃電網絡鋪路。(Ref:?BTCLightningNetwork)
雖然隔離見證能夠將比特幣進行一次軟擴容,但僅僅使用隔離見證,在單筆交易大小上做文章帶來的性能提升是有限的,與理想的性能之間仍然存在著好幾個數量級的差距。
區塊容量大小
也就是擴塊。區塊大小調整的話題爭論喋喋不休,甚至牽扯到信仰與底層哲學,導致BTC、BCH、BSV三足鼎立的局面,詳盡的來龍去脈請自行谷歌#區塊鏈擴容之爭#,在這里不再贅述。
簡單來將,所謂擴塊,就是將比特幣的區塊容量大小的限制由1MB擴大到2MB、4MB甚至TB級別,以求達到擴容的目的。我們試著來總結一下擴塊之爭這核心矛盾:
聲音 | 政協委員張占斌:可借助區塊鏈等技術解決小微企業融資難問題:據新京報消息,近日,在兩會經濟策沙龍之“問道民營經濟”上,全國政協委員、中共中央黨校(國家行政學院)馬克思主義學院院長張占斌表示,要想辦法解決民營企業、小微企業融資難、融資貴的問題。有些地方服務民營經濟、小微企業有一些創新的辦法,例如借助于互聯網、大數據、區塊鏈等技術介入金融部門的創新。[2019/3/12]
主要矛盾來自于比特幣開發者團隊內部,對于比特幣的底層哲學以及信仰的分歧,有點虛,但的確是根本原因。
擴大區塊容量大小,需要修改比特幣代碼,帶來的直接影響是硬分叉,也就是后來的BCH、BSV等分叉鏈的出現,當然硬分叉本身具有兩面性,仁者見仁智者見智。
區塊大小的增加,對于需要下載整個賬本的全節點來說,其硬件及網絡的投入成本及維護成本會越來越高,這會使得資源集中的大型礦場愈發獲得優勢,越來越多的節點會被淘汰,而節點的減少將不利于整個網絡的安全性和去中心化。
區塊大小增加,對礦池而言需要更大的網絡帶寬和網絡延時,對于擁有4/5大礦池但網絡帶寬不足的中國礦業來說,是難以接受的。往遠了說,不公平競爭明顯是違背區塊鏈的愿景的。
我們再來看看比特幣以及其兩個分叉幣:
BTC電子黃金,采用隔離見證+閃電網絡的軟擴容方向,區塊大小仍保持1MB。
BCH電子現金,在2017年8月1日從BTC中分叉出BCH,將區塊大小從1MB提升至8MB,并降低交易費用,號稱自己才是中本聰“點對點電子現金系統”的真正體現。
BSV全球賬本,2018年11月15日,BCH內部再次因為BCH的未來發展方向出現分歧,11月15日進行了硬分叉誕生了Nchain系BCHSV,區塊大小為128MB。2019年7月24日,BitcoinSV進行了協議升級,區塊上限調整為2GB。
我們再來看看這三條鏈的現狀,如下圖所示,BTC還是當之無愧的龍頭老大,BCH和BSV的市值也分別成功擠進加密貨幣的前5位與前11位。
在線全節點數?BTC遙遙領先BCH和BSV,這從一方面代表了礦業及全網算力的支持度,也是硬分叉之后礦主用腳投票的結果。
從網絡安全層面來看,BCH的算力維持在2.13EHash/s,約為BTC的1/40。BSV維持在903PHash/s,約為BTC的1/80。
鏈上交易次數?從圖上看到的結果似乎差距沒有那么大,但其實,另一項數據報告顯示:BCH、BSV目前大部分是?OP_RETURN?操作碼開頭的數據記錄輸出,而非真正的交易。
如果某個交易輸出,其鎖定腳本以OP_RETURN操作碼開頭,這筆交易也被稱為OP_RETURN交易,或NullData交易,會隨交易一同被寫到賬本中,但不會被當成UTXO,不會帶來UTXO集的膨脹,所以其金額通常為0。BCH和BSV對其數據大小的限制是220B。
動態 | 報告:互金巨頭將通過區塊鏈等技術解決傳統金融痛點:10月30日消息,今日蘇寧金融研究院對外發布《2018金融消費升級報告》,報告指出,中國金融科技迎來窗口紅利期,以螞蟻金服、騰訊金融、蘇寧金融為代表的互金巨頭,通過大數據、云計算、人工智能、區塊鏈等新技術,改變傳統的金融信息采集來源、風險定價模型、投資決策過程、信用中介角色,解決傳統金融痛點。[2018/10/30]
BCH及BSV的交易手續費遠遠低于BTC,這得益于大區塊所帶來的以低手續費就能吸引礦工來打包區塊的優勢,以及BCH及BSV的設計策略。
圖:BTC、BCH和BSV的現狀
BTC、BCH、BSV關于區塊鏈擴容之爭,簡單來講,主要就是區塊大小之爭,那我們來看看這三者的實際區塊大小與其區塊大小上限的現狀:
我們簡單地使用公式區塊使用率=區塊實際大小/區塊大小上限來得出。
BTC的區塊使用率維持在80%左右,幾乎出于滿負荷的狀態,可以想象一旦交易需求增長,網絡將會陷入擁堵狀態。值得注意的是,圖中所統計的值是隔離見證以及閃電網絡上線后的情況。
BCH及BSV的區塊使用率通常不足1%,尤其是在BSV擴塊到2GB之后更是如此。值得注意的是,BCH和BSV與BTC的交易構成完全不同,如上文所提及的那樣,BCH和BSV大部分交易是由OP_RETURN交易構成的,而OP_RETURN交易的數據大小上限僅為220B,這是與BTC做對比的一個非單一變量。
圖:2019年BTC、BCH、BSV實際區塊利用率現狀
其實在理論上,從設計的角度來講比特幣的區塊大小是有上限的,在《OnScalingDecentralizedBlockchains》這篇論文中提到:
Theblocksizeshouldnotexceed4MB,giventoday’s10min.Averageblockinterval(orareductioninblock-intervaltime).A4MBblocksizecorrespondstoamaximumthroughputofatmost27transactions/sec.
根據論文中一系列的論證過程,得出的結論是:在目前區塊間隔10分鐘的情況下,區塊大小不應該超過4MB,相應的吞吐量至多為27筆交易/秒。
總結
以上,我們分析了BTC與BCH&BSV不同的擴容策略:BTC采取的是不改變區塊大小1MB的情況下,通過隔離見證+閃電網絡的“軟”擴容方案,而BCH、BSV采取的是擴塊以及增加操作碼的“硬”擴容策略。同時我們還分析了三者目前的現狀,以及實際的區塊利用率。
動態 | 日本大學生推出PoliPoli程序 利用區塊鏈技術解決社會問題:據NEM消息,日本慶應大學19歲學生伊藤崇一(Kazuma Ito)推出PoliPoli程序,旨在利用區塊鏈技術加強家和公民溝通,解決社會問題。該程序允許用戶向他們認可的政客贈送代幣。政客們則利用代幣購買應用程序收集的數據,以此利用這些數據來制定他們的政策計劃和競選策略。[2018/8/20]
個人認為,BTC目前的鏈上擴容方案能夠增強吞吐量及降低交易費用,但其瓶頸也顯而易見,很難適應未來的大批量交易的需求,而BCH尤其是BSV的大區塊策略,雖然能夠有效提升交易吞吐量和降低交易費用,但由此引發的趨中心化的問題以及帶來的安全性問題仍然是個巨大挑戰,尤其是BSV將區塊大小由128MB擴大到2GB這一行為在以上兩個問題沒有得到解決之前顯得有些盲目,完全沒有必要。似乎話題又回到了區塊鏈的“不可能三角”問題,如何在擴展性、安全性、及去中心化這三個問題中尋找微妙的平衡,既是哲學,也是信仰。
網絡層
分片
分片概念源于數據庫領域。分片指數據庫中數據的水平分區,每個分片都保存在一個單獨的數據庫服務器實例上,以分散負載。區塊鏈分片的基本思路是將區塊鏈網絡中的節點分成若干個相對獨立的分片,單個分片處理規模較小的事務甚至只存儲部分網絡狀態,多個分片并行處理事務,理論上整個網絡的吞吐量將會提升。
在Near的官網上看到一篇博客,介紹了主流分片協議的思想,非常值得參考。下面我們從這篇文章的觀點出發,介紹分片技術分類以及分片所面臨的挑戰,來構建我們對這個區塊鏈未來方向的協議的認知。
分片面臨的挑戰:
網絡安全性
網絡安全性最直接的挑戰就是作惡成本降低,網絡分片中通過將網絡中的節點按照既定規則分配到不同的分片以達到擴容的目的,這會帶來一個問題:單個分片中的算力大小和驗證人節點數將遠小于原來的整個網絡,這將使得攻擊單個分片較攻擊整個網絡的成本大大降低
針對PoW共識網絡發起51%攻擊
針對非PoW共識網絡發起女巫攻擊
分片前后作惡成本對比如下:
圖:攻擊非分片網絡與攻擊分片網絡分區對比,圖片來源:nearprotocol.com
針對網絡安全性的問題,現在的分片設計主要思路集中在采用何種共識算法、如何劃分分片大小、隨機節點分配等來降低單片分片被攻擊的概率以及提升作惡成本。
數據有效性
數據有效性主要是關于如何識別不合法區塊。
典型的一個場景如下圖所示,作惡節點共謀在1號分片上產生一個不合法區塊B,在區塊B中打包了一筆不合法交易使得Alice獲得了1個token,作惡者之后在B區塊之上出了一個合法區塊C,企圖混淆不合法區塊B,并在C中發起一筆跨分片交易,將這1個token轉移給了Bob,至此,不合法交易的token停留在了正確的分片2以及合法的區塊Y中。
圖:跨分片交易數據有效性問題示例,來源:nearprotocol.com
解決以上問題的一個有可能的方案是采用無向圖的結構來排列分片,其中每個分片都與其他幾個分片連接,并且僅允許相鄰的分片之間執行跨分片交易,非相鄰分片之間進行跨分片交易需要通過多個分片進行路由,每個分片中的驗證人都需要同時驗證本分片以及相鄰分片的所有交易。采用這一實現的是?Kadena的Chainweb。
圖:采用無向圖的分片結構
有意思的是,雖然強制驗證人同時驗證相鄰分片可以解決單個分片被攻陷的潛在風險,但是如果多個分片被攻陷的共謀作惡仍然會出現上述問題。例如下圖:分片2與1、3相鄰,但分片1與3不相鄰,其中分片1、2是由作惡節點控制的分片,3是可信任分片。如果分片1、2共謀作惡,在分片1上產生的不合法交易通過跨分片交易在分片2中被確認并打包,請注意,此時在分片2上被打包的區塊Y是完全合法的可以通過分片3驗證人驗證的,但分片3無法驗證分片1上發生的不合法交易。
圖:利用無向圖解決數據有效性的失敗場景,來源:nearprotocol.com
目前看到的正確解決數據有效性的主要方向有兩個:釣魚人機制和計算加密證明
釣魚人機制
釣魚人方案的思路是在有跨分片傳遞區塊頭信息時設置質疑期,期間任何誠實節點都可以提供區塊無效證明,只要在分片中至少有一個誠實驗證人節點,這種方法就能保證系統的安全性,如下圖所示:
圖:Fisherman機制示意,資料來源:nearprotocol.com
在目前提出的協議中,這是主要的方法,但是這會存在兩個主要的缺點:
質疑期需要足夠長,這樣才能保證誠實節點能夠下載潛在的無效區塊并進行驗證和發起質疑,這會降低網絡效率。
第二個問題是質疑的存在使得攻擊者可以將其作為新的攻擊媒介,攻擊者通過無效質疑向網絡發起大量垃圾信息從而拖延誠實節點進行有效質疑,使不合法的交易順利通過質疑期。
無獨有偶,釣魚人的機制也同樣在其他擴容方案中被采用,雖然釣魚人的方案已經比直接確認無效區塊的方案要更優化,但以上兩個問題的解決目前還沒有看到較好的答案,后續發展值得關注。
簡潔的非交互式知識論證
第二種解決方案是通過使用某種加密結構證明某個計算是正確執行的,關于SNARK以及zk-SNARKs是什么,請自行Google。這里推薦Zcash的一篇介紹文章:Whatarezk-SNARKs?
zk-SNARKs的主要挑戰來自:
性能,創建證明本身需要一定的時間,例如?Coda?協議中每筆交易需要大約30s來創建證明。
該技術本身還處在初期研究階段,也未經過長時間的測試。
“Toxicwaste”/“有廢物”。SNARK依賴于一個信任預設,在這個預設中一部分人執行一些計算并會守信地丟棄掉計算中間產物。反過來,一旦所有參與者共謀并保留計算中間產物,那么造假和欺騙就會發生。
系統設計引入了額外的復雜性。
具有圖靈完備的智能合約語言的協議將無法使用SNARK來證明鏈的有效性。
數據可用性
數據可用性簡單來講就是指一個區塊上記錄的數據是否可用。
通常,操作特定區塊鏈的節點分全節點和輕節點。那么,在分片的場景下,每一個分片中的驗證者實際上是該分片的全節點,而系統中的其他參與者則充當輕節點。
圖:全節點共謀破壞數據可用性場景示意,資料來源:nearprotocol.com
現在,如果大部分的全節點共謀,它們可以生成一個有效或無效的區塊,并將哈希提供給輕節點,套取利益,之后全節點不再分發這個區塊內容,即使下個區塊的驗證人是可信的,也無法阻止節點惡意刪除歷史數據導致區塊不可用的問題。而這類問題,在全節點數量更小的分片場景下,作惡成本更加低廉。
解決這一問題的輔助方法主要有監護證明和糾刪碼
圖:監護證明示意圖,資料來源:nearprotocol.com
監護證明的主要思路是讓公證人比驗證人更頻繁地在分片之間輪換。公正人唯一需要做的事情是證明區塊能夠被下載即數據是可用的。因為公證人不需要下載完整的區塊數據,所以可以更快、更頻繁地在不同分片之間進行輪換和驗證。
圖:糾刪碼示意圖,資料來源:nearprotocol.com
另一種思路是使用糾刪碼的結構,使得即使在區塊的部分不可用的情況下仍然可以完整恢復整個區塊。Polkadot和EthereumSerenity也在圍繞糾刪碼進行設計,以保障其輕節點能夠確認區塊數據是可用的。
總結
本文中我們簡單介紹了區塊鏈擴容中鏈上擴容技術的一部分,包括數據層和網絡層的主流思路和技術,在后文中,我們會主要從共識層展開來繼續分析鏈上擴容,并對上卷的內容作一定補充,包括零知識證明等。
參考文獻
TheauthoritativeguidetoBlockchainSharding,part1-NEARProtocol
UnsolvedProblemsinBlockchainSharding-NEARProtocol
深度介紹區塊鏈鏈上擴容解決方案之分片Sharding
白話DAG:第3代區塊鏈技術DAG全面盤點
下一代區塊鏈DAG技術研究室
報告|比特幣擴容之爭始末
“比特幣是過去十年間表現最佳的資產。”美林證券和彭博社都得出了這樣的結論。如果從漲幅來看,確實如此.
1900/1/1 0:00:00韓國稅務局將從該國最大的加密貨幣交易所Bithumb扣繳803億韓元的稅款。 據Coindesk報道,BithumbKorea交易所的經營方BithumbHoldings的最大股東Vidente.
1900/1/1 0:00:00對于很多人來說,區塊鏈具有去中心化、去信任的好處,因為區塊鏈可以分布式記賬、數據不可刪除、不可篡改。從技術的角度來看,這是正確的.
1900/1/1 0:00:00聯合國秘書長安東尼奧·古特雷斯說,這個政府間組織需要擁抱區塊鏈。在葡萄牙前總理辦公室向福布斯提供的一份聲明中,古特雷斯稱,這項通過比特幣流行起來的技術是該組織的一個重要組成部分,該組織每年的預算.
1900/1/1 0:00:00在模擬閃電網絡流量近一年之后,一項新的研究報告給出了一系列信息。這篇題為《比特幣閃電網絡的加密經濟流量分析》的論文是由三位匈牙利研究人員寫的:他們分別是計算機科學與控制研究所的FerencBér.
1900/1/1 0:00:00編者注:原標題為《真本聰手記|?以有效方式捕獲協議價值,更少炒作更多邏輯》 今天內容包括: 1、代幣經濟學:以有效方式捕獲協議價值; 2、引入零抵押貸款; 3、零知識證明如何改變區塊鏈;4、代幣.
1900/1/1 0:00:00