資源描述:
《技術(shù)詳解DAG區(qū)塊鏈項目SPECTRE.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、技術(shù)詳解DAG區(qū)塊鏈項目SPECTRE此前發(fā)布了DAG區(qū)塊鏈項目SPECTRE的區(qū)塊鏈初創(chuàng)企業(yè)DAGLabs在2月份正式公布了其最新擴(kuò)容協(xié)議PHANTOM的技術(shù)細(xì)節(jié),透露其將兼容智能合約,并實(shí)現(xiàn)了在鏈上區(qū)塊的線性排列。據(jù)雷鋒網(wǎng)AI金融評論了解,在由伯克利區(qū)塊鏈主辦的特幣技術(shù)交流大會上,DAGLabs的首席科學(xué)家、GHOST協(xié)議的共同作者YonatanSompolinsky為在場聽眾詳細(xì)介紹了DAG應(yīng)用區(qū)塊鏈網(wǎng)絡(luò)遇到的具體技術(shù)挑戰(zhàn),并講解了SPRECTRE項目針對區(qū)塊鏈交易的擴(kuò)展性、安全性的解決方案和基礎(chǔ)參數(shù)調(diào)整。首先需要明白,區(qū)塊鏈?zhǔn)切律氖挛?。如果你有一個系統(tǒng),要改善擴(kuò)展區(qū)塊鏈的性
2、能,在SPECTRE項目上應(yīng)用DAG(DirectedAcyclicGraph,有向無環(huán)圖)能很好地實(shí)現(xiàn)這一點(diǎn)。如圖片所示,首先引出兩個問題。首先,目前區(qū)塊鏈中的交易是怎么樣的?大家可以想象在銀行排隊辦理業(yè)務(wù)的情景,用戶們一個接著一個按序列排好等待,只有當(dāng)上一個用戶完成交易后下一個用戶才能開始行動,通過這樣的方式來保證整個區(qū)塊鏈的一致性和貫徹性。當(dāng)有過多需要辦理業(yè)務(wù)的用戶擠進(jìn)銀行后,交易堵塞的情況就會變得越來越嚴(yán)重。出于加快交易處理速率的考慮,節(jié)省用戶在等待交易時耗費(fèi)的時間,DAG的設(shè)計能實(shí)現(xiàn)這樣性能的優(yōu)化。對于這批涌進(jìn)銀行等待交易的用戶,無論他們手持現(xiàn)金還是辦理銀行卡業(yè)務(wù),DAG網(wǎng)
3、絡(luò)不再進(jìn)行分類,使他們分成一行行排隊等待,而是加速去為他們辦理業(yè)務(wù)。如果發(fā)生交易沖突,DAG網(wǎng)絡(luò)會先記錄在案,在處理完所有用戶的交易后再對出現(xiàn)的沖突進(jìn)行處置,從整體上加快整批用戶的交易速率。DAG網(wǎng)絡(luò)通過這樣的安排來取代傳統(tǒng)排序方式的區(qū)塊鏈,由此推廣為DAG應(yīng)用區(qū)塊鏈的日常。通常從技術(shù)層面來說,在一個分布式的系統(tǒng)里,開發(fā)人員都遵循著“CAP”定理來進(jìn)行開發(fā)和維護(hù),它們分別是上述提到的一致性、可用性和隔離性。在以往的區(qū)塊鏈中,首先需要注意的因素即為一致性,分布式賬本需要一致,上鏈后的交易信息要保持一致,創(chuàng)建以區(qū)塊,它里面包含的信息必須要和以往的歷史信息保持一致,整個系統(tǒng)都要設(shè)計為盡力維
4、持這個特性。這就是為什么會出現(xiàn)之前圖中看到的,在銀行排隊等待信息同步的情況。DAG區(qū)塊鏈網(wǎng)絡(luò)則更為注重可用性,保證每個用戶都能在這個網(wǎng)絡(luò)上面完成交易。DAG應(yīng)用區(qū)塊鏈的技術(shù)挑戰(zhàn):區(qū)塊混亂生成導(dǎo)致交易沖突在現(xiàn)在,比特幣的交易速度約為3-7筆每秒,那么什么時候才能到達(dá)每秒過千筆的交易速度呢?要實(shí)現(xiàn)這樣的交易性能,需要對現(xiàn)有的區(qū)塊鏈系統(tǒng)做出什么改造?我們需要先對區(qū)塊鏈的技術(shù)局限有所了解。首先,讓我們來看看在一個包含十個區(qū)塊的區(qū)塊鏈系統(tǒng)簡化圖,每秒的交易流程是什么樣的。如圖所示,在每個區(qū)塊里儲存的信息都會被導(dǎo)向下一個生成的連接著的區(qū)塊,每個分支都導(dǎo)向最初的創(chuàng)世區(qū)塊,使得信息可追溯,從而形成一
5、條條“樹杈”。而在DAG應(yīng)用區(qū)塊鏈的網(wǎng)絡(luò)中,每一個區(qū)塊都有相鄰的區(qū)塊可參照,關(guān)注其中一個區(qū)塊,可以發(fā)現(xiàn)其能與其他區(qū)塊相連打通,體現(xiàn)了高度的可用性,但與此同時,區(qū)塊之間打通之后,挖礦行為將由于發(fā)生頻繁有可能導(dǎo)致更多的硬分叉,一致性將遭到挑戰(zhàn)。同時更為嚴(yán)重的是:區(qū)塊不再遵循序列來排列之后,在各區(qū)塊里的交易沖突事件將會大幅提升,比如雙花問題(doublespending)。特別地,針對這些問題,在DAG網(wǎng)絡(luò)中的挖礦協(xié)議里形成了兩條共識原則:規(guī)則1,每個新增的區(qū)塊的誕生,都必須以過往的全部區(qū)塊作為參照;規(guī)則2,所有區(qū)塊生成的交易信息都必須在第一時間公布。這樣一套DAG結(jié)合區(qū)塊鏈的系統(tǒng),暴露出
6、來的最大缺點(diǎn)在哪?交易的監(jiān)管是一個大問題。如圖所示,比如用戶在某一個區(qū)塊里發(fā)生交易之后,有礦工想進(jìn)行挖礦時,其交易信息很快就會被公布到整個區(qū)塊鏈,許多礦工都會很快求得挖礦結(jié)果,沖突累積得非常之快。所以最主要的挑戰(zhàn)在于,在這樣的DAG網(wǎng)絡(luò)曲線圖里,通過參考之前的區(qū)塊生成區(qū)塊之后,如何保證新生成的區(qū)塊包含信息的一致性,及隨之而來在交易中產(chǎn)生的大量沖突?如何分辨抓住針對這個區(qū)塊鏈網(wǎng)絡(luò)發(fā)起的攻擊也是一個難題,比如前面提到的雙花問題。當(dāng)交易發(fā)生后,兩個礦工同時挖出結(jié)果的幾率很大,誰獲得交易費(fèi)用的獎勵?還有,如何計算不同礦工的工作量證明?另外存儲問題也突出的非常嚴(yán)重,如果實(shí)現(xiàn)了每秒過千筆交易,產(chǎn)
7、生的交易信息數(shù)據(jù)量將會巨大。還有許多其他隨之而產(chǎn)生的問題,但其中最為重要需要解決的首要問題還是一致性。如何針對這些問題研發(fā)解決方案?根據(jù)前面描述的DAG結(jié)合區(qū)塊鏈網(wǎng)絡(luò)應(yīng)用的困境,證明了其只是一個應(yīng)用模型,它本身是一個數(shù)據(jù)結(jié)構(gòu)框架,而非現(xiàn)成的解決方案,具體DAG應(yīng)用區(qū)塊鏈網(wǎng)絡(luò)的案例有好有壞。那么該如何制作一個性能優(yōu)異的DAG應(yīng)用區(qū)塊鏈網(wǎng)絡(luò)的協(xié)議?首先在一個復(fù)雜的區(qū)塊鏈環(huán)境中,區(qū)塊呈鏈條、分支狀結(jié)構(gòu)排列,很難找到隱藏其中屬于攻擊者的區(qū)塊,但它會干擾生成正確的區(qū)