ビットコインとブロックチェーンの私の理解について話すと、マイニングは難しくありません、マイニングすることは難しいです

ビットコインの概念

ご存知のように、ビットコインはデジタル通貨です。紙幣
と比較すると、ビットコインには次の利点があります
。1。プロパティを制御できる。アカウントを凍結できる銀行とは異なり、ビットコインは他者によって制御されない
。2。インフレはない。銀行は経済状況に基づいてより多くのお金を印刷できますが、ビットコインの総量は変更されていません(2100万)。
3.ビットコインには偽造紙幣はありません。これはビットコインの明らかな利点です
4.ビットコイン取引は国によって制限されていません。

ブロックチェーンのコンセプト

クリプトパンクの重要人物:ナカモトビレッジ、「ビットコイン:ピアツーピア電子キャッシュシステム」、2008年。ブロックチェーンのテクノロジーを改良し、徐々にブロックチェーンの概念を持ちます。

ブロックチェーンはテクノロジーのコレクションです。
ビットコインシステムのデータはブロックに格納され、ブロックはハッシュによって接続されてブロックのチェーンを形成するため、ブロックチェーンと呼ばれます。

ブロックチェーンアプリケーションのシナリオ:

1.簿記、
株式取引など
2.資産
取引、決済、支払い
3.
さまざまな証明書の改ざん防止、クラウドファンディングなど
4.
相互不信の問題を解決するためのピアツーピア共有経済など
5.プライバシーと
匿名の取引、誰も知らない取引できるかどうかを確認するために取引するときのみ、ビットコインはどれくらい持っていますか

ビットコインの分散化

すべてのデータは、新たな検証削除クエリ」を含む、一箇所に集中さ
:それぞれの場所に保存されたデータであり、それは直接、二つの問題につながるセンターへの
所有権を確認し、方法を
単純に言って指して、どのようにあなたがあなたのものであることを証明し、あなたが正しいことを証明する方法

検証:ハッシュ関数を使用する

ここでのハッシュ関数は、md5によって暗号化されたハッシュとして理解できます。最も注目すべき機能の1つは、元に戻せないことです。
たとえば、Hash(a)はbを取得します。したがって、たとえばHash(a1)が変更されない限り、bを取得できず、aからbを取得できません。
この基盤により、シーケンス番号+タイムスタンプ+ハッシュ値をブロックの先頭と見なし、
そのハッシュ値と交差レコードを毎回使用して、新しいブロックヘッダーを形成する新しいハッシュ値を取得できます。
次の図に示すように、各ブロックはトランザクションレコードのパッケージです。誰もが最後のハッシュ値が自分のハッシュ値と一致しているかどうかを比較するだけでよく、それが正しいかどうかを知ることができます。

ここに画像の説明を挿入

所有権:非対称暗号化テクノロジー

まず、銀行との類似点として、銀行は、口座を開くときに自分の情報を入力し、パスワードを設定するなどの一連の操作を使用して、銀行がこの口座の所有権を提供するようにします。
ビットコインの譲渡にはビットコインのような第三者はありません。
ビットコイン支払いには、請求先住所、請求先住所、および取引金額の3つの主要なパラメーターレコードがあります。
アドレスは公開されており、ローカルに秘密キーがあります。秘密キーは、このアドレスを生成するための唯一のソースです。この秘密キーだけがアドレスを生成でき、アドレスを秘密キーに戻すことはできません。
したがって、秘密鍵は完全に機密情報であり、忘れた後は取得できません。秘密鍵を持っている人は誰でも取引できます。

次に、別の問題があります:秘密鍵を明かさずにこのアドレスの秘密鍵があることを証明する方法、
つまり署名を使用することです。
httpsを学習したことのある学生は、これに精通している必要があります。
署名プロセス:
1.最初に元のトランザクションレコードをハッシュして要約情報7a7b34c5dを取得します
2.要約情報7a7b34c5dと秘密鍵a6d77a88e0を使用して署名操作を実行し、署名情報5c3c5d2d6aを取得します

ここに画像の説明を挿入

署名情報を受信すると、すべてのアカウントが循環してブロードキャストされます。ブロードキャスト通知情報には、
取引元情報:支払い先住所、集金先住所、取引金額が含まれます。
署名情報:5c3c5d2d6a
このブロードキャスト操作は、全員に言うことと同じです、私は送信アドレスであり、受信アドレスとどの程度取引したか、署名情報は5c3c5d2d6aです。ブロードキャストを
受信したノードを確認し、確認プロセスを開始します。
ここに画像の説明を挿入

理解は簡単です。
署名は非対称暗号化プロセスです。つまり、支払い情報のハッシュ値と秘密鍵を使用して暗号化し、署名情報
取得します。検証は非対称復号化プロセスです。つまり、署名情報と支払いアドレスを使用して復号化し、支払い情報のハッシュを取得します。値は
、この問題は、民間所有の制御により、口座取引を解かれ、そして何の秘密鍵が外部に漏れません。

マイニングとは

鉱業について聞いたことがある人は、鉱業が多くの電力を消費することをおそらく知っており、それは常に計算しています。では、なぜ計算し続けるのですか?

上記の検証、つまりアカウンティングは、実際には非常に多くのリソースを消費します。毎日、トランザクションの数がわからないため、無料で検証するノードはありません。
したがって、ビットコインシステムは報酬メカニズムを提供します。簿記には報酬があります。
この報酬メカニズムでは、誰もが簿記のために戦うので、次のルールがあります。
ルール1:一定の期間(通常は10分)内で、1人だけが簿記を成功させることができます。
ルール2:暗号化の問題を解決する、つまり作業負荷を増やすことにより、独自の会計上の権利を競うことができます。
ルール3:他のノードは、会計結果をコピーするだけです。
では、暗号化の問題を解決できるのは
誰か、アカウントを維持して報酬を得る可能性が高いのは誰でしょうか?では、この暗号化の問題とは何でしょうか。
前に述べたように、検証は新しいハッシュ値を取得するためのハッシュ(最後のハッシュ値、トランザクションレコード)で
あり、これは少し単純で、ほとんどの人がすばやく完了することができます。
ある期間内に人を選択するのがより簡単になるようにするには、アカウントを維持する難しさを増す必要があります。
その結果、ハッシュ方式が変更され、乱数が追加され、次のようになります。

