如果往錯誤的NEO地址轉賬會發生什麼

NEOGO發表於2018-12-26

昨天聊天有人用NEO往錯誤地址轉賬丟錢了

我的第一反應是這不可能

Neo使用的地址帶有驗證功能

最下面ARPP….G6ce這一串是個base58編碼

把他解開就是17….151f7b5f這一串

紅色部分才是真正使用的地址(scripthash),藍色部分是驗證值。

從理論上來說,你是無法隨便敲一個地址就轉賬的,基本都是無效地址,驗證值肯定是錯的。

那麼讓我們先來試驗一下

首先是NEOGUI

我往Aeyx……723v這個地址轉賬

我故意把中間輸錯一點

確定按鈕灰掉了,說明neogui做了這個驗證,沒有問題。

然後是藍鯨濤,我在藍鯨濤故意輸入了個錯地址

居然還是打勾的,

我的一個NEO沒了

(此BUG已經通知藍鯨濤方面,很快就會修復,這個介面如果輸入了錯誤地址,將會有提示,無法確認)

讓我們去看看究竟發生了什麼

根據理論這個不合法地址根本不可能在鏈上找到

我在鏈上找到了這筆交易

和我預計的一樣,地址其實變了

我轉到的錯誤地址是

ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6cd

實際轉到的地址是

ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6ce

注意尾部,是不一樣的

讓我們再拿出這張圖來分析,因為尾部資料是驗證碼。

如果不顧驗證碼暴力取出地址script_hash,再次生成地址字串的時候,尾部驗證碼會不同.

也就是說:

如果你使用一個未驗證過地址字串的客戶端,轉向一個錯誤地址。

其實是不可能的。

是因為客戶端的bug,實際上把你帶到了一個另一個地址。

比如你向ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6cd(無效地址)轉賬

實際會轉到ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6ce(有效地址)

這屬於錢包客戶端bug,我沒有去測試所有的客戶端,大家有興趣可以去測試。

放心,一旦坐實這個bug,你找他們把你的NEO退回來就有理有據有節了。

最應該關注地址的尾巴,因為你不可能轉向一個錯誤地址,他會把你帶到一個相似地址。


作者:李劍英

原文連結:www.cnblogs.com/crazylights…


相關文章