ブロック鎖(ブロック鎖)

ブロック鎖 - セキュリティソリューションシンセサイザー

 

簡単な履歴、ブロックチェーン

ブロック鎖は、課金システム(Bitcoins)暗号化ソリューションの設計のためのデジタル通貨であります

中本は言った:分権化は避けられません!

ビットコインは、P2Pデジタル通貨会計システムを作成するために設計されています(分散型皆缶ジャーナル)

2つの主な技術的サポートビットコイン:ブロック鎖 - 暗号化技術ソリューションのP2Pネットワーク - 分散型ネットワーク技術設備が占めます

 

会計への分散型

・ディスクロージャー・メカニズムの本は - それぞれの手が本を持っていることが、本当です。

もはや図書・家計の参加者のバランスに記録されていないが、唯一の各トランザクションを記録します。各トランザクションのそのレコードの支払人、受取人及び支払金額。限り冊の初期状態が決定されると、各トランザクション・レコードとは、現在、把握することができ、誰もが持っているどのくらいのお金信頼性の高いタイミングを、持っています。(誰もが、それは簡単なチェックの残高のためにあなたの財布のために課金されます)

・代わりに民間の公共限り、任意の参加者のニーズの書籍は、あなたは現在のトランザクションのすべてを作成するために最初から帳簿上の現在の完全な図書、記録された図書を得ることができます。

・基本的な前提:私たちは誠実で信頼できる、またはそれらの半分以上は正直で信頼できるである必要があること、本は本当に真であると判断することを確認する必要があります場合でも、少数の人々の集団偽造の本(半分以下)、過半数の原則に沿って、実際に書籍がまだ置き換えられませんします。

 

ブロック=冊

 

 ブロックチェーンのエッセンス:口座簿は、ビットブロックの通貨システムは、複数のブロックが一緒にリンクブロック鎖であります

ブロックは、複数のトランザクションを記録します

ブロックが順番にある、唯一のブロックの親ブロックが存在します

ブロックとブロック鎖ニーズが最も重要な安全ですインテグリティ

 


第二に、整合性の二つの側面

インテグリティの取引履歴:本のチェーン全体の整合性(ブロックチェーン)

•トランザクションの不可逆性の後、完全なトランザクション履歴をさかのぼることができます

トランザクション自体の整合性

帳簿上のすべてのトランザクション(ブロック)を完全

•を改ざんしないでください

ソリューション:ハッシュ関数デジタル署名と暗号化ハッシュ、デジタル署名と暗号化方式

 

 

ブロックは2つの部分から成ります:

エリアヘッダ(ヘッド)

  •現在のメタ情報ブロックを記録

  ・ヘッダエリアハッシュ・>取引履歴の前に整合性

  ・マークル根ハッシュ・>トランザクションの整合性そのもの

  80バイトのヘッダ領域は、固定されたノンス(数回)であり、通常256ビットのハッシュ値は、SHA-256アルゴリズムによって生成されたハッシュは32バイトであります

 

 

 

ブロック体(ボディ):

  ・実際の取引データを記録するなど

 単にブロックとブロックとの間に相互に接続さ鎖として

 

 

 すべての/削除/交換するハッシュがない上で検証を変更する前にハッシュ現在のレコードの連鎖上のブロックのすべてが変更されました

 

 

 

 

トランザクション自体の整合性

HASH Merkle木は、迅速な誘導であり、データ構造の大規模データの整合性チェックとして使用されるバイナリ木、あります

デジタル取引キスのコレクション全体を構築し、貿易ブロックがあるかどうかを確認するための効率的なAの方法を提供します

*最もログ2で計算さ2(N)木のデータ要素のいずれかどうかをチェックすることができる(これは二分木であるため)、データ構造は、非常に効率的です

ハッシュアルゴリズムはまた、二重SHA256と呼ばれているように、マークル木は、ビット通貨で、取引SHA256アルゴリズムは、2回使用されて

 

                      マークル木

 

H A = SHA256(SHA256(トランザクションA))H AB = SHA256(SHA256(H A + H Bは))ので、全体のハッシュマークルルートは、実際のトランザクションのセットであること 

 

