摘要:而比特幣卻在沒有政府或公司背書的情況下,在過(guò)去一年內(nèi)支持了相當(dāng)于一萬(wàn)億美元的交易。除此之外,還有一點(diǎn)值得注意的是,很多人誤以為比特幣的擴(kuò)容問(wèn)題是機(jī)制的局限性造成的。因此,公鏈項(xiàng)目在早期使用是避免共識(shí)中心化,保護(hù)區(qū)塊鏈核心價(jià)值的明智選擇。
在傳統(tǒng)的互聯(lián)網(wǎng)公司或金融機(jī)構(gòu)中,如果一家公司,在一年之內(nèi),被委托的交易結(jié)算的總量為萬(wàn)億美元的話,這家公司要么擁有可靠的技術(shù)和雄厚的資本,要么就是其它大公司及政府為其信用來(lái)做背書。而比特幣卻在沒有政府或公司背書的情況下,在過(guò)去一年內(nèi)支持了相當(dāng)于一萬(wàn)億美元的交易。這是因?yàn)楸忍貛诺墓ぷ髁孔C明(PoW)機(jī)制確保了全世界的比特幣礦工以點(diǎn)對(duì)點(diǎn)的方式去分布式地維護(hù)賬本,且保證了其正確性和不可篡改性。
實(shí)際上,PoW 協(xié)議并不完美,它在運(yùn)行過(guò)程中需要消耗大量的能量來(lái)計(jì)算哈希函數(shù)的結(jié)果,以保護(hù)區(qū)塊鏈系統(tǒng)不被攻擊。很多人認(rèn)為這是一種“無(wú)用的能源消耗”。為了避免這種消耗,股權(quán)證明協(xié)議(PoS)便作為替代方案被提出。包括以太坊在內(nèi)的幾個(gè)著名的項(xiàng)目也開始探索股權(quán)證明協(xié)議(PoS), 甚至有人認(rèn)為,PoS協(xié)議在未來(lái)將完全取代PoW協(xié)議。
但是,在對(duì) PoS 協(xié)議進(jìn)行了深入的技術(shù)剖析之后,我們會(huì)發(fā)現(xiàn):在一個(gè)公鏈項(xiàng)目的早期階段,PoS 協(xié)議會(huì)帶來(lái)很多問(wèn)題,而這些問(wèn)題在PoW協(xié)議下是可以避免。首先,使用PoS協(xié)議啟動(dòng)主網(wǎng)的公鏈項(xiàng)目,會(huì)不可避免地存在共識(shí)中心化的問(wèn)題,因?yàn)橹骶W(wǎng)上線的時(shí)候股權(quán)分布往往是相對(duì)集中的。此外,純 PoS 協(xié)議還面臨著遠(yuǎn)程攻擊(Long Range attack)的威脅。最嚴(yán)重的遠(yuǎn)程攻擊會(huì)導(dǎo)致新加入的節(jié)點(diǎn)必須信任一些中心化的網(wǎng)站給出的信息,而這會(huì)導(dǎo)致 PoS 公鏈成為一個(gè)本質(zhì)上中心化的網(wǎng)絡(luò)。去使用PoW協(xié)議啟動(dòng)主網(wǎng)的區(qū)塊鏈則可以實(shí)現(xiàn)分散的共識(shí),從而避免這些問(wèn)題。當(dāng)PoW公鏈經(jīng)過(guò)一段時(shí)間的發(fā)展,股權(quán)分布相對(duì)分散以后,還可以選擇PoW/PoS復(fù)合機(jī)制。
除此之外,還有一點(diǎn)值得注意的是,很多人誤以為比特幣的擴(kuò)容問(wèn)題是PoW機(jī)制的局限性造成的。我們經(jīng)常在媒體網(wǎng)站或白皮書中看到這樣的句子,“比特幣因?yàn)槭褂昧薖oW機(jī)制,所以只能處理每秒3-7筆交易”。而事實(shí)上,經(jīng)過(guò)適當(dāng)?shù)脑O(shè)計(jì),例如,GHOST, Conflux 這樣的PoW算法可以顯著提高出塊效率,達(dá)到每秒處理數(shù)千筆交易,且每筆交易都能得到全網(wǎng)節(jié)點(diǎn)的驗(yàn)證。
PoW v.s. PoS:如何確定投票權(quán)關(guān)于PoW和PoS之間的主要區(qū)別,就是在于如何確定區(qū)塊鏈共識(shí)中的投票權(quán)。 在PoW中,系統(tǒng)中的投票權(quán)與節(jié)點(diǎn)的計(jì)算能力成正比。每秒可以計(jì)算哈希函數(shù)次數(shù)越多,節(jié)點(diǎn)就越有可能贏得區(qū)塊鏈中下一個(gè)區(qū)塊的出塊權(quán)。而在PoS中,系統(tǒng)的投票權(quán)與持有的股權(quán)比例成正比。節(jié)點(diǎn)擁有資金越多,能為確定的下一個(gè)區(qū)塊投的票數(shù)就越多。
在公鏈早期階段,股權(quán)中心化將導(dǎo)致共識(shí)中心化對(duì)于一個(gè)公有鏈來(lái)說(shuō),其上線初期往往是股權(quán)最集中的時(shí)候。在主網(wǎng)上線伊始,創(chuàng)始?jí)K中分配的幣絕大多數(shù)屬于項(xiàng)目方和私募投資人,而這些人的數(shù)量往往非常有限。對(duì)于PoW共識(shí)機(jī)制,初始股權(quán)的集中不會(huì)帶來(lái)安全性問(wèn)題,因?yàn)樗某鰤K和安全性不依賴于股權(quán)持有的分散,而是依賴于算力的分散。對(duì)于使用反 ASIC 礦機(jī)的挖礦算法的公有鏈來(lái)說(shuō),任何人只要擁有顯卡和網(wǎng)絡(luò)就可以成為礦工,這有助于促進(jìn)更多人參與挖礦,實(shí)現(xiàn)早期算力的分散。只要超過(guò)50%的算力來(lái)自于誠(chéng)實(shí)的礦工,區(qū)塊鏈中的交易就是安全不可逆轉(zhuǎn)的。
然而,在PoS共識(shí)機(jī)制下,股權(quán)集中會(huì)導(dǎo)致共識(shí)協(xié)議的參與者集中。區(qū)塊鏈的出塊權(quán)只能由少數(shù)在創(chuàng)世塊中擁有股權(quán)的玩家決定。如果這些人合謀對(duì)區(qū)塊鏈進(jìn)行攻擊,則完全可以成功的實(shí)現(xiàn)雙花攻擊(Double spending attack). 盡管開發(fā)者和投資人出于利益考慮不會(huì)進(jìn)行這樣的攻擊來(lái)摧毀他們自己的公鏈,但PoS公鏈也無(wú)可避免的在主網(wǎng)上線后就被這些人壟斷和支配。更糟的是,如果出塊可以獲得大量獎(jiǎng)勵(lì)和交易費(fèi)用,這些壟斷者就會(huì)將大量股權(quán)牢牢控制在自己的手里,使得PoS公鏈成為一個(gè)本質(zhì)上由巨頭控制的網(wǎng)絡(luò)。
我們不要忘了,區(qū)塊鏈的核心價(jià)值是什么?是去中心化的共識(shí)協(xié)議,保證了區(qū)塊鏈系統(tǒng)中每筆交易的正確性、不可篡改性。如果共識(shí)協(xié)議無(wú)法保證參與者的分散,區(qū)塊鏈就無(wú)法做到無(wú)需信任的安全性,那么區(qū)塊鏈和傳統(tǒng)的分布式系統(tǒng)相比就沒有任何優(yōu)勢(shì)了,甚至傳統(tǒng)的分布式系統(tǒng)能做得更經(jīng)濟(jì)更高效。因此,公鏈項(xiàng)目在早期使用PoW, 是避免共識(shí)中心化,保護(hù)區(qū)塊鏈核心價(jià)值的明智選擇。
“長(zhǎng)程攻擊”與“主觀依賴”問(wèn)題在一個(gè)公有鏈中,一個(gè)攻擊者如果擁有當(dāng)下足夠多的算力或股權(quán),無(wú)疑是可以打破公有鏈安全性完成攻擊的。但是在 PoS 公鏈中,如果攻擊者獲得了一些賬戶的私鑰,這些私鑰在歷史上某一時(shí)刻控制了超過(guò)51%的股權(quán),也可以完成攻擊,這種攻擊的方式被稱為長(zhǎng)程攻擊(Long Range Attack)。
在長(zhǎng)程攻擊中,攻擊者首先獲得一些私鑰,只要這些私鑰在歷史上曾經(jīng)獲得了足夠多的股權(quán),便可以從這一時(shí)刻開始分叉進(jìn)行 51% 攻擊,制造一條分叉鏈出來(lái)。而 PoS 的出塊不需要進(jìn)行工作量證明,攻擊者可以短時(shí)間內(nèi)讓重寫歷史的分叉鏈追趕上原本的主鏈,從而造成PoS鏈的分叉和防篡改性被打破。
攻擊者能夠取得這些私鑰不是天方夜譚。如果PoS公鏈的早期投資人在二級(jí)市場(chǎng)將持有的代幣賣掉后,將賬戶私鑰賣給攻擊者,攻擊者就可以從創(chuàng)世塊進(jìn)行長(zhǎng)鏈攻擊,從而可以打破一個(gè)鏈的安全性。如果一些投資者追求短期收益而非價(jià)值投資,攻擊者從他們手里獲得私鑰就成為了一個(gè)可能的事情。
而為了應(yīng)對(duì)長(zhǎng)程攻擊,則有各種各樣的解決方案被提出:例如使用密鑰演化算法更新密鑰,以避免密鑰被盜。但是如果早期投資者一開始就決定通過(guò)出售私鑰獲利,那么他完全可以保留密鑰種子以繞開這一限制。還有一些解決方案基于這樣一個(gè)事實(shí):如果攻擊者挖了一條完全不同的鏈,長(zhǎng)期在系統(tǒng)中運(yùn)行的節(jié)點(diǎn)或許有能力探測(cè)出這種異常。但是,這些方案依然存在如下問(wèn)題:
PoS 長(zhǎng)程攻擊造成的分叉與 PoW 的分叉有所不同。PoW 的分叉鏈難以獲得比特幣全網(wǎng)算力,比特幣礦工很容易從總算力中辨別誰(shuí)是真正的比特幣。鑒于PoS共識(shí)協(xié)議在實(shí)際運(yùn)行時(shí),絕大多數(shù)股權(quán)持有者只是區(qū)塊鏈的使用者,并不會(huì)一直運(yùn)行一臺(tái)服務(wù)器。攻擊者只要在一個(gè)歷史節(jié)點(diǎn)擁有了相當(dāng)與PoS實(shí)際參與者的股權(quán)比例,就可以制造出一條難以辨別的分叉鏈出來(lái)。配合女巫攻擊(Sybil Attack),攻擊者可以從區(qū)塊歷史和節(jié)點(diǎn)數(shù)量上都獲得和被攻擊主鏈接近的水平,令新加入的節(jié)點(diǎn)無(wú)法區(qū)分,只能通過(guò)人工指定的方式選擇。這樣新參與者必須咨詢受信任節(jié)點(diǎn)來(lái)安全地加入系統(tǒng),這一問(wèn)題被稱為“主觀依賴”(Weak Subjectivity)
無(wú)利害攻擊無(wú)利害攻擊(Nothing at Stake)是另一種PoS攻擊方式。當(dāng)一個(gè) PoS 鏈因?yàn)榫W(wǎng)絡(luò)延遲、長(zhǎng)程攻擊或其他原因出現(xiàn)分叉時(shí),PoS 礦工可以選擇在兩個(gè)分叉的鏈上同時(shí)出塊,以獲取最大收益。而這違反了共識(shí)協(xié)議。
在 PoW 鏈中,如果一個(gè)礦工想同時(shí)在多個(gè)分叉上挖礦,就必須將自己的算力分散在多個(gè)分叉上,所有分叉上分配的算力總和不會(huì)超過(guò)礦工擁有的總算力。對(duì)于多數(shù)礦工而言,將自己的全部算力投入到協(xié)議指定的鏈上是最優(yōu)的選擇。
然而,在 PoS 多個(gè)分叉上同時(shí)出塊所帶來(lái)的額外成本可以忽略不計(jì),而選擇同時(shí)出塊可以保證無(wú)論哪一條分叉鏈最終勝出都可獲得收益。如果礦工遵守共識(shí)協(xié)議,只在協(xié)議指定的鏈上挖礦。一旦這個(gè)鏈被丟棄,礦工將會(huì)失去挖礦獎(jiǎng)勵(lì)。只追求挖礦收益最大化的礦工會(huì)在兩邊同時(shí)參與,不惜因此打破協(xié)議——這會(huì)導(dǎo)致鏈長(zhǎng)時(shí)間維持分叉的狀態(tài)。
與長(zhǎng)程攻擊不同,精巧的激勵(lì)機(jī)制設(shè)計(jì)可以避免這一攻擊。但無(wú)利害攻擊依然表明讓PoS鏈正確地運(yùn)行是一件很困難的事情。
雖然 PoS 具有節(jié)省能源等優(yōu)勢(shì),從而很多項(xiàng)目表示將采用PoS。但我們?cè)诜治鰠^(qū)塊鏈安全性假設(shè)后發(fā)現(xiàn),避免了計(jì)算“無(wú)用的哈?!敝髸?huì)引入很多攻擊情形,而且目前沒有很完美的解決方案。誠(chéng)然PoS有能源效率的優(yōu)勢(shì),但也帶來(lái)了很多安全性威脅。在PoS很好地解決這些威脅之前,PoW消耗的能源,就像和平時(shí)期國(guó)家軍隊(duì)用掉的軍費(fèi)一樣,阻擋了很多潛在的威脅。最重要的是,其中許多威脅在區(qū)塊鏈項(xiàng)目早期顯得尤其致命。這也是我們?yōu)槭裁聪嘈判碌墓滍?xiàng)目應(yīng)該從PoW開始。
本文作者為Conflux算法研究員 李辰星
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/17862.html