本周,TON 区块链上的两种代币——Notcoin 和 DOGS——因进入吉尼斯世界纪录而成为头条新闻。 不,不是因为任何区块链创新,而是因为在迪拜上空创纪录的无人机表演。
尽管如此,本次活动的关注点可能会吸引人们对 TON 生态系统(包括其代币)的新关注。 这很棒……除非您对它们的第一次体验以混乱告终。
在 rabbit.io,我们已经看到它发生了。
想象一下:用户决定将其 USDT(在 TON 区块链上)提取到交易所或交换服务。 他们复制目标地址,使用他们的钱包发送代币——然后等待。 五分钟过去了。 十。 仍然一无所获。
“我丢失了我的代币吗?”
他们联系了支持人员,才得知交易确实完成了,但系统并未收到。
为什么? 因为转账缺少一个叫做 Jetton 通知 的东西。
此时,大多数用户都难以置信地反应:“等等,我不是加密货币新手! 我已经通过 Ethereum、BNB Chain、Polygon 转移了代币——以前从不需要通知!”
他们是对的。 这在其他链中并不常见。 但它在 TON 中是 至关重要的。
事实上,我们有几位长期的 rabbit.io 用户遇到了完全相同的问题。 那些多次使用过我们的平台、知道我们的流程快速流畅的人,并且回来期望获得同样的无缝体验。 但这一次,他们正在通过 TON 移动 Jetton,并且陷入了意外之中。
让我们来了解一下什么是 Jetton、这个神秘的通知有什么作用,以及为什么在 TON 中事情的工作方式略有不同。
在 TON 区块链上发行的每项资产(除了原生 Toncoin)都是使用名为 Jetton 的标准构建的——有点类似于 Ethereum 上的 ERC-20 代币。 简而言之,Jetton 是由智能合约管理的自定义代币。
但有一个转折。
TON 架构没有像 ERC-20 那样将余额保存在单个中心合约中,而是为每个用户提供了他们 自己的智能合约钱包(称为 Jetton 钱包),该钱包独立管理他们的余额。 这样想。 您将您的 Toncoin 保存在您自己的钱包中。 但是 Jetton 由专门的小型机器人管家存储和管理——代表您行事的智能合约。 他们不能窃取您的代币或滥用您的代币——但他们 只做他们被告知的事情。
那么代币转移是如何运作的?
假设 Alice 想向 Bob 发送 1 USDT(一个 Jetton)。
这就是我们所说的 裸转账——没有额外的数据,没有后续消息,没有“嘿,Bob,你刚刚得到了 1 USDT!” 转账是真实的。 余额更新。 但是,除非 Bob 手动检查,否则他可能永远不会知道它发生了。
这就是 Jetton 通知 的用武之地。
差异是显着的:
要触发通知,发送者必须附加:
根据 TON 标准,即使 1 个纳诺吨 (0.000000001 TON)也足以支付此费用——足以让接收者的 Jetton 钱包发送通知消息。
换句话说:为了确保接收者知道代币已到达,发送者必须用一小点 TON 和一张便条“提示” Jetton 钱包。
如果这种情况没有发生——如果发送者跳过了 TON 费用——那么 从技术上讲,代币仍然会到达。 它们现在由接收者的 Jetton 钱包持有。 但是,除非接收者手动检查区块链(通过资源管理器),否则他们甚至可能没有意识到这一点。
对于普通用户来说,这可能会令人困惑。 对于加密服务——例如交易所或交换平台——情况更糟:他们的自动化系统根本 不会检测到存款。
使用 TON 区块链的企业——在线商店、交易所、交换服务等等——严重依赖 自动化系统 来检测收到的付款。 这些系统的构建是为了监控 传入的消息 到特定地址。
简单来说,系统会一直询问:“这个钱包是否收到了关于代币转移的消息?”
如果收到这样的消息,系统会读取它:哪个代币、多少、谁发送的——并立即记入用户的帐户。
但是,如果转账是在 没有 Jetton 通知的情况下 发送的,则不会生成传入消息。 代币静默到达。 自动化脚本没有任何可以捕获的东西——因为没有可以检测的消息。
就像这样:想象一下,快递员给您带来一个包裹,但不是按响门铃,而是什么也不说就直接将它交给您的机器人管家。 你的管家呢? 他只在接到指示时才行动。 如果没有人告诉他要提醒你,他就会保持沉默。
因此,存款进入了一种悬而未决的状态。 系统“看不到”它——因此它永远不会被处理。
这就是为什么 TON 基金会强烈 建议 所有发送 Jetton 代币的服务默认情况下 启用 Jetton 通知。 否则,接收者(尤其是商业服务)根本 无法正确处理 传入的交易。
此要求已成为 TON 生态系统中的 事实标准:“如果您要发送 Jetton,则需要包含通知。”
然而,新手们经常会陷入这个陷阱。 如果他们的钱包让他们可以选择 不支付少量额外费用 来发送代币,他们通常会选择这样做——为什么要花比必要更多的钱呢?
但发生的事情是: “快递员”(发送者的 Jetton 钱包) 仅因交付 而获得报酬,而不是将消息传递给接收者的管家(另一侧的 Jetton 钱包)。 因此,它完全做了它所支付的事情——仅此而已。
结果,交易所、商店或服务 永远不会知道 发生了转账。 用户最终不得不联系支持人员并手动解决问题——这是一个可以完全避免的过程。
关于 Jetton 通知的整个情况可能看起来令人困惑——甚至对 TON 来说是独一无二的。 但事实上,许多其他区块链生态系统中存在类似的怪癖。 它们只是以不同的形式出现:
2023 年,比特币社区见证了 Ordinals 的兴起——一种将类似 NFT 的数据附加到各个 satoshis 的方式。 这些唯一标记的硬币通常被称为 稀有 sats 。
但这就是关键。 比特币协议本身 不区分 稀有 sat 和普通 sat。 标记和索引发生在更高的层上。
因此,如果您使用标准比特币交易将其中一个稀有 sats 发送到交易所,该平台将将其视为 仅 BTC 。 特殊的 Ordinal 数据可能会 永远丢失。
特殊资产需要特殊处理。 就像 Ordinals 需要特殊的钱包和工具一样,TON 上的 Jetton 代币需要 通过适当的通知 发送。
任何在交易所使用过 XRP、XLM 甚至 Toncoin 本身 的人都知道 备忘录 或 目的地标签。 这些是您在发送到共享存款地址时必须包含的小标识符。
如果您忘记添加备忘录或标签,资金仍然会到达——但交易所 无法将它们链接到您的帐户。 您的代币只是坐在那里,直到您打开支持票证。
Jetton 通知的工作方式类似。 添加到交易的评论或有效负载(即使是一个点或字母)既 标识了上下文 又 从技术上触发了通知。 没有它,接收者的系统可能无法识别或处理存款。
以太坊也有自己的怪癖。
如果您的钱包没有配置为显示的特定代币,您甚至可能不知道您收到了它——直到您检查 Etherscan。
诈骗者已经利用这种行为来发挥自己的优势:他们将新铸造的代币发送给知名持有者(“鲸鱼”)的钱包,以欺骗链上观察员。 一位没有经验的用户可能会想,“哇,这条鲸鱼刚刚购买了这个代币——我也应该加入!” 但鲸鱼甚至可能不知道代币在那里——因为他们的钱包没有显示它。
所有这些例子都显示了相同的核心真相。 每个区块链都有自己的代币处理规则。 如果您忽略它们,事情就会崩溃。
那么,您能做些什么来确保您在 TON 上的 Jetton 转账不会卡住或被忽视? 以下是一些实用技巧:
1. 在将 Jetton 发送到交易所或交换服务时,请务必包含备忘录(评论)。
大多数 TON 钱包在您发送代币时提供“评论”或“备忘录”字段。 即使是单个字符(例如点或字母)也足够了。 当您添加该字符时,钱包将自动包含生成 Jetton 通知所需的 1 纳诺吨 费用。
即使商家本身从未考虑过评论,通知 将会——这就是重要的。
2. 首先用少量金额进行测试。
如果接收者出于某种原因要求您 不要 包括评论,或者如果您不确定自己是否一切都做对了,请发送一个小的测试转账。 等待查看在发送全额之前是否已正确记入贷方。
这种小小的预防措施可以使您免于巨大的压力。
3. 使用可靠的钱包。
像 Tonkeeper、Tonhub 和 MyTonWallet 这样的现代 TON 钱包已经很好地处理了这个问题。 在大多数情况下,他们 在您发送代币时自动添加必要的 TON 费用和有效负载。
但是,如果您使用的是自定义脚本或旧版钱包应用程序,请小心——您可能需要 手动 设置 forward_ton_amount 和有效负载。 官方 TON 开发者 文档 明确表明,为确保接收者收到 Jetton 通知,请添加 1 纳诺吨并构建适当的 forward_payload(即评论或消息)。
4. 如果问题已经发生 - 采取行动。
假设您使用了 rabbit.io,在没有通知的情况下发送了 Jetton,并且交易没有自动完成。
不要惊慌。
收集详细信息交易哈希、时间戳、发送者和接收者地址——并联系支持团队。 在大多数情况下,他们将能够 手动找到您“丢失的”存款。 尽管如此,这需要时间。 它甚至可能会产生处理费 - 因此最好从一开始就 预防问题。
Jetton 通知不是一些可选的额外费用或隐藏费用 - 它是 TON 代币生态系统如何运作的 核心部分。
一旦您了解了 TON 上的转账是如何构建的,就很清楚仅仅“将代币发送到地址” 不足以 让系统注册存款。
TON 是一种异步模块化区块链。 在此处转移代币更像是 智能合约之间的对话——如果您没有明确告诉合约通知接收者,他们可能永远不会知道谈话发生过。
幸运的是,解决方案很简单 - 并且只需几秒钟。
只需按照您的钱包的建议和您的交易所或交换平台提供的说明进行操作:
有了它,您的交易将立即被自动化系统接收。
没有延误。 没有支持票证。 没有压力。