トランザクションKはブロック内に存在するかどうかを確認する方法?

最初の計算H K、......青色ハッシュ緑色ハッシュが計算されるチェックされ、トランザクションの同じ、次に説明すると、ヘッダ領域比較においてルーツで算出された最終根、マークル現在ブロック。

 

ブルー - グリーンをチェックアウト - 計算

 

 

 

 

 FULL PEER&SPVのCLIENT:参加者のブロック鎖は2つのタイプがあります

 

 

 

 ブロックサイズ+ブロックヘッダー+ Transsactionカウンター+取引を含む完全なピア・ストアの完全なブロック、

ブロックサイズ+ブロックヘッダ:SPV(簡体支払い検証)クライアント、唯一の店舗は、ブロックを合理化

 

 

 

 

 概要

  HASHの整合性の保証、トランザクション自体、唯一のフル・ピアブロックにおけるマークルルーツHASH保証(すべてのブロックがマークルデータ構造を持っていない、のヘッダ領域の前のゾーンヘッダヘッダ領域から取引履歴の完全性、のみ)

 

第三に、証明したワークロード

 

誰が生成ブロック(会計) - マイナーを

 

トレーダー、鉱夫:ビットコインの参加者は、2つのアイデンティティを持つことができます

・参加者は、同時に両方のこれら2人のアイデンティティすることができます

本で最近の出来事についての取引記録(ブロックが生成され、チェーンに追加):鉱夫ビットコイン「鉱業」の活動に従事する

マイナーズ支払いを受ける可能性があります

マイナーズはいつでも残すことができ、また、いつでも新しい鉱山労働者(P2Pシステムの特性)のミックスに追加することができます

鉱業は、特定の難易度(計算の一定量がある)、鉱山労働者間の競争が存在しています

 

動機を採掘鉱山労働者:ビットコインの報酬

誰がbitcoinsを得ることができるようになり、新たなブロックを、作成する必要があります

鉱山労働者と取引活動として、ビットコインの数を増やします。

 

鉱夫の仕事:

  単一のトランザクションを収集

    各トランザクションの支払人、私たちは望んでいないだけで、受取人への単一のトランザクションに、トランザクションはまた、炭鉱労働者のグループごとに、単一の受信トレイに配信しなければならないであろう

    マイナーズ定期的に自分自身の単一収集するために、受信トレイや削除を取引します

 

   ブックに入力します。

    プレスボールペン取引記録

    充填領域ヘッダなどのヘッダ領域ハッシュ値、ノンス値、前

    ノンス値は番号を充填することができます

 

  新しいブロック/本を確認します。

    ブロックを生成した鉱夫は、報われるためには、他の鉱山労働者はすぐに自分の仕事をご確認くださいしなければならないので、鉱山労働者は、他の鉱山労働者の手にフルスピードで有効なブロックでなければなりません確認を求めます

    システム要件は、他の鉱山労働者が送信され、新たなブロックへの鉱山労働者はすぐに確認の手の仕事を採掘停止しなければならないとき

    情報を確認するために必要な3つがあります。

      HASHは、ブロックの難易度の値の要件を満たします

      有効なブロックの前ブロック:ブロック前者は正しいとHASH、確かに彼の最後のブロックであり、

      支払者としての取引の効果的な11リストのバランスを持っています

 

 

ワークロード証明(証明-の作業)

 

 新しいトランザクションがブロックシステム(他の鉱山労働者)の確認2を記録する、HASH新しいヘッダ値が計算の要件を満たす必要があり、1:新たなブロックが二つの条件を満たさなければなりません

 鉱夫ブロックの独自のチェーンを追加すると、鉱山労働者が採掘されていますが、このブロックに沿って継続したとき、彼はこのブロックは、他の鉱山労働者によって認識されていると述べました

 

新しいブロックヘッダハッシュ計算の要件、すなわち、満たされる必要があります。

H(prev_hash、ノンス、Merkle_root、::他のヘッダフィールド)<E(ノートPrev_hash、Merkle_rootは、.....多くは、変更はノンスすることができ、変更されていない・そうすることを、適切な鉱山労働者にナンス乱数を選択そうnonceを変更する値を保つ、それは)Eの規定を遵守することは困難です

