ブロックチェーンビジネス向け記事はこちら

More

ブロックチェーンの技術メモや記事はこちら

More

ブロックチェーン技術関連の国内外の記事をご紹介

More

ブロックチェーン技術者として活躍したい方へ

More

ビットコインに代表される暗号通貨のキモ、そしてBitcoinのイノベーションと言われるブロックチェーンとは何か?とその意味をできるだけ色々な例で説明します。 最近では、Ethereumなど他のブロックチェーンも存在し、許可型ブロックチェーンや、プライベートと呼ばれるブロックチェーンも存在しますが、ここではビットコインのブロックチェーンのみを説明します。 一言で説明すると 「ビットコインの取引履歴」 です。 以下にいくつかの方法でより詳しく、わかりやすく説明します。 誰でもわかる説明 ブロックチェーンは、すでにマイニング(採掘)されて世に存在するビットコインのやりとりのすべてを記録した「ビットコインの取引記録」です。 引用元: 仮想通貨「Bitcoin」を完璧に理解するために知っておきたいことまとめ - GIGAZINE Bitcoinのwikiによる説明 以下、技術者向けの説明です。 ブロックチェインとは、Bitcoinプロトコルをベースとしたシステムに参加している全ノードでシェアされるトランザクション・データベースです。 参考元: Block chain - Bitcoin もう一度、まとめてみると ビットコインのブロックチェーンとは、 ビットコインの通貨をどのアドレスからどのアドレスに送ったということが記録されている履歴(データベース) ということになります。 そして、そのデータは一つの場所に保存されているのではなく、 取引記録は、Bitcoinのネットワークに参加しているコンピュータに分散されて保存されています。 ブロックチェーンは、取引記録(トランザクション)を一つのブロックにまとめて、そのブロックをチェーン(鎖)のようにつなげて保存したものになります。 チェーン状に繋げることによって、のちにデータを変更、改ざんすることが実質不可能になります。 鎖のように繋がれている、の意味 チェーン状に取引データが入っているブロックを繋げる、というのはどういう意味でしょうか? 取引データを単に保存しているだけのデータベースは、鎖のようにデータを結びつけていないので、チェーン状とは言えません。 鎖のようにというのは、 一つ前のブロックのハッシュ値を次のブロックの中に含めている からそう呼ばれます。 ハッシュ値の意味がわからない方のためにハッシュ値を以下に説明します。 ハッシュ値とは? ハッシュ値とは、 必ず任意のデータ →(変換)→ 一定の長さのデータ になる値です。 元となるデータをちょっと変更すると、変換後のハッシュ値は全く違ったデータになります。 この特徴を利用して、ブロックチェーンの文脈では、 ハッシュ値は、取引記録の改ざん対策 として利用されます。 一つ前のブロックのハッシュ値を次のブロックに含めることで、前のブロックが少しでも改ざんされると、次のブロックの中に含まれれるハッシュ値も変わり、そのブロックのハッシュ値も変わります。そのブロックのハッシュ値が変わると、次のブロックのハッシュ値も変わります。 つまり、ブロック内のデータを改ざんすると、その後の全てのブロックのデータを変更されます。これによって、改ざんがすぐにわかります。 実際に改ざんをするためには、他の作業も必要です。詳しくはここでは説明しませんが、マイナーと言われるノードが、Proof of Workといわれる作業を、全部の作業量の51%以上で行う必要があるため、実質不可能とされています。 ブロックチェーンの情報を見る ブロックチェーンの情報は、全ての人に公開されています。 なので、どのアドレスからどのアドレスに暗号通貨が送られたのか?は、すぐにわかります。 以下のサイトが、ビットコインのブロックチェーンを確認するのに有名なサイトです。 Bitcoin Block Explorer - Blockchain.info Bitcoinのイノベーション Bitcoinのイノベーションと言われるのは、P2Pネットワーク上での二重支払いや改ざんという問題を、ブロックチェーン + Proof of Work という形で解決をしたからです。 誰であるかわからない悪意のある人から様々な攻撃を受ける可能性があるインターネット(P2Pネットワーク)上で、お金を保持できるようになったことが、新しくできることになったことです。 そして、ビットコインの応用により様々な資産も発行、管理、流通できるようになりました。そして、EthereumのようなP2P上でプログラミングができる、という技術も出てきました。 ビットコインの凄いところ よく「通貨の革命」と勘違いされるビットコインやブロックチェーンの革命ですが、そうではありません。 通貨のネットワークではなく、非中央集権化された信用ネットワーク です。意味は以下からどうぞ。 Bitcoin - 多くの賢い人がビットコインを学ばず後悔するというよくある話 | block-chain.jp パブリック・ブロックチェーンの特徴 非中央集権的 (今までのように中央の機関がない) 信用が要らない (トラストレス。誰かや組織を信用する必要がない) censorship resistance (検閲への耐性、ネットワークを潰すことが実質不可能) 追記のみで、過去のデータを改ざんするのが実質不可能 Bitcoinや、ブロックチェーンをもっと詳しく知りたい もっとブロックチェーンのことを知りたい場合は、以下が一番わかりやすいと思います。 5分でわかるブロックチェーンの基本的な仕組み 仮想通貨「Bitcoin」を完璧に理解するために知っておきたいことまとめ - GIGAZINE ブロックチェーンをもう一段深く理解する - ワザノバ | wazanova 技術的にブロックチェーンのことを知りたい ブロックチェーンの技術的な説明 まとめ | block-chain.jp ブロックチェーン技術ブログ 技術ユーザグループ: Cryptocurrency Tech Japan: 日本暗号通貨技術の会 ブロックチェーンという言葉の歴史や、細かい定義を知りたい 「ブロックチェーン」とは? 意味や定義の変遷 | block-chain.jp ブロックチェーンの応用について知りたい Bitcoin 2.0, Crypto 2.0, Blockchain 1.0, 2.0, 3.0などと呼ばれる応用については、以下にまとめています。 ビットコイン2.0 とは? Bitcoin 2.0 資料まとめ | block-chain.jp 最後に わかりやすく伝えるため様々な方法で、ビットコインのブロックチェーンとは何かを説明しました。 Ethereumや、permissioned チェーンなど、他のブロックチェーンの詳しい説明、動作、技術的内容は別の記事に書きたいと思います。 検索用語 暗号通貨, P2P, 貨幣, 仮想通貨, bitcoin, litecoin, dogecoin, monacoin, ブロックチェーン,ブロックチェイン, blockchain, ethereum, permissioned, permissionless

