BCH新舊位址

2021-10-16 01:16:08 字數 1781 閱讀 1557

bitcoin cash從0.16.2版本開始推出了cashaddr格式,老的位元幣格式的位址被稱為legacy(遺產)位址,公升級節點至0.16.2後,所有的rpc位址展示都用了cashaddr格式,包括listunspent,listtransactions,validateaddress等常用的rpc命令。

新位址是和老位址一一對應的,它們對應了同乙個私鑰,只是換了種寫法

新位址可以傳送餘額給老位址,老位址可以傳送餘額到新位址

新位址是大小寫不敏感的,可以全部轉成大寫,也可以全部轉成小寫,優先小寫格式,同一位址不能大小寫混用

新位址的字首可寫可不寫,老位址沒有字首,通過首字元來標識型別

新位址用base32編碼,老位址用base58編碼

自從位元幣分叉出bch以來,兩個分叉幣就逐漸地往不同的方向走了,軟分叉的btc支援了隔離見證,也增加了隔離見證位址等功能,預設生成新位址(getnewaddress)是p2sh-segwit隔離見證位址了,如果想要生成其它格式的位址,可以使用address_type來指定位址型別,例如要生成原始格式位址,address_type要填legacy。現在,bitcoin cash也有了自己的位址格式,而且推薦使用者優先選用新的位址格式。

bch的新位址格式類似這樣:

bitcoincash:qpg6rgmpxr838cnwjhatdyuxkdz644xku54fe5yk99

bchtest:qqfpw4e90jhanpz2uspe29czwswgk5rd9v3yczymwq

開頭是乙個網路名,後面是乙個q開頭的base32編碼的字串,包含了版本號、公鑰雜湊值、校檢碼等資訊,它們根據一些規則來拼接成這樣乙個位址,具體原理請參考這裡。

新弄乙個位址格式的初衷,在於區別老位址和新位址,以免使用者充錯幣。例如充錯btc到bch位址,由於bch已經做了防重放攻擊,這樣相當於將btc打過去了與bch位址相同的乙個btc位址上去了,要找回的話還挺麻煩,需要將bch錢包的私鑰,匯入到btc錢包上,才能將幣打出,類似的將bch充值到btc位址也一樣。如果私鑰不由自己掌握,或者交易所、錢包等商家不提供找回服務,那麼這個幣就相當於丟了。有些服務商為了防止使用者打錯,乾脆將btc和bch位址充值位址弄成一致的,這樣使用者就不會打錯了,即使打錯了,也是充值到自己的賬號去,可以隨時提走。

新格式解決了一些問題,然而也帶來了一些問題,特別是在新舊格式交替的過程中,會使人懵逼,一會新位址格式,一會老位址格式,雖然背後都是同乙個私鑰,但是人閱讀起來還是有非常大差別。全部人都用老位址格式,或者全部人用新位址格式,都不會有問題,部分人使用新位址格式,部分人使用老的,就會像語言障礙一樣,需要轉換一下,才能看得懂。

除了新老位址混用的問題,其次新位址看起來其實蠻醜的,使用小寫使得整個位址看起來密集,冗長,雖然開發者說是為了更易於書寫和閱讀,其實完全沒有起到這個作用,比起 18sdnmjlma9pjlnyr2mjth8fndwyhq26vp 這樣的老位址,實在是難看了很多,老的位元幣位址其實經過了精心的設計,通過base58編碼,避免了一些容易看錯的字母和數字;使用首字母來標識型別,能夠讓人一眼知道這是個啥位址,比如m或n開頭的,是乙個測試環境位址,而1開頭是正式環境位址,如果是3開頭的,那麼它是乙個p2sh位址。新位址格式,通過前面的版本號來看位址所屬的網路,不能再輕鬆看出差別了,新位址格式的確沒有老位址那麼簡潔易用。

不過,目前走到這步,也都需要支援新位址格式,這樣才能盡快解決這個相容問題,讓人們不再去關注這種差別,而可以自然地使用bch。bitcoin cash開發者的方向,也應該將精力用在刀刃上,去解決那些更重要的問題,而不是解決乙個問題,引入另外乙個問題,因為要解決類似這種位址相容的問題,需要漫長的時間等待所有人都用上新位址,甚至直到永遠,也還是有人用老位址,這樣總是要做相容,這是非常不好的實踐。

Hadoop 新舊MapReduce API比較

hadoop高階教程 新舊mapreduce api比較,從0.20.0版本開始,hadoop同時提供了新舊兩套mapreduce api。新api在舊api基礎上進行了封裝,使得其在擴充套件性和易用性方面更好。新舊版mapreduce api的主要區別如下。1 存放位置 舊版api放在org.ap...

refs之新舊差異

官方 refs 提供了一種方式,用於訪問在 render 方法中建立的 dom 節點或 react 元素。16.3版本 refs 使用方式 1.首先使用react.createref 建立refs 2.使用ref屬性獲取react元素 一般賦予在虛擬dom上 設定refs class mycompo...

mapreduce新舊api對比

對比 hadoop版本1.x 新版,hadoop版本0.x 舊版 1.新api引用包一般是mapreduce 舊版api引用的包一般是mapred 2.新api使用job,舊版api使用jobconf 3.新api類的包名使用mapreduce,舊版api使用mapred 4.新api使用job.w...