オルトコイン

ビットコインのブロックチェーン技術をベースに作られたビットコイン以外のブロックチェーンシステム、通貨をオルトコインという。 通貨を目的にしたものをオルトコイン、通貨以外の目的としたものをオルトチェーン。 Colored Coin Colored Coinは、ビットコ…

ブロックのチェーンの組み立て

ブロックの組み立て ビットコインは、3種類のブロックセットを持っている。 メインチェーン 累積difficultyが最も多くなっているチェーン (メインから枝分かれした)セカンダリチェーン ほとんど同時に同じブロック高を持つブロックが採掘された結果 親がい…

ブロックヘッダの構築

仕事が忙しくなりだして、いつのまにか3月に。。 ブロックヘッダのフォーマットは、前にも書いたように下のようになっているけど、ブロックヘッダについてもう一度まとめてみる。 ブロックヘッダ(Block Header)フォーマット サイズ フィールド名 説明 4バイ…

Satoshi Nakamotoのgenesisブロックメッセージ

ブロックチェーンのgenesisブロックといわれるSaoshi Nakamotoが作った一番最初のブロックのに刻んだメッセージをプログラムでみてみましょう。 ちなみにこのgenesisブロックは、libbitocoinのソースに組み込まれているそうです。 mastering bitcoinのソース…

トランザクションの優先度

試しにマイニングのプログラミング組みたいな~ということで、マイニング周りをマイニングっと。 トランザクションの優先度 マイニングする際、トランザクションの優先度 Priority = Sum( Value of input * Input Age)/Transaction Size 新しく小さいvalueイ…

generationトランザクション

generationトランザクション ブロックの最初に追加されるトランザクション。 マイニングの報酬(今は12.5bitcoin) + トランザクションから得られた総トランザクション手数料 をマイナーのアドレスに送るトランザクションを入れる。 インプットとしてUTXOを…

マークルツリー

ちょくちょく出てきたけど、よくわからなかったマークルツリー そんなに難しいものでもないんですね。 マークルツリー トランザクションAを2回SHA256にかける。それをHaとする。 また、トランザクションBを2回SHA256にかけたものをHbとする。 次は、Ha+Hbを…

ビットコインブロックの構造

ビットコインのブロックの構造のまとめ ブロック構造 サイズ フィールド名 説明 4バイト Block Size この次のフィールドからブロックの最後までのデータサイズ(バイト単位) 80バイト Block Header nonceなどいくつかのフィールドがこのヘッダフィールドに…

トランザクションscript

ビットコインは、locking scriptとunlocking scriptで有効性をチェックする。 locking scriptはアウトプットに置かれている解除条件で将来アウトプットを使用する際に満たさなければいけない条件 scriptは、ほぼほぼハッシュ値だが、逆ポーランド記法で書か…

Vanityアドレス

Vanityアドレスとは、人が読めるまたは意味のある文字列を含むアドレスのこと。 例えば、 1deconstructionxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx とかです。 アドレスは、最後にハッシュ関数を使っているので、メールアドレスのようにほしいアドレスを簡単にとる…

開発環境CLionとPyCharmのインストール

しばらく、ビットコインのフォーマット、構成の話が主だったので、気分転換に開発環境として C++で評判のよいCLionとPythonで評判の良いPyCharmをインストールしてみました。 CLionのインストールと起動 $ wget https://download.jetbrains.com/cpp/CLion-20…

非決定性ウォレットと決定性ウォレット、HDウォレット

ウォレットの種類をっと ウォレットの中に秘密鍵を複数入れれるんだけど、その入っている秘密鍵同士の関係性で 大きく2つの種類のウォレットに分かれるみたい。 非決定性(nondeterministic)ウォレット ウォレットの中の秘密鍵がランダムで、秘密鍵同士に関…

Bitcoin Explorerのインストール

データの変換とか細かいことをやるには、Bitcoin Explorerがいいとのことでインストール Bitcoin Explorerのインストール ソースのコンパイルには、めっちゃ時間かかったので、バイナリをダウンロードがいいかと。 $ mkdir bx $ cd bx $ wget https://github…

ビットコインアドレス

ビットコインのアドレスってどうやって生成されるのか疑問だったんですが、 Mastering bitcoinの続きにちゃんと載っていました。 ビットコインアドレス ビットコインアドレスは、簡単に言うと公開鍵のハッシュ値です。 ウォレットの公開鍵 ↓ SHA-256ハッシュ…

トランザクションの生成からビットコインの送信まで

今日は、いよいよビットコインを送信してみます! 送信するには、bitcoin-cliコマンドでは、ちょっと手間がかかります。 メインのマシンのノードからサブのマシンのノードへの送金が目標。 1.トランザクションの生成 ビットコインの送信をするために、まずは…

ビットコインのブロックをみてみる

自分の取引したトランザクションを見てみたので、それが格納されているブロックをみてみる。 getblockメソッドにブロックの値をいれて $ bitcoin-cli getblock 00000000000000082ab84277aadf237ce04f6d70b38caca05cec9da2ee3842e3 { "hash": "00000000000000…

トランザクションを見てみる

昨日、ようやくビットコインをゲットできたので(テスト用だけど) その取引の内容をみてみる。 1.トランザクションのリストを見る 自分が取引したトランザクション全部?をリストでみるには、 listtransactionsメソッドを使って $ bitcoin-cli listtransact…

ビットコインアドレスとテスト用ビットコインをゲット

電子メールにメアドがあるように、ビットコインを受け取るためのアドレスがあります。 作り方は簡単 $ bitcoin-cli getnewaddress test 2N3byN8F5qWyqD4g9youtAMpRtDHYQm9Bkw 以上、これだけ ひとりでいくつでも作ることができます。 このアドレスってウォレ…

ビットコインウォレット(お財布)の作成

bitcoindは、フルノード(って言うんだっけ)なので、世界の全部のブロックをためるからか、めちゃくちゃディスク食いますね。。 最初40Gにしてましたが、ディスクを200Gまで拡張させました。 さてさて、今日はビットコインのお財布となるウォレットの作成で…

bitcoindの起動とクライアントからの接続確認

1. bitcoin.confの作成 ホームディレクトリの下の.bitcoinにbitcoin.confファイルを作成します。 rpcuser=sawady # 認証時に使用する任意のユーザ名 rpcpassword=xxxx #認証時に使用するパスワード testnet=3 # (本番ネットワークじゃなくて)テストネットワ…

まずは、Bitcoin Coreをインストール

前回の初書き込みは、哲学がどうのこうのとか書いてましたが、今日から一気に技術よりに。 ブロックチェーン、ビットコインの技術は、マスタリングビットコインから手に取るのが王道みたいで、早速amazonから買ってしまいました。 けど、今日になって気づい…

deconstruction ブロックチェーンによる脱構築!?

はじめまして!? 最近、哲学を少しかじっていて、「deconstruction、脱構築」ということが議論されているそう。 「deconstruction、脱構築」は、wikipediaによると 「我々自身の哲学の営みそのものが、つねに古い構造を破壊し、新たな構造を生成している」 …