如果说“手机节点”,究竟需要证明什么?
Gene Son • Xode • OMNI node design ·
在手机上运行区块链轻节点并不容易,但可以实现。真正困难的是引入奖励之后:设计必须保持诚实,并且能够验证。
“手机节点”究竟意味着什么
移动 DePIN 应用常说“你的手机就是节点”。但很多时候,这只意味着服务器定期发送信号,手机显示自己在线。OMNI 用状态标志区分这些不同的说法。
较弱的说法: 直接从链上接收
我绕过后端,从链 RPC 获取了最新区块。中间环节减少了,但这仍可能只是别人告诉我的数字。
较强的说法: 手机自行验证
设备中的轻客户端直接检查了最终性。手机自行验证链,而不是相信别人交给它的数字。
第二个标志表示原生 smoldot 轻客户端是否完成了 Warp Sync。值为 0 就表示尚未验证。没有验证,就不应声称已验证。这是当前设计中不太方便、却很重要的一点。
引入奖励后,问题就变了。节点可以获得奖励时,有人可能会寻找最容易的办法来伪装成节点,而不是真正运行节点。
DePIN 的难点不在于让工作发生,而在于证明工作确实发生了。
为什么心跳可以说谎
最简单的心跳会对服务器报告的区块高度签名。签名能证明是谁发送了回答,却不能证明答案正确。验证发生在哪里,会改变心跳的含义。
服务器 → 手机: “我签署了别人告诉我的数字”
链
P2P → 手机 · smoldot
最终性验证: “这台设备直接跟踪了链”
验证发生的位置会改变心跳的含义仅有验证还不够。即使设备正确验证过,也可能持续报告过时状态。因此,这个承诺需要分成三个层次。
LAYER 1: 这个节点是否真的跟踪了链?
端上轻客户端自行验证链,而不是照单全收服务器的回答。
LAYER 2: 这是否是一台独立设备?
硬件密钥将钱包与设备绑定,让克隆或冒充变得更困难。
LAYER 3: 是否持续发生了新的参与?
确认设备仍然在线并持续参与。账户可能还在,但设备可能已经停止运行。
诚实地说明失败
关键是不要把“正在运行”和“已验证”合并成一个状态。手机可以已经连接,但轻客户端仍在同步。这两者并不相同。
屏幕上的绿灯也许让人安心,却不等于网络已经证明了什么。同一个数字,来源不同,含义也不同。
数字相同,来源不同,表达的事实也不同。验证方式很重要。
电池和流量是真实的限制
手机不是服务器。电池和流量费用由用户承担。轻客户端必须保持轻量,应用也应该透明说明存储空间和网络用量。
首次同步可能需要时间。在 Warp Sync 完成之前,应用不应显示已验证。诚实地呈现状态,也是赢得用户信任的一部分。
这些不是文案细节,而是构建 DePIN 应用时必须面对的现实约束。性能和验证都很重要,不能隐瞒任何一方。
总结
称手机为节点,需要回答三个问题:它是否跟踪链(轻客户端)、能否证明这一点(验证与设备身份),以及能否持续运行(电池与流量)。
缺少任何一项,其他部分都会失去意义。没有验证的节点会造成误导;没有证明的奖励会引来刷量;隐藏成本的设计也无法长久。