Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

ビットコイン

proof-of-work のpython スクリプト

Mastering Bitcoinの proof-of-work アルゴリズムのPythonスクリプトにコメントをつけてみました。特に難しくはないですね。 import hashlib import time max_nonce = 2 ** 32 # 4 billion def proof_of_work(header, difficulty_bits): # target は difficu…

Bitcoin Base58Checksum について

Mastering Bitcoin の Base58Checksum のコードにわかりやすくコメントを付けました。 #include <bitcoin/bitcoin.hpp> int main() { // Private secret key. bc::ec_secret secret; bool success = bc::decode_base16(secret, "038109007313a5807b2eccc082c8c3fbb988a973cacf1a7d</bitcoin/bitcoin.hpp>…

Bitcoin CAmount について

ソースコードを読んでいて、CAmount ってなんだったっけ? てよくなるので、メモamount.h #ifndef BITCOIN_AMOUNT_H #define BITCOIN_AMOUNT_H #include <stdint.h> /** Amount in satoshis (Can be negative) */ typedef int64_t CAmount; // 1BTC = 100000000satoshi</stdint.h>…

pybitcointools を使った鍵操作 Bitcoin

pybitcointoolsについては、github.comで見てください。ちなみにブテリンはEthereumの創業者です。 import pybitcointools as bitcoin # learn more: https://python.org/pypi/pybitcointools # 秘密鍵を作成 valid_private_key = False while not valid_pri…

ビットコイン difficulty target と retargeting 

difficulty target は係数部/指数部形式で表す。指数部(exponent),係数部(coefficient)で target = coefficient * 2^(8 * (exponent - 3))^はXORです。またDifficultyはブロックの生成期間を10分に保つように動的に変化します。Difficultyは2016ブロックごと…

ビットコイン マイニング報酬のソースコードリーディング

ビットコインのマイニング報酬のコードを見ていきます。マイニング報酬は、トランザクション手数料の総額 + coinbase報酬coinbase報酬(BlockSubsidy)は50bitcoinから始まって、210000ブロックごとに半減していきます。以下のコードでcoinbase報酬を出します…

ビットコインの総発行量を求めるスクリプト

ビットコインの発行量は時間とともに少なくなっていきます。新しいビットコインはマイニングの報酬という形で生成されます。210000ブロックごと、およそ4年ごとに発行量は半減されていきます。以下のスクリプト(Python2)で総発行量を求めてみます。 # マイニ…

フルタイムでBitcoinの研究を始めました。

ある程度、C++やデータ構造、暗号、P2P、の基礎を理解できたので、本格的にBitcoinやEthereumの研究を始めて、しばらくはフルタイムのコントリビューターになろうと思います。だいたい2020年くらいまで、研究を続けて、その後、なにか本格的なビジネスが始め…

ブロックチェーン・ビットコインを学ぶのに最適な書籍

2017/5/20 更新 ブロックチェーンエンジニアになろうと決めてから色々勉強したので、おすすめの書籍を簡単にまとめてみようと思います。 bitcoin ブロックチェーンを理解するには、p2p 暗号 プログラミング 経済 とかなり幅広い知識が必要になります。頑…

ブロックチェーン・ビットコインを理解できる 動画

ブロックチェーンについてわかりやすい動画をいくつか引っ張ってきた。全部Tedだけどね、、、まあTEDは日本語字幕があるからかなり有能www.youtube.comwww.youtube.comwww.youtube.com頑張って勉強しましょうあと関係ないけどこれも面白いwww.youtube.com英…

ビットコインコア(satoshiクライアント) コンパイル

Githubからコードをcloneしてコンパイルするやり方を書いていきます。普通にインストールしたい人は、Choose your wallet - Bitcoin からbitcoincoreをインストールしてください。エンジニアの人はソースコードからコンパイルしましょう。 Bitcoin Coreとは …

ビットコイン・ブロックチェーン重要用語まとめ

アドレス ビットコインアドレスは、1Hi47hjdyujdoJifjOIDJi745hfieHie93Iufeiu のような「1」から始まる数字と文字です。ビットコインをビットコインアドレスに送ることができます。EメールをEメールアドレスに送るのと同じようなもの。ビットコイン(bitcoin…

Ethereum Metamask を試してみる

Ethereumをいじってみようと思ってとりあえず、Dappsで遊んでみようと dapps.ethercasts.com に行ったところ何やらMetamaskかmintが必要らしいということで、とりあえず今回はMetamaskを導入してみました。Metamaskとは EthereumのID管理プラグイン MetaMask…

ブロックチェーン 入門 ビットコインを支える技術

ブロックチェーンはIoTや人工知能(DeepLearning)などと並んで、バズワードとなっています。ブロックチェーンの勉強もちゃんとしなくてはいかんということで、PyConJPの動画と BLOCKCHAIN REVOLUTION(ダイヤモンド)を読んだので少しまとめてみる。ブロックチ…