「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>要素技術]] *目次 [#ab765ffb] #contents *概要 [#td8970cb] ブロックチェーン、ブロックチェインは、 -ブロックチェーンはビットコインから生まれた。 -[[分散型台帳を実現する技術>#z8413911]]。 **分散型台帳技術 [#z8413911] -分散型台帳 (DLT : Distributed Ledgers Technology) -[[Peer to Peerネットワーク>#e0da1919]]上で分散された台帳(データベース)を実現する。 **仕組み [#n372516d] この分散型台帳は、 -[[Peer to Peerネットワーク>#e0da1919]]と -[[合意形成>#da5711ee]]を行う[[分散型タイムスタンプ・サーバ>#rd225959]]の 使用により、自律的に管理される。 ***Peer to Peerネットワーク [#e0da1919] -[[分散型タイムスタンプ・サーバ>#rd225959]](ノード)同士をPeer to Peerで接続するネットワーク。 -各ノードが対等に直接通信することで、ユーザー同士のやりとりを行う。 -このため、単一障害点(SPOF)を持たない。 ***分散型タイムスタンプ・サーバ [#rd225959] -「[[コンセンサス・アルゴリズム>#da5711ee]]」を実行するノード -複数のノードから構成され、 --多数の善良なノードの存在により、 --悪意あるノードの攻撃から >守られる。 -詳しくは「[[コンセンサス・アルゴリズム>#da5711ee]]」を参照。 ***スマート・コントラクト [#a16ebe72] 契約行動をプログラム化し、自動的に実行しようとする仕組み -ブロックチェーン上で動くエージェント・プログラム -特定の条件を満たした場合に契約を行うなど、さまざまな業務処理を記述可能 ***偽造防止・暗号化技術 [#rd5ba04d] 公開鍵暗号技術により電子署名を用いて -相手との安全な取引を実現したり、 -台帳情報の共有による取引の --透明性と --プライバシー保護 >を両立したり、 している。 **課題 [#o0ddbb1b] -ネットワークを介した各台帳情報の整合性確認に一定の時間を要する。 -リアルタイム性が求められる即時決済などの用途には向いていない。 -適用領域を正しく見極める必要がある。 *詳細 [#ee0d5c50] -ブロックチェーンは、[[ブロック>#t0cadae6]]と呼ばれる順序付けられたレコードの連続的に増加するリストを持つ。 -各[[ブロック>#t0cadae6]]には、タイムスタンプと前の[[ブロック>#t0cadae6]]へのリンクが含まれている。 **コンセンサス・アルゴリズム [#da5711ee] これにより、悪意あるノードの攻撃からブロックチェーンのデータが守られる。 ***Proof-of-work(PoW) [#vdbf3f0d] -オープン型のブロックチェーンで採用される。 -計算に時間のかかる値を最初に計算した者が、~ 次の[[ブロック>#t0cadae6]]を生成することができる。 -ハッシュ値と取引データに32bitの数値を添加し、この状態で確定前のデータのハッシュを取る。~ --すると、とても小さい数になることがある。 --ターゲットの数値が決められており、それより小さくなる値(ナンス)を探す。 --総当りで試して、かなり低い確率でその値(ナンス)が割り出される。 -割り出せたら、その値(ナンス)を持って、[[ブロック>#t0cadae6]]を仮確定する。 ***Proof-of-stake(PoS) [#a089c32d] -オープン型のブロックチェーンで採用される。 -最も保有をしている参加者がブロック作成権限を持つというルール。 -[[Proof-of-work(PoW)>#vdbf3f0d]]と比べ、マシン・リソースが少なくて済むが、~ 長期保有者が増えて市場の流動性が低くなることが考えられる。 ***Proof-of-importance(PoI) [#z60c57fb] -オープン型のブロックチェーンで採用される。 -取り引きの多さやその人の信用、そして保有量等を総合して判断される。 -[[Proof-of-work(PoW)>#vdbf3f0d]]や[[Proof-of-stake(PoS)>#a089c32d]]と比べ、参入容易性が上がる。~ (貨幣が流通すればするほど電気代の消費や保有量などハードルが上がるのを防ぐ) ***Byzantine Fault Tolerance(PBFT) [#pa1a756d] -Hyperledger Fabric等に用いられる。 **ブロック [#t0cadae6] ***主鎖ブロック [#kb08ca17] -起源ブロックから現在のブロックまでの最長の一連のブロックで構成されている。 -ブロックの内容は直前のブロックのハッシュ値に依存する。 --主鎖の同一性は、起源ブロックがもつハッシュ値を究極的な拠り所とする。 --ブロックの内容は、一度記録すると、ブロック内のデータを遡及的に変更できない。 ---直前のブロックのハッシュ値に依存するため、以降のブロックを全て破棄しない限り。 ---以降のブロックを破棄して再生成する処理は、~ 前述の「[[コンセンサス・アルゴリズム>#da5711ee]]」の計算量的に実行不可能とされている。 --このため、信頼性は、ハッシュ値の衝突の頻度による。 ***孤児ブロック [#s02c2b67] -以下のケースで分岐(フォーク)が発生する。 --同時に複数のブロックが採掘された場合 --悪意のあるノードがネットワークを混乱させようとした場合。 -分岐(フォーク)の解決 --分岐(フォーク)したチェーンの中から一番長い枝(ブロックが多い枝)が主鎖ブロックになる。 --更に、一定以上の差がついたら、孤児ブロックは捨てられインセンティブは受けられない。~ (このインセンティブにより、一番長い枝に採掘者が集中するようにしている)。 **信頼=参加者の選定と動機 [#s05f47dd] -ブロックチェーンにおける、セキュリティの根幹。 -参加者の選定と動機([[コンセンサス・アルゴリズム>#da5711ee]]とも関係)が、~ どのように設計・構築・運用されているか?がポイントになる。 ***オープン / クローズド [#rc919c51] -オープン~ オープンな場所から参加者を募る。 --例 ---ビットコイン ---その他、殆どの仮想 / 暗号通貨 -クローズド~ クローズドな場所から参加者を募る。~ (初めから、ある程度、信頼のおける人、組織を選定して運用) --例 ---リップル ---金融機関によるブロックチェーン ***分散型台帳の場所 [#yd803159] 台帳(データベース)がどこにあるか? -決まっていない模様。 -以下のケースが考えられる。 --全ノードが全台帳(データベース)を共有~ ビットコインでは全ての参加者各ノードが台帳(データベース)を共有している。 --一部のノードが ---全台帳(データベース)を共有。 ---部分的に台帳(データベース)を共有 ***参考 [#oe2b9fd0] -オープン型・クローズド型のブロックチェーンの特徴から見る、~ ビットコインとリップルの違い | rakuishi.com~ https://rakuishi.com/archives/open-vs-closed-blockchains/ *応用 [#pf91f8ef] **特徴 [#z381f117] -高い透明性や信頼性をインターネット上で確保できる。 --中央集権型な管理が不要、 --強い改ざん耐性 -決済取引以外にも、多様な用途への応用が期待されている。 **例 [#rc51dd44] ***医療履歴の共有 [#x23de16e] 治療、 投薬、 検査、リハビリ等のデータを~ 記録・共有し、保険業者、医療機関、患者をつなぐ。 ***トレーサビリティー [#jb8414a4] サプライチェーン情報を共有するトレーサビリティーの仕組み。 ***著作物の保護 [#i75980c0] 著作物使用(利用, 頒布, 複製, 改変など)の認可や課金の仕組み *関連 [#o937943a] **認証 [#pb00f36b] ***[[マルチシグ]] [#nc37549a] ***[[自己証明型身分証明]] [#ed7b5c06] ***[[分散型アイデンティティ(DID)]] [#ed7b5c06] *参考 [#e7b7d874] -ブロックチェーン - Wikipedia~ https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3 --Peer to Peer - Wikipedia~ https://ja.wikipedia.org/wiki/Peer_to_Peer --Proof-of-work system - Wikipedia~ https://en.wikipedia.org/wiki/Proof-of-work_system -ブロックチェーンの仕組み 〜初心者のためのわかりやすい解説〜~ http://gaiax-blockchain.com/blockchain-first-book **分散型台帳技術 [#l942c719] -分散型台帳とブロックチェーンの違い – BLOCK RABBIT | ブロックラビット~ http://blockrabbit.io/whats-the-difference-between-a-distributed-ledger-and-a-blockchain/ -分散台帳技術(DLT)とは ブロックチェーンとの違い~ <初心者向け> - とってもやさしいビットコイン~ http://www.tottemoyasashiibitcoin.net/entry/2017/12/11/172418 **コンセンサス・アルゴリズム [#hf055f47] -分散ネットワークでの合意を可能にした~ コンセンサスアルゴリズム「プルーフ・オブ・ワーク」~ http://gaiax-blockchain.com/pow ***とってもやさしいビットコイン [#zc329911] -コンセンサスアルゴリズムとは~ http://www.tottemoyasashiibitcoin.net/entry/2016/09/13/141913 --プルーフ・オブ・ワークとは~ http://www.tottemoyasashiibitcoin.net/entry/2016/08/27/230857 --プルーフ・オブ・ステークとは <初心者向け>~ http://www.tottemoyasashiibitcoin.net/entry/2016/09/06/105429 --プルーフ・オブ・インポータンスとは~ http://www.tottemoyasashiibitcoin.net/entry/2016/09/22/155823 **CIO Magazine [#y9043b4a] -ブロックチェーンがビジネスにもたらす破壊的変化 --(上)~ http://itpro.nikkeibp.co.jp/atcl/idg/16/091600074/091600001/ --(中)~ http://itpro.nikkeibp.co.jp/atcl/idg/16/091600074/091600002/ --(下)~ http://itpro.nikkeibp.co.jp/atcl/idg/16/091600074/091600003/ **NTTデータ [#uebe976e] -NTT DATA BLOCKCHAIN INNOVATION --ブロックチェーンとは~ http://www.nttdata.com/jp/ja/services/sp/blockchain/latest/ --ブロックチェーンの仕組み~ http://www.nttdata.com/jp/ja/services/sp/blockchain/mechanism/ --ブロックチェーンのビジネス応用~ http://www.nttdata.com/jp/ja/services/sp/blockchain/initiatives/ **Gunosy Blockchain Blog [#td97d8dd] -ブロックチェーン技術を最速で理解するための勉強方法まとめ (エンジニア向け)~ http://blockchain.gunosy.io/entry/blockchain-study-summary -モナコインへの攻撃から、ブロックチェーンへの攻撃やマイニングを深掘りする~ http://blockchain.gunosy.io/entry/2018/05/18/164219