まずは、大雑把に理解したい場合向けビットコインなど暗号通貨の用語解説
暗号通貨やブロックチェーン技術勉強会の会話で使われる主な単語のまとめでもあります。以下がわかるとほぼ会話が理解できるかと思います。
前提知識
技術者を対象にしているので、以下は知っているものとする
- ハッシュ、ハッシュ関数 (SHA-256, scrypt)
- 電子署名、公開鍵認証(公開鍵、秘密鍵)
基礎用語
まずは、基礎用語の一覧。
Bitcoinの基礎用語
- ビットコイン
日本語だと一つだが、英語だと以下の2つの意味にわかれる。(個々のコインと額面を分ける場合もある)- Bitcoin (ビットコインのシステムやビットコイン・プロトコル)
- bitcoin(s) (暗号通貨) BTC と表記されることも
- アルトコイン (altcoin)
ライトコインをはじめとするビットコイン以外の暗号通貨の総称(500以上あると言われる) - 取引: トランザクション (tx)
- txin: トランザクションの入力
- txout: トランザクションの出力
- UTXO (Unspent Transaction Output): 使われてないトランザクションの出力
- coinbase transaction: input元がない初のトランザクション(Genesis Blockやマイニング報酬などのコイン生成時のトランザクション)
- ブロック (トランザクション・データの集まり + etc)
- ブロックチェーン (ブロックを連鎖させた取引履歴)
- nonce (採掘者が、前ブロックのハッシュ値の先頭が連続した0になるような、現在のブロックに含むナンスを見つけることで、ブロックを承認する)
- コンセンサス・アルゴリズム(分散型合意形成アルゴリズム)
- Proof of Work (働いたことの証明。Bitcoinでは、ターゲット以内のハッシュ値を計算する)
- Proof of Stake (コインの割合によるトランザクション承認) Proof of Stake とは何か? | block-chain.jp
- ビザンチン将軍問題 (複数ノードによる正しさの確認方法)
- (hot|cold) storage: hot がネットにつながった、cold がつながってないウォレット
- マルチシグネチャー: multi-sigunature
- 複数人の署名によって送金できるアドレス
- P2SH(Pay to Script Hash) マルチシグネチャ用の新しい仕様 (BIP 16を参照)
- マルチシグネチャの技術的説明 | block-chain.jp
- ハッシュ関数
- SHA256
- ECDSA (Elliptic Curve Digital Signature Algorithm)
- 楕円曲線DSA – Wikipedia
- Hashcash – Bitcoin
- マークル木 (Merkle Tree)
- Script
- 公式wiki: Script – Bitcoin
- トランザクション内で動作するForth言語のようなスタック型のスクリプト言語
- スタックにデータを入れ、オペコードで比較する
- 送金の署名の検証等に利用される
- Hardfork/Softfork
- 永遠に交わらないであろう(後方互換性のない)ブロックチェーンのフォーク: Hardfork – Bitcoin
- そのうち一つになるであろうブロックチェーンのフォーク Softfork – Bitcoin
- SPV:(Simplfied Payment Verification)
- SPV クライアント: フルノード(全ブロックチェーンのデータ)を持たないビットコインクライアント
- Scalability – Bitcoin
- ステルスアドレス
- ダークウォレット
- checkpoints : (Checkpoint Lockin)
- サイドチェーン: Bitcoin: サイドチェーン(sidechain)とは何か? | block-chain.jp
- オンチェーン/オフチェーン: ブロックチェーン上でトランザクションのやり取りをする場合、オンチェーン。そうでない場合、オフチェーンと言う。
- マイクロペイメント・チャネル: Micropayment Channels: 1対1でオフチェーンで細かい支払いを何回もすることができる支払い経路(先にチャネルを作りデポジットが必要) Bitcoin – What is Micropayment Channels? | block-chain.jp
- Lightning Network: マイクロペイメント・チャネルを応用し、ルーティングすることで多対多で少額の支払いができるようになる支払いネットワーク
ソフトウェア名
- bitcoind (Bitcoin deamon: P2Pノード、JSON-PRCなAPIを持つ)
- bitcoin-qt (client)
- bitcoinj (Java based client)
- btcd (Go実装)
セキュリティ
- 51%攻撃: マイニングパワーの51%以上を持つことで、自分のブロックチェーンのフォークを作る攻撃
- 二重支払い (ダブルスペンド): 同じコインを2回使う攻撃
- トランザクション展性(Transaction malleability): 電子署名の正当性を保ったまま、トランザクションを改ざんする攻撃
- PDF: 「ビットコインにおけるトランザクション、その展性と影響 」
- member.wide.ad.jp/tr/wide-tr-ideon-bitcoin-transaction2014-00.pdf
- エクリプス攻撃: P2Pネットワークを分断し、中間ノードで悪意のあるデータを双方に流す攻撃
Proof Of なんとか
- Proof of Work
- Proof of Stake (Peercoin)
- Delegated Proof of Stake
- Proof of Resource (MaidSafe)
- Proof of Burn (Couterpartyなど)
ビットコイン以外のプロジェクトの用語
- DAO, DAC
- Consensus (Ripple)
- IOU (Ripple)
コミュニティ系用語
- BIP: ビットコインの改善提案
Bitcoinを基盤とした次世代技術
よく言及されるコインやプロジェクトのみ列挙しました。
アルトコイン (Altcoins)
- Litecoin: Bitcoinの次の時価総額を持つコイン。Bitcoinのフォーク。違いは、マイニングアルゴリズムが、SHA256でなくscryptを利用(ASIC対策)、ブロックの承認が早い=送金が早い。
- Namecoin
- 名前の登録ができる。DNSなどに使われたりする。
- Bitcoinの技術 非集権型DNS Namecoin とは何か? | block-chain.jp
- Dash
次世代なシステム (Bitcoin 2.0)
ビットコインのブロックチェーンを利用するもの
- Colored Coin
- Mastercoin
- Counterparty
独自ブロックチェーンを使うもの
- Ethereum
- MaidSafe
- Storj
- P2PでDecentralizedなDropboxのようなストレージ
- BitShares
以下にBitcoin 2.0系資料をまとめました。
Bitcoin 2.0 とは? Bitcoin 2.0 資料まとめ | block-chain.jp
用語
- スマートコントラクト
- スマートプロパティ
上記用語の説明は以下を参考に。
用語説明まとめ
- nonce値
- ブロックに追加されるハッシュ値調整用のデータ
- nonceを探すこと = マイニング
- 最初に見つけると報酬として25BTC(現在の報酬値)が貰える
- Cryptocurrency – わかりやすいブロックチェイン(Block chain)とは何か? の説明 | block-chain.jp
- 現在のブロックチェーンのサイズ
Bitcoin Blockchain Size
Script関連技術用語
- OP_RETURN: トランザクションの終了を意味するが、その後にデータを入れて拡張する利用方法がある
- P2SH(Pay to Script Hash): 2012年4月: BIP13
- シグネチャ
- multi-sigunature
- Threshold signature
よく言及されるサイト、サービス
ビットコインのサービス
- Mt. Gox
- 渋谷にあった交換所。ビットコインがなくなり倒産したことで世界的に有名。
- Bitcoin Block Explorer – Blockchain.info
- ウォレット、ブロックチェーン情報の閲覧サイト
- Accept Bitcoin | BitPay
- ペイメント
- Bitcoin Wallet – Coinbase
ビットコイン系ニュースサイト
- コインデスク: Bitcoin News, Prices, Charts, Guides & Analysis – CoinDesk
- コインテレグラフ: The Future of Money: Latest FinTech news | Bitcoin news
有名な人
- Satoshi Nakamoto: ビットコインを作った人(論文を書き、実装もした人)
- Gavin Andresen: ビットコイン・デベロッパー
- Vitalik Buterin: Ethereum の co-creator
わかりやすいビットコインの技術的説明のスライド
暗号通貨の技術ユーザ会
下記ユーザ会にて、詳しい技術の詳細や勉強会を開催しています。