More

次世代プラットフォーム Ethereum の技術面の基礎知識。 状況がすぐに変わるので、随時追加、変更していきます。 前提知識 基本的なインターネットのネットワークの知識 基本的なプログラミングの知識 Bitcoin関連の技術的基礎知識 ブロックチェイン Proof of Work 上記、知っていることとする。 Ethereum とは? 公式サイトでの表現は「次世代のスマートコントラクトと非中央集権型アプリケーションのプラットフォーム」 上記の説明だと、スマートコントラクトとDApp(非中央集権型アプリケーション)とは何かがわからないと思いますが、一言で言うと Ethereumは、ブロックチェーン上でアプリケーションを配置し、実行できるプラットフォームです。 大雑把に ブロックチェーンの上で動くプラットフォーム(プロトコル) スマートコントラクトを実行基盤 独自Blockchainを利用 独自Proof of Work(Ethash) から Proof of Stake(Casper)に移行予定 P2P上でチューリング完全なブログラムを動かせる 例えると、HTML上のJavaScript (Bitcoin上のEthereum) Ethereum Virtual Machine(EVM)上で、コードを実行 独自言語でコントラクト(プログラム)を書く (Solidity, Serpentなど) アプリは、ブラウザからJavaScriptから直接ブロックチェーンへ問い合わせて動作させる形がメジャー 大雑把に、次世代の非集権型の契約、財産をやり取りするためのプロトコル、とも言えるでしょう。 独自プログラムで、アプリが作れます。 ざっくりとしたEthereumの動き 以下に講義をした内容が書いてあります。 イーサリアムの概要と、スマートコントラクトのビジネス応用-ブロックチェーンハブ勉強会 - CoinPortal Ethereumは、何ではないか Bitcoinのような暗号通貨ではない ビルトイン通貨は、Ether (プログラムを動かす燃料として使われる) 基礎用語 Ether: Ethereumのビルトイン通貨。手数料を払うために使われる message: メッセージ。ビットコインのトランザクションに似ているがもの。コントラクトを動かしたりする transaction: etherの送信等に使われる smart property: スマートプロパティ。資産管理に利用される。 smart contracts: スマートコントラクトとは何か? Smart Contractの定義 | block-chain.jp GAS: 燃料(fuel)。プログラムを実行するのに必要な燃料となるether STARTGAS: 燃料の上限。 GASPRICE: 計算ステップ当たりにマイナーに払う手数料 EVM(Ethereum Virtual Machine): プログラムを動かすためのVirtual Machine Mist: Ethereumのブラウザ (Web3.0) Ethereum Wallet: 公式ウォレット DApp: Decentralized Applicationの略。非中央集権的アプリ。 Mix -> ReMix: DAppのIDE Mix: The DApp IDE · ethereum/wiki Wiki Whisper: メッセージ用プロトコル Swarm: データ・ストレージ用 (IPFSと同じようなもの) Ethereumの2つのアカウント 以下の2つがある 外部所有アカウント: EOA (Externally-owned Account) 簡単に言うと、人が使うアカウント 外部所有アカウント (ビットコインでいう普通のアカウント) 人かDAppによってコントロールされる EOAのみが、トランザクションを初期化できる このEOアカウントの秘密鍵で署名されたトランザクションが引き金となる 簡単に言うと人が管理するアカウント コントラクトアカウント(Contract Account) コントラクト・アカウント 簡単に言うと、デプロイしたコントラクトのアカウント(アドレス) ブロックチェーン上に存在する トランザクションを受け付けることができる メッセージを自分自身か、他のコントラクトに送ることができる メッセージを送るとプログラムを実行する Ethereumクライアント geth (Go言語) parity (Rust) eth (C++) pyethapp (Python) EthereumJ (Java) などなど メッセージとトランザクション メッセージは、ビットコインのトランザクションに似ているが以下の点で違う 外部からもコントラクトからも作れる レスポンスを返す トランザクション: 外部所有アカウントから送られるメッセージを保持しておく署名されたデータパッケージへの参照 BitcoinのScriptingに追加してできるようになったこと チューリング完全性 Value-awarenss blockchain-awareness 状態 できること 自律的な組織がブロックチェーン上で作成することができる DAOs (decentralized autonomous organizations) DAC (decentralized autonomous corporation) プロトコル GHOST (Greedy Heavist Observed Subtree) protocol Block Protocol 2.0 (BP2) コントラクトを書くための言語 Solidity: JavaScriptに似ている言語。現時点で、一番メジャーな言語。 Solidity Tutorial · ethereum/wiki Wiki Solidity Features · ethereum/wiki Wiki Serpent: Pythonのような言語 LLL : Lispのような言語 Mutan: Cのような言語 obscuren/mutan 以下は、昔あったが今聞くことはない CLL, ECLL (Ethereum C-Like Language) AST(Abstract Syntax Tree) EHLL (Ethereum High Level Language) 使えるデータ保存場所 Stack: プログラム用のスタック Memory: 所謂プログラム実行用のメモリ Storage: データを保存するためのストレージ 詳しくは以下へ EVM(Ethereum Virtual Machine)が保存できる3つのデータ領域 | block-chain.jp 仕様 RLP Patricia Tree Wire Protocol block's ancestor (in Ethereum jargon, "uncles") Ethash (Proof of Work) Dagger + Hashimotoの最新バージョン EthashのPoWは、メモリーハードで、基本的にASIC resistant Ethash DAG ASIC耐性のために必要 DAG: 数ギガバイトのデータセット DAGを生成するのは、長い時間がかかる DAG は、30,000ブロック毎に全く違うものになる。 この30,000ブロック(100時間)は、epochと言われる Ethash DAG · ethereum/wiki Wiki RLP (Recursive Linear Prefix) 大雑把な説明: データをエンコードする方法のこと RLPの目的 任意にネストしたバイナリーデータの配列をエンコードすること Ethereum でオブジェクトをシリアライズために使われるメインのエンコーディング方法 パトリシア・ツリー(Patricia Tree) ブロックチェーンの状態を保存、ハッシュ化するために使われる構造 Wire Protocol EthereumノードのP2P通信のためのプロトコル Ethereumのノードは、TCPのみで接続する ポート番号: 30303 仕様は公式Wikiで [English] Wire Protocol · ethereum/wiki Wiki 関連する他のプロジェクト Ethereumは、以下2つのプロジェクトから影響を受けています。 Colored Coins blockchainの上でスマートプロパティとカスタム通貨とアセットをやりとりするためのシステムを実装するための最初の試みは、Bitcoinの上に一種のオーパーレイとして作られた。 よくTCP上にあるHTTPに例えられる。 Metacoins 書き途中。 日本語の技術情報 Ethereumを学ぶ 技術者向け Ethereum 学習情報 まとめ | block-chain.jp インストール方法 Ethereum のセットアップ、インストール方法 | block-chain.jp Ethereum Dapp フレームワーク Embark のインストールと使い方 | block-chain.jp 使い方 Ethereum のアカウントの管理、アドレスを作る方法 | block-chain.jp Ethereum - ガスと取引コスト: Gas Limit と Gas Price とは? | block-chain.jp Ethereum のネットワーク状態を調べる方法 | block-chain.jp Ethereum で etherを送る方法 | block-chain.jp スマートコントラクト Ethereum Solidity で 初めてのDappを作る | block-chain.jp Ethereum Solidity 情報まとめ | block-chain.jp Ethereumの言語 Solidityの仕様 | block-chain.jp Ethereum の Smart Contracts やアプリの作り方 | block-chain.jp ツール Ethereumで使えるツールまとめ | block-chain.jp アルゴリズム Ethereum の Casper まとめ | block-chain.jp 日本語の記事 基礎 イーサリアム - Wikipedia 説明 イーサリアムの衝撃-ビットコイン技術がもたらす社会基盤へのイノベーション : アゴラ - ライブドアブログ 大きな可能性を秘める「リップル」と「イーサリアム」――ビットコインに続くもの|通貨革命か、それとも虚構か?「ビットコイン」を正しく理解する 野口悠紀雄|ダイヤモンド・オンライン ウォレットのまとめ Ethereum のウォレット・ソフトウェアまとめ | block-chain.jp 翻訳・紹介 ホワイトペーパーの日本語訳: kurihei/Ethereum-WhitePaper-JP [Ethereum] [入門編] 「暗号通貨 2.0」話題のEthereumの紹介ページを訳してみた » bitlywatch.com Ethereumは「暗号通貨2.0」のネットワークを始動する - 技術最前線 勉強会の動画 ホワイトペーパーを読む勉強会の動画 Ethereum勉強会 - YouTube ブログ・感想・意見 イーサリアムやべぇ。。。 | ホリエモンドットコム イーサリアムのDistributed Autonomous Organizationは国家を不要にする White Paper [English] White Paper · ethereum/wiki Wiki Official Sites Main site: http://www.ethereum.org Forum: http://forum.ethereum.org Code: https://code.ethereum.org Blog: http://blog.ethereum.org Wiki: http://wiki.ethereum.org Whitepaper: http://ethereum.org/ethereum.html Facebook: https://www.facebook.com/ethereumproject Youtube: http://www.youtube.com/ethereumproject Vimeo: https://vimeo.com/ethereumproject Google+: http://plus.google.com/+EthereumOrgOfficial 日本語チュートリアル: [Japanese] Ethereum Development Tutorial · ethereum/wiki Wiki ネットワークステータス: Ethereum Network Status ビルドのステータス BuildBot: Ethereum コース Ethereum 101 | B9Lab Academy https://academy.b9lab.com/courses/B9lab/X16-0/2016/about FAQ wiki FAQ · ethereum/wiki Wiki General FAQ @Reddit coinwatcher comments on Hi, we're the Ethereum Founding Team. Ask us anything! 技術ユーザグループ ブロックチェーン技術を話し合う日本のユーザグループです。 日本ブロックチェーンユーザ会 ミートアップ 東京イサリアム / Ethereum Tokyo (Tokyo) - Meetup 関連用語 イーサリアム、イサリウム、エセリウム、エサリアム、エサリウム、イーサ、ether, ethereum, smart contract, smart property, スマートプロパティ、スマートコントラクト

More

ブロックチェーン技術者として活躍したい方へ

【即戦力!ブロックチェーン技術者養成道場】とは、ブロックチェーン技術者になりたい人のためのサロンです。

More

ブロックチェーン技術関連の国内外の記事をご紹介

ブロックチェーン技術や仮想通貨、ICOなどに関連する国内外のSNSの記事をシェアしています。

More

Recent Posts

最先端技術を活用しませんか?仮想通貨基盤「ブロックチェーン」エンジニア募集
Ee543059 613b 4d28 9768 2a531825cb85
コンセンサス・ベイス株式会社
最先端ブロックチェーン開発をリード!一歩先のディレクターを目指しませんか?
Ee543059 613b 4d28 9768 2a531825cb85
コンセンサス・ベイス株式会社