區(qū)塊鏈如何從協(xié)議層開(kāi)始變得更有用
為了幫助抵抗審查、不可變和無(wú)許可的區(qū)塊鏈獲得廣泛的市場(chǎng)接受,需要做很多改變。從基本協(xié)議到最終用戶(hù)界面,生態(tài)系統(tǒng)的每一層都需要變得更加可用。為了實(shí)現(xiàn)有意義的采用,這些層必須利用區(qū)塊鏈的獨(dú)特屬性。那么如果界面正在審查,使用一個(gè)抵制審查的區(qū)塊鏈有什么意義呢?
今天是系列文章的第一篇,詳細(xì)介紹了不同區(qū)塊鏈層的區(qū)塊鏈可用性(我們完全按照OSI建立了模型)。在這里,我們將重點(diǎn)討論基本協(xié)議,并在后續(xù)的文章中繼續(xù)討論。
抽象層
互聯(lián)網(wǎng)遵循OSI模式:
一種概念模型,它描述和規(guī)范電信或計(jì)算系統(tǒng)的通信功能,而不考慮其底層的內(nèi)部結(jié)構(gòu)和技術(shù)。它的目標(biāo)是使用標(biāo)準(zhǔn)協(xié)議的不同通信系統(tǒng)的互操作性。該模型將通信系統(tǒng)劃分為抽象層、服務(wù)于抽象層上面的層,服務(wù)于抽象層下面的層。這些層作為一種隔離機(jī)制存在,在最頂層工作的人不應(yīng)該關(guān)心它下面發(fā)生了什么,反之亦然;這是完全的抽象。這是一種基礎(chǔ)性的現(xiàn)代發(fā)展實(shí)踐。在過(guò)去,機(jī)器人手臂的開(kāi)發(fā)者必須知道每個(gè)硬件設(shè)備之間是如何通信的。但是現(xiàn)在有了通用的api,所以開(kāi)發(fā)人員不需要擔(dān)心注冊(cè)格式、I2C地址等,從而允許代碼重用、更快的開(kāi)發(fā)等等。盡管以較低的性能為代價(jià),但開(kāi)發(fā)速度遠(yuǎn)遠(yuǎn)超過(guò)了這一點(diǎn)。區(qū)塊鏈也是如此。
在棧的較低層仔細(xì)的設(shè)計(jì)決策會(huì)極大地影響上層的可用性。如果沒(méi)有穩(wěn)固的基礎(chǔ),頂面的任何東西都是搖搖欲墜的。如果密碼系統(tǒng)壞了,用戶(hù)不能信任協(xié)議。
分類(lèi)可以用多種方式構(gòu)建,這些層次反映了當(dāng)前用戶(hù)體驗(yàn)的心理模型,請(qǐng)聯(lián)系出建議。給你一些靈感:Multicoin的Web3棧,一個(gè)來(lái)自過(guò)去的Vitalik post,Web3 FoundaTIon, Evan Schwartz的5 Layed Interledger架構(gòu),區(qū)塊鏈應(yīng)用棧和7層金融密碼學(xué)。
圖:區(qū)塊鏈層的可用性
在確定區(qū)塊鏈的可用性之前,我們需要了解協(xié)議的目標(biāo)。如果一個(gè)協(xié)議只打算用于跟蹤和管理銀行隔夜市場(chǎng)的資產(chǎn),那么該協(xié)議可以被允許或聯(lián)合使用。然而,如果協(xié)議是為不可替代資產(chǎn)的無(wú)許可基礎(chǔ)設(shè)施設(shè)計(jì)的,那么對(duì)可用性的要求就大不相同了(BFT共識(shí),等等)
人們經(jīng)常說(shuō),交易的低終結(jié)時(shí)間、高交易吞吐量和低交易成本對(duì)于任何區(qū)塊鏈都是必不可少的,但實(shí)際上,它們獨(dú)立于可用性,這取決于協(xié)議的目標(biāo)是什么。對(duì)于共識(shí)規(guī)則也是如此,如果允許網(wǎng)絡(luò)或聯(lián)合網(wǎng)絡(luò),區(qū)塊鏈不需要具有拜占庭式的容錯(cuò)能力。考慮到這一點(diǎn),我們一直小心翼翼地只討論能夠超越這些不同設(shè)計(jì)目標(biāo)通用的可用性屬性。
從基礎(chǔ)做起
從底層開(kāi)始,我們可以確保構(gòu)建在頂層的層能夠繼承已經(jīng)本地集成到基本協(xié)議中的可用性特性。這里構(gòu)建的內(nèi)容會(huì)同時(shí)影響開(kāi)發(fā)人員和最終用戶(hù)。
協(xié)議設(shè)計(jì)人員應(yīng)該采取哪些步驟對(duì)其他人產(chǎn)生最積極的下層影響?
協(xié)議應(yīng)該包括的特性
特性
· SPV證明或輕量級(jí)客戶(hù)機(jī): 協(xié)議的所有用戶(hù)不太可能使用完整的節(jié)點(diǎn)與區(qū)塊鏈進(jìn)行交互,更常見(jiàn)的是使用托管節(jié)點(diǎn)服務(wù)。它們工作得很好,但代表著一個(gè)單一的失敗點(diǎn),審查制度和缺乏隱私。使用SPV證明或輕量級(jí)客戶(hù)機(jī),用戶(hù)可以自己驗(yàn)證和發(fā)送事務(wù),而不必信任其他人。如果這些輕量級(jí)客戶(hù)端只占用很少的資源,這就給了用戶(hù)更多的自主權(quán)。Coda協(xié)議是這個(gè)領(lǐng)域的領(lǐng)導(dǎo)者。
· 基于帳戶(hù)的建模: 盡管UTXO模型有許多好處,但是基于帳戶(hù)的建模對(duì)用戶(hù)更友好,因?yàn)橹挥幸粋€(gè)規(guī)范帳戶(hù),這使得密鑰管理更加簡(jiǎn)單。更妙的是,如果一個(gè)人可以向該帳戶(hù)注冊(cè)多個(gè)密鑰對(duì),那么如果他們丟失了一個(gè)密鑰對(duì),那么還有其他可用的密鑰對(duì)。Near協(xié)議目前正致力于此。
· Fork友好性: 一些協(xié)議認(rèn)為不應(yīng)該有Fork,并且內(nèi)置了一些機(jī)制,使Fork變得困難。人們總是會(huì)找到一種方法來(lái)派生協(xié)議,因此協(xié)議設(shè)計(jì)者應(yīng)該認(rèn)識(shí)到惡意行為者/有爭(zhēng)議的硬分叉,并內(nèi)置工具來(lái)標(biāo)記分叉和防止雙重支出。
· 分層確定性錢(qián)包: 也稱(chēng)為高清錢(qián)包,它允許一個(gè)種子或助記短語(yǔ)生成無(wú)限數(shù)量的公鑰。因此,用戶(hù)不必存儲(chǔ)所有的私鑰,只需存儲(chǔ)種子即可。
· 共識(shí): Fischer Lynch Paterson (FLP)指出,一個(gè)確定性系統(tǒng)最多可以有兩個(gè)異步共識(shí)以下三個(gè)屬性:安全(結(jié)果是有效的和相同的節(jié)點(diǎn)),活性(節(jié)點(diǎn)不失敗總是產(chǎn)生一個(gè)結(jié)果),和容錯(cuò)(系統(tǒng)可以在任何點(diǎn))存活節(jié)點(diǎn)的失敗。沒(méi)有一種共識(shí)機(jī)制可以擁有所有的特性,任何互聯(lián)網(wǎng)上的分布式共識(shí)系統(tǒng)都必須犧牲其中的一個(gè)特性。因此,在為協(xié)議選擇共識(shí)機(jī)制時(shí),設(shè)計(jì)人員必須確定他們看重什么以及它如何影響用戶(hù)體驗(yàn)。來(lái)自Stellar的一些設(shè)計(jì)靈感。
· Dust Handling:由于交易費(fèi)用大于UTXO的價(jià)值,所以代幣不能再被所有者使用。從用戶(hù)的角度來(lái)看,這是不理想的,因?yàn)樗麄円呀?jīng)被剝奪資金,如果有一個(gè)聰明的方法來(lái)避免這種情況,就更好了。
網(wǎng)絡(luò)維護(hù)人員的特性
全節(jié)點(diǎn)激勵(lì): 用戶(hù)運(yùn)行全節(jié)點(diǎn)應(yīng)該是有原因的,不管是因?yàn)榫W(wǎng)絡(luò)被許可,還是因?yàn)榇嬖诩用茇泿诺慕?jīng)濟(jì)激勵(lì),用戶(hù)必須這樣做。如果沒(méi)有完整的節(jié)點(diǎn),網(wǎng)絡(luò)的安全性和支持就會(huì)降低。獎(jiǎng)勵(lì)應(yīng)該涵蓋協(xié)議的最重要特征,在比特幣的Nakamoto共識(shí)中,只有在最長(zhǎng)鏈上開(kāi)采比特幣的礦商才能獲得獎(jiǎng)勵(lì)。但由于沒(méi)有推廣區(qū)塊的動(dòng)機(jī),這不幸導(dǎo)致了自私的開(kāi)采。或許鼓勵(lì)塊中繼的激勵(lì)措施可以解決這個(gè)問(wèn)題,但這只是激勵(lì)措施的冰山一角。
實(shí)現(xiàn)細(xì)節(jié):有許多方法可以實(shí)現(xiàn)協(xié)議的規(guī)范,開(kāi)發(fā)人員必須仔細(xì)檢查角落的情況,以防止意外的攻擊和未知的膨脹。
協(xié)議中的額外協(xié)議特性
這些特性也應(yīng)該集成到區(qū)塊鏈協(xié)議中,以提高其可用性。然而,它們可以在幾個(gè)級(jí)別上實(shí)現(xiàn),它們應(yīng)該是協(xié)議本地的,并且可能是協(xié)商共識(shí)規(guī)則的一部分,還是應(yīng)該存在于智能合約層甚至鏈外?一些協(xié)議已經(jīng)對(duì)此采取了立場(chǎng),但是我們不會(huì)讓您卷入這場(chǎng)爭(zhēng)論,相反,我們將討論為什么這些特定的特性在堆棧的任何部分都具有強(qiáng)大的功能。
· 費(fèi)用委托/元事務(wù): 對(duì)于最終用戶(hù),他們甚至需要知道他們正在使用區(qū)塊鏈嗎?除非交易費(fèi)用委托給第三方,否則用戶(hù)永遠(yuǎn)都知道他們?cè)谑褂脜^(qū)塊鏈,必須購(gòu)買(mǎi)代幣,這就增加了一層摩擦。以太坊正在開(kāi)發(fā)基于智能合約的費(fèi)用委托(與正常交易相比,它的GAS成本是普通交易的2 - 3倍,dApp必須特別支持它),而其他協(xié)議(Stellar和VeChain)則是原生協(xié)議。盡管如此,現(xiàn)在用戶(hù)可以在協(xié)議之上使用資產(chǎn),甚至不知道是什么在驅(qū)動(dòng)它。
· 人類(lèi)可讀的地址:還記得你輸入“O”而不是“0”,然后燒了一堆錢(qián)嗎?EOS本身就有這個(gè)特性(注意它是強(qiáng)制性的,并且需要花費(fèi)代幣來(lái)注冊(cè),這會(huì)降低可用性),以太坊使用ENS,這是一種智能合約。現(xiàn)在這種情況不會(huì)再發(fā)生了。
· 本機(jī)多簽名: 對(duì)于協(xié)議來(lái)說(shuō),擁有一個(gè)本機(jī)多簽名或智能合約是最重要的。它們可以在腳本(BTC P2SH)或密碼門(mén)限簽名中實(shí)現(xiàn)。試著找出一個(gè)協(xié)議不應(yīng)該只有一個(gè)的原因。
· GAS市場(chǎng)-區(qū)塊鏈領(lǐng)域未來(lái): 交易費(fèi)用是第一價(jià)格拍賣(mài),無(wú)論在理論還是實(shí)踐上都容易導(dǎo)致定價(jià)不完善和參與者之間的博弈。為了緩解這一問(wèn)題,人們提出了幾種不同的模型,比如改變拍賣(mài)方式,或引入GAS市場(chǎng)。這些更改應(yīng)該是協(xié)議的一部分還是存在于合約層?
· 本機(jī)交換: 當(dāng)特性以本機(jī)方式實(shí)現(xiàn)到核心協(xié)議和協(xié)商共識(shí)時(shí),由于代碼是作為客戶(hù)機(jī)的一部分編寫(xiě)的,而不是使用更高級(jí)的智能合約語(yǔ)言,因此特性通常更具有性能。Stellar有一個(gè)本地分布式交換器,由于協(xié)議的資產(chǎn)特性,這是有意義的,但是請(qǐng)注意,這個(gè)特性不應(yīng)該用于非資產(chǎn)的協(xié)議。
復(fù)雜性轉(zhuǎn)移
協(xié)議本身需要一些特性,比如多簽名(在我看來(lái),不同意也沒(méi)關(guān)系)。但是它位于哪一層:基礎(chǔ)層、智能合約層或第2層,以及特定的實(shí)現(xiàn)極大地改變了用戶(hù)體驗(yàn),并將復(fù)雜性轉(zhuǎn)移到不同的層和各方。是否希望使基本協(xié)議非常的輕量級(jí)?或者它應(yīng)該整合所有東西?我們可以假設(shè)用戶(hù)對(duì)交互協(xié)議沒(méi)有問(wèn)題,還是我們應(yīng)該假設(shè)行為是不可取的?這是一個(gè)特征還是必須具備的?這些是任何協(xié)議設(shè)計(jì)者必須問(wèn)自己的一些基本問(wèn)題,他們必須認(rèn)識(shí)到復(fù)雜性將永遠(yuǎn)存在。誰(shuí)應(yīng)該與復(fù)雜性打交道,誰(shuí)應(yīng)該承擔(dān)責(zé)任?
平衡核心開(kāi)發(fā)人員和社區(qū)
為了合法地消除風(fēng)險(xiǎn),協(xié)議不能擁有整個(gè)生態(tài)系統(tǒng)。如果開(kāi)發(fā)協(xié)議的公司運(yùn)行幾乎所有的節(jié)點(diǎn),開(kāi)發(fā)所有的輔助組件,等等,那么很難不說(shuō)協(xié)議是集中的。公司可能會(huì)被追究法律責(zé)任。
因此,外部開(kāi)發(fā)是必要的,但如何平衡他們的貢獻(xiàn)與項(xiàng)目的愿景也同樣重要?一個(gè)項(xiàng)目必須有一個(gè)具體的敘述,以確保社區(qū)的所有發(fā)展都有一個(gè)指路明燈。那么到底是安全還是信任呢?是公司的錢(qián)包更容易信任,還是外部的錢(qián)包更容易信任?這些線(xiàn)路不容易走。
展望未來(lái)
在決定每個(gè)層實(shí)現(xiàn)哪些可用性特性時(shí),我們需要做的是要認(rèn)識(shí)到協(xié)議的設(shè)計(jì)目標(biāo)是什么。