Proof of History:コンセンサス以前の時計

Solanaのコアイノベーションの高いレベルの説明
Solanaは、世界で最もパフォーマンスの高い管理者の承認を必要としないブロックチェーンです。 Solana Testnetの現在の反復では、200の物理的に異なるノードのネットワークで、GPUで実行する場合、1秒あたり50,000トランザクションを超える持続スループットをサポートします。 そのためには、いくつかの最適化と新しいテクノロジーを実装する必要があり、その結果、ブロックチェーン開発の新しいフェーズを示すネットワーク容量の突破口となりました。
これらがSolanaのネットワークを可能にしている7つのイノベーションです:
Proof of History (POH)— コンセンサス以前の時計;
Tower BFT — PoH最適化したPBFT;
Turbine — ブロック伝播プロトコル;
Gulf Stream — Mempoolなしのトランザクションフォワーディングプロトコル;
Sealevel — スマートコントラクト並行実行時間;
Cloudbreak — 水平スケール化されたアカウントデータベース;と
Replicators — 分散台帳保管
分散システムで最も難しい問題の1つは、時間に関する合意です。 実際、BitcoinのProof of Workアルゴリズムの最も重要な機能は、システムの分散型時計と主張する人もいます。 Solanaでは、Proof of Historyがこのソリューションを提供し、それに基づいてブロックチェーンを構築したと考えています。
分散ネットワークは、信頼できる集中型タイミングソリューションでこの問題を解決しました。 たとえば、GoogleのSpannerは、データセンター間で同期された原子時計を使用しています。 Googleのエンジニアはこれらの時計を非常に高い精度で同期し、常に維持しています。
この問題は、ブロックチェーンのような敵対的なシステムではさらに困難です。 ネットワーク内のノードは、外部の時間ソースやメッセージに表示されるタイムスタンプを信頼できません。 たとえば、Hashgraphは、「中央値」のタイムスタンプでこの問題を解決します。 ネットワークに表示される各メッセージは、ネットワークの大部分によって署名され、タイムスタンプが付けられます。 メッセージのタイムスタンプの中央値は、Hashgraphが「公平」な順序付けと呼ぶものです。 各メッセージは、システム内のノードの過半数に到達する必要があり、メッセージが十分な署名を収集した後、セット全体をネットワーク全体に伝播する必要があります。 ご想像のとおり、これは本当に遅いです。
メッセージにエンコードされたタイムスタンプを単純に信頼できるとしたらどうでしょうか? 分散システムの最適化の膨大なメリットは突然あなたの思うままになります。 例えば;
「同期時計は、分散アルゴリズムのパフォーマンスを向上させるために使用できるため、興味深いものです。 それらは、通信をローカル計算に置き換えることを可能にします。」
— リスコフ.B。分散システムでの同期時計の実用的使用
私たちの場合、これは高スループット、高性能ブロックチェーンを意味します
Proof of History
タイムスタンプを信頼する代わりに、イベントの前や後にメッセージが発生したことを証明できたらどうでしょうか? New York Timesの表紙を写真に撮ると、その新聞が発行された後に写真が撮られたという証拠を作成するか、New York Timesが発行するものに影響を与える何らかの方法があったということになります。 Proof of Historyを使用すると、特定の瞬間にイベントが発生したことを証明する履歴レコードを作成できます。
Proof of Historyタイムスタンプ
Proof of Historyタイムスタンプ
Proof of Historyは、高頻度の検証可能な遅延機能です。 検証可能な遅延機能では、評価するために特定の数の順序立ったステップが必要ですが、効率的かつ公に検証できる独自の出力が生成されます。
私たちの特定の実装は、前の出力を次の入力として使用して、それ自体で連続的に実行される、順序立ったプレイメージ耐性ハッシュを使用します。 定期的にカウントと現在の出力が記録されます。
SHA256ハッシュ機能の場合、このプロセスは、2¹²⁸コアを使用した総当たりの攻撃なしでは並列化できません。
その後、生成された各カウンタ間でリアルタイムが経過したこと、および各カウンタが記録された順序がリアルタイムと同じであることを確認できます。
時間の上限
Proof of Historyシーケンスへのメッセージの記録Proof of Historyシーケンスへのメッセージの記録
以前に生成された状態にデータのハッシュを追加することにより、データをシーケンスに挿入できます。 「状態」、「入力データ」、および「カウント」はすべて公開されています。 入力を追加すると、将来のすべての出力が予測不能に変更されます。 並列化することはまだ不可能であり、ハッシュ関数がプリイメージと衝突耐性がある限り、将来的に望ましいハッシュを生成する入力を作成することも、同じハッシュで代替の履歴を作成することもできません。 2つの追加操作の間に時間が経過したことを証明できます。 データが追加される前に作成されたことを証明できます。 ニューヨークタイムズで発行されたイベントは、新聞が書かれる前に起こったことを知っているように
時間の下限
Proof of Historyによる時間の下限Proof of Historyによる時間の下限
Proof of Historyへの入力には、Proof of History自体への参照を含めることができます。 後方参照は、ユーザーの署名を含む署名付きメッセージの一部として挿入できるため、ユーザーの秘密キーなしでは変更できません。 これは、ニューヨークタイムズ紙を背景に写真を撮るようなものです。 このメッセージには「0xdeadc0de」ハッシュが含まれているため、カウント「510144806912」が作成された後に生成されたことがわかります。
ただし、メッセージはProof of Historyストリームにも挿入されるため、まるであなたがバックグラウンドでNew York Timesで写真を撮り、翌日New York Timesがその写真を公開したかのようになります。 その写真の内容は特定の日の前と後に存在することがわかっています。
承認
記録されたシーケンスは単一のCPUコアでのみ生成できますが、出力は並行して検証できます。
並行承認並行承認
記録された各スライスは、生成にかかった1 /(コアの数)時間で、別々のコアで最初から最後まで検証できます。 したがって、4000コアの現代のGPUは、0.25ミリ秒で検証できます。
ASIC
すべてのCPUは違いませんか?一部のCPUは他のCPUよりも高速ですよね? SHA256ループによって生成される「時間」が正確であることを実際にどのように信頼しますか?
このトピックは独自の記事に値しますが、手短に言うと、一部のCPUが他のCPUよりも高速であり、ASICがネットワークで使用可能なCPUよりも高速であることはあまり気にしないということです。 最も重要なことは、ASICがどれだけ高速になれるかには限界があるということです。
私たちはSHA256を使用しています。ビットコインのおかげで、この暗号化ハッシュ機能を高速化する重要な研究が行われています。 この機能は、ルックアップテーブルのような大きなダイ領域を使用したり、時計速度に影響を与えずに展開したりすることで速度を上げることはできません。 IntelとAMDはどちらも、1.75サイクルでSHA256のフルラウンドを実行できるコンシューマチップをリリースしています。
このおかげで、カスタムASICは100倍速くなることはなく、1000倍になるとは限りません。また、ほとんどの場合、ネットワークで利用可能なものの30%以内になります。 この限界を悪用するプロトコルを構築し、攻撃者にサービス拒否攻撃の非常に限られた、簡単に検出され、短命の機会しか与えないようにすることができます。 詳細は次の記事で!
コード
solana – ラボ/solana
solana – 高パフォーマンスブロックチェーン github.com
rustとcudaが好きで、世界最速のブロックチェーンを構築したいなら、hello@solana.comまでご連絡ください
Tower BFT、Proof of ReplicationそしてGulf Streamなどの技術革新と並んで、SolanaのProof of Historyの実装が組み合わさって、世界で最もパフォーマンスの高いブロックチェーンになりました。 Solanaのtestnetは本日公開されます。 seehttp://explorer.solana.com/で見ることができます。 コストの観点から、ほんの少数のノードのみを実行しています。 ただし、ベンチマークのために、AWS、GCE、Azureの23のデータセンターにある(共有ハードウェアではなく)200を超える物理的に異なるノードにスピンアップしました。
ランタイムは現在機能しており、開発者は今すぐtestnowにコードを展開できます。 開発者は現在C言語でスマートコントラクトを構築でき、私たちはRustツールチェーンに積極的に取り組んでいます。 RustはSolanaスマートコントラクト開発の主要言語になります。 Rustツールチェーンは、Solana Javascript SDKの一部として公開されており、Software Development Kitをさらに反復適応しています。
Solanaはまもなく、パブリックベータインセンティブバリデーターを起動して、Cosmosのゲームオブステークスに似たTour de SOLを介してノードを実行し、トークンを稼ぎながらSolanaネットワークの限界を試すよう大衆に働きかけます。