1. 程式人生 > >如果往錯誤的NEO地址轉賬會發生什麽

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

和我 客戶 red 說明 技術 沒有 驗證碼 你是 很快

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

我的第一反應是這不可能

?

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

技術分享圖片

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

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

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

?

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

那麽讓我們先來試驗一下

技術分享圖片

首先是NEOGUI

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

我故意把中間輸錯一點

技術分享圖片

技術分享圖片

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

?

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

技術分享圖片

居然還是打勾的,

我的一個NEO沒了

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

?

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

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

我在鏈上找到了這筆交易

技術分享圖片

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

?

我轉到的錯誤地址是

ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6cd

實際轉到的地址是

ARPPoLhqsEuEAEeMUXsULEYm6qHys1G6ce

?

註意尾部,是不一樣的

技術分享圖片

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

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

?

也就是說:

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

其實是不可能的。

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

?

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

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

?

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

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

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

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