ブロックチェーンを教えて!
こういった悩みにお答えします.
本記事の信頼性
- リアルタイムシステムの研究歴12年.
- 東大教員の時に,英語でOS(Linuxカーネル)の授業.
- 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校(UNC)コンピュータサイエンス学部で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発.
- プログラミング歴15年以上,習得している言語: C/C++,Python,Solidity/Vyper,Java,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
- 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開.
- 2020年1月~現在はアメリカのノースカロライナ州チャペルヒルにあるGuarantee Happiness LLCのCTOとしてECサイト開発やWeb/SNSマーケティングの業務.2022年6月~現在はアメリカのノースカロライナ州チャペルヒルにあるJapanese Tar Heel, Inc.のCEO兼CTO.
- 最近は自然言語処理AIとイーサリアムに関する有益な情報発信に従事.
- (AI全般を含む)自然言語処理AIの論文の日本語訳や,AIチャットボット(ChatGPT,Auto-GPT,Gemini(旧Bard)など)の記事を50本以上執筆.アメリカのサンフランシスコ(広義のシリコンバレー)の会社でプロンプトエンジニア・マネージャー・Quality Assurance(QA)の業務委託の経験あり.
- (スマートコントラクトのプログラミングを含む)イーサリアムや仮想通貨全般の記事を200本以上執筆.イギリスのロンドンの会社で仮想通貨の英語の記事を日本語に翻訳する業務委託の経験あり.
こういった私から学べます.
国内・海外のブロックチェーンエンジニアのおすすめ求人サイトを知りたいあなたはこちらからどうぞ.
仮想通貨を取引したいあなたは,まずは国内取引所のCoincheckを開設しましょう!
Coincheckが扱っていない仮想通貨を取引したい場合や低い手数料で取引したい場合は,海外取引所を開設する必要があります.
しかし,海外取引所は日本円が使えないので,国内取引所から仮想通貨を送る必要があります.
そこで,以下のおすすめの仮想通貨取引所(主に海外)で開設して,Coincheckからビットコインやイーサリアムを送りましょう!
目次
ブロックチェーンとは
ブロックチェーンとは,一意なブロックの連結リスト(チェーン)の形をしたデータ構造です.
ブロックチェーンを学ぶためには,こちらの動画がおすすめです.
動画で紹介している「WHY BLOCKCHAIN なぜ,ブロックチェーンなのか?」を読みたいあなたはこちらからどうぞ.
ブロックチェーンの各ブロックはトランザクションのリストを持ち,1つ前のブロックを指します.
つまり,ブロックチェーンのデータ構造は,単方向リストのようなものです.
C言語で単方向リストを知りたいあなたはこちらからどうぞ.
ブロックチェーンの特徴
ブロックチェーンの特徴を紹介します.
- 暗号化技術
- コンセンサスアルゴリズム
- Peer to Peer(P2P)
- 分散型台帳(DLT:Distributed Ledger Technology)
暗号化技術
ブロックチェーンで利用される暗号化技術は,公開鍵暗号です.
公開鍵暗号は,暗号化と復号に別個の鍵(手順)を用い,暗号化の鍵を公開できるようにした暗号方式です.
公開鍵暗号で利用される鍵は公開鍵と暗号鍵(秘密鍵)と呼ばれます.
公開鍵と秘密鍵はランダムな英数字の文字列となります.
公開鍵暗号は,以下の動画がわかりやすいです.
ブロックチェーンでは,秘密鍵を複数の英単語の並びに変換したシードフレーズ(リカバリーフレーズ)があります.
シードフレーズ(リカバリーフレーズ)から秘密鍵を生成できますので,取り扱いには注意しましょう!
シードフレーズや秘密鍵の管理方法は,こちらの動画で学べます.
動画で紹介されたハードウェアウォレットを知りたいあなたはこちらからどうぞ.
コンセンサスアルゴリズム
コンセンサスアルゴリズムは,ブロックチェーンを更新する際に合意を取るアルゴリズムです.
コンセンサスアルゴリズムの例として,以下が挙げられます.
- Proof-of-Work(PoW)
- Proof-of-Stake(PoS)
- Nominated Proof-of-Stake(NPoS)
- Delegated-Proof-of Stake(DPoS)
- Diversified Proof-of-Stake(Diversified PoS)
- Proof-of-Authority(PoA)
- Proof-of-History(PoH)
- Proof-of-Weight(PoWeight)
- Proof-of-Burn(PoB)
- Proof-of-Activity(PoA)
- Proof-of-Capacity(PoC)/ Proof-of-Space(PoS)
- Proof-of-Importance(PoI)
- Proof-of-Replication(PoRep)
- Practical Byzantine Fault Tolerance(PBFT)
- Federated Byzantine Agreement(FBA)
- Delegated Byzantine Fault Tolerance(DBFT)
- HotStuff:BFT Consensus in the Lens of Blockchain
コンセンサスアルゴリズムを学びたいあなたは,以下の動画を観ましょう!
Proof-of-Work(PoW)
Proof-of-Stake(PoS)
Nominated Proof-of-Stake(NPoS)
Delegated Proof-of-Stake(DPoS)
Diversified Proof-of-Stake(Diversified PoS)
以下の動画の2:58からDiversified PoSの解説.
Proof-of-Authority(PoA)
Proof-of-History(PoH)
Proof-of-Weight(PoWeight)
以下の動画の6:12からPoWeightの解説.
Proof-of-Burn(PoB)
Proof-of-Activity(PoA)
Proof-of-Capacity(PoC)/ Proof-of-Space(PoS)
Proof-of-Importance(PoI)
PoIとPoS+の解説動画.
Proof-of-Replication(PoRep)
Practical Byzantine Fault Tolerance(PBFT)
Federated Byzantine Agreement(FBA)
Delegated Byzantine Fault Tolerance(DBFT)
HotStuff:BFT Consensus in the Lens of Blockchain
Peer to Peer(P2P)
Peer to Peer(P2P)は,複数のコンピューター間で通信を行う際のアーキテクチャのひとつで,対等の者同士が通信をすることを特徴とする通信方式です.
ブロックチェーンはP2Pを利用して実現されています.
P2Pはブロックチェーン初の技術ではなく,結構昔から利用されています.
例えば,2002年にP2Pのファイル共有ソフトのWinnyが開発され,広く利用されていました.
P2Pを学びたいあなたは,こちらの動画を観ましょう!
分散型台帳(DLT:Distributed Ledger Technology)
分散型台帳(DLT:Distributed Ledger Technology)は,地理的に異なる複数の地域や国で複製,共有,同期されるよう合意されたデジタルのデータベースです.
MySQL等の中央集権型のデータベースとは異なり,分散型台帳は中央管理者は存在しないことが特徴です.
分散型台帳のノード毎にまたがるデータ複製を実行するために,P2Pのネットワークと合意を取るコンセンサスアルゴリズムが必要となります.
また,分散型台帳の例はブロックチェーンシステムであり,パブリック型(ビットコイン,イーサリアム等)とプライベート型(Hyperledger Fabric等)があります.
分散型台帳を学びたいあなたは,こちらの動画を観ましょう!
まとめ
ブロックチェーンとその特徴である暗号化技術,コンセンサスアルゴリズム,P2P,分散型台帳を紹介しました.
ブロックチェーンの概念を理解して,仮想通貨を楽しみましょう!
仮想通貨を詳しく知りたいあなたは,ビットコインやイーサリアムの記事を読みましょう!
国内・海外のブロックチェーンエンジニアのおすすめ求人サイトを知りたいあなたはこちらからどうぞ.
仮想通貨を取引したいあなたは,まずは国内取引所のCoincheckを開設しましょう!
Coincheckが扱っていない仮想通貨を取引したい場合や低い手数料で取引したい場合は,海外取引所を開設する必要があります.
しかし,海外取引所は日本円が使えないので,国内取引所から仮想通貨を送る必要があります.
そこで,以下のおすすめの仮想通貨取引所(主に海外)で開設して,Coincheckからビットコインやイーサリアムを送りましょう!