區塊鏈研究實驗室|基於Python的比特幣地址驗證開發教程

買賣虛擬貨幣

交易提供在擁有私鑰和比特幣地址的比特幣錢包之間轉移資產。私鑰確保交易來自錢包的所有者。您還可以在此處檢查如何生成比特幣地址和私鑰。區塊鏈研究實驗室|使用Python生成比特幣地址開發教程有幾種錢包型別,例如冷錢包和熱錢包。冷藏錢包意味著您將私鑰和比特幣地址保留為離線狀態。由於沒有網路,比特幣地址擁有者有責任對其進行安全保護。紙錢包被視為一種冷錢包。基本上它使比特幣地址和私鑰獨立於任何數字環境或計算機。因此它用於長期持有資產,而不用於即時買賣活動。有許多客戶端比特幣錢包生成器,它們生成比特幣地址和私鑰。通常記住比特幣地址和私鑰並不容易,因為它們來自各種數字和字元。因此它可以作為QR碼記錄在紙上,並可以輕鬆地從移動應用程式或此類應用程式讀取QR碼。生成區塊鏈地址後,您可以從此處檢查餘額和屬於該地址的交易;儘管客戶端頁面或其他來源會生成比特幣地址,而不會向外部傳送任何資訊,但是我們可以檢查餘額和交易,餘額顯示為0 BTC。此外當我們更改比特幣地址的一個字元時,會收到“Checksum does not exist!”的錯誤提示。該示例說明了如何確保我們的比特幣地址有效。您可以在下圖看到步驟;

讓我們開始研究如何驗證比特幣地址;步驟1:獲取我們要檢查的值是否有效。

bitcoinAddress=input("Enterabitcoinaddress:")print("--------------------------------------")print("BitcoinAddress:",bitcoinAddress)步驟2:我們將Base58解碼應用於在步驟1獲得的值。

base58Decoder=base58.b58decode(bitcoinAddress).hex()print("Base58Decoder:",base58Decoder)步驟3:在步驟2中建立的值將儲存network&hash和checksum值。我們嘗試檢查此校驗和值以驗證比特幣地址。

prefixAndHash=base58Decoder[:len(base58Decoder)-8]checksum=base58Decoder[len(base58Decoder)-8:]print("\t|___>Prefix&Hash:",prefixAndHash)print("\t|___>Checksum:",checksum)print("--------------------------------------")步驟4:根據上圖,我們將SHA256雜湊應用於從步驟3建立的作為Prefix&Hash的值。

hash=prefixAndHashforxinrange(1,3):hash=hashlib.sha256(binascii.unhexlify(hash)).hexdigest()print("Hash#",x,":",hash)print("--------------------------------------")步驟5:在步驟4中建立的值的前4個位元組被稱為Checksum。因此在步驟3中建立的校驗和值必須等於該值。

if(checksum==hash[:8]):print("[TRUE]checksumisvalid!")else:print("[FALSE]checksumisnotvalid!")最後,結果如下:

Enterabitcoinaddress:1Lw5rqh94dWzArQ9tDY6Ucswxo3Ums7VWi--------------------------------------BitcoinAddress:1Lw5rqh94dWzArQ9tDY6Ucswxo3Ums7VWiBase58Decoder:00daa4e87dcb30d406d24f76bcc2afe2ef550c9068b0a511fb|___>Prefix&Hash:00daa4e87dcb30d406d24f76bcc2afe2ef550c9068|___>Checksum:b0a511fb--------------------------------------Hash2:1d7d571d176f378eabd73b1e3ac0fb5a688855d41ae5ee8956afb9c13b5c7027Hash2:b0a511fb05bcf1872be44d98dad592c9641fe47ee7f48f1ecee18b6805bd4ba4--------------------------------------[TRUE]checksumisvalid!相關文章閱讀:區塊鏈研究實驗室|使用Python生成比特幣地址開發教程

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;