比特幣地址
你知道你的 比特幣地址 是你與全世界共享以獲得報酬的地址。
你可能知道你的錢包軟體使用 私鑰 來花費你在此地址上收到的錢。
金鑰不儲存在網路上,無需訪問Internet即可生成金鑰。
這是使用NBitcoin生成私鑰的方法:
Key privateKey = new Key(); //生成一個隨機私鑰
從私鑰中,我們使用單向加密函式來生成 公鑰 。
PubKey publicKey = privateKey.PubKey; Console.WriteLine(公鑰);//0251036303164f6c458e9f7abecb4e55e5ce9ec2b2f1d06d633c9653a07976560c
有兩個比特幣網路:
- TestNet 是一個用於開發目的的比特幣網路。這個網路上的比特幣一文不值。
- MainNet 是每個人都使用的比特幣網路。
注意:你可以使用 faucets
快速獲取測試網比特幣,只需谷歌 get testnet bitcoins
。
你可以從公鑰和應使用此地址的網路輕鬆獲取你的比特幣地址。
Console.WriteLine(publicKey.GetAddress(Network.Main)); // 1PUYsjwfNmX64wS368ZR5FMouTtUmvtmTY Console.WriteLine(publicKey.GetAddress(Network.TestNet)); // n3zWAo2eBnxLr3ueohXnuAa8mTVBhxmPhq
確切地說,比特幣地址由版本位元組(在兩個網路上都不同)和公鑰的雜湊位元組組成。這兩個位元組都連線在一起,然後編碼到Base58Check中:
var publicKeyHash = publicKey.Hash; Console.WriteLine(publicKeyHash); // f6889b21b5540353a29ed18c45ea0031280c42cf var mainNetAddress = publicKeyHash.GetAddress(Network.Main); var testNetAddress = publicKeyHash.GetAddress(Network.TestNet);
事實:使用公鑰上的SHA256雜湊生成公鑰雜湊,然後使用Big Endian表示法對結果使用RIPEMD160雜湊。該函式可能如下所示: RIPEMD160(SHA256(pubkey))
Base58Check編碼具有一些簡潔的功能,例如校驗和以防止打字錯誤以及缺少諸如 0
和 O
之類的模糊字元。
Base58Check編碼還提供了一種確定給定地址網路的一致方法;防止錢包將MainNet比特幣傳送到TestNet地址。
Console.WriteLine(mainNetAddress); // 1PUYsjwfNmX64wS368ZR5FMouTtUmvtmTY Console.WriteLine(testNetAddress); // n3zWAo2eBnxLr3ueohXnuAa8mTVBhxmPhq
提示:在MainNet上練習比特幣程式設計會讓錯誤更加難忘。
======================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的互動式線上程式設計實戰教程:
- java以太坊開發教程,主要是針對java和android程式設計師進行區塊鏈以太坊開發的web3j詳解。
- php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和交易等內容。
- python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
- 以太坊入門教程,主要介紹智慧合約與dapp應用開發,適合入門。
- 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
- ERC721以太坊通證實戰,課程以一個數字藝術品創作與分享DApp的實戰開發為主線,深入講解以太坊非同質化通證的概念、標準與開發方案。內容包含ERC-721標準的自主實現,講解OpenZeppelin合約程式碼庫二次開發,實戰專案採用Truffle,IPFS,實現了通證以及去中心化的通證交易所。
- C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智慧合約開發與互動、過濾器和交易等。
- EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智慧合約開發與部署、使用程式碼與智慧合約互動等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
- 深入淺出玩轉EOS錢包開發 ,本課程以手機EOS錢包的完整開發過程為主線,深入學習EOS區塊鏈應用開發,課程內容即涵蓋賬戶、計算資源、智慧合約、動作與交易等EOS區塊鏈的核心概念,同時也講解如何使用eosjs和eosjs-ecc開發包訪問EOS區塊鏈,以及如何在React前端應用中整合對EOS區塊鏈的支援。課程內容深入淺出,非常適合前端工程師深入學習EOS區塊鏈應用開發。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Java程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
- php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Php程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
- tendermint區塊鏈開發詳解 ,本課程適合希望使用tendermint進行區塊鏈開發的工程師,課程內容即包括tendermint應用開發模型中的核心概念,例如ABCI介面、默克爾樹、多版本狀態庫等,也包括代幣發行等豐富的實操程式碼,是go語言工程師快速入門區塊鏈開發的最佳選擇。
匯智網原創翻譯,轉載請標明出處。這裡是 比特幣地址