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