昨天聊天有人用NEO往错误地址转帐丢钱了html
个人第一反应是这不可能测试
Neo使用的地址带有验证功能ui
最下面ARPP….G6ce这一串是个base58编码编码
把他解开就是17….151f7b5f这一串spa
红色部分才是真正使用的地址(scripthash),蓝色部分是验证值。3d
那么让咱们先来试验一下htm
首先是NEOGUIblog
我往Aeyx……723v这个地址转帐ip
我故意把中间输错一点字符串
肯定按钮灰掉了,说明neogui作了这个验证,没有问题。
而后是蓝鲸涛,我在蓝鲸涛故意输入了个错地址
竟然仍是打勾的,
个人一个NEO没了
(此BUG已经通知蓝鲸涛方面,很快就会修复,这个界面若是输入了错误地址,将会有提示,没法确认)
让咱们去看看究竟发生了什么
根据理论这个不合法地址根本不可能在链上找到
我在链上找到了这笔交易
和我预计的同样,地址其实变了
我转到的错误地址是
ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6cd
实际转到的地址是
ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6ce
注意尾部,是不同的
让咱们再拿出这张图来分析,由于尾部数据是验证码。
若是不顾验证码暴力取出地址script_hash,再次生成地址字符串的时候,尾部验证码会不一样.
也就是说:
若是你使用一个未验证过地址字符串的客户端,转向一个错误地址。
实际上是不可能的。
是由于客户端的bug,实际上把你带到了一个另外一个地址。
好比你向ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6cd(无效地址)转帐
实际会转到ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6ce(有效地址)
这属于钱包客户端bug,我没有去测试全部的客户端,你们有兴趣能够去测试。
放心,一旦坐实这个bug,你找他们把你的NEO退回来就有理有据有节了。
最应该关注地址的尾巴,由于你不可能转向一个错误地址,他会把你带到一个类似地址。
做者:李剑英