この記事ではイーサリアムでDapps開発をするための事前知識をまとめていこうと思います。
(定期更新!)
対象となる読者:
Dapps開発入門者
あまり記事を書いたことがないのでつたないところも多いと思いますが読んでためになるようにこころがけるのでよろしくお願いします。
ビットコインとは
ビットコインについて初心者なりに整理して理解を深めたいなということでかいてみました。
ビットコインの特徴
いきなりまとめのようになりますが、ビットコインの特徴を箇条書きで列挙していきます。
- ブロックチェーンの元祖
- 2008年にサトシ・ナカモトによってビットコインが発明され、その実装がOSSとして公開され、2009年に利用が開始された
- 中央銀行や単一の管理者を持たない分散型のデジタル通過であり、仲介者を必要とせず、P2P(Peer to Peer)でビットコインネットワーク上でユーザーからユーザーへとビットコインを送信することで取引ができる
- 通貨単位はBTC
- 各ユーザーのBTC残高をブロックチェーンで管理している
- Bitcoinの場合は、誰かが勝手に自分のBitcoin残高を増やしたり、人の持っているBitcoinを送金したりすることはできない
Bitcoinの使い道
Bitcoinを購入して実際にどのような利用の仕方があるのかをまとめてみました。
有名企業のギフトカードを購入することができる
AmazonやUverなど有名企業のギフトカードを購入することができます。
アメリカのサイトではありますが、coingateというサイトで購入可能なギフトカードが一覧できます。
coingate
https://coingate.com/gift-cards/category/all
1円以下のものでも取引することが可能ということもBitcoinの特徴であるといえます。
金を購入することができる
APMEXという、金が買えるサイトでもBitcoinを利用することができます。
https://www.apmex.com/
Bitcoinの入手方法
bitFlyerなどの仮想通貨取引所でBitkoinを購入できます。
アプリ上で簡単に購入できました。ただし、仮想通貨取引所に口座開設し、円を入金するまでのほうが体力使います。。
一度購入したBitcoinは、またそれを売って円やドルに換金をすることもできます。
「法廷通貨と換金性がある。」というらしいです。
ビットコインまとめ
Bitcoinとは、いわばインターネット上にしか存在しないお金と考えておけばいいと思います。
ブロックチェーン
ブロックチェーンの基礎知識については以下の記事がわかりやすくて参考になりました。
ブロックチェーンとは
ブロックチェーンは、分散型ネットワークに暗号技術を組み合わせ、複数のコンピュータで取引情報などのデータを同期して記録する手法。
- 分散型ネットワーク
複数のコンピュータからなるシステムを分散システムと呼び、その分散システムを構成しているネットワークを分散型ネットワークと呼ぶらしいです。
WEBサーバー、DBサーバーなどを組み合わせて成り立つ一般的なシステムも分散システムです。
ブロックチェーンの特徴
複数のコンピュータでデータが同期されることから、記録の改ざんや不正取引を防止しやすいという特徴をもつ。
ブロックチェーンの仕組み
ブロックと呼ばれるデータの単位を生成し、時系列に沿ってチェーンのようにつないでいくことによってデータベースを作っている。
ブロックチェーンの技術
主な特徴を列挙します。
- 暗号化技術(詰めて並べる)
トランザクション(取引)の情報をブロックチェーンの箱に詰めてチェーンとして並べる構造となっているらしいです。
イメージをつかむために図を作成しました。
取引データをブロックという単位の箱(オブジェクト)に詰めて、ブロックには1つ前のブロックのデータから生成されるハッシュ値(previout_hash)を持たせます。
1つ前のブロックから生成されるハッシュ値とprevious_hashで論理的につなげることでチェーン状につなげられたブロック、つまりブロックチェーンが構成されます。
取引データ(transaction)はまずトランザクションプールといわれる仮置き場にリスト状に蓄えられ、ある程度の段階でプールからまるごとブロックに詰められチェーンにつなげられていきます。
トランザクションのデータ構造はこんな感じです。
transaction = {
'sender_blockchain_address': 送る側のアカウントアドレス,
'recipient_blockchain_address': 受け取る側のアカウントアドレス,
'value': 金額(トークン量)
}
- コンセンサスアルゴリズム(みんなで合意の判子を押す)
BitcoinではPoW(Proof-of-Work)という「マイニングが速いひとが信頼される」ルールで合意形成をされています。
- P2P(リーダーはいない)
P2P(Peer to Peer)とは、サーバーを介さずに端末同士で直接データファイルを共有することができる通信技術のことです。
データを分散することでネットワークの通信負荷を下げるというメリットがあります。
- DLT分散型台帳技術(記録をみんなで持つ)
Ethereum(イーサリアム)とは
Ethereumについても主な特徴を列挙します。
- ヴィタリック・ブテリン氏によって2013年に開発が始まったブロックチェーン
- Ethereumで使用される仮想通貨をイーサ(ETH)という
- ETHはEthereumでのコントラクト実行の手数料の支払いに使われる
- ETHの現在時価総額はBitcoinに次ぐ第2位(約20超円)
- Ethereumはスマートコントラクト(プログラム)の実行機能を備えており、分散型アプリケーション(dApps)のプラットフォームを提供している
- Bitcoinにはプログラムの実行機能はない
- 分散されたバリデーター(検証者)たちがスマートコントラクトが正しく実行されたことを確認する
- Proof of Stakeによるコンセンサス