🔥 Gate Alpha 限時賞金活動第三期上線!
在 Alpha 區交易熱門代幣,瓜分 $30,000 獎池!
💰 獎勵規則:
1️⃣ 連續2日每日交易滿 128 USDT,即可參與共享 $20,000 美金盲盒獎勵
2️⃣ 累計買入 ≥1,024 USDT,交易量前100名可直領獎勵 100美金盲盒
⏰ 活動時間:8月29日 16:00 — 8月31日 16:00 (UTC+8)
👉 立即參與交易: https://www.gate.com/announcements/article/46841
#GateAlpha # #GateAlphaPoints # #onchain#
TON白皮書解析:揭秘世界上最快區塊鏈的背後技術
2023 年 10 月 31 日,TON(原Telegram Open Network) 創造了新的世界紀錄,在首次公開性能直播測試中達到了每秒 104,715 筆交易的驚人峰值,在 25 分鐘內完成了總計 107,652,545 筆交易。 經 Certik驗證和確認,這一性能使 TON 成為世界上速度最快、可擴充性最強的區塊鏈,超過了所有 L1 區塊鏈和 PayPal、Visa 和 Mastercard 等著名中心化支付網路的處理速度。
TON無疑是一個令人矚目的專案。 本文將對TON白皮書進行深入解析,揭示其獨特的技術特性和創新之處,為何TON能成為世界上最快的區塊鏈。
! [TON白皮書解析: 揭秘世界上最快區塊鏈的背後技術]( https://lh7-us.googleusercontent.com/4lQw6TdnEgiWHAXFueezan-YELNTrtlnvweKSqVod4CjOKKDE_84geSdqAKgCNJ5wDf746yiQ4DmcLddtafXiVtbyYs0pgvrhFo5Gnw-r5JqS0vlgYHDHiM6fdwV2PmTgGyZrGJLu7YOSrcczbaHTg)
擴容難題
在區塊鏈技術的發展過程中,可擴充性一直是一個巨大的難題。 區塊鏈的擴容方案主要是為了提升系統的輸送量和降低交易費用,使得區塊鏈網路能夠處理更多的交易並更好地適應大規模應用。 儘管不同的公鏈不斷嘗試新的共識和架構設計,但目前的結果依然不如人意,成為區塊鏈走向大規模應用的瓶頸,難以承載我們TG十億使用者的願景。 目前主流的擴容方案可以分為以下幾類:
分片 (Sharding): 將網路分割成多個較小的部分,每個分片能夠並行處理交易和智慧合約,從而顯著提高網路的輸送量。 但是分片隨之帶來了潛在的安全性問題,因為每個分片的安全性可能低於整個網路。 此外,跨分片通信也是一個技術挑戰。 代表例子:曾經的Ethereum 2.0和NEAR夜影協定。
側鏈 (Sidechains): 側鏈是一種獨立於主鏈運行的區塊鏈,它可以有自己的共識機制和區塊參數。 通過側鏈,用戶可以在兩個鏈之間轉移資產,從而卸載主鏈的負擔。 代表例子:Polygon
二層方案 (Layer 2 solutions): 通過在主鏈上層構建另一層結構,L2能夠提供更快的交易確認時間和更低的交易費用。 拿較知名的L2來說, Optimism和Arbitrum: 這兩個都是專門為乙太坊設計的擴容解決方案。 因此,Optimism和Arbitrum的部分架構位於Layer 1。 隨著乙太坊的升級,它們的每秒交易數(TPS)上限從原來的2-4k增加到了大約2w。
zkSync 2.0: 相較於zkSync 1.0的幾百TPS上限,zkSync 2.0帶來了顯著的提升。 zkSync團隊宣稱其2.0版本能達到10w TPS的上限,但多數機構預測其真實上限可能在1-2w。 Starknet: 在六月份完成了Quantum Leap的升級后,其TPS目前稍微超過100TPS。
Solana: Solana 使用了一種名為 Proof of History(PoH,歷史證明)的創新共識演算法作為其擴容方案的核心。 雖然Solana自稱其TPS可以達到65,000,但實際上大部分TPS是作為節點間的通信。 真正的交易量可能只有6-8k TPS上限。 而且,由於其中心化的共識機制設計,Solana在面對大量請求時多次出現宕機,如在NFT鑄造時。 此外,Solana也尚未成功實現中心節點的輪換。
TON區塊鏈的設計者,來自於Telegram創始人及核心團隊。 作為全球最受歡迎的社交平臺之一,Telegram擁有月活躍使用者近9億,在具備高度的安全性和隱私性的同時,也提供了穩定和流暢的用戶體驗,每天軟體內傳輸數百億條消息。 web3理念已經相對家喻戶曉,但實際上的加密原生用戶依舊是少數者,多數人依賴中心化的交易所接觸通證。 世界上最流行的去中心化加密錢包Metamask目前的月活僅3000萬。 而TON的設計理念,從一開始基於服務數十億使用者而不僅僅只是少數web3極客。
! [TON白皮書解析: 揭秘世界上最快區塊鏈的背後技術]( https://lh7-us.googleusercontent.com/VWgtyv52kEaOkar8ejG860EwQ6M2_AVwiOD-Xc50zNBjeo3w8y3gOLepUix-Q9TpuPyB0X_hNb4eRbkqifrO7eCcE2j8MWKZ9E57hlcj3BGLDnD1aAfU3129xQjtgSI1MSktHntT0z44FfWy8Hn_iQ)
無限分片範式
分片是一個來自資料庫設計的概念。 它指的是將一個大的邏輯數據集分割,然後分佈到多個互不共用的資料庫中,這些資料庫可以分佈在多個伺服器上。 簡單來說,分片提供了水平擴展的能力,允許將數據分解為可以並行處理的獨立部分。
TON並非首個將分片技術引入到區塊鏈中的專案,例如,乙太坊2.0曾經宣佈了固定的64個分片后因難度太大放棄,而NEAR的夜影協定計劃在明年實現100個分片,目前現行分片有4個。
與傳統的分片方法不同,TON採用了無限分片的策略。
然而,TON的方法之所以被視為先進,並不是因為其擁有更多的分片,而是因為以下兩個獨特之處:
! [TON白皮書解析: 揭秘世界上最快區塊鏈的背後技術]( https://lh7-us.googleusercontent.com/U8sjAC4blVC3GP6GN7Ct9jm7yC77aiMYSV7dNHO_BXbQVnuqoglf_bTvSqBeIfrmWXl-s0gqC-YoR4H6IqXXRgeeUgvmo0zX3wd9JBJjqufr8H6whBK9ZfdrKPApBHiYjIcYRmHMm2FxrFAAonzMiQ)
目前,TON 由兩個工作鏈組成,用於同步和治理的主鏈(Masterchain),以及用於智慧合約的工作鏈(Workchain)。 在工作鏈之下是分片鏈(Shardchain)以及最底層的虛擬帳戶鏈(Accountchain)
工作鏈可以分為 N 個分片(從 1 到 256 個分片)。 每個分片都有自己的驗證器組。 工作鏈小組負責在自己的分片中執行交易。 與此同時,它不斷地從其工作鏈的所有其他分片下載區塊。 一般來說,區塊鏈是一系列記錄其狀態變化的區塊。 對於 POS 區塊鏈,驗證者首先通過編譯包含更改清單的區塊來同意他們希望如何更改區塊鏈狀態。 之後投票給這個區塊,如果收集到足夠的選票,他們就會將該區塊應用於區塊鏈狀態並移動到下一個區塊。
一個區塊線程的吞吐能力非常有限,因為驗證者必須在同意接受區塊之前檢查該區塊中的所有交易。 所以TON中有很多線程,可以簡單地把它們想像成迷你微型區塊鏈。 它們並行存在的同時每個都有自己的一組驗證器。
主鏈
主鏈是 TON 中的主要區塊線程。 它用於同步所有其餘的塊,並重新計算驗證器集。 當所有線程就新塊達成一致后,它們對其進行簽名並將其註冊到主鏈中。 但是,主鏈驗證器不會驗證該塊的有效性,它們僅檢查它是否由適當的驗證器簽名。 所以很多線程可能並行共存。 來自不同線程的合約通過發送消息來相互通信。
工作鏈
工作鏈是獨立的位址空間,可以按照其規則運行。 例如,他們可能有不同的虛擬機或延長發佈具有高gas限制的區塊的時間。 最重要的是,工作鏈必須具有相同的消息佇列格式,以便它們可以交換消息。 這也意味著所有工作鏈必須具有大致相同的安全保證。 由於它們可以交換消息,因此這些消息攜帶網路通證。 現在有兩個工作鏈處於活動狀態:主鏈和第一個處理工作鏈。 工作鏈由地址前置前置決定:-1:ax... 1s2 - 主鏈中的賬戶位址。 -1是主鏈前綴。
0:zx... 123 - 第一個工作鏈中的賬戶位址。 0 - 是第一個處理工作鏈的前綴。
分片鏈
處理線程或者叫分片鏈是處理工作鏈中的獨立塊線程。 默認情況下,工作鏈 0 只有一個線程和一個鏈。 該線程的驗證者接受外部消息並處理他們自己發送或從其他工作鏈發送的內部消息。 如果出現線程在最近 N 個塊期間過載的情況,則該線程將被拆分:一個線程被分為兩個,其中的事務並行進行。
位址以 0:00.. - 0:88.. 開頭的賬戶現在位於線程 1 中,帳戶 0:88.. - 0:FF.. 位於線程 2 中。 由於所有智慧合約彼此異步通信,沒有任何故障,而輸送量卻增加了兩倍。 當負載下降時,線程會在一段時間后合併回來。 如果負載持續增加,兩個線程可以一次又一次地拆分,以此類推。 主鏈只有一個線程。
TON中的區塊不僅僅是需要完成以實現狀態更改的交易清單。 相反,一個塊是:
執行事務的消息清單,將它們從傳入佇列中刪除。 消息處理後進入傳出佇列的新消息,然後消息處理導致智慧合約狀態發生變化。 也就是說,為了讓分片 X 的驗證器維持分片 Y 的當前狀態,它不需要執行分片 Y 塊中的所有交易。 它只是下載該塊並匯總已發生的更改。 發生在消息佇列和智慧合約狀態。
從根本上改變區塊鏈世界不可能沒有代價。 為了利用這種激進的方法,TON 智慧合約開發者必須以不同的方式設計他們的合約。 TON 區塊鏈的基本原子單元是智能合約。 智能合約具有位址、代碼和數據單元(持久狀態)。 這種單元被稱為原子單元,因為智慧合約始終具有對其所有持久狀態的原子同步訪問。
超立方體網络路由
TON獨創了智慧路由機制來確保任何兩個區塊鏈之間的交易始終能夠快速處理,無論系統有多大, 在 TON 區塊鏈之間發送資訊所需的時間隨著鏈的數量只以對數方式增加,因此,就算擴展到數百萬條鏈也能使它們以最快速度進行通信。
在TON區塊鏈中,快速路由(Instant Hypercube Routing)和慢速路由(Slow Routing)是兩種用於處理跨鏈交易的路由機制。
! [TON白皮書解析: 揭秘世界上最快區塊鏈的背後技術]( https://lh7-us.googleusercontent.com/GtVq8UIFzgf8SaurVk_9wnZdMOZfxH1WR2d8fuGEykc6gJiHAlsG9HwpCL4f_CIDx7fMSvn1ir4fu3tfQSodm8MBtQQHGS5vOwHFIZkLkUj2O7KoouOF7Y6lXPVdsddgVMIKPCsJ2G7tuObisDyQnw)
快路由(Instant Hypercube Routing):TON提出的加快消息路由速度的想法,允許跨鏈交易在極短的時間內完成。 在傳統慢立方體路由過程中,一條消息是由一個分片鏈沿著超立方體網路路由到目的分片鏈。 但是在消息路由過程中,這個消息的目的分片鏈所屬的的驗證器(validator)可以選擇提前處理這條消息加入區塊,然後提供一個merkel證明(收據),發送回執來銷毀掉這條正在傳輸的消息。 它允許跨鏈交易在極短的時間內完成。 快路由通過構建一個高維立方體(hypercube)的路由結構,實現了高效的跨鏈交互。 在這種結構中,每個鏈都被映射到立方體的一個頂點,而鏈之間的距離表示為頂點之間的跳數。 通過這種方法,交易可以在最短路徑上快速路由,從而實現跨鏈交互的高效性。 快速路由可以在數秒內完成跨鏈交易,而無需等待區塊確認。
慢速路由(Slow Routing):慢路由是一種相對傳統的跨鏈交易處理方法,它通過將交易從源鏈逐步轉移到目標鏈來實現。 在這種方法中,交易首先在源鏈上被打包到一個區塊中,然後通過中繼器(relayer)將其轉移到目標鏈。 目標鏈的驗證者會驗證交易的有效性,然後將其打包到目標鏈的一個區塊中。 慢速路由相對於快速路由的優勢在於它提供了更高的安全性和去中心化程度,因為跨鏈交易需要經過完整的區塊確認過程。 類似TCP/IP網路,通過目的IP位址尋址發送到目的地,能夠保證消息按順序可靠傳播到目的鏈。 對於一個規模為N的分片鏈超立方體網路,需要經過的中間分片鏈hop = log16(N)-1。 因此,只需要4個路由節點(中間分片鏈),就能支援百萬條的分片鏈。
**為什麼要這麼設計? **
分散式需要驗證節點。 如果系統非常龐大要有幾萬個節點,負擔過重無法展開擴展。 分片之後每一個分片有一個集合,shard0,shard1...... 又要做到跨shard通信。 通信是可以跨分片的,從一個到一個分片,就意味分片和分片要有一個路由機制。 連接形成一個路由,通過某些中間節點跳過去。 資訊每經過一次路由,相當於傳輸時間增加一個區塊時間。
而隨著分片鏈總數增長,這將需要大量的計算能力和網路頻寬,從而限制系統的可擴充性。 因此,不可能直接從任何一個分片直接傳遞消息到其他所有分片。 相反,每個分片只與在它們(w,s)分片標識碼的一個十六進位數位上不同的分片“連接”。 通過這種方式,所有分片鏈構成一個「超立方體」圖,消息沿著這個超立方體的邊傳遞。
如果消息被發送到與當前不同的分片,當前分片標識碼的一個十六進位數字(確定性地選擇)將被目標分片的相應數位所取代,結果標識符將作為近似目標,成為轉發消息的接受者。
超立方路由的主要優勢在於區塊有效性條件,創建分片鏈區塊的驗證者必須收集和處理“相鄰”分片鏈的輸出佇列中的消息,否則就會失去他們的staking。 通過這種方式,可以預期任何消息遲早會到達其最終目的地; 消息既不會在傳輸過程中丟失也不會被重複傳遞。
超立方路由引入了一些額外的延遲和費用,因為需要通過幾個中間分片鏈轉發消息。 但是,這些中間分片鏈的數量增長非常緩慢,與總分片鏈數 N 的對數log N相關。
通信異步
TON 上的智慧合約實行的是通信異步, 可以把TON 上的智慧合約類比成互聯網微服務。 每個微服務僅對其本地數據進行原子同步訪問。 兩個微服務之間的通信涉及通過網路發送異步消息。
系統架構中,更大的系統往往需要架構微服務。 這種分散式方法需要付出一些trade off才能採用,但可以帶來用戶體驗的好處。 現代系統管理依賴於像 Kubernetes 這樣的序列器來獲取一組容器化微服務,並按需自動啟動新實例(自動縮放),並在機器之間有效地對其進行分區。
用 Kubernetes (大規模集群管理系統)做類比,這正是 TON 所做的事情。 隨著特定分片鏈上的負載增加,它被分成兩部分。 由於智慧合約是原子的,因此它們永遠不會被分成兩半。 這意味著曾經位於同一個分片鏈上的一些智能合約有一天可能會發現自己位於不同的分片鏈上。
TON 的虛擬機(TVM)正在將分散式微服務的概念應用到對標乙太坊 EVM 的整體架構中。
狀態去中心化
這是分片領域最為複雜、最具有挑戰性的一種分片機制。 整個資料庫被分開,分別放在了不同的分片上。 每個分片儲存自己分片中的所有數據,而不是整個區塊鏈的狀態。
TON區塊鏈分片中,所有服務都以智慧合約的方式實現,智慧合約的狀態數據也只在對應的分片網路中保存,以此來實現狀態分片。
不僅如此,在TON中,合約實現了一種業界絕無僅有的實現路徑,每個使用者都能在自己的合約管理通證狀態,真正實現了從區塊鏈狀態上的去中心化。 我通過案例詳細探討這種設計的原理。
首先,需要瞭解Wallet contract和Jetton wallet contract。 Wallet contract是一個使用者專屬的智慧合約,用於管理使用者在TON區塊鏈上的代幣。 Jetton(俄語:寶石) wallet contract則是一種特殊的Wallet contract,專門用於管理使用者的Jetton通證。 這些通證可用於支付網路費用和執行智能合約。 每個使用者都有自己的Wallet contract和Jetton wallet contract。 這些合約充當使用者的數位錢包,用於存儲和管理通證。 與此同時,這些合約還可以與其他使用者的合約進行交互,實現去中心化的資產轉移和交易。
此時假設使用者A和使用者B分別擁有自己的Walletcontract。 使用者A想要向使用者B轉帳一定數量的通證。 在這種情況下,使用者A的Wallet contract會與使用者B的Wallet contract進行交互,實現通證的轉移。 整個過程不需要依賴於一個中心化的合約,而是通過兩個去中心化的合約來實現。
TON區塊鏈的用戶都擁有自己的合約來管理資產狀態,這意味著不存在唯一中心化合約承擔管理所有資產的風險。 從而提高了系統的去中心化程度,降低了單點故障的風險。 所有使用者的資產狀態由一個專屬的合約管理,攻擊者無法通過攻擊單一的中心化合約來影響整個系統。 使用者之間的資產交易也可以通過智慧合約自動執行,避免了人為操作的風險。 還可以根據需求定製自己的Wallet contract和Jetton wallet contract,實現更多的功能和應用場景。 這為使用者提供了更大的靈活性和自主權。 每個人都在自己的合約中管理資產狀態,系統的可擴展性得到了提高。 隨著用戶數量的增加,合約的數量也會相應增加,但這不會對整個系統造成過大的壓力,因為每個合約都是獨立運行的。
以上是我對TON區塊鏈可擴充性以及白皮書技術架構理念的分析,感謝Dr.Awesome Doge對第一版初稿做出了編輯。 感謝俄羅斯和烏克蘭開發團隊堅持不懈的深耕,最後感謝Telegram創始人Nikolai Durov先生在多年前的偉大設計,而這些都是為了人類心智的榮耀。