什么是分片(Sharding)
分片技術并不是什么創新的概念,早在區塊鏈技術出現之前,就已經在傳統數據庫中運作了,主要用于大型商業數據庫的優化。
其概念就是將數據庫中的數據,切割成很多數據分片,再將這些分片分配到不同的伺服器中儲存,如此一來,就不會因為短時間內出現大量數據訪問請求,而出現單一伺服器壓力過大的問題。
在傳統的區塊鏈網絡中,交易必須有網絡中的每個節點進行確認,以保證交易的安全,然而這也是導致交易速度難以提升的主因之一。
分片技術-pow
而把分片技術運用到區塊鏈網絡中的方式,是將區塊鏈網絡劃分成若干個子網絡(或稱分片,shard),每一個子網絡都會包含一部分節點,網絡中的資料儲存與交易,會被隨機分配到各個分片中做處理。
如此一來,每個節點只需要處理一小部份的工作,且不同分片上的交易可以并行處理,網絡的交易速度便能因此獲得提升。
分片技術-分片
另外,傳統的區塊鏈大部分都是單鏈結構,所有礦工都會相互競爭取下一個區塊的計帳權。
掌柜調查署 | Marco:未來必然有越來越多的項目會基于分片技術打造或改造:在今日舉行的《掌柜調查署 | Near分片技術如何引領web3.0時代》直播中,針對“分片技術在行業內的落地情況如何?”的問題,Buildlinks合伙人、Near中國線上黑客松冠軍Marco表示,不管是老項目的擴容改造,還是新項目的能力建設,分片方案都是目前最佳的選擇。所以,未來必然有越來越多的項目會基于分片技術打造或改造。當前大部分分片方案,都是基于信標鏈模式,比如,以太坊上的信標鏈,波卡上的中繼鏈,Cosmos的Cosmos Hub。而這個模式的由來,也是為了解決分片本身所面臨的幾大挑戰之一:安全性挑戰。因為每分片上驗證人數目隨著分片而減少,如何保證分片的安全性是分片系統面臨的最基礎挑戰。信標鏈作為分片的基準鏈,提供統一的隨機性,讓分片上的驗證人隨機產生,使得從概率上攻擊單個分片的難度與攻擊全鏈一致。除了安全性挑戰外,分片協議還普遍面臨:跨分片通信;數據一致性問題;數據有效性和可用性等挑戰。特別的,信標鏈模式的分片系統還面臨一個分片規模受限的問題。因為信標鏈要處理所有分片的驗證人分配,以及對分片快照這些工作,其本身是一個能力受限的瓶頸。除此以外,信標鏈系統設計復雜,僅分叉選擇邏輯一項,就需要處理信標鏈分叉和分片鏈分叉兩種情況及其相互之間的關聯關系。NEAR為什么這么受追捧,跟它的分片協議關系很大了。NEAR在分片技術上獨樹一幟,采用了無信標鏈的構建方式。[2020/8/14]
且大部分區塊鏈產生區塊的平均時間是固定的,例如比特幣平均每10分鐘產生一個區塊。
聲音 | NEAR軟件工程師:NEAR分片技術具有跨合約的可組合性:NEAR協議高級軟件工程師Evgeny Kuzyakov稱,NEAR協議的分片技術具有跨合約的可組合性,并發布長篇系列推文解釋了在技術上NEAR是如何達成這一特性。此前,以太坊創始人Vitalik Buterin曾經轉發一篇名為《跨分片(Cross-shard) DeFi 可組合性》的文章,并評價表示分片(Sharding)不會破壞 DeFi 的可組合性。在文中,V神表示,最近有人擔心以太坊的的可組合性屬性(基本上就是不同應用程序之間輕松交流的能力)是否會保留在 ETH 2.0 跨分片背景中。他認為答案是肯定的,在很大程度上將會如此。此外,ERC20標準需要修改。代幣將能夠存在于所有分片上,并且可以像 ETH一樣從一個分片無縫轉移至另一個分片上。[2020/1/10]
即便有越來越多的礦工加入挖礦行列,區塊鏈也會自動提升挖礦難度,以確保區塊產生速度固定在每10分鐘產生一個區塊。
簡單來說,區塊鏈網絡中算力的提升沒辦法增加交易速度,這也就是為什麼區塊鏈會是不可擴展。
如果要用簡單一點的例子來形容的話,就好比你把汽車改車V8大馬力引擎,但汽車電腦卻設置了速度限制,不能開超過60。
在分片技術中,區塊鏈算力的提升,意味著分片數量的提升。
也就是說網絡中所投入的算力越多,能夠同時并行處理的交易也會越多,整個網絡的交易速度也會線性提升。
動態 | MultiVAC:已在分片技術獲得了“突破”:據cointelegraph報道,根據11月5日的新聞稿,區塊鏈平臺MultiVAC聲稱已經在區塊鏈擴容技術分片(sharding)中獲得了“突破”。MultiVAC報告稱使用64個分片實現了每秒30784次交易(TPS)。雖然所使用的所有分片的交易總量在其峰值時超過30K,但單個分片達到533 TPS。MultiVAC還在新聞稿中聲稱,他們的“全維分片擴展解決方案”或可用于大規模商業應用,以及低性能計算機上的加密挖掘。[2018/11/10]
運用在區塊鏈上的分片技術,又能夠分為三種:
網絡分片(network sharding)、交易分片(transaction sharding)、狀態分片(state sharding)。
網絡分片(network sharding)
由于區塊鏈的區塊與區塊之間具有強連結性,也就是說,每一次的區塊新增,都需要礦工互相通信確認新區塊的有效性。
雖然這能確保鏈上交易紀錄的正確性,卻也導致區塊鏈結構上存在不可擴展性的缺點。
因此,分片的第一步,需要先將區塊鏈網絡分片,再盡量降低互相通信的前提下,由各個分片處理鏈上交易。
現場 | 以太坊核心技術開發者王筱維: 以太坊分片技術直線提升解決傳統交易擁堵:金色財經9月8日現場報道,以太坊行業峰會上,王筱維作了2018年第三季度Sharding開發進度的報告和以太坊主鏈架構的解析。
她表示,Sharding是提供安全、去中心化和可拓展性難題的一種方案。其構想是,一筆交易不必發動全網都去處理,只需讓網絡中的一部分節點(礦工)處理。于是,以太坊網絡被劃分成很多片,同一時間每一分片都可以處理不同的交易,這樣性能將直線提升,解決傳統的交易擁堵問題。[2018/9/8]
說的簡單一點就是將礦工隨機分組,再將工作分配給各組礦工獨立驗證。
網絡分片涉及到的問題是,分片后如何確保鏈上交易安全性能夠維持。
隨機分配
礦工分組之后,網絡分片第一個會面臨到的問題是,攻擊者的攻擊成本會大幅降低。
下方這張圖說明的是,本來假設有100個礦工,要掌握51個才能癱瘓網絡,自從有分片后,假設是100個分片,礦工一人顧一個分片下,就變成我只要有全網1%的攻擊力,就有機會癱瘓某一個甚至兩個分片,而這1%在原本的PoW下,根本起不了作用。
要防范攻擊者最好的做法,就是建立隨機性。
金色財經現場報道 以太坊創始人Vitalik Buterin對Casper與分片技術最新進展做出演講 :金色財經6月3日現場報道,在今天的以太坊技術及應用大會上,以太坊創始人Vitalik Buterin做了題為“Casper與分片技術最新進展”的主題演講。第一步為存款:簽名和公鑰地址不一定是一樣的,可以讓別人為你參加共識機制,能用熱錢包簽名,將資金留在冷錢包中。完成取款,第二步為等待加入,可能需要一天時間(還不完全確定)第三步為參加驗證機制:驗證節點有兩個作用:敲定主鏈的區塊,驗證分片上的區塊。[2018/6/3]
區塊鏈底層Layer1擴容方案
在區塊鏈領域建立隨機性的方式主要是利用可驗證隨機函數(VRF,Verifiable Random Function),利用此演算法,網絡可以隨機抽取節點分組形成分片。
這樣一種隨機抽樣的方式可以防止惡意節點控制單個分片。
分片的共識機制
解決了礦工分組的問題后,所要面臨的問題是分組后的礦工,驗證過程如何達成共識。
達成共識的算法可以選擇我們熟知的PoW、PoS、PBFT等共識機制。
簡單來說,網絡分片就是礦工的挖礦規則,為了在分片的同時不失去去中心化特性,開發者需要盡可能地在安全與效率取得良好的平衡。
例如,網絡中分片的數量與每個分片中節點的數量等問題,都需要謹慎考慮。
網絡分片針對的是礦工的游戲規則,而交易分片所針對的是哪些交易要被分配到哪些分片,然而,區塊鏈的帳本模型的不同會對交易分片的開發造成影響。
UTXO帳本模型
UTXO的帳本系統,例如比特幣,交易紀錄是由多個input和多個output構成,沒有帳戶的概念,也不會有馀額的紀錄,我們沒有辦法按照地址進行交易分片來有效地避免雙花問題。
UTXO較直觀的交易分片方式是按照交易hash值的最后幾位進行分片。
例如,“如果哈希值的最后一個值是0的話,那麼交易將被分配給分片1,否則它被分配給分片2(假設只有兩個分片)。”
然而,我們說過,UTXO的交易是由input和output構成,假設A發起了一筆交易,該交易的哈希值的最后一個值是0,被分配到第一個分片驗證。
此時,A又發起一筆input相同但output不同(發給不同人)的交易,該筆交易被分配到第二個分片,如果不採取任何措施,這兩筆交易將因為同時在兩個分片當中進行處理和驗證,而導致雙花攻擊。
在UTXO帳本系統的交易分片中,解決雙花攻擊的辦法是分片1和分片2相互通信,以確保同一筆錢沒有被重復花費。
但是在實際過程中,分片數量眾多且交易的hash值是隨機的,交易會被隨機分配到各個分片,這就表示每個分片之間都必須相互溝通。
很明顯,這方法行不通,因為如果這么做,就代表分片無法獨立驗證,分片就沒有意義了,因此UTXO先天上就較難以實現分片。
Account帳本模型
由于UTXO帳本模型較難實現交易分片,因此,大多數采用分片技術的區塊鏈,都是像以太坊一樣的Account帳戶帳本系統。
有了帳戶,每一筆交易將會包含發送者的地址與余額。
因此我們只需要將交易按照發送者的地址進行分片,即可保證同一個帳戶發出的多筆交易將被在同一個分片當中被處理,這樣該分片即可有效的檢測雙花交易。
不過一但涉及到跨分片交易,例如:分片1的帳戶要與分片10的帳戶進行交易,勢必需要跨分片的溝通來驗證交易的有效性。
但與UTXO相比,至少不需要跟所有的分片溝通,只需要分片1與分片10溝通即可。
狀態分片可以簡單理解為,在區塊鏈資料分配在在不同分片中儲存。
其所涉及的是鏈上資料的分片,也就是鏈上資料與交易紀錄分片儲存,借此減少節點的存儲負擔。
與其他兩個分片機制相比,狀態分片是最棘手的難題。
目前的狀態分片有以下三個問題需要解決。
1)跨分片交易通訊的效益平衡
過去區塊鏈的狀態,例如帳戶馀額狀態儲存在全網中,由全網節點共同更新維護。
但是在分片機制下,交易會根據地址分配在不同的分片處理,也就是說,狀態只會儲存在其地址所在的分片中,此時要面臨的一個問題是,交易不會只在一個分片中進行,時常會涉及到跨分片交易。
因此若交易雙方帳戶被分配在不同分片,分片與分片之間勢必要進行溝通才能夠確保交易的有效性,頻繁的跨分片互動,很容易導致整體網絡效率下降。
例如:
A的地址分配在分片1,交易的紀錄也會儲存在分片1。
B的地址分配在分片2,交易的紀錄就會儲存在分片2。
一但A要打幣給B,就會形成跨分片交易,分片2就會向分片1調用過去的交易紀錄,確認交易的有效性,A頻繁的打幣給B,分片2就必須不斷跟分片1互動,交易的處理效率便會因此降低。
2)分片動態刷新和節點狀態更新之間的平衡
區塊鏈的節點會隨著時間而增加,且節點若長時間未重新分配,會導致交易狀態過度集中化,降低遭受攻擊時的彈性。
因此網絡每隔一段時間需要重新調整網絡節點,也就是所謂的動態分片,而新進節點也會借此更新與同步其所在分片的狀態。
然而每一次的節點調整,都必須在該分片完成網絡同步后,才能開始處理交易,這會造成部分延遲問題,因此設計時必須掌握好節點調整的數量與時間,否則很可能會造成分片癱瘓。
3)全網數據備份與中心化風險之間的平衡
還有一個問題是,若某些特定的分片遭到了攻擊而導致其驗證失去有效性。由于分片并沒有複制系統的全部狀態,所以網絡也無法驗證那些依賴于該分片的交易。
解決此問題的方法是維護存檔或進行節點備份,這樣就能幫助系統進行故障修復以及恢復那些不可用的數據。
但是,這樣就代表系統的狀態只會儲存在少數節點,這會引發一些中心化的風險。
雖然分片技術與其他解決方案相比,較復雜也較難實現,但分片技術依然是目前備受期待的Layer1擴容方案。
知名的分片項目Zilliqa主網在2019年1月31日正式上線了,過去在測試網上都有相當不錯的表現,實際的效能還有待確認。
而我們所熟悉的以太坊,也將會慢慢開始進化,從以太坊1.0進化到以太坊2.0,除了會將共識機制從PoW改成PoS外,還會加入Beacon Chain讓分片技術得以在以太坊上實現。
分片技術的發展,或許將成為區塊鏈邁向落地應用的一項重要決定性因素。
Tags:區塊鏈以太坊HARDSHARD區塊鏈域名如何注冊以太坊最新價格行情價Hard ProtocolAlmace Shards
編者按:這篇文章立意最初是想做一篇年終總結,可編寫過程中,筆者感覺到,放在年末,對讀者無用,所以,經過多次刪改調整,放到了開年之后.
1900/1/1 0:00:00近日,某些NFT平臺出現了二次發行先前熱門NFT系列的情況,二次發行的NFT與之前的產品相比,相似卻不相同.
1900/1/1 0:00:00我最近看到有人爭辯說:“元宇宙中的房地產不會有什么前景”,然后我看到Twitch的現任研究和數據副總裁 Drew Harry是這樣回答這個論點的: 背景知識:《第二人生》是一個推出于2003 年.
1900/1/1 0:00:00元宇宙的概念大火,已從2021年跨越至2022年,許多科技巨頭相繼進軍元宇宙。稍早前,微軟以所謂的元宇宙為由,以687億美元收購游戲開發商動視暴雪,稱該交易將“為元宇宙提供基.
1900/1/1 0:00:00僅1個季度就吸引投資19億美元?(折合人民幣約120億元),占全年總融資額的一半,AR/VR初創公司們最近真的是“贏麻了”.
1900/1/1 0:00:00“老年人特別容易受到這些犯罪的侵害,薄弱的網絡安全和暗網上泛濫的個人信息倒賣,使任何人都成為潛在的受害者.
1900/1/1 0:00:00