新しいハッシュ値を取得するためのハッシュ(最後のハッシュ値、トランザクションレコード、乱数)。
これには新しいハッシュ値が必要であり、新しいハッシュ値は0000a6h7jj85などのいくつかのゼロを満たす必要があります。
ハッシュ番号は、わずかに変更されている限り、さまざまな値の変化を引き起こすことがわかっているため、ハッシュするときは、常に乱数を変更して新しいハッシュ値を取得できます。
理論的には、乱数ハッシュを使い続ける限り、常に条件を満たすハッシュ値が得られます。
今や基本的に普通のコンピューターで、0から始まる4つのハッシュ値を取得したい場合、基本的には約1〜2分です。
現在、コンテストに参加している人が多すぎるため、難易度は高くなります。18個のゼロで始まるハッシュ値に達しました。このハッシュ値を最初に見つけ人なら誰でも、独自の会計権限を取得できます

このハッシュ値を見つけるプロセスは非常にランダムであるため、マイニングと呼ばれ、アカウントを保持する唯一の権利を取得すると、それはマイニングであると言えます。

マイニングステップ

1.ブロードキャストの元帳に記録されていないトランザクションを収集します
2.トランザクションの有効性を確認し
ます3.自分に転送するトランザクションを追加します(つまり、マイニング報酬)

会計を正しく行うことの難しさを推定する

たとえば、18個のゼロで始まる必要がある新しいハッシュ値を取得する必要があるとします。
ハッシュは16進数であるため
、最初の桁で0を取得する場合、平均で16回の計算が必要です。
最初の2つで0を取得する必要がある場合は、平均で16 * 16の計算が必要です。これは16のべき乗です。
同様に、最初の18個のゼロを取得する場合は、16乗を計算する必要があります
だから今はすべて複数人で組み合わせた採掘で、採掘後に分けてみると、孤独なオオカミはほとんどいない。
たとえば、単純な分析では、マイニングは100,000元になる可能性があります。マイニングコストが100,000未満である限り、誰かがマイニングします。マイニングが多いほど、計算は難しくなり、マイニングコストは高くなります。 、それでそれは最終的にバランスの取れた状態に到達します、つまり、それは10万の鉱山を掘るのに平均約10万元の費用がかかります。

コンセンサスメカニズム

計算は難しくなりますが、複数のノードが同時にワークロードを完了する場合があります。この場合、誰のブロックが使用されますか?
まず、各計算ノードはルールに従う必要があります。つまり、ノードのワークロードは他のノードが同意した場合にのみ有効です。そのルールはコンセンサスメカニズムです。

コンセンサスメカニズム:各ノードは、最大の累積ワークロードを持つブロックチェーンのみを認識します。つまり、誰もが最も長いチェーンを見つけます

例:
チェーンが存在するようになった#1213 <–#1214
全員が採掘を開始し、#1215を掘り始め、ある時点で、
A とBの両方が同時に掘り進んだ場合A拡張ブロックチェーン#1215A、B拡張ブロックチェーン#1215B、次に、AとBは結果を別々にブロードキャストします。
この時に出てきた枝、どちらを使うの?
このとき、CはAのブロードキャスト情報を受信しました。Cの場合、このときの最長のブロックチェーンは#1215Aだったため、Cは次のブロックを争うために再びカウントを開始しました。
Cと同様に、Dingはこの時点でBのブロードキャストメッセージを受信しました。Dingは、現時点で最長のブロックチェーンは#1215Bであると考えていたため、Dingは#1215Bで次のブロックを求めて競合し始めました。
ある時点で、Cが最初に計算されたため、
ブロックチェーンを次のように拡張しました:#1213 <–#1214 <–#1215A <–#1216C、それを
このポイントにブロードキャストすると、ネットワーク内の他のノードはこれを受信しました# 1216 C、および#1215Bは、Cが最も長いことを知っています。
その後、最終的に#1213 <–#1214 <–#1215A <–#1216Cが最終チェーンとして選択され、Bの元のチェーンは破棄されます。

取引確認時間

ビットコインのブロック時間は10分になるように設計されています。これは実際には、トランザクション確認の高速化とフォークの削減に対する直接的な妥協点です。
確認時間が短いと取引確認が頻繁になりフォークが多くなり
、確認時間が非常に長いとフォークは減少しますが取引確認は非常に遅くなり
ます。たったの10分。

フォローアップ

上記はビットコインとブロックチェーンのいくつかの単純な概念にすぎません。より深い知識、私たちは採掘し続ける必要があり
ます1.
ビットコインのP2Pネットワークのビットコインノードはすべてピアツーピア通信であり、他のサービスのIPを知る方法はありません各サーバーはいつでもオンラインで、いつでもオフラインにできます。そのノードは他のノードにどのように接続しますか?
2.ブロック構造:マークル番号]
ビットコインストレージ情報の詳細
3.ビットコインホワイトペーパー
4.ビットコイントランザクションスクリプト
5.ブロックチェーンテクノロジーを実際のプロジェクトに適用する方法

元の記事203件を公開 賞賛された186件 210,000回

おすすめ

転載: blog.csdn.net/java_zhangshuai/article/details/104979848