
Odaily本文要介紹MultiVAC 也是一個利用分片技術擴容的公鏈項目。他們還提出了一個不同於雲計算領域的“彈性計算網絡”的概念,即基於該公鏈的DApp 開發者可以根據自身業務需要,選擇對擴展性、安全性、去中心化等不同維度的需求,底層網絡會以此將合約交易分配到不同的分片。開發者也需要根據自身業務部署合約。
編輯| 盧曉明
目前而言,分片技術( Sharding )是公鏈擴容方案的一個重要方向,被認為是更為長遠且理論上可行的擴容方案。擴容,通常指的是系統處理高頻業務量的能力。擴容方案主要解決的問題是通過提升區塊鏈系統的性能處理能力,以實現區塊鏈技術的大規模落地應用。
Odaily本文要介紹MultiVAC 也是一個利用分片技術擴容的公鏈項目。他們還提出了一個不同於雲計算領域的“彈性計算網絡”的概念,即基於該公鏈的DApp 開發者可以根據自身業務需要,選擇對擴展性、安全性、去中心化等不同維度的需求,底層網絡會以此將合約交易分配到不同的分片。開發者也需要根據自身業務部署合約。
分節點角色:減少存儲成本
圖片描述
分節點角色:減少存儲成本
分節點角色:減少存儲成本
該設計的要點在於,礦工節點可以直接用交易的摘要信息+交易+存儲節點提供的證明,來驗證交易。只存儲交易摘要信息,減少了礦工節點的數據量,也降低了礦工的准入門檻,普通PC 也可加入。該設計的要點在於,礦工節點可以直接用交易的摘要信息+交易+存儲節點提供的證明,來驗證交易。只存儲交易摘要信息,減少了礦工節點的數據量,也降低了礦工的准入門檻,普通PC 也可加入。
區塊鏈之所以需要分片,前提是交易量大到以單鏈系統難以承載,同時隨著數據量暴漲,普通筆記本電腦也不一定足以存儲全網賬本。
為減少存儲數據,保證去中心化,MultiVAC 引入了存儲節點角色,將節點分為存儲節點、礦工節點和輕節點三種,均不需要有全網賬本。
分片內礦工節點先選舉出塊節點、驗證並打包交易(此時出塊者需要向存儲節點調用Merkle Proof 以證明該筆輸入未使用)、分片內廣播,然後發送給存儲節點同步。
礦工節點的功能是存儲摘要信息(區塊頭),並且負責驗證交易,擁有數據的控制權。存儲節點存儲分片內所有賬本,有點類似於超級節點的角色,存儲量大,有一定的准入門檻,但區別是只存儲交易和協助進行交易驗證,對數據沒有任何控制權,保證了其去中心化的特性。 MultiVAC CTO 應翔表示,存儲節點可以理解為網絡節點基礎服務商,類似於網絡供應商(移動、聯通、電信)的角色。
該設計的要點在於,礦工節點可以直接用交易的摘要信息+交易+存儲節點提供的證明,來驗證交易。只存儲交易摘要信息,減少了礦工節點的數據量,也降低了礦工的准入門檻,普通PC 也可加入。
MultiVAC 認為,假設一個分片有100 個節點,要攻擊該分片,就只要知道這100 個節點是什麼,安全風險很大。因此,大部分的分片方案都需要定期變換分片內節點。 MultiVAC 亦然,每過幾分鐘,礦工所在的分片就會切換。
安全性和去中心化一脈相承。分片存在安全性的退化,安全性就要求徹底去中心化。 MultiVAC 設計的礦工節點和存儲節點在這兒也發揮作用。
假設一個分片有100 個節點,要攻擊該分片,就只要知道這100 個節點是什麼,安全風險很大。因此,大部分的分片方案都需要定期變換分片內節點。 MultiVAC 亦然,每過幾分鐘,礦工所在的分片就會切換。
MultiVAC 每個分片內對應的幾個存儲節點是固定的,但是礦工節點是非固定的,借助VRF 變換,而存儲節點又沒有數據的控制權。由於礦工節點只存儲摘要信息,總量很小,因而礦工遷移的數據量大小也不必擔心。否則,礦工在變換分片時還是需要同步大量賬本數據,或者需要擁有全網賬本。應翔認為,這也造成大部分分片方案的切換週期長(意味著不安全),並且每次只能切換一部分節點。
分片1 在某個時刻發起交易後,該交易在區塊高度h1 被確認;(此時分片2 的高度為h2 ),而這筆交易體現在分片2 上,是需要在分片2的某一高度(一般是下一個塊,比如h2+1)讀到了來自分片1 的h1 高度,才會把錢加上去分片2。這裡可有點像,A 銀行賬戶向B 行賬戶匯了一筆錢,A 行顯示已經扣款,但B 行不一定立刻收到,期間跨分片的網絡阻塞可能出現交易延遲情況,但不會影響分片內其他交易的正常進行。 MultiVAC 使用了最終一致性的辦法保證了分片2 一定能按順序獲取到所有來自分片1的轉賬。
固定傳輸量,保證分片獨立的跨片交易
分片技術不得不面對的問題就是跨片交易的實現,假若沒有跨片交易,各分片間不存在交互,就和單鏈沒有區別。
有觀點認為,區塊鏈中的交易都是原子性,必須保證其涉及到的操作達成最終一致性,即要么全部完成,要么一個都不開始。因此不得不協調各分片間的操作,以保證其正確地運行。據《王嘉平:號稱「公鏈分片」技術的五大謊言》一文:“當前而言,常用的處理方法是採用線程同步概念,鎖住交易所涉及的狀態,阻止其他非相關交易乾擾這些狀態,直到完成交易所有操作後釋放。但該處理方法的問題在於,鎖住狀態下,部分分片的其他執行被阻塞,分片其他工作無法正常進行,而該情況隨著分片數量的增多,跨分片交易數量增多,產生的阻塞愈發明顯。”
應翔表示,MultiVAC 的跨片交易採用了不同的思路。可以保證每個分片獨立。
MultiVAC 的每一個分片,都會定期同步其他分片的區塊頭,一個分片裡面的每一個區塊,都有一個空間在記錄其他分片的最新狀態,並據此處理跨片交易。
分片1 在某個時刻發起交易後,該交易在區塊高度h1 被確認;(此時分片2 的高度為h2 ),而這筆交易體現在分片2 上,是需要在分片2的某一高度(一般是下一個塊,比如h2+1)讀到了來自分片1 的h1 高度,才會把錢加上去分片2。這裡可有點像,A 銀行賬戶向B 行賬戶匯了一筆錢,A 行顯示已經扣款,但B 行不一定立刻收到,期間跨分片的網絡阻塞可能出現交易延遲情況,但不會影響分片內其他交易的正常進行。 MultiVAC 使用了最終一致性的辦法保證了分片2 一定能按順序獲取到所有來自分片1的轉賬。
我是Odaily記者遂心(微信號wsuixin12)、編輯盧曉明(lohiuming),加好友煩請備註姓名、單位、職務和事由。
我是Odaily記者遂心(微信號wsuixin12)、編輯盧曉明(lohiuming),加好友煩請備註姓名、單位、職務和事由。
落地關注共享經濟應用
Odaily疑惑的是,MultiVAC 的方案節省了存儲成本,但是增加了很多傳輸成本,會否影響方案落地?對此,應翔回應:“是的,增加70% 需要傳輸的數據量,但是比如Java 比C++ 慢10倍,但是很多人用Java,因為開發成本低很多。這裡也是一樣的道理。”
他進一步解釋個中邏輯:存儲節點提供證明,使得礦工節點可以在沒有賬本,只擁有很精簡的摘要信息的情況下,就驗證交易和出塊是否合法。這樣做的代價是,多出了一部分數據傳輸(證明信息)。 70% 是未壓縮的數據量,事實上我們壓縮後大概是相當於20-25%這樣,未來還可以壓縮到更小。
但是反過來,傳統區塊鏈每個交易都全網廣播一次,一旦業務量上升,單個節點將不堪重負。一方面,分片機制讓交易只需要在分片內廣播。另一方面,對於分片內的數據來說,MultiVAC 是未確認交易發到存儲節點,存儲節點可以一次廣播多個交易,礦工將其收進自身內存池中。所以交易廣播的次數大幅度變少了,但是廣播的數據量多了20-25%,總體上來說對網絡負載的拖累並不嚴重。
MultiVAC 表示目前已完成底層交易分片方案開發,單個分片TPS 約在500;合約分片仍在開發,應用落地預計在2019 年後半年,比較關注共享經濟方面的應用實踐。
從未來發展來看,分片技術依然面臨著很多難題。目前主流的分片技術分為網絡分片、交易分片和狀態分片等三個層級,其技術難度也隨之依次遞增。在具體落地方面仍有很多問題需要解決,比如共識、PoS、網絡延遲等。
共識機制方面,應翔認為,當前沒有一個完美的共識機制,MultiVAC 採用的是二元拜占庭+ 群簽名。
至於激勵機制,MultiVAC 表示礦工節點主要是挖礦收益,存儲節點的激勵機制考慮採用競爭(投標性質)機制,理想情況下會出現一個平衡,類似於以太坊的gas 費。
團隊目前約25 人,包括17 名技術和7 名運營。 MultiVAC 技術團隊有來自哈佛、斯坦福、清華和南洋理工的計算機博士,以及谷歌、Facebook 及美團點評的資深工程專家。 CEO 呂恆曾任美團技術總監和薪人薪事聯合創始人、CTO;CTO 應翔是天津大學副教授、南洋理工大學計算機博士、並行算法與通用計算領域專家。 CMO 王晨曾任美團產品經理、薪人薪事市場運營總監、居理新房(原侃家網)聯合創始人。
據介紹,團隊於2018 年年中融資1500 萬美金。官網顯示,投資機構來自韓國、美國、歐洲等地,包括IDG、洪泰資本、九合創投等投資機構和NGC、JRR Crypto、Hashed、Arrington XRP 等數字資產投資基金。
我是Odaily記者遂心(微信號wsuixin12)、編輯盧曉明(lohiuming),加好友煩請備註姓名、單位、職務和事由。