Aleo区块链如何扩展到数百万用户
在本文中,我將深入概述Aleo的工作原理,也就是說(shuō),我將詳細(xì)介紹我們創(chuàng)建的獨(dú)特的存儲(chǔ)模式(稱(chēng)為“記錄模式”),它的相關(guān)優(yōu)缺點(diǎn),以及它為真正強(qiáng)大的擴(kuò)展讓路的獨(dú)特方式。
part 01 | 存儲(chǔ)模型-快速比較
為了讓新模型更容易理解,我們先把它和當(dāng)今最流行的兩種存儲(chǔ)模型做個(gè)比較,這兩種模型分別是UTXOs(比特幣)和賬戶(hù)模型(以太坊)。因?yàn)橛涗浤P褪沁@兩者的混合體,所以在深入研究它們之前,重溫一下這兩者可能會(huì)有所幫助。
part 02 | 比特幣(UTXO)
UTXO模型是表達(dá)比特幣所有權(quán)的原始存儲(chǔ)范式。從一個(gè)非常高的角度來(lái)看,它是如何工作的,BTC數(shù)量本質(zhì)上就像一捆磁鐵。當(dāng)你接收到一定量的BTC時(shí),它作為一個(gè)單一的物體來(lái)到你面前;假設(shè)你從某人那里收到2 BTC,這2 BTC作為2 BTC的單個(gè)塊存儲(chǔ)在你的錢(qián)包中,如果你想?yún)R任何金額的錢(qián)給任何人,你可以使用這個(gè)2 BTC塊作為交易的輸入。
在一個(gè)事務(wù)中,這個(gè)塊然后被“分割”成它的所有輸出。比如說(shuō),你想給一個(gè)朋友寄0.5塊BTC——這2塊BTC然后被分成0.5塊BTC和1.5塊BTC(當(dāng)然減去一小筆費(fèi)用)。0.5塊BTC寄給你朋友,1.5塊BTC會(huì)寄給你。現(xiàn)在你們每個(gè)人的錢(qián)包里都有一個(gè)BTC,但是數(shù)量不同。
自然,當(dāng)你開(kāi)始接受更多的交易時(shí),你會(huì)在你的錢(qián)包中建立多個(gè)區(qū)塊。假設(shè)你收到了1.2、0.6和0.8 BTC的交易,你正試圖交易2.6 BTC(全部金額)。然后,事務(wù)將這3個(gè)塊作為輸入,并將它們放在一起(就像磁鐵一樣!)為您的收件人創(chuàng)建輸出。
在這種模式下,幣的歸屬非常清晰,資源非常有形。通過(guò)參與交易,你只是交換了你日積月累獲得的點(diǎn)點(diǎn)滴滴。很容易看出錢(qián)是從哪里來(lái)的,以及它是如何隨時(shí)間變化的。
part 03 | 以太坊(賬戶(hù)模型)
區(qū)塊鏈存儲(chǔ)模型的第二大創(chuàng)新是帳戶(hù)模型消除了UTXO模型中的碎片。相反,任何類(lèi)型的特定帳戶(hù)數(shù)據(jù)都存儲(chǔ)在一個(gè)單一的存儲(chǔ)結(jié)構(gòu)中。在區(qū)塊鏈本地貨幣的情況下,這有一個(gè)很好的效果,即任何數(shù)量的貨幣總是占用相同數(shù)量的存儲(chǔ)空間,因?yàn)橐粭l信息只是隨著時(shí)間的推移而增加或減少,而不是移動(dòng)單獨(dú)的數(shù)據(jù)比特。
該帳戶(hù)存儲(chǔ)包含用戶(hù)持有的ETH的數(shù)量,以及一個(gè)特殊的數(shù)字,該數(shù)字隨著每次發(fā)送的交易而遞增。這用于避免雙重消費(fèi)攻擊(也稱(chēng)為“nonce”)。然而,它可以包含更多的內(nèi)容。以太坊賬戶(hù)可以容納任意數(shù)量的字節(jié)碼和存儲(chǔ),這對(duì)智能合約功能至關(guān)重要——這就是以太坊網(wǎng)絡(luò)如何促進(jìn)執(zhí)行,以及它如何創(chuàng)新了世界上第一個(gè)鏈上執(zhí)行模型。
地址可以保存描述智能協(xié)定功能的任意數(shù)量的代碼,并包含與該智能協(xié)定相關(guān)聯(lián)的存儲(chǔ)blob。重要的區(qū)別是所有的契約字節(jié)碼和數(shù)據(jù)都保存在同一個(gè)地址。無(wú)論有多少人與它互動(dòng),所有的分?jǐn)?shù)都保存在這個(gè)智能合同地址上。所有數(shù)據(jù)都是這個(gè)合同地址的中心,這與比特幣存儲(chǔ)模式非常不同,在比特幣存儲(chǔ)模式中,信息在不同賬戶(hù)之間流動(dòng)時(shí)會(huì)被分割并重新組合在一起。
part 04 | Aleo(記錄模型)
然后是Record模式,它旨在結(jié)合兩個(gè)世界的優(yōu)點(diǎn)。它由Aleo首創(chuàng),通過(guò)允許以太坊的可編程性和利用比特幣中的狀態(tài)碎片,帶來(lái)了一些新的東西。
對(duì)于Aleo中的智能合約,合約字節(jié)碼實(shí)際上是整體存儲(chǔ)的——這是有道理的,因?yàn)槟荒軐⒁欢未a分割。然而,它與以太坊的區(qū)別在于,屬于與它交互的賬戶(hù)的狀態(tài)比特實(shí)際上存儲(chǔ)在賬戶(hù)本身中。因此,用戶(hù)對(duì)特定智能合約的數(shù)據(jù)擁有有效的所有權(quán)
這些數(shù)據(jù)就是我們所說(shuō)的“記錄”,可以包含任意數(shù)量的數(shù)據(jù)。有點(diǎn)像我們?cè)诒忍貛胖锌吹降膗txo!然而,這些記錄中的數(shù)據(jù)可以被突變、增加、減少等來(lái)反映狀態(tài)的變化,就像以太坊中的狀態(tài)變化一樣。
一個(gè)很好的思考方式是將以太坊的可編程性與比特幣中的utxo的有形資源概念完美結(jié)合。此外,在Aleo中,這些記錄可以被加密,因此可以保存私人信息,通過(guò)協(xié)議級(jí)支持處理加密數(shù)據(jù),使用戶(hù)和開(kāi)發(fā)人員更容易使用、推理和表達(dá)。
這里要做的另一個(gè)重要區(qū)別是,記錄實(shí)際上不像utxo那樣傳遞。這就是為什么我們認(rèn)為它是utxo和Account模型之間的混合模型。特定于帳戶(hù)的狀態(tài)以碎片的方式存儲(chǔ),但會(huì)相應(yīng)地發(fā)生突變,并且從不傳遞。
這對(duì)我們意味著什么?
實(shí)際上,相當(dāng)多!這種獨(dú)特的存儲(chǔ)模式乍一看可能有點(diǎn)不直觀——既然已經(jīng)有一個(gè)完全可行的模型,但沒(méi)有它,我們?yōu)槭裁催€要這樣分割數(shù)據(jù)呢?這個(gè)范式的一個(gè)很好的特性是,單個(gè)狀態(tài)不再以以太坊模型中相同的方式相互關(guān)聯(lián),相反,所有狀態(tài)都打包在一起,突變需要逐步發(fā)生,否則可能會(huì)出現(xiàn)競(jìng)爭(zhēng)條件。
這導(dǎo)致的結(jié)果是,現(xiàn)在可以并發(fā)地訪問(wèn)狀態(tài),只要塊內(nèi)沒(méi)有沖突的讀/寫(xiě)訪問(wèn)嘗試。因此,由于狀態(tài)不再是單一的,所以可以并行執(zhí)行,證明者可以根據(jù)上下文推斷哪些事務(wù)是不沖突的。這為Aleo網(wǎng)絡(luò)的吞吐量帶來(lái)了奇跡。隨著連續(xù)的、冗余的執(zhí)行不再存在;我們現(xiàn)在可以充分利用(專(zhuān)門(mén)的)硬件,通過(guò)委托鏈下執(zhí)行和并行執(zhí)行,來(lái)緩解吞吐量瓶頸。
但是等等,還有更多!向無(wú)限用戶(hù)擴(kuò)展…
認(rèn)真來(lái)說(shuō),通過(guò)在Aleo區(qū)塊鏈中利用存儲(chǔ)記錄模型,我們已經(jīng)可以在伸縮方面完成相當(dāng)多的工作。只要不產(chǎn)生狀態(tài)訪問(wèn)沖突,執(zhí)行就可以并行化。此外,不需要重復(fù)執(zhí)行,因?yàn)椤白C明者”將在鏈下運(yùn)行程序,并簡(jiǎn)單地在鏈上上傳狀態(tài)差異和有效性證明,這使得運(yùn)行昂貴的dApps更加經(jīng)濟(jì)。
但我們可以更進(jìn)一步,這將開(kāi)始讓人想起以太坊目前用于伸縮的模型——匯總。應(yīng)用程序可以選擇對(duì)用戶(hù)的事務(wù)進(jìn)行排序,并在一定時(shí)間內(nèi)收集它們。之后,可以將它們組合并捆綁到單個(gè)事務(wù)中。和解將周期性地發(fā)生,幾乎不需要花費(fèi)(因?yàn)橥蛔儽焕壴谝黄?,并且只產(chǎn)生單個(gè)狀態(tài)差異和有效性證明。有趣的是,Aleo允許特定于應(yīng)用程序的集合,而不需要啟動(dòng)額外的區(qū)塊鏈或照顧任何多余的基礎(chǔ)設(shè)施,如橋接。從本質(zhì)上說(shuō),它獲得了所有的擴(kuò)展收益,而沒(méi)有與匯總相關(guān)的固有風(fēng)險(xiǎn)。
總結(jié)
以上是生活随笔為你收集整理的Aleo区块链如何扩展到数百万用户的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AD(十七)PCB板框的评估及层叠设计
- 下一篇: 03.监督过程组-项目绩效报告