ビットコインのウォレットを作ってみる
暗号資産(仮想通貨)におけるブロックチェーン開発を行うにあたって、必要となるのが「ウォレット」という存在です。それを今回は作っていこうと思います。
ウォレットとは?
暗号資産のウォレットとは、通貨を保管する場所のことです。ウォレットには、財布という意味がありますので、暗号資産用の電子財布と理解すればよいでしょう。
暗号資産(仮想通貨)のウォレットとは?特徴や種類は? より.
ウォレットに必要なもの
基本的にウォレットとして必要なものは,ウォレットのID = ウォレットアドレス が一番にあがります.
今回ではその他にも,送金などにも必要な公開鍵と秘密鍵の生成を同時に行います.
ウォレットアドレス,公開鍵,秘密鍵の生成をする.
注意事項
今回は,"bitcoinjs-lib"を使用しています.記事では,バージョン6.1.3を使用しており,バージョン,4や5の場合と挙動が大きく違いますので,その場合は別の記事を読んでください.(下の方に参考を書いておきます.)
ウォレットアドレス / 公開鍵 / 秘密鍵の生成
// bitcoinjs-lib@6.1.3
const bitcoin = require('bitcoinjs-lib')
const { ECPairFactory } = require('ecpair')
const ecc = require('tiny-secp256k1')
const ECPair = ECPairFactory(ecc);
// ウォレットの生成
function createWallet() {
//select testnet
const network = bitcoin.networks.testnet;
const keyPair = ECPair.makeRandom(network)
// genetare addresss by Pay to Public Key [Hash]
// P2PKHはLocking Scriptに送金相手のPublicKey:公開鍵のRIPEMD160(SHA256(PublicKey))したハッシュ値を含むLockgin Scriptで送金することを言います。
const { address } = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey })
console.log("address: " + address)
var publicKey = keyPair.publicKey.toString('hex')
console.log("public key: " + publicKey)
var privateKey = keyPair.toWIF()
console.log("private key: " + privateKey)
}
function main() {
createWallet();
}
// execuse
main();
Bitcoin faucet
送金体験とかをするために,ちょっとだけbitcoinをもらっておく.
バージョン4または5の方向けの記事