Eは、次のような所定値システムの難しさです。

0X00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

 

検証は簡単です。しかし、実証の作業が困難です

 

 

 

 長さ256のビットシーケンスを考えてみましょう

Nゼロのため、SHA-256の出力は、行のNヘッドをコインを反転し、取得することと同じ= gettingzeroビット、効果的にランダムであるので

N個のゼロの場合は、2試してみてN / 2ナンスを...

・N = 1。1つのナンスをお試しください

・N = 16。32768のナンスをお試しください

・N = 32 ... 20億のナンスをお試しください

ブロックを獲得することは鉱夫が仕事をしたことを証明します

 

例えば:

 

このような複雑なアルゴリズムを設計し、それがタイルの生成速度が速すぎないで維持することです。

 

 

難易度値の原則:平均ブロックチェーンが新しいブロックごとに10分を生成するように設計されて

定期的にEの難易度の値を更新する必要があります(すべての2016個のブロック):難易度の値を定期的に原則として更新されて

ネットワーク全体を自動的に過去2016ブロック時間のかかる再計算上の目標値の次の2016ブロック難易度の値を統計が生成されます。

10分によってブロック生成レート、2016 * 2016のブロック10分= 14日の発生時間

=現在のターゲット新しいターゲット*実際のブロック時間内のブロック(14日)ブロック2016分の2016理論的な時間ブロックアウト。

 

4、コンセンサス機構

 

整合性:DOは改ざんではありません

仮定に基づいて:参加者の51%以上は正直です。

 

鉱山労働者が並行して作業しているので、同時に、正当な二つのブロックを受信することが可能です

これらのブロックは、以下のとおりです。彼らは最後のブロックの現在のブロック鎖の鉱夫に基づいています

     そして、ブロックの内容は(すなわち、記録されたトランザクションが有効)完全に合法です

     難易度の値の要件を満たすために、HASHヘッダ領域

リニアファッションブックに整理すべきではない、と本が木に整理しなければならない、我々はそう、いつでも、メインブックなど、すべての現在の最長の枝が、他の枝を保持

 

 長く認識になるだろう誰が、長くなると誰が見て誰

ブロック鎖が木になっ防ぐために、我々は必要です:

受信者は、取引の発表直後に干すの完了時に確認することはできませんが、いくつかの時間のためになるはずですし、他の鉱業グループ、再びお金を確認する必要があり、6つのブロックをたむろ確認し、前のブロックが解除されていませんアカウント

 

目的を確認するために6つのブロックをハンギングブロック鎖への攻撃を防ぐためです

二重支出

確認の支払いに受取人の後、キャンセルの支払い前に、別のブランチから追加単一のトランザクションを確立し、他の人に再び同じ金額を支払うことになります

 

 

 

 

 

 原則に反します:

我々は前から知っている:生成する有効なブロックはそれほど単純ではありません、それは多くの計算を要します。

ブロックは、あなたがお金を受け取ったことを確認応答が含まれ、以降、彼らは6つのブロックを続いた場合、攻撃者が現在のメインブランチの6の背後にある場合には指名手配していない限り、別のブランチから追いつくことは非常に困難です攻撃者は、力回数をたくさん持っている、他のすべての鉱山労働者の力以上と正直を数えます

 

だから、より多くのあなたが彼の安全チェーンときをブロックする参加者

 

その採掘活動のリードがビットコインの数がダウンしている中で、それは深刻なインフレではないでしょう増やすには?

プロトコル鉱山労働者にクレジット・ブック(1つのブロック)、報酬を生成あたり50ビットを開始

その後、いつでも本は21万ページ、書籍、それぞれがそれぞれのボーナス12.5を生成し、42万ページの後に、25ビットのボーナスクレジットを生成する際に、例えば、報酬を半減、21,000ページを増やす、など

本は693万ページに到達したら、このページに新しいアカウントを生成報われていません。それは無限に増加して行くことはありませんので、この時点でビットコインは、21,00000についてビットコインの合計量である、全体で

 

無報酬の後、誰も鉱山労働者は、取引のヘルプを確認するために誰もいないではないでしょうか?

