• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

初识 TON:账号、Token、交易与资产安全

  • 2024年8月09日 09:41

By:Johan背景

TON(TheOpenNetwork)是一个去中心化的Blockchain平台,由Telegram团队最初设计和开发。TON的目标是提供一个高性能和可扩展的Blockchain平台,以支持大规模的去中心化应用(DApps)和智能合约。

TON如此特殊,它是易用的,它与Telegram深度结合,使得普通人也能轻易使用Tokens;它又是复杂的,它与其他Blockchain有着截然不同的架构,而且使用非主流的FunC智能合约语言。今天我们从账号、Token、交易的角度讨论一下TON的特点及用户资产安全问题。TON的特点

账号生成

TON账号地址的生成方式与大多数Blockchain都不同,它是一个智能合约地址。首先,开局一个私钥,TON主要使用Ed25519算法生成公钥,生成流程如下:

0:b4c1b2ede12aa76f4a44353944258bcc8f99e9c7c474711a152c78b43218e296

以及用户友好形式,形如:

Tokens被分发给用户时,Minter合约会为用户部署一个钱包合约,并在合约初始化时记录用户的余额、所有权、TokensMinter合约地址、用户钱包代码等信息,每个用户都会独立部署一个合约。注意,这里创建的合约是用于管理特定JettonTokens的钱包合约,与用户的账号钱包合约并不相同,这里的owner_address记录的是用户的账号钱包地址。

当用户Alice给用户Bob转账时,调用关系如下:

交易

当TON中的某个帐户发生某些事件时,它会引发一笔交易,最常见的事件是“接收某个消息”,交易包括以下内容:

最初触发合约的传入消息(存在特殊的触发方式)

由传入消息引起的合约行动,例如更新合约的存储(可选)

发送给其他参与者的传出消息(可选)

首尾号钓鱼

首尾号钓鱼不是TON上才有,各大公链都存在这种钓鱼攻击。攻击者会为全网每个用户地址都生成一个首尾号相同的高仿账号,当用户发送一笔转账时,攻击者用高仿账号也尾随发送一笔小额转账,目的是在用户的收款记录里留下一个记录。当收款用户想要转回一笔Tokens时,可能会从历史记录里复制地址,这时很可能复制到攻击者的地址,导致转账到错误地址,攻击者可谓是精准拿捏用户的行为了。

comment钓鱼

TON在转账时可以添加一个comment,用于备注交易信息,这个功能在交易所充值时会频繁用到,交易所通常会要求用户在充值时备注一下用户ID。但这个功能经常会被恶意利用,攻击者通过在备注里写入欺诈信息来骗取用户的资产。如图所示:

用户尤其需要注意AnonymousTelegramNumber这个NFT,如果用户用AnonymousTelegramNumber开通了TG号,但没开Two-StepVerification,一旦这个NFT被钓走,黑客就可以直接登录目标TG号,实施后续的资产盗取及欺骗行为。

智能合约漏洞

智能合约的安全漏洞会导致用户放在智能合约的资金受损,用户在选择项目时需要选择经过良好审计的项目。TON的智能合约主要使用FunC语言来编程,也有使用更高级的Tact,或者更底层的Fift,都是原创程度很高的语言。新的编程语言会带来新的安全风险,特别是对开发者而言,要有安全编程的良好习惯,掌握最佳安全实践,并且在部署生产环境之前经过严格的安全审计,限于篇幅,本文暂不讨论合约安全。慢雾安全团队已推出TON智能合约安全审计服务,欢迎有审计需求的朋友一起探讨。

假充值攻击

钱包或交易所用户需要注意假充值攻击,通常有两种类型的假充值攻击:

假币,攻击者发行一个metadata和目标Tokens相同的Tokens,如果自动化入账程序没有检查这是否是正确的minter合约,那么就会导致错误入账。

反弹,TON的转账过程需要在两个用户的钱包合约之间发生调用关系,如果接收方的钱包合约不存在,并且交易设置为Bounceable,这时消息会被反弹,原始资金在扣除手续费后将返还给发送方。对细节感兴趣的朋友可以查看我们之前披露过的假充值文章。总结

本文从TON的公私钥创建、钱包合约、Token的形式、交易特性等角度介绍了TON的一些基础的技术原理,同时也探讨了使用TON的过程中可能存在的安全问题,希望能给大家的学习带来启发。

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM