ブロックチェーンを始めるにあたってのいくつかの基本的な質問

序文

ブロックチェーンというと、金融、つまりお金に関係するものとして認識されている方が多いと思いますが、ブロックチェーンというよりブロックチェーン技術という言葉がよく使われます。ブロックチェーンに関連する別の名詞は何ですか? それは、もちろん、有名なビットコイン (BitCoin) です。

ビットコイン

ビットコインは、電子通貨と考えることができます。その出現は間違いなく偶然ではありませんが、歴史的な発展の必要性です。サトシ・ナカモトの論文 (添付参照) では、ビットコインの出現の原因と結果が大まかに次のように説明されています (翻訳は間違っている可能性があります)。

物理的な世界では、通貨はさまざまな国の中央銀行によって発行されます. これは集中型の発行メカニズムです. 率直に言えば、中央集権型の組織によって制御されやすい. など) 通貨の流通を負担する物理的な通貨:人は現金を直接他人に渡す. もちろん人は人と直接取引をして通貨を流通させる. この方法はもちろん安全です.送金の仲介者としての信頼できる第三者?アリペイは普段よく使っていると思います。サトシ・ナカモトの論文の中で、彼は次のように述べています。




中央集権化された第三者は、信頼できる
中央集権化された第三者を完全に保証することはできません. すべてのトランザクションとユーザー残高は中央データベースに保存されます, トランザクションが変更できないことを完全に保証することはできません?)
個人間の取引の過程で、仲介者としての第三者もリスクを負う必要があります. 取引で2人が主張した場合、私は保証人として退屈だと思いますか? 損失, これは事実上、この種の取引のコストが増加し、多くの人がこの種の取引をあきらめる可能性さえあります. 中央集権型の第三者は
福祉団体ではありません. なぜ彼らはあなたのために帳簿を管理し、あなたと議論する必要がありますか? 毛織物? サービス料はかかりませんか?
そしてサトシ・ナカモトは、電子取引の過程で、ユーザー A がユーザー B の口座に通貨を直接送金する物理世界の高度な取引のように、この第三者が何らかの方法で譲渡される可能性があると想像しましたか?

それ以来、ビットコインは歴史の段階に入ったばかりです。. .

ブロックチェーン

上記を読んで、ビットコインが何に使われているかについての一般的な理解はすでにお持ちだと思います. サトシ・ナカモトの論文では、ビットコインはピアツーピアの電子現金システムであるため、物理的な世界の紙幣に対応する通貨として問題は電子現金のために解決する必要がありますか?

通貨の発行には、まず、中央銀行によるソフト姉妹コインの発行と同様に、これらの通貨が正常に発行されることを保証する特定のメカニズムがあります。しかし、それは中央銀行のソフト姉妹コインの発行とは異なります. 好きなだけ送金できます. 遅かれ早かれ終わります. 通貨送金の血まみれの例はあまり挙げません. ビットコインは電子現金システムです
.通貨がユーザー間で流通できるようにするメカニズムが必要であり、この種の流通に第三者が介入することはできなくなります.トランザクション
、残高など、人々の間のトランザクションを保存するメカニズムが必要です.取引情報については、個人が残した金額を記録する必要があります.さらに、このプロセスは、前述のように中央集権的な組織では実行できません.これは、ビットコインの電子現金システムの実現と見なすことができます
.解決しなければならない問題、これらの問題をどのように解決するか? そこで今日の主役であるブロックチェーン技術の出番です。一般的な意味は、ビットコインのような電子通貨であるブロックチェーンとは何か、そしてビットコインの機能を保証する基盤技術は何なのかということです!

ブロックチェーンの秘密が明らかに

レンガを投げて翡翠を始める

次に、ブロックチェーン技術の重要な問題を引き出すためのストーリーを話しましょう。

ストーリー1

晴れた朝で、シージンはいつものように楽しく仕事に行きました. 彼が会社に到着するとすぐに、チェン・シャオは彼に、上司はあなたがとても良いと思っていると言いました. . これを聞いて, 彼は私に嘘をついたに違いないと思ったので, 彼はそれを真剣に受け止めなかった. 意外にも, シェン兄弟はしばらくして再びやって来て, チェン・シャオと同じことを言った.これは本当ですか?しばらくして、リー・チェンも彼、ジモ、ハン・ユーにも同じことを言いました。これは大したことです。シー・ジンはそれを信じ始めました。信じなければなりません。本当にする必要があります !

第二話

晴れた朝、シジンはいつものように楽しそうに出勤し、会社に到着するとすぐに、馬先生はシジンに、会社があなたに昇進と昇給を与えることにしたと言い、シジンはすぐにそれを信じました。

上記の 2 つのストーリーから、ユーザーに 1 つのことを納得させるには、実際には 2 つの方法があることがわかります. 1 つは、ストーリー 1 の多くの人がそれが真実であると言っているということです. . ブロックチェーン技術は、ストーリー1のアイデアを正式に使用して、トランザクションの有効性の保証を実現します。

要約する

これはブロックチェーン技術の最も重要なアイデアです - 分散化

もちろん、この分散化には二つの意味があり、一つは通貨発行の分散化、もう一つは通貨の移動(流通)の分散化です。これは、通貨の発行が中央銀行のような中央集権的な機関によって制御されるのではなく、システム全体によって決定されることを意味します.通貨の発行を決定する要因については、後で説明します;同時に, ユーザー間の通貨の流通 分散化も必要. ユーザーは、簿記を保証する第三者を必要とせずに、通貨を別のユーザーに直接転送します. 代わりに、参加しているすべてのユーザーは、誰もが一緒に取引を確認することを共同で保証します.取引の有効性。

魅力的な

ユーザー間でのビットコインの送金(取引)を例に、ブロックチェーンのさまざまな魔法の仕組みを紹介します。

ブロードキャスト トランザクション情報
ここに画像の説明を挿入

取引情報を受け取った後、メロンを食べる人は自分のノートを取り出し、A と B の取引を書き留めます。一度記録が成功すると、それは取り消し不能であり、変更することはできません。

ここに画像の説明を挿入

それに集中してください!!!

メロンを食べる人が他人の口座を作るのはなぜですか? これは、ビットコインの発行メカニズムでもあるマイナーマイニングにつながります。つまり、システムは、アカウントを保持しているユーザーに対応する報酬を与えます。
メロンを食べる人がとても多く、みんな小さな帳簿で帳簿をつけているので、誰が最終的な帳簿を取るべきですか?したがって、最終的な簿記結果の有効性について全員が合意できるメカニズムが必要です.これは、ビットコインで採用されているコンセンサスメカニズム-プルーフオブワークに基づくコンセンサスメカニズムです.読者の皆さん、ノートを覚えておいてください.
?

続いて、コンセンサスメカニズムの保護の下で、最終的な簿記権を取得した人々は、このトランザクションのトランザクション情報をネットワーク全体にブロードキャストし、他の人々がトランザクションをチェックおよび確認し、トランザクションが記録されると記録されます。 6回以上の確認に達します。(なに?なんで6?)

メロンイーターがトランザクション情報を記録するとき、彼らはタイムスタンプ (ハッシュ値) をスタンプして完全なタイムチェーンを形成します. このタイムスタンプは実際には存在の証明であり, トランザクションが確認されるたびに実際にトランザクションが発生したことを示します
.レコードはブロック(ブロック)を形成し
、ブロックは魔法のアルゴリズムによってリンクされます
ここに画像の説明を挿入

雄弁に話す

さて、上記の操作を行った後、ビットコイン、ブロックチェーン、および一般的なプロセスの基本的な概念について、皆さんは知覚的に理解していると思います (ブロックチェーンとは何か!) 要点をまとめましょう。ブロックチェーンの考え方や技術を徹底解説!

分散化された

ビットコインネットワークでは、中央集権的なサーバーは存在しません. ネットワーク全体はさまざまなノードで構成されており、それらが一緒になって
分散型通貨発行の分散型ネットワークを形成しています. ビットコインネットワークでは、通貨発行は「マイナーが鉱山を掘る」というメカニズムによって保証されています.このメカニズムは完全に分散化されたメカニズムです.
通貨の取引循環は分散化されています. ビットコインのすべての取引は、ネットワーク内のすべてのノードによって共同で保証されています.

開放性

すべてのビットコイン ユーザーの取引情報は分散台帳に記録されます. この台帳情報はすべてのユーザーに公開されており, 誰でも台帳情報をダウンロードできます. ビットコイン ネットワークはオープンであり, どのサーバーもネットワークに接続できます
.台帳情報の全量をダウンロードする

不変

各トランザクション情報はブロックに保存され、新しく生成された各ブロックは時間の順序 (ハッシュ値) でリンクされます. 時間の不可逆性により、ブロック情報を変更しようとする操作はすべて、新しく生成されたすべてのブロックを追跡できます
. backはボリュームハッシュアルゴリズムで暗号化されています. ハッシュに関与する要素には, このトランザクションの情報だけでなく, 前のブロックのハッシュ値も含まれます. このように,

関連技術

下の図は実際のブロックの表示ですが、今回注目するブロック内のフィールドは次のとおりです。

ビット
ナンス
ハッシュ
前のブロック
マークル ルート
ここに画像の説明を挿入

コンセンサスメカニズム

http://c.biancheng.net/view/1897.html

