0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[JavaScript] ビットコインのウォレットを作成する

Posted at

ビットコインのウォレットを作ってみる

暗号資産(仮想通貨)におけるブロックチェーン開発を行うにあたって、必要となるのが「ウォレット」という存在です。それを今回は作っていこうと思います。

ウォレットとは?

暗号資産のウォレットとは、通貨を保管する場所のことです。ウォレットには、財布という意味がありますので、暗号資産用の電子財布と理解すればよいでしょう。

暗号資産(仮想通貨)のウォレットとは?特徴や種類は? より.


ウォレットに必要なもの

基本的にウォレットとして必要なものは,ウォレットの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の方向けの記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?