そのような場合は、鉱山労働者は収入生成されたブロックの恩恵を受ける手数料となります。

たとえば、アカウントページに支払わ鉱山労働者を指定することができる転写時の手数料の1%を生成し、各鉱山労働者は、優先度の高い単一の取引手数料の確認を選択します(その時点で、ビットコイン大規模に、取引がたくさんあります)

 

改ざんされないようにする方法?

:によるHASHをブロック = SHA256(SHA256(バージョン+ prev_hash + Merkle_root + +現在のタイムスタンプの難易度+ ナンス)、

1の攻撃:変更トランザクション・レコードをブロック内で、その後、マークルの根は対応していません

2を攻撃する:変更トランザクションへの攻撃とマークルルートは、その後、ブロックはHASHを対応していません。

3攻撃:悪い鉱夫は難易度がブロックを提出する必要は達しなかった場合、誰でも数式エラーに基づいて検証される困難な要件を発見した、または限り、人々の51%は、攻撃が失敗したことの間違いを認めるとしています

アタック4:攻撃者は、ブロックの内容と変更ブロックHASHを、それがこのブロックの次のー地区のヘッダーに保存につながるprev_hash攻撃が失敗したので、対応してない、人々の51%は、過ちを認めます

5攻撃:善良な市民になり、その後、攻撃者の制御に51%またはそれ以上のオペレータの力を仮定ー正当な利益が大きく、より安全になります

 

アイデンティティを達成するためディアン5つの公開鍵暗号、トランザクション署名

 

主に取引の内部の公開鍵、 

 

取引記録とプロセス

SIGNED取引記録上の各トランザクション(ユニーク数)、支払人の署名、署名ブロックのためにプライベート支払人(現在は+受取人公開キーを取引)

誰でも確認することができます

誰もが取引履歴を追跡することができます

             取引クレジットのビット出力の変化は入力と等しくありません   

          取引ブック

公開鍵暗号:トランザクションの完全な/利用できる認証/否認防止

このようなトランザクション3の検証など:

3が含ま取引:入力と出力、トランザクションの署名2.Bob、3.Bob公開

取引からの取引の入力出力0 3 2

その後、ボブの公開財布アドレスに変換者を確認するためのキー(次ページ参照)、および出力財布アドレス0(2取引支払人署名名)トランザクション2は、比較を行います、

等しくない場合、取引は無効でした

等しい場合には、ボブの公開鍵は、署名を検証するために、検証し、

1)ボブは、取引金額の2 0の出力を持っていないことを確認しました

2)トランザクションは、ボブによって開始されました

3)トランザクションの整合性を確保

 

最後に、お金の入力はお金の出力に等しい以上であるかどうかをチェック

 

 

 

 

 

SECP256K1暗号アルゴリズムは楕円曲線に基づくものです

RIPEMD160ハッシュアルゴリズムです

 

 

公開鍵アルゴリズムは、比較的高い強度を考慮したアルゴリズムと比較的短いの公開鍵を取って、SECP256K1(ベースECC)であります

 

 

 

匿名

一人一人の公開鍵は匿名ですが、本が開いている、我々は公共のビットコインの所有者を確認することができ、すべての彼のアカウントのチェックアウトされていないでしょうが、

1.公共の後ろの人の正体は、それぞれが機密であると2.彼は公共の数に制限はありません

異なる公開鍵を使用して、すべてのトランザクションた場合、私たちは、同じ人物のすべてのアカウントを追跡することはできません

 

概要

完整性整合性→デジタル署名と暗号化ハッシュは、ダブル過ごしたコインですか?攻撃者は、取引を逆転または変更することはできますか?

身份标识認証→公開鍵暗号:デジタル署名アム私は右の人を支払いますか?ていないいくつかの他の物真似?

偽名→プライバシープライバシー(参加者が複数のパブリックを持つことができます)私の取引は、民間のか?匿名?

P.2 P networkDistributedストレージへの可用性可用性→ブロードキャストメッセージは、私がしたいトランザクションをいつでも行うことができますか?

 

おすすめ

転載: www.cnblogs.com/sjyu/p/12533990.html