ブロックチェーン技術は、分散型ネットワークにおける価値の表現と価値の伝達の問題を解決します。この分散型分散型ネットワークでデータをどのように合意するかは、非常に重要な問題です。私たちの日常生活では、ほとんどすべてがコンセンサスのプロセスです。そして、これはまさにビットコインのコアブレークスルーの 1 つです。つまり、分散環境で特定のトランザクションイベントについてコンセンサスに到達する方法です。

コンセンサスメカニズムの2つのコア

経済的インセンティブ: 各ブロックで一定量の新しいビットコインを生成することで参加者に報酬を与える.
セキュリティを確保するために外部リソースを導入する: つまり、コンセンサスのセキュリティを確保するための多数の外部計算を通じて, つまり, プルーフオブワーク.

コンセンサスに達する主なプロセス (新しいブロックを生成するプロセス)

リスニング: ノードはネットワーク全体のトランザクション情報を監視し、検証されたトランザクションはノードのメモリ プールに入ります
構築: 候補ブロックと呼ばれる空のブロックを構築
します トランザクション: メモリ プールから候補ブロックにトランザクションをパッケージ化します
ヘッド: 構築 ブロック ヘッダー、ブロック ヘッダーの次のフィールドに入力します バージョン
番号 バージョン フィールド: このブロックが準拠している検証ルールを示します
親ブロックのハッシュ値 前のブロックは
マークル ツリーを使用してすべてのトランザクションを要約し、次のハッシュ値を入力しますマークル ルートからマークル ルートへ フィールド
タイムスタンプ タイムスタンプ フィールド ターゲット
値を入力 ビット フィールド
操作: 計算されたハッシュ値が特定の要件を満たすように、常に乱数ノンスを調整し、ハッシュ計算を実行します。つまり、ターゲット ハッシュよりも小さくなります。(OR: 計算されたハッシュ値のバイナリ表現には、特定の
数の先頭の 0 があります) 2 進数を比較する場合、比較は実際には先行する 0 であり、0 が多い方が小さくなるため
. ブロードキャスト (ゴシップ プロトコル) 新しいブロックの
検証: 他のノードが検証を通過した後、(前のブロック) をメイン チェーンにリンクします (サイド チェーンはありますか? うーん...)
待つ: メイン チェーンが 5 つの新しいブロックをリンクするのを待ちます (つまり、5+1 ブロックの後) )、ブロックは正式に有効になり、改ざんできなくなります。
コンセンサスに達するこのプロセスは、ワークロード プルーフに基づくコンセンサス メカニズムと呼ばれます。説明するいくつかのポイントを次に示します。

ワークロードを理解するには?

常に乱数を調整して SHA-256 の計算競争を行うのがコンピュータの計算能力です. この計算能力に基づく計算は一種の作業負荷です. 計算された Hash 値が目標
Hash よりも小さくなるのはなぜですか.
サイコロが投げるポイントの数は <= 6 であり、平均して 1 回振る必要があり、ワークロードは 1 として定量化できます。必要なサイコロを投げるポイントの数 <= 3 はどうでしょうか? 平均2回の投擲が必要で、負荷が2倍になります。目標値が非常に小さい場合、計算されたハッシュ値を目標値よりも小さくすると非常に大きくなります。
コンピュータの計算能力の向上に伴い、計算の難易度をどのように制御しますか?
256ビットの2進数で構成される目標ハッシュ値で、1ビットを任意に変更すると難易度が2倍になるため、目標ハッシュ値を調整することで難易度を調整できる

ハッシュ計算


一般的にはSHA-256演算が用いられ、演算で出力されるハッシュ値は256ビットの2進数で構成されますが、表現の便宜上16進数で表現するので、256/4=64ビットの16 進数の入力変更すると出力が大幅に変更され、法則はまったくありません。

ビットとターゲット ハッシュ値

ビットは難易度に対応します. 32 ビットの整数を使用して、現在の 256 ビットのターゲット ハッシュ値を圧縮して格納します.

対象のハッシュ値: 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
ビット: 0x1D00FFFF
圧縮方法は? ルールは次のとおりです。

ターゲット ハッシュ値の有効桁数 = (64-8) + 2 = 58 (つまり、29 バイト)、ビット フィールドの最上位バイト = 29、および 16 進表現は 0x1D + 2 です
。対象のハッシュ値 最上位ビット 0xFF (1111 1111) > 0x80 (1000 0000)
ビットの残りの 3 バイト、ハッシュ値の上位 3 バイトを格納する

マークルルート

マークル ツリーは、ビットコインでトランザクション情報を各ブロックに格納するために使用されます。

ここに画像の説明を挿入

マークル ツリーを使用してすべてのトランザクション情報を要約し、要約されたマークル ルートをブロック ヘッダーに配置します。これの利点は明らかです。

