Web3新手系列:深入浅出了解TON及其应用
最近 TON 生态大热,各种 TON 上的小游戏层出不穷,不知道大家有没有玩过。TON 作为一个 L1 链,它相比于其他的链不同在哪,到底有什么优势,普通人在 TON 上能做什么。
TON 的介绍
TON(The Open Network)是一个去中心化的区块链网络,它诞生的目的是为了服务 Telegram 以亿为量级的用户,超高并发的交互需求的。大家熟知的链比如 BTC,十分钟出一个块,并且在一个块里面的交易数量是有上限的,显然是无法满足 Telegram 的要求,因此 TON 就应运而生。TON 目前可以处理每秒数百万笔交易。
TON 背靠着 Telegram 海量的用户群体,配合上 Telegram 推出的小程序框架,让 TON 有巨大的想象空间,也吸引了无数淘金人前来淘金。相比于之前的通过 WEB3 来扩展 WEB2 的用户群体,通过 Telegram 为媒介,以 WEB2 的方式让用户接触 WEB3,TON 似乎是走在了另一条道路上。
TON 技术上的特点
TON 技术上最大的技术特点就是高并发、高效率、可扩展。当然这似乎是每一个新链的标配了,那 TON 到底是如何做到的。
我们以 ETH 为例,在出块节点完成打包区块对交易进行排序之后,输入到 EVM 中进行处理,整个过程是一个 串行 的过程。这么做的好处是,结果是确定的,在处理一笔交易的时候不会有其他交易对状态进行变更,可以保证一致性。但是坏处也显而易见,TPS 会比较低。
TON 抛弃了串行执行的过程,采用了完全并行的架构进行。这里就需要解决两个关键问题:如何并行以及如何如何保证状态一致。
事件触发(一般来说是收到了外部消息,如转账)
执行合约的方法处理这个事件
更新合约的状态
发出消息(可选)
进入静默状态,等待下一个事件发生
可以看到这样处理之后,每一次交易都是并行独立的处理,每一次处理完都可以异步地发出消息来和其他的 Actor 进行交互。每个 Actor 会独自维护自己的状态,所以你会发现你在 TON 上的 Jetton(Token)会有一个独立的地址,因为 Jetton 的数量这个状态不会和你的 TON 数量在同一个 Actor 中维护。
为了好理解并且符合大家以往的认知,Actor 可以理解为钱包或者合约,消息的传递可以为合约的交互,大家只需要知道原本的意思即可。
其中按照黑虚线划分了区块,其中 101、 102、以及 103 是在一个区块里的同一条分片链上, 80 是在另一个分片链上,他们都是从 100 这个节点进行「分片」得到的;在 30 这个区块里面, 63 和 105 这两个节点由于交易量较少,在 31 这个区块中被合并成一个,即 106 。
以上知识笼统得介绍了整体的流程,下面介绍一下图中各个元素的具体含义。
1、账户链(AccountChain)
在 TON 中,一个账户对应的一系列交易按照一定的顺序组成一条链被称为账户链。在区块链中,保持执行的逻辑不变、交易的顺序不变,那么最后得到的状态也是一致的。不同的账户链可以被并行处理。
账户链并没有在上图中体现。
2、分片链(ShardChain)
分片链对应的就是上图中的数字节点。分片链由多个账户链组成,选取哪些账户链进行组合没有特别的要求,一般是取账户的前几位一致的作为合并的标准。多个分片链在一个区块中,可以由不同的节点进行并行处理。分片链是 TON 分片机制的执行单元,分片的操作主要在分片链上执行。
总结一下就是:账户链组成分片链,分片链组合为一个区块。
3、工作链(WorkChain)
分片链需要工作在工作链上,也就是上图中的蓝色线。工作链是一组有自己规则的区块链,每个人都可以在工作链上部署一条自己设置规则的链,只需要有 2/3 的验证者同意。TON 允许创建多达「 2 ^ 32 」个工作链,每个工作链则可以细分为多达「 2 ^ 60 」个分片。
目前 TON 上只有两个链,「 Basechain 」 以及「 Masterchain 」。工作链有些像 L2 的概念,有消息称会有一条新的工作链,来支持 EVM,这也是 TON 可扩展的一个体现。
4、主链(MasterChain)
TON 上可以有多条工作链,但是只有一条主链,主链的主要功能就是同步不同工作链的信息,达成状态上的共识。达成共识的方式也还是通过消息传递的方式,但是主链和工作链的消息传递费用较高,因此只会同步区块的关键信息。
在上图中也就是黑线描述的部分。