qTON白皮书解析:揭秘世界上最高TPS区块链的背後技术 | 行情 | Binance官方网站

TON白皮书解析:揭秘世界上最高TPS区块链的背後技术

十月底 TON 公链创造了新的 TPS 世界纪录,TON 基金会的 Vivi 针对白皮书做出了官方的诠释与解读。
(前情提要:TON 链上生态报告:趋势与机会,如何在 TON 生态中找到切入口 )
(背景补充:杜拜开绿灯!XRP与TON获金管局核准,DIFC合格企业可开展交易服务 )

本文目录

2023 年 10 月 31 日,TON (原 Telegram Open Network) 创造了新的世界纪录,在首次公开效能直播测试中达到了每秒 104,715 笔交易的惊人峰值,在 25 分钟内完成了总计 107,652,545 笔交易。经 Certik 验证和确认,这一效能使 TON 成为世界上速度最快、可扩容性最强的区块链,超过了所有 L1 区块链和 PayPal、Visa 和 Mastercard 等着名中心化支付网路的处理速度。

TON 无疑是一个令人瞩目的专案。本文将对 TON 白皮书进行深入解析,揭示其独特的技术特性和创新之处,为何 TON 能成为世界上最快的区块链。

扩容难题

在区块链技术的发展过程中,可扩容性一直是一个巨大的难题。区块链的扩容方案主要是为了提升系统的吞吐量和降低交易费用,使得区块链网路能够处理更多的交易并更好地适应大规模应用。尽管不同的公链不断尝试新的共识和架构设计,但目前的结果依然不如人意,成为区块链走向大规模应用的瓶颈,难以承载我们 TG 十亿使用者的愿景。目前主流的扩容方案可以分为以下几类:

TON 区块链的设计者,来自於 Telegram 创办人及核心团队。作为全球最受欢迎的社交平台之一,Telegram 拥有月活跃使用者近 9 亿,在具备高度的安全性和隐私性的同时,也提供了稳定和流畅的使用者体验,每天软体内传输数百亿条讯息。web3 理念已经相对家喻户晓,但实际上的加密原生使用者依旧是少数者,多数人依赖中心化的交易所接触通证。世界上最流行的去中心化加密钱包 Metamask 目前的月活仅 3000 万。而 TON 的设计理念,从一开始基於服务数十亿使用者而不仅仅只是少数 web3 极客。

延伸阅读:LD Capital: TON背靠Telegram,打开8亿用户Web3大门

无限分片正规化

分片是一个来自资料库设计的概念。它指的是将一个大的逻辑资料集分割,然後分布到多个互不共享的资料库中,这些资料库可以分布在多个伺服器上。简单来说,分片提供了水平扩容的能力,允许将资料分解为可以并行处理的独立部分。

TON 并非首个将分片技术引入到区块链中的专案,例如,以太坊 2.0 曾经宣布了固定的 64 个分片後因难度太大放弃,而 NEAR 的夜影协议计划在明年实现 100 个分片,目前现行分片有 4 个。

延伸阅读:NEAR:夜影分片第一阶段上线,如何变革 DeFi 产业?

与传统的分片方法不同,TON 采用了无限分片的策略。

然而,TON 的方法之所以被视为先进,并不是因为其拥有更多的分片,而是因为以下两个独特之处:

目前,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)是两种用於处理跨链交易的路由机制。

快路由(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 分别拥有自己的 Wallet contract。使用者 A 想要向用户 B 转帐一定数量的通证。在这种情况下,使用者 A 的 Wallet contract 会与使用者 B 的 Wallet contract 进行互动,实现通证的转移。整个过程不需要依赖於一个中心化的合约,而是通过两个去中心化的合约来实现。

TON 区块链的使用者都拥有自己的合约来管理资产状态,这意味着不存在唯一中心化合约承担管理所有资产的风险。从而提高了系统的去中心化程度,降低了单点故障的风险。所有使用者的资产状态由一个专属的合约管理,攻击者无法通过攻击单一的中心化合约来影响整个系统。使用者之间的资产交易也可以通过智慧合约自动执行,避免了人为操作的风险。还可以根据需求订制自己的 Wallet contract 和 Jetton wallet contract,实现更多的功能和应用场景。这为使用者提供了更大的灵活性和自主权。每个人都在自己的合约中管理资产状态,系统的可扩容性得到了提高。随着使用者数量的增加,合约的数量也会相应增加,但这不会对整个系统造成过大的压力,因为每个合约都是独立执行的。

以上是我对 TON 区块链可扩容性以及白皮书技术架构理念的分析,感谢 Dr.Awesome Doge 对第一版初稿做出了编辑。感谢俄罗斯和乌克兰开发团队坚持不懈的深耕,最後感谢 Telegram 创办人 Nikolai Durov 先生在多年前的伟大设计,而这些都是为了人类心智的荣耀。

📍相关报导📍

链上储存》TON Storage和Arweave优缺点大比拼

TON 基金会深谈:怎麽打造Telegram「Web3超级应用生态」

OKX Ventures研报:投资视角看TON生态的历史、技术和生态建设

Leave a Reply

Your email address will not be published. Required fields are marked *