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