すべてのトランザクションは、Merkle Root に集約されるまでハッシュ計算に参加します。誰かがマークル ツリーの最下部にあるデータ ブロックを改ざんすると、上位層のハッシュ ポインターが一致しなくなり、上位層のハッシュ ポインターを番号の先頭まで改ざんする必要があり、現時点では、改ざんは終了しようとしています, ツリーのルートノードのハッシュポインターを保存しているため, トランザクション情報が改ざんされるのを防ぐことができます. ユーザーは非常に小さなブロックヘッダーデータをダウンロードして検証するだけで済みます
.トランザクションの真正性
最長チェーンの原則に従って、すべてのブロック ヘッダーをローカルにプルする 検証する
トランザクションの tx_hash 値を計算する
tx_hash でブロック ヘッダーを見つけて
、この領域を見つける ブロック内のマークル ツリーのいくつかのキー ノード、最初のツリー ハッシュ ポインターのルート ノードを覚えている限り、
マークル ツリー コピーのルートがブロック内のルートと同じかどうかを比較するための構築規則に従ってマークル ツリー コピーを構築します。、ハッシュ
に従って、テーブル内の任意の位置に戻ることができます
ポインタ
では、「二重支出」の問題とは何でしょうか。ここで、これに関連するいくつかの概念を整理しましょう。

51% コンピューティング パワー アタック
二重支出問題
3.1.6.1 51% コンピューティング パワー アタック
プルーフ オブ ワークに基づくコンセンサス メカニズムでは、ネットワーク内のノードがコンピューター コンピューティング パワーと競合して複雑なハッシュ操作を実行し、最初に結果を計算したノードが生成します。ブロックはネットワーク全体で受け入れられ、新しいブロックと呼ばれるブロックチェーンにリンクされます。次に、個人または組織がネットワーク全体のコンピューティング パワーの 51% を習得すると、「好きなように」トランザクションを偽造できます。

二重支出問題

Xiaohei が 666 BTC を持っていると仮定すると、彼はこれらのコインを Dabai に支払い、同時にこれらのコインを自分の別のウォレット アドレスに送信します。

最終的に、Dabai に送信されたトランザクションが最初に確認され、ブロックの高さが N のブロックにパッケージ化されました。

このとき、計算能力の50%以上を支配していたシャオ・ヘイは、51%の計算能力攻撃を開始し、N番目のブロックを再構築することで、自身に送信されたトランザクションをブロックにパッケージ化し、このチェーンを継続しました。計算能力の利点のために、この量は法的な最長チェーンと呼ばれます。(ユーザーは自分が見た最長のチェーンのみを認識します - 最長チェーンの原則)

この時、Dabai に転送されたトランザクションは改ざんされました。

回避する方法

二重支出による損失を避けるために、6 ブロックが確認された後のビットコイン取引は改ざんできないと一般的に考えられています。
ここに画像の説明を挿入

一般的に言えば、確認されたブロックが多いほど、安全性が高くなり、トランザクションが改ざんされる可能性が低くなります。

二重支出を実現するために、実際には悪意のあるノードと安全なノードがマイニングを競い合うプロセスであり、悪意のあるノードによって形成された悪意のあるチェーンが、安全なノードによって形成された信頼されたチェーンよりも長い場合、悪意のあるノードは、二重支出を実現できます。ここで、悪意のあるノードがネットワーク全体の計算能力を占めると仮定すると、安全なノードはq = 1-pであり、n番目のブロックを通過した後、悪意のあるノードの確率信頼できるチェーンに追いつくためのチェーン:

(pq)n ( pq ) n
では、信頼できるノードが n 個のブロックを生成したとき、悪意のあるノードはいくつのブロックを生成するでしょうか?

ここで、サトシ・ナカモトは、悪意のあるノードによって生成されたブロックの数がポアソン分布に従うと仮定しています。

P(X=k)=(λkk!)e−λ P ( X = k ) = ( λ kk ! ) e − λ この式は次のことを意味します: 悪意のあるノードが k ブロックを生成する確率は: P(
X=k)

したがって、信頼できるノードが n 個のブロックを生成した後、ブロックを生成する悪意のあるノードの期待値を見つけることができます。

∑∞k=0(λkk!)e−λ(pq)n−k ∑ k = 0 ∞ ( λ kk ! ) e − λ ( pq ) n − k N=6 のとき p =
At 10%、合計 = 0.0002。

意味: 信頼できるノードが 6 ブロックを生成する場合、悪意のあるノードが生成するブロック数の期待値は 0.0002 です。

つまり、上記想定の条件では、6ブロック確認後、悪質なノード詐欺の可能性はほぼゼロです。

おすすめ

転載: blog.csdn.net/jgku/article/details/128360418