kharukaのブログ~お金と技術とキャリア~

Edu Fin~金融×教育~若いうちからお金について学ぶってだいじ!自分が学んだテクノロジーはみんなの財産!過去、今、将来の人生!についてのブログ

【FLOC】FLOC ブロックチェーン大学校(エンジニアコース二期)に入学 Genesis Block (2019年3月8日更新)

エンジニアスクールFLOC

ビットコインとブロックチェーン

ビットコインとブロックチェーン

環境情報

OS

OS バージョン 備考
macOS Mojava 10.14.1 ホストOS
Oracle VM VirtualBox 5.2.22
Ubuntu 18.04.1LTS ゲストOS

Node.js

Node.js バージョン 備考
npm 6.4.1
node v10.13.0

環境構築

▼環境構築の仕方はこちらなどをご参考に。

はじめてのCounterpartyノード構築Part1(2018年9月29日更新) - kharukaのブログ~お金と技術とキャリア~

Node.jsダウンロード

ダウンロード | Node.js

Node.jsインストール

はじめてのNode.jsインストール(2019年3月2日更新) - kharukaのブログ~お金と技術とキャリア~

FLOC ブロックチェーン大学校 エンジニアコース(二期)

コース概要

エンジニア、プログラマを対象にした、ブロックチェーン開発者になるためのスキルが身につきます。実践的かつ応用的なプログラミング技術習得を目指すコース。

受講対象

ブロックチェーン技術者として活躍したい、あるいはフィンテック業界で働きたい方

学習内容

Genesis Block

ブロックチェーンの基礎構造理解と開発環境準備

ハッシュ関数を使った秘密鍵と公開鍵作成

ウォレットの作成

Block 1

UTXO

未署名取引の作成

送金しよう

Block 2

P2Pの仕組みの理解

P2Pの仕組みの構築

コンセンサス・アルゴリズムの理解

Block 3

コンセンサス・アルゴリズムと拡張

ブロックチェーンを作る 前編

ブロックチェーンを作る 後編

Genesis Block

FLOC ブロックチェーン大学校に初めての登校。

ホグワーツ魔法魔術学校に向かうハリーのような気持ち。

組分け帽子がなかったところが残念。

これは余談ですが、

私の寮はスリザリンです!

ハリー・ポッターと賢者の石 グリフィンドール(20周年記念版)

ハリー・ポッターと賢者の石 グリフィンドール(20周年記念版)

ハリー・ポッターと賢者の石 レイブンクロー(20周年記念版)

ハリー・ポッターと賢者の石 レイブンクロー(20周年記念版)

ハリー・ポッターと賢者の石 ハッフルパフ(20周年記念版)

ハリー・ポッターと賢者の石 ハッフルパフ(20周年記念版)

ハリー・ポッターと賢者の石 スリザリン(20周年記念版)

ハリー・ポッターと賢者の石 スリザリン(20周年記念版)

FLOCブロックチェーン大学校校長のジョナサン・アンダーウッド校長から

直々にブロックチェーンについて教えてもらえます。

まるでダンブルドア校長ですね。

ブロックチェーンの基礎構造理解と開発環境準備

早速、待ちに待った授業の開始です。

事前準備でNode.jsをインストールしてくる事が前提でしたので

エンジニアでしたら問題ないでしょう。。。

しかし、初日早々環境構築に苦労する参加者多数。笑

なんじゃこりゃ〜。

当日、bitcoinjs-libもインストールすることになりますが

エラー出まくり、特にWindows OSやmacOSユーザー。

Ubuntuもbitcoinjs-libインストール時に多少エラーが出ましたが

自力で何とかインストールにこぎつけました。

サポート対象外でしたが、Ubuntu様様です。

ご丁寧にサポートはしてくれるようです。今後は分かりません。

受講対象に以下項目を追記した方が良いなと思いました。

  • Node.jsエンジニア

  • Mastering Bitcoinを事前に通読している方

ハッシュ関数を使った秘密鍵と公開鍵作成

詳細について興味のある方はFLOC ブロックチェーン大学校に入学してみてください。

エンジニアスクールFLOC

若しくは、Mastering Bitcoinを読みましょう。

ざっくり書くと、

秘密鍵の生成(擬似乱数生成) ▶︎ 楕円曲線暗号 ▶︎ 公開鍵生成 ▶︎ ハッシュ関数 ▶︎ Bitcoinアドレス生成

以上のようになります。

ハッシュ関数では、

公開鍵 ▶︎ SHA256 ▶︎ RIPEMD160 ▶︎ Base58Check Encode with 0x00 version prefix

が行われています。

公開鍵(Public Key)にSHA256 ▶︎ RIPEMD160したものをPayloadと呼ぶことにします。

Base58Check Encode with 0x00 version prefixでは、

Payload ▶︎ Add Version Prefix ▶︎ Add first 4bytes as checksum ▶︎ Base 58 Encode

が行われています。

checksumは次のように求められます。

Payload with version prefix ▶︎ SHA256 ▶︎ SHA256

Bitcoinでは楕円曲線

y^{2} = x^{3} + 7

が採用されています。

ウォレットの作成

執筆中です。

▼記事の続きは以下へ。

執筆中です。

仮想通貨取引所・販売所

  • bitbank

https://bitcoinbank.co.jp

https://bitflyer.com/ex/sp/home

【BITPoint】ビットコイン・イーサリアムなど仮想通貨の口座開設ならビットポイント

https://coincheck.com/ja/

https://bitcoin.dmm.com

フィスコ仮想通貨取引所 口座開設プロモーション

  • Liquid by Quoine

https://ja.quoinex.com

  • SBI Virtual Currencies

https://www.sbivc.co.jp

ハードウェアウォレット

  • Ledger Nano S

  • トレザー

ソフトウェアウォレット

  • Ginco

Ginco - 安心・安全の仮想通貨ウォレット

参考

ビットコインとブロックチェーン

ビットコインとブロックチェーン