作者:温晓桦、吴阳煜、岑大师
雷锋网AI金融评论报道,去中心化即使通讯工具Telegram于2018年1月表示计划推出自己的区块链平台——TON(Telegram Open Network,“Telegram开源网络”),以及将发行加密货币来进行聊天工具的支付等功能。
作为一款主打隐私安全的加密即时通讯应用,Telegram采用端对端加密,所有内容不会通过其服务器;它的私密聊天功能可以在用户退出登录时自动删除聊天记录。这些特点使得Telegram摇身一变成为币圈最受欢迎的通讯工具之一。而宣布将加入支付功能的Telegram,即被业内誉为是区块链界的“微信”。
而对于未来将推出的TON,业内也给予了厚望。本文将从团队、产品本身的系统架构、技术创新、应用场景、生态建设、技术挑战等来对该项目进行深度解析。
关于Telegram及其创始人的传奇故事,请戳《Telegram传奇:俄罗斯富豪、黑客高手、极权和阴谋…...》。
据雷锋网AI金融评论了解,Telegram发布的白皮书介绍称,Telegram开放网络(Telegram Open Network,简称 TON),是由以下几个部分组成:
一个灵活的多区块链平台,简称 TON 区块链,每秒能够处理几百万次的交易,带有图灵完备的智能合约、可升级的区块链参数、多种加密货币价值转移,并支持小额支付渠道和链下支付渠道。TON 区块链带来了一些独特的全新特点,例如可以“自愈”的垂直区块链机制和即时超立方体路由,使其快速、可靠、可扩展并能保持自我一致性。
一个P2P网络,简称 TON 网络,用来访问 TON 区块链、发送候选交易并只接收关于客户感兴趣的区块链部分的更新,例如与客户的账户和智能合约有关的部分,但是也支持随机分布的服务,无论是否与区块链有关。
一个分布式文档存储技术,简称 TON 存储,可以通过 TON 网络访问,是 TON 区块链用来存档区块和状态数据的拷贝文档,也可以用来给用户或其他平台运行的服务存储随机文档,使用类似种子的访问技术。
一个网络代理/匿名层,称为 TON 代理,类似隐形网计划 I2P,在需要时用来隐藏 TON 网络的身份和 IP 地址,例如包含大量加密货币的账户进行交易所用的节点,或者高风险区块链验证节点,可以隐藏准确的 IP 地址和地理位置,以防御 DDoS 攻击。
一个类似 Kademlia 的分布式散列表,称为 TON DHT,用作 TON 存储的“种子追踪器”、TON 代理的 “输入隧道定位器”和 TON 服务的服务定位器。
一个用于随机服务的平台,称为 TON 服务,存在于 TON 网络和 TON 代理之上,并可通过其访问。带有类似浏览器或者智能手机应用的交互界面,这些界面和持续服务入口点可以在 TON 区块链上发布。任意时刻,提供服务的实际节点可以从在 TON 区块链发布的信息开始,通过 TON DHT 查询。服务可以在 TON 区块链里创建智能合约,为客户提供一定的担保。
TON DNS,一种可以为账户、智能合约、服务和网络节点提供人类可读的名字的服务。
TON 支付,一个小额支付、小额支付渠道和小额支付渠道网络的平台。可以用作快速的链下价值转移和支付 TON 服务支持的服务。
TON 可以很方便地融入第三方聊天和社交网络应用,因此使得区块链技术和分布式服务终于不再仅限于是一小部分加密货币的早期采用者。我们会以我们自己的项目 Telegram Messenger 为例子详细讨论。
白皮书介绍称,TON 区块链是 TON 项目的核心,其他的部分也可以算是为区块链发挥支持作用。TON区块链事实上是区块链的合集,该项目称,“没有哪个单个区块链能够实现我们的目标,每秒钟处理数以百万计的交易。因为目前的单个区块链,每秒钟只能处理几十个交易。”
据介绍,TON 区块链解决交易性能障碍的方案——其称之为“无限分片( Infinite Sharding Paradigm)”。
这也是TON所谓最核心的创新“链中链”。
据TON技术白皮书介绍,TON的区块链可被看作是若干区块链的集合,或被称为“区块链的区块链”,原因在于,项目方认为,任何一条单链的项目,都无法适用于百万级TPS的交易吞吐量,而仅能达到每秒数十次的交易速度。具体来讲,在TNO的区块链集合里,首先要有一条主链的存在,用以储存协议、基础参数的设置等基本信息量,其中还包含了它的验证系统、用户的资产,及最为重要的 ,是在下面提到的工作链(workchains)和分链(shardchains)和在它们中最近生成的哈希值。
其次,对于TON里面的工作链而言,在TON项目中的数量最高能达到2的32次方,其实际负责链上的交易处理,特别是加入了智能合约自执行的交易。具体来说,不同的工作链在处理交易的过程中承担着不同的角色,这意味着对于不同形式的账户地址、不同的交易形式、不同的智能合约虚拟机甚至不同的虚拟货币结算方式都有着不同的工作链对应处理,实现在不同的工作链中统一的交互标准,彼此交流无碍。
这些总数为2的32次方的工作链,在处理交易时再细分为2的60次方数量的分链,凭借每个账户地址开头字节来负责管理账户的分集。
换句话说,这些分链在系统中被设置以后,由于它们具有统一的区块模型和生成规则,与以太坊的“分片”扩容协议颇有相似之处。
据介绍,TON使用主链使工作链和分片链紧密耦合。一旦将分片链区块的hash嵌入到主链的区块中,则那一分片链区块和它所有的祖先节点将被统一看作是“典范”,意思是其后的所有分片链的区块都可将其视作固定不变的参照。事实上,每一个新的分片链区块都包含了一个最新主链区块的hash,并且对于新的区块来说,所有从主链区块参考获得的分片链区块,都可以被看作是不变的。
据雷锋网AI金融评论了解,从本质上来看,这意味着分片链区块中提交的交易或消息可被安全地用于其他分片链的下一区块,并且基于之前的交易,在运送信息或采取其他行动之前,不需要等待,比方说,进行20次确认(例如,在同一区块链中,源区块之后产生了20个区块),这和大部分的松散耦合系统相同,例如EOS。
基于这样的技术,TON团队预计每个分片链和主链每5秒会产生一个新的区块。这将产生相对较小的交易确认时间。所有分片链的新区块几乎同时产生;主链的新区块会在将近1秒后产生,因为它必须包含所有分片链最新区块的hash。
TON项目白皮书介绍称,一个相对不那么复杂的系统可能会使用静态分片——例如,通过使用高8位账户ID在256个预定义分片中进行选择。而TON区块链的一整个重要特征就是它实行动态分片,这意味着分片的数量是不固定的。
具体来说,正常情况下(如果原始分片的交易量在较长一段时间都足够高的话),(w,s)分片可以被自动细分为(w,s.0) 分片和(w,s.1)分片。相反,如果交易量在一段时间持续保持过低状态,则(w,s.0) 分片和 (w,s.1)分片将自动合并回(w,s)分片。【雷锋网AI金融评论注:TON每个分片链都由一组(w,s)来定义。W意为工作链ID (workchain ID),s意为分片前缀(shard prefix)。】
而在分链和主链中的每个区块,实际上也是小型区块链的表现形式。正常来说,这种“区块的区块链“或”垂直区块链“(vertical blockchain)由一个确切的区块构成,与分链关联起来。当出现需要对发生错误的分链区块做出修正时,一个全新的区块就会被植入这个垂直区块链,包括对无效区块的替代方案,或对较早版本的这个错误区块需要改变的地方做出描述。这样的修正方案,是TON查明无效区块后的具体解决机制,从而避免对涉及所有分链在内进行分叉操作。
具体而言,TON这套针对无效区块的解决机制,首先是通过验证器或系统中对区块有效性提出质询的节点来发现无效的分链区块。对于以往多数区块链系统,对无效区块和错误交易的修正主要是通过“回滚“(rolling back)到不受无效区块错误信息传播影响的最后区块来达到目的。但是这种办法有着很显著的缺陷,即其中同时发生的一大批正确的已提交的交易被突然回滚,在之后处理中会否被证明有效也未可知。
在TON区块链中,通过在分链和主链中植入包含不同区块版本或关于错误的描述的小型区块来解决问题。当一个无效区块被确认并提交至主链区块后,它将会被允许继续生成新的区块,进行繁殖。而一旦无效区块被确认提交以后,由于生成的全新垂直区块无法对之前的区块做出改变,所以植入的修正区块的哈希值需要在主链区块进行公布,对之前受无效区块影响、参考其生成的区块链都会进行更新,新生成的区块会参照之后修正的正确版本作为替代。
白皮书还写道,
TON的区块生成规则还禁止未受到错误区块影响的账户做出改变。通过这样的方式,来对已经广播信息的不正确区块做出修正,并改变与其最近的区块,逐渐修复所有受影响的分链和主链。
而一旦解决方案以“重写历史“的方式来修正最近的区块,这些新生成的分链区块将只会遵循一个版本,并参考最早含有正确交易信息的区块,达到链上的一致性。
据雷锋网AI金融评论了解,TON项目方认为,在结构上TON区块链和EOS、PolkaDot 项目有着相似之处,但却要比后两者更为复杂。按照白皮书的分类,TON是目前唯一一种“混合同质多样化“的区块链系统(Mixed heterogeneous-homogeneous systems),据其解释,即为其已开发了拥有数个不同类型的区块链,但它们遵循同样的协议规则。作为对比,TON项目方认为EOS和PolkaDot是第四代区块链的象征:多链设置、PoS的激励机制、松散耦合的结构及有智能合约的技术支持。
TON项目白皮书称,我们目前的分类方式是将所有的区块链项目分为几个大类。不过,我们所用的分类标准也是与实践相关的。这让我们能提出一种简化的“生成式”方法来分类区块链项目,作为现实的一种大致近似。例如:
• 第一代:单一链,PoW,没有智能合约的支持。例子:比特币(2009)和很多其他模仿者(Litecoin、Monero等),也是因此才变得有意思。
• 第二代:单一链,PoW,带有智能合约的支持。例子:以太坊(2013,2015年运行),至少其初始形式是一个例子。
• 第三代:单一链,PoS,带有智能合约支持。例子:未来的以太坊(2018及以后)。
• 另一种第三代:多个链,PoS,无智能合约支持,松散配对。例子:Bitshares (2013-2014,使用DPOS)。
• 第四代:多个链,PoS,带有智能合约支持,松散配对。例子:EOS(2017,使用DPOS),PolkaDot(2016,使用 BFT)。
• 第五代:多个链,PoS,带有BFT和智能合约支持,紧密配对,带有分片。例子:TON(2017)。
而作为首个“第五代“区块链项目,TON不仅是一个引入拜占庭容错和在多链结构上通用PoS激励机制的区块链项目,实现了可分裂的工作链和分片链条的结构设置,并且以紧密耦合来适用于分片中的信息传播,来保证所有分链的状态一致性。
因此,项目方将TON概括为一个真实可扩容的区块链项目,能够适用于目前在普遍区块链环境开发的任意应用落地。
但在目前,要想将FB这样的大型社交应用完全上载至区块链,从技术上说几乎不可能。项目方认为,TON这样使用紧密耦合来进行分片的区块链项目固然能具有更大的规模,但FB这样的社交应用实在过于大型,对于信息传递和用户及朋友在分链上的交流产生延迟。
和传统中心化结构使用CPU运行代码相比,区块链的虚拟机在储存和运行速度上都明显处于下风。尽管如TON这样通过引入特定的工作链来处理具体的事务能够部分解决这些问题,但囿于区块链本身交易登记、在默克尔树计算和检查等限制,据项目方保守估计,需要多出一百台服务器,才能在区块链上实FB这样规模的社交网络性能。
由此,项目方认为如图片等数据没有必要全部上链,也是基于这个考虑,除去上述TON区块链的设置以外,TON项目还包括了链下的分布式储存设计和P2P点对点的网络,来围绕TON的区块链共同提供服务(这也引出了TON中的不同应用类型,在本文随后将会进行介绍)。
如在白皮书一开头的介绍中所言,“你可以将TON想象成一个巨大的分布式超级计算机,或者说是一个巨大的“超级服务器”,用于主机和提供各种服务。”在这个分布式超级计算机中,文件和日志存储相当于硬盘,雾计算平台相当于CPU。多区块链平台相当于操作系统,DAPP相当于各种程序。基于TON区块链技术的应用范畴,可以涵盖货币、金融、经济、社会的诸多领域。
TON的一个特点是它是以DAPP而非智能合约为核心,TON的设计是设计成DAPP的平台,TON是一个“真正可以扩展的区块链项目,基本上可以适应任何区块链上的应用。”(见白皮书 P.78)
DAPP(Distributed applications,分布式应用):是基于区块链的应用,应用完全开源、自治,并且能够根据市场的反馈及技术要求进行升级,但是升级必须由应用的用户达成共识之后才可以进行。DAPP前端与用户交互,合约与区块链交互,比特币就是一个典型的DAPP。
在DAPP平台上,每个DAPP相当于一个DAPP链,为保证DAPP的合约的可靠性,与合约相关的内容都需要上链,但如果所有信息都上链,那必然会导致区块膨胀和智能合约处理能力的降低。如我们熟悉的以太坊平台,你只需要把你的应用部署在Ethereum上,应用的运行就可以由所有的Ethereum节点来保证了;但实际上,以太坊的TPS偏低,无法满足大规模、高交互的商业应用,前段时间的虚拟猫CryptoKitty造成以太网瘫痪就是一个例子。
按TON的设想,为保证如Airbnb、Uber、Facebook等超级应用在链上的性能,需要支持百万级TPS的吞吐。TON将允许与第三方消息传递和社交网络应用轻松集成,从而实现区块链技术和分布式服务最终可供普通用户使用。在TON的“Blockchain of Blockchain”架构中,每个DAPP在TON等于一个工作区块链(Working Blockchains),而每个工作区块链又可以进一步分为若干个分片块链(Shard Blockchain),自动将网络划分成较小的部分,每个分片都运行一个小规模的共识协议,通过多个联网验证机器(Validators)的并行处理能力运行,从而可以加快交易处理速度,保证超级应用上链的性能。
在解决了超级应用上链的性能后,TON区块链的应用场景也更为广阔,而不仅仅局限于过去在担保信用、金融服务、征信、资源共享、物联网等典型应用。在TON上的核心应用大致可分为几个大方向:
分布式的文件和日志存储:TON Blockchain用于存储存档块和状态数据的副本,但也可用于存储用户或运行在其上的其他服务的任意文件;
雾计算:当人们想要执行一些特定的计算(例如3D渲染或者训练神经网络),通常需要特定和昂贵的硬件。那些拥有这种设备的人可能会通TON网络出租计算能力,双方通过智能合同交易;
TON支付与交易:典型场景如“闪电网络”(见白皮书P. 120, 5.2),公共TON支付节点不仅需要与其他节点建立付款渠道,还会发布可以在之后联系使用的抽象地址,或者在智能合约中包含抽象网络地址创建付款渠道等。随着更多的交易平台加入TON网络,无缝、低摩擦以及低风险的有价值交换的重要性也越来越大。
以太坊的推出是区块链发展的一个重要里程碑。其打造了一个基于区块链的底层操作系统,在这个平台上可以创建各种应用软件。虽然以太坊拥有强大的智能合约能力,但其交易确认速度偏低,Gas费用越来越高也是阻碍其进一步发展的因素。
TON和以太坊都在打造一个DAPP生态平台,但在技术实现和细节上有一定不同。在性能方面,TON为商用分布式应用设计,具有强大的网络性能优势,可以支持多个DAPP同时运行;如果TON平台得以实现,那么在上面更容易诞生重量级的应用。
TON区块链上的应用可分为:
链上应用:所有数据和处理都在TON区块链上的应用;
链下应用:所有数据和处理都在TON区块链外,通过TON网络可以连接到服务器;
混合应用:部分数据和处理在TON区块链中其余的在TON网络可以连接到的服务器上。
总体来讲,链上应用的优点包括:不需要运行服务器或存储其数据(在“区块链”中运行,也就是说,在即在验证器的硬件上),并且享有区块链的极高的可靠性和可访问性。开发者只需开发软件和从验证者哪里租用计算能力,等等。但在某些场景中,在链下存储和处理某些数据可能比链上执行智能合约的成本更低,开发者可根据应用性质选择不同方式灵活开发应用(例如:TON存储以链下应用运行,TON支付以混合方式运行)
为保证不同应用间的交互,客户端应用程序(包括钱包、TON浏览器等)可以下载界面、驻留在TON网络和TON Proxy中,并以统一的方式与智能合约和TON服务等相关实体进行交互。这些形式化的接口可以与浏览器或智能手机应用进行交互,并在TON区块链中发布(参见P.110, 4.3.17),从而保证了平台的可扩展性,同时也降低了用户门槛,让用户感觉不到区块链的存在。
在区块链开发平台上,DAPP的经济系统由其背后的代币支撑,开发者通过代币实现收益。例如,以太坊是目前最流行的区块链开发平台,2017年有许多区块链ICO项目基于以太坊开发,这也推动了以太币价格的一路走高,但Telegram团队认为,代币价格的大幅波动并不利于DAPP生态系统的建设,因此TON也设置了一套特别的代币(TON Coin,Gram)价格机制来防止价格的大涨大跌:
总共发行5x109个Gram的代币,其中部分(约20%)通过挖矿挖出,4%用于奖励在TON区块链上的DAPP开发者,打造生态系统;
基金会储备池定价发行与市场定价结合保证价格平稳。第一个Gram的发行价格为0.1美元,之后每售出的每一个Gram都比前一个Gram价格略微提高(是前一个Gram价格的1+10-9倍)。照此计算,第5x109个Gram的价格约为第一个Gram价格的149倍,而这也成为了Gram公开发售价格的理论上限(但随着整个生态系统的壮大,随后的市场交易价格会突破这个数字);
Gram价格平稳定价的机制为:当市场上有n个Gram在流通时如果Gram的市场价格高于根据公司计算的理论价格即p(n)=0.1*(1+10-9)n时,市场将从基金会购买Gram,达到价格的均衡;当Gram价格低于理论价格p(n)时,所有代币的需求将通过公开市场交易来完成;而当市场价格低于0.5*p(n)时,基金会将会回购部分Gram,减少市面上流通的Gram的n值,使得市场价格与通过n计算的理论值相符。
值得一提的是,Telegram背后是一流的数学和工程团队+开源+重金安全悬赏作为产品性能和信任的支撑。
团队的创始人之一Nikolai Durov,即Telegram创始人Pavel Durov 的哥哥,wikipedia上对他的描述是“程序员,数学家”,此人参加了3次国际数学奥赛,拿回了3块金牌,又参加了4次国际信息学(计算机)奥赛,拿回了1块金牌和3块银牌……而Pavel在几次访谈和自述中提到过,Telegram团队中至少有6个人得过ACM竞赛大奖。并且都可以轻松拿到Google或者Facebook这个级别公司极好的Offer。
在刚刚过去的2017年,随着大量投资者进场,数字货币的价格节节走高,区块链社区也有“数字货币价格的走高是否透支了区块链的未来”的声音。Telegarm限制Gram价格的举动正是“让炒币的归炒币,区块链的归区块链”的对区块链建设的利好行为,希望在TON区块链正式上线后,能凭借自己的技术优势和理念吸引更多旨在做好DAPP及区块链应用的开发者,进一步壮大。
相关文章: