ソラナ:高性能ブロックチェーンのための新しいアーキテクチャ

저자 Anatoly Yakovenko · 2017

Abstract

본 논문은 고성능 블록체인을 위한 새로운 아키텍처를 제시한다. Solana는 Proof of History(PoH)라는 새로운 시간 기록 메커니즘을 구현한다. 이는 이벤트 간의 순서와 시간 경과를 검증하기 위한 증명이다. PoH는 신뢰가 필요 없는 시간 경과를 원장에 인코딩하는 데 사용되며, 특정 시점에 이벤트가 발생했음을 증명하는 역사적 기록을 생성한다.

핵심 혁신은 PoH가 네트워크의 노드들이 서로 통신할 필요 없이 이벤트의 시간적 순서를 확립할 수 있도록 한다는 점이다. 순차적 해시 체인으로 구현된 검증 가능한 지연 함수(VDF)를 사용함으로써, 시스템은 이벤트 간 시간 경과를 검증하는 방법을 제공하는 암호학적 시계를 생성한다. 이를 통해 네트워크는 탈중앙화와 보안을 유지하면서 초당 수천 건의 트랜잭션을 처리할 수 있다.

PoH는 Proof of Stake(PoS) 합의 메커니즘과 통합된다. 이 조합은 검증자가 트랜잭션을 병렬로 검증하고 효율적으로 합의에 도달할 수 있는 고도로 최적화된 블록체인 아키텍처를 가능하게 한다. 이 시스템은 무어의 법칙에 맞춰 확장되도록 설계되었으며, 분산 네트워크의 보안 보장을 희생하지 않으면서 하드웨어 성능 향상을 활용하여 처리량을 개선한다.

Abstract

本論文は、高性能ブロックチェーンのための新しいアーキテクチャを提示する。SolanaはProof of History(PoH)と呼ばれる新しい時間管理メカニズムを実装している。これはイベント間の順序と時間の経過を検証するための証明である。PoHは信頼不要な時間の経過を台帳にエンコードするために使用され、特定の時点でイベントが発生したことを証明する履歴記録を作成する。

重要なイノベーションは、PoHによりネットワーク内のノードが互いに通信することなくイベントの時間的順序を確立できることである。逐次的ハッシュチェーンとして実装された検証可能な遅延関数を使用することで、システムはイベント間の時間の経過を検証する方法を提供する暗号学的時計を生成する。これにより、ネットワークは分散化とセキュリティを維持しながら、毎秒数千のトランザクションを処理できる。

PoHはProof of Stake(PoS)コンセンサスメカニズムと統合されている。この組み合わせにより、バリデータがトランザクションを並列に検証し、効率的にコンセンサスに達することができる高度に最適化されたブロックチェーンアーキテクチャが可能になる。このシステムはムーアの法則に合わせてスケールするように設計されており、分散型ネットワークのセキュリティ保証を犠牲にすることなく、ハードウェア性能の向上を活用してスループットを改善する。

Introduction

블록체인 시스템의 근본적인 과제는 탈중앙화와 보안을 유지하면서 높은 트랜잭션 처리량을 달성하는 것이다. 현재의 블록체인 구현은 시간과 이벤트 순서에 대해 합의하기 위해 노드 간 광범위한 통신을 요구하는 합의 메커니즘에 의해 제한된다. 이러한 조율 오버헤드는 기존 블록체인이 글로벌 규모의 애플리케이션 수요를 충족하기 위해 확장하는 것을 방해하는 병목 현상을 만든다.

핵심 문제는 시간이다. 분산 시스템에서 노드는 다른 노드의 타임스탬프가 정확한지 신뢰할 수 없기 때문에 외부 시계에 의존할 수 없다. 전통적인 블록체인 합의 프로토콜은 현재 상태와 트랜잭션 순서에 합의하기 위해 노드들이 광범위하게 통신하는 방식으로 이 문제를 해결한다. 이러한 통신 오버헤드는 근본적으로 처리량을 제한하는데, 네트워크는 노드가 순서에 대해 합의에 도달할 수 있는 속도만큼만 트랜잭션을 처리할 수 있기 때문이다.

Solana는 이 타이밍 문제에 대한 해결책으로 Proof of History를 도입한다. PoH는 악의적인 행위자의 타임스탬프에 의존하지 않고도 이벤트 사이에 일정량의 시간이 경과했음을 증명하는 암호학적 방법을 제공한다. 검증 가능한 역사적 기록을 생성함으로써, PoH는 노드가 이벤트 발생 순서를 증명할 수 있으면서도 독립적으로 트랜잭션을 처리할 수 있게 한다. 이 혁신은 네트워크가 트랜잭션 처리를 병렬화하고 처리량을 극적으로 증가시킬 수 있게 한다.

핵심 통찰은 신뢰가 필요 없는 시간 소스를 만들 수 있다면, 합의에서 조율 병목을 제거할 수 있다는 것이다. PoH가 암호학적 시계를 제공함으로써, 검증자는 트랜잭션을 병렬로 처리할 수 있으며 정규 순서를 확정하기 위해서만 통신하면 된다. 이러한 아키텍처 전환은 Solana가 탈중앙화된 블록체인에서 이전에 불가능하다고 여겨졌던 성능 수준을 달성할 수 있게 한다.

Introduction

ブロックチェーンシステムにおける根本的な課題は、分散化とセキュリティを維持しながら高いトランザクションスループットを達成することである。現在のブロックチェーン実装は、時間とイベントの順序付けについて合意するためにノード間の広範な通信を必要とするコンセンサスメカニズムによって制限されている。この調整のオーバーヘッドがボトルネックを生み出し、既存のブロックチェーンがグローバル規模のアプリケーションの需要に対応するためのスケーリングを妨げている。

核心的な問題は時間である。分散システムにおいて、ノードは他のノードのタイムスタンプが正確であることを信頼できないため、外部の時計に依存することができない。従来のブロックチェーンコンセンサスプロトコルは、ノードが現在の状態とトランザクションの順序について合意するために広範に通信することでこの問題を解決している。この通信のオーバーヘッドはスループットを根本的に制限する。ネットワークはノードが順序付けについてコンセンサスに達する速度でしかトランザクションを処理できないからである。

SolanaはこのタイミングProblemの解決策としてProof of Historyを導入する。PoHは、潜在的に悪意のあるアクターからのタイムスタンプに依存することなく、イベント間に一定の時間が経過したことを証明する暗号学的方法を提供する。検証可能な履歴記録を作成することで、PoHはノードがトランザクションを独立して処理しながら、イベントが発生した順序を証明できるようにする。このブレークスルーにより、ネットワークはトランザクション処理を並列化し、スループットを劇的に向上させることができる。

重要な洞察は、信頼不要な時間源を作成できれば、コンセンサスから調整のボトルネックを除去できるということである。PoHが暗号学的時計を提供することで、バリデータはトランザクションを並列に処理でき、正規の順序付けを確定するためにのみ通信する必要がある。このアーキテクチャの転換により、Solanaは分散型ブロックチェーンでは不可能と考えられていたパフォーマンスレベルを達成できる。

Outline

본 논문은 Proof of History가 고성능 블록체인 운영을 가능하게 하는 방식에 초점을 맞추어 Solana의 기술 아키텍처를 설명한다. 문서는 먼저 PoH 메커니즘 자체 — 순차적 해시 체인이 검증 가능한 시간적 순서를 생성하는 방법 — 를 설명한다. PoH를 안전하게 만드는 암호학적 속성을 상세히 기술하고, 검증자가 PoH 시퀀스를 효율적으로 검증할 수 있는 방법을 보여준다.

이어서 논문은 PoH가 Proof of Stake 합의와 어떻게 통합되는지 탐구한다. PoH의 시간적 속성을 활용하도록 특별히 설계된 PoS 알고리즘인 Tower BFT를 설명한다. 이 통합은 검증자가 특정 PoH 타임스탬프에서 원장 상태에 투표할 수 있게 하여, 빠르고 안전한 합의 메커니즘을 만든다. 또한 악의적 행동을 방지하는 슬래싱 조건도 설명한다.

다음으로, Solana의 네트워크 설계와 데이터 전파 프로토콜을 제시한다. Gulf Stream 프로토콜은 멤풀 없이 트랜잭션 전달을 가능하게 하여, 클라이언트가 다가오는 리더에게 직접 트랜잭션을 보낼 수 있게 한다. 리더 교체가 어떻게 작동하는지, 그리고 네트워크가 리더십이 변경되는 동안에도 높은 처리량을 유지하는 방법을 설명한다.

마지막으로, Transaction Processing Unit(TPU), Sealevel 병렬 런타임, 데이터 저장 검증을 위한 Proof of Replication을 포함한 시스템 아키텍처를 논의한다. 성능 예측은 Solana가 표준 기가비트 네트워크에서 초당 700,000건 이상의 트랜잭션을 처리할 수 있으며, 하드웨어가 개선됨에 따라 처리량이 확장됨을 보여준다.

Outline

本論文では、Proof of Historyが高性能ブロックチェーン運用をいかに実現するかに焦点を当て、Solanaの技術アーキテクチャを説明する。まず、PoHメカニズム自体について説明する。逐次的ハッシュチェーンがいかにしてイベントの検証可能な時間的順序付けを作成するかを解説する。PoHを安全にする暗号学的特性を詳述し、バリデータがPoHシーケンスを効率的に検証する方法を示す。

次に、PoHがProof of Stakeコンセンサスとどのように統合されるかを探る。PoHの時間的特性を活用するために特別に設計されたPoSアルゴリズムであるTower BFTについて説明する。この統合により、バリデータは特定のPoHタイムスタンプにおける台帳の状態に投票でき、高速かつ安全なコンセンサスメカニズムが実現される。また、悪意ある行動を防止するスラッシング条件についても説明する。

続いて、Solanaのネットワーク設計とデータ伝播プロトコルを提示する。Gulf Streamプロトコルは、mempoolを必要とせずにトランザクション転送を可能にし、クライアントが今後のリーダーに直接トランザクションを送信できるようにする。リーダーローテーションの仕組みと、リーダーシップが変わっても高スループットを維持する方法を説明する。

最後に、Transaction Processing Unit(TPU)、Sealevel並列ランタイム、データストレージ検証のためのProof of Replicationを含むシステムアーキテクチャについて論じる。性能予測は、Solanaが標準的なギガビットネットワーク上で毎秒70万以上のトランザクションを処理でき、ハードウェアの改善に伴いスループットがスケールすることを示している。

Network Design

Solana의 네트워크 설계는 검증자들이 교대로 블록을 생성하는 순환 리더 시스템을 중심으로 한다. 리더는 수신되는 트랜잭션을 PoH 스트림으로 시퀀싱하고 결과 블록을 네트워크에 게시하는 책임을 진다. 리더는 스테이크 가중 알고리즘을 통해 선출되며, 교체 일정은 사전에 알려져 있어 네트워크가 트랜잭션 전달을 최적화할 수 있다.

Solana network design showing transaction flow through the leader validator to the rest of the network

Gulf Stream 프로토콜은 클라이언트가 다가오는 리더에게 직접 트랜잭션을 전달할 수 있게 함으로써 기존의 멤풀 필요성을 제거한다. 클라이언트가 트랜잭션을 제출하면, 교체 일정에 따라 예상 리더에게 전달된다. 현재 리더가 트랜잭션을 처리할 수 없는 경우, 다음 예상 리더에게 전달한다. 이 설계는 확인 지연을 줄이고 검증자가 미리 트랜잭션을 실행할 수 있게 하여 처리량을 더욱 최적화한다.

트랜잭션 전파는 다층 접근 방식을 사용한다. 클라이언트는 검증자에게 트랜잭션을 보내고, 검증자는 현재 또는 다가오는 리더에게 이를 전달한다. 리더는 트랜잭션을 PoH 스트림으로 시퀀싱하여 전체 순서를 생성한다. 시퀀싱이 완료되면, 리더는 PoH 스트림과 트랜잭션 데이터를 검증자에게 전송하고, 검증자는 PoH 시퀀스를 검증하고 트랜잭션을 병렬로 실행한다.

네트워크 설계에는 블록을 더 작은 패킷으로 나누어 트리 구조로 네트워크 전체에 분산하는 turbine 블록 전파 프로토콜도 포함된다. 이 접근 방식은 빠른 블록 전파를 보장하면서 개별 검증자의 대역폭 요구 사항을 최소화한다. PoH의 트랜잭션 순서 검증 능력과 결합된 이 아키텍처는 Solana가 탈중앙화를 희생하지 않으면서 높은 처리량을 달성할 수 있게 한다.

Network Design

Solanaのネットワーク設計は、バリデータが交代でブロックを生成するローテーションリーダーシステムを中心としている。リーダーは、着信トランザクションをPoHストリームに順序付けし、結果のブロックをネットワークに公開する責任を持つ。リーダーはステーク加重アルゴリズムによって選出され、ローテーションスケジュールは事前に知られているため、ネットワークはトランザクション転送を最適化できる。

Solana network design showing transaction flow through the leader validator to the rest of the network

Gulf Streamプロトコルは、クライアントが今後のリーダーに直接トランザクションを転送できるようにすることで、従来のmempoolの必要性を排除する。クライアントがトランザクションを送信すると、ローテーションスケジュールに基づいて予想されるリーダーに転送される。現在のリーダーがトランザクションを処理できない場合、次の予想リーダーに転送される。この設計により確認レイテンシが短縮され、バリデータが事前にトランザクションを実行できるため、スループットがさらに最適化される。

トランザクション伝播はマルチレイヤーアプローチを使用する。クライアントはバリデータにトランザクションを送信し、バリデータは現在のリーダーまたは今後のリーダーに転送する。リーダーはトランザクションをPoHストリームに順序付けし、全体の順序付けを作成する。順序付けが完了すると、リーダーはPoHストリームとトランザクションデータをバリデータに送信し、バリデータはPoHシーケンスを検証してトランザクションを並列に実行する。

ネットワーク設計には、ブロックをより小さなパケットに分割し、ツリー構造でネットワーク全体に配布するTurbineブロック伝播プロトコルも含まれている。このアプローチにより、迅速なブロック伝播を確保しながら、個々のバリデータの帯域幅要件を最小化する。PoHのトランザクション順序検証能力と組み合わせることで、このアーキテクチャはSolanaが分散化を犠牲にすることなく高スループットを達成することを可能にする。

Proof of History

Proof of HistorySHA-256을 사용한 순차적 해시 체인으로 구현된 검증 가능한 지연 함수(VDF)이다. PoH 생성기는 각 출력을 다음 해시의 입력으로 사용하여 SHA-256 해시를 지속적으로 계산한다. 이는 각 해시가 이전 해시 이후에만 계산될 수 있는 순차적 체인을 생성하여, 검증 가능한 시간적 순서를 확립한다. 각 해시를 생성하기 위한 계산 요구 사항은 이벤트 간 최소 시간 지연을 강제한다.

Proof of History sequence showing sequential SHA-256 hash outputs with counter values

PoH의 핵심 속성은 검증은 저렴하지만 생성은 비용이 많이 든다는 것이다. 검증자는 해시 시퀀스를 세그먼트로 나누어 각 세그먼트를 독립적으로 검사한 후 세그먼트가 올바르게 연결되는지 확인함으로써 전체 해시 시퀀스를 병렬로 검사할 수 있다. 그러나 생성은 반드시 순차적이어야 한다 — 모든 중간 단계를 실제로 계산하지 않고는 해시 체인의 출력을 예측할 방법이 없다. 생성과 검증 사이의 이러한 비대칭성이 PoH를 실용적으로 만드는 것이다.

Proof of History verification using multiple CPU cores to check hash chain segments in parallel

외부 이벤트와 트랜잭션 데이터는 해시 체인에 혼합되어 PoH 시퀀스에 삽입된다. 트랜잭션이 도착하면, 그 해시가 현재 PoH 상태와 결합되어 해당 트랜잭션이 시퀀스의 그 시점에 존재했음을 증명하는 기록이 생성된다. PoH 생성기는 주기적으로 체크포인트를 기록하며, 마지막 체크포인트 이후 계산된 해시 수와 함께 현재 해시 값을 게시한다. 이러한 체크포인트는 검증자가 모든 해시를 재계산하지 않고도 PoH 시퀀스를 효율적으로 검증할 수 있게 한다.

Inserting external data into the Proof of History hash sequence to create a verifiable timestamp

PoH 시퀀스는 전체 네트워크의 암호학적 시계 역할을 한다. 해시 체인은 순차적이고 검증 가능하므로, 어떤 노드든 해당 구간 동안 계산된 해시를 보여줌으로써 두 이벤트 사이에 일정량의 시간이 경과했음을 증명할 수 있다. 이는 노드가 외부 타임스탬프를 신뢰하거나 시간적 순서를 확립하기 위해 서로 조율할 필요를 제거하여, 전통적인 블록체인 합의의 근본적인 병목을 해소한다.

Proof of History input with a back reference ensuring consistency and causal ordering of events

Proof of History

Proof of Historyは、SHA-256を使用した逐次的ハッシュチェーンとして実装された検証可能な遅延関数である。PoHジェネレータは継続的にSHA-256ハッシュを計算し、各出力を次のハッシュの入力として使用する。これにより、各ハッシュは前のものが計算された後にのみ計算できる逐次的なチェーンが作成され、検証可能な時間的順序付けが確立される。各ハッシュを生成するための計算要件により、イベント間の最小時間遅延が強制される。

Proof of History sequence showing sequential SHA-256 hash outputs with counter values

PoHの重要な特性は、検証は安価だが生成は高コストであることである。検証者はハッシュシーケンス全体をセグメントに分割し、各セグメントを独立して並列にチェックし、セグメントが適切に接続されていることを確認することで検証できる。しかし、生成は逐次的でなければならない。すべての中間ステップを実際に計算せずにハッシュチェーンの出力を予測する方法はない。生成と検証の間のこの非対称性がPoHを実用的にしている。

Proof of History verification using multiple CPU cores to check hash chain segments in parallel

外部イベントとトランザクションデータは、ハッシュチェーンに混合されることでPoHシーケンスに挿入される。トランザクションが到着すると、そのハッシュは現在のPoH状態と結合され、トランザクションがシーケンスのその時点で存在したことを証明する記録が作成される。PoHジェネレータは定期的にチェックポイントを記録し、最後のチェックポイント以降に計算されたハッシュ数とともに現在のハッシュ値を公開する。これらのチェックポイントにより、バリデータはすべてのハッシュを再計算することなくPoHシーケンスを効率的に検証できる。

Inserting external data into the Proof of History hash sequence to create a verifiable timestamp

PoHシーケンスはネットワーク全体の暗号学的時計として機能する。ハッシュチェーンは逐次的で検証可能であるため、任意のノードは、その間隔中に計算されたハッシュを示すだけで、2つのイベント間に一定の時間が経過したことを証明できる。これにより、ノードが外部のタイムスタンプを信頼したり、時間的順序付けを確立するために互いに調整したりする必要がなくなり、従来のブロックチェーンコンセンサスにおける根本的なボトルネックが除去される。

Proof of History input with a back reference ensuring consistency and causal ordering of events

Proof of History Sequence

Proof of History 시퀀스는 각 해시가 이전 출력에 의존하는 연속적인 SHA-256 해시 체인이다. 시퀀스는 초기 시드 값에서 시작하며, 이 값을 해싱하여 첫 번째 출력을 생성한다. 이 출력은 다음 해시의 입력이 되고, 이 과정이 무한히 반복된다. 생성기는 또한 계산된 총 해시 수를 추적하는 카운터를 유지하며, 이는 원장에서 이벤트의 PoH "타임스탬프" 역할을 한다.

Two Proof of History generators synchronizing by inserting each other's output state for horizontal scaling

데이터를 시퀀스에 삽입해야 할 때(트랜잭션 해시나 검증자 서명 등), 결정론적 혼합 함수를 사용하여 현재 해시 상태와 결합된다. 예를 들어, 현재 해시 상태가 hash_n이고 데이터 D를 삽입하려면, hash_{n+1} = SHA256(hash_n || D)를 계산한다. 여기서 ||는 연결(concatenation)을 나타낸다. 삽입 지점은 카운터 값과 함께 기록되어, 데이터 D가 시퀀스의 해당 특정 지점에 존재했음을 증명한다.

PoH 시퀀스의 검증은 체인을 세그먼트로 분할하여 병렬화할 수 있다. 예를 들어, 검증자가 10,000 해시마다 PoH 체크포인트를 수신할 수 있다. 체크포인트 간 시퀀스를 검증하기 위해, 검증자는 10,000개의 해시를 각 100개씩 100개의 세그먼트로 분할하고, 각 세그먼트를 병렬로 독립적으로 검증한 다음, 세그먼트가 올바르게 연결되는지 확인할 수 있다. 이를 통해 검증은 사용 가능한 CPU 코어 수에 따라 수평적으로 확장될 수 있다.

시퀀스는 또한 두 이벤트가 특정 순서로 발생했음에 대한 효율적인 증명을 지원한다. n m인 카운터 값 nm에서의 두 데이터 삽입이 주어지면, 누구나 해당 지점 사이의 해시 체인을 확인하여 n의 이벤트가 m의 이벤트보다 먼저 발생했음을 검증할 수 있다. 이 속성은 Solana가 노드가 지속적으로 온라인 상태이거나 외부 시간 소스를 신뢰할 필요 없이 네트워크의 모든 이벤트에 대한 검증 가능한 역사적 기록을 생성할 수 있게 한다.

Proof of History Sequence

Proof of Historyシーケンスは、各ハッシュが前の出力に依存するSHA-256ハッシュの連続的なチェーンである。シーケンスは初期シード値から始まり、それがハッシュされて最初の出力を生成する。この出力が次のハッシュの入力となり、プロセスは無限に繰り返される。ジェネレータは計算されたハッシュの総数を追跡するカウンタも維持しており、台帳内のイベントのPoH「タイムスタンプ」として機能する。

Two Proof of History generators synchronizing by inserting each other's output state for horizontal scaling

データをシーケンスに挿入する必要がある場合(トランザクションハッシュやバリデータの署名など)、決定論的な混合関数を使用して現在のハッシュ状態と結合される。例えば、現在のハッシュ状態がhash_nで、データDを挿入する場合、hash_{n+1} = SHA256(hash_n || D)を計算する。ここで||は連結を表す。挿入ポイントはカウンタ値とともに記録され、データDがシーケンスのその特定の時点で存在したことを証明する。

PoHシーケンスの検証は、チェーンをセグメントに分割することで並列化できる。例えば、バリデータは10,000ハッシュごとにPoHチェックポイントを受信する場合がある。チェックポイント間のシーケンスを検証するために、バリデータは10,000ハッシュを100ハッシュの100セグメントに分割し、各セグメントを独立して並列に検証し、セグメントが適切に接続されていることを確認できる。これにより、検証は利用可能なCPUコア数に応じて水平にスケールできる。

シーケンスは、2つのイベントが特定の順序で発生したことの効率的な証明もサポートする。カウンタ値nmn m)における2つのデータ挿入がある場合、nのイベントがmのイベントより前に発生したことを、それらの間のハッシュチェーンを確認することで誰でも検証できる。この特性により、Solanaはノードが継続的にオンラインであったり外部の時間源を信頼したりする必要なく、ネットワーク内のすべてのイベントの検証可能な履歴記録を作成できる。

Timestamp

Proof of History는 벽시계 시간에 의존하지 않고 이벤트에 타임스탬프를 할당하는 탈중앙화된 시계로 기능한다. 각 PoH 해시는 암호학적 시계의 개별 "틱"을 나타내며, 카운터 값이 타임스탬프 역할을 한다. 해시 체인은 순차적이고 검증 가능하므로, 이러한 타임스탬프는 신뢰가 필요 없다 — 어떤 관찰자든 해시 체인을 확인하여 타임스탬프가 정당한지 검증할 수 있다.

Solana에서 각 검증자는 리더로 활동할 때 자체 PoH 시퀀스를 생성할 수 있다. 검증자가 리더십을 교체할 때, 이전 리더의 마지막 확인된 체크포인트를 사용하여 PoH 시퀀스를 동기화한다. 이는 서로 다른 검증자가 교대로 블록을 생성하더라도 시간 기록의 연속성을 보장한다. 네트워크는 공식 원장의 일부로 수용할 PoH 시퀀스에 대해 합의에 도달하여 정규 타임라인을 확립한다.

시스템은 리더 교체와 합의의 조합을 통해 클록 드리프트와 하드웨어 성능의 편차를 처리한다. 악의적이거나 결함이 있는 리더가 잘못된 속도(너무 빠르거나 너무 느리게)로 PoH 타임스탬프를 생성하려고 시도하면, 검증자는 자체 로컬 PoH 생성기와 비교하여 PoH 틱 속도를 비교함으로써 이를 감지할 수 있다. 예상 속도에서의 상당한 편차는 문제를 나타내며, 검증자는 PoH 시퀀스가 네트워크 중앙값에서 너무 벗어난 리더의 블록을 거부할 수 있다.

이 타임스탬핑 메커니즘은 분산 시스템의 근본적인 문제 중 하나인 신뢰할 수 있는 중앙 기관 없이 공통의 시간 개념을 확립하는 문제를 해결한다. PoH를 탈중앙화된 시계로 사용함으로써, Solana는 검증자가 전역적으로 일관된 순서를 유지하면서 트랜잭션을 병렬로 처리할 수 있게 한다. 타임스탬프는 또한 트랜잭션 만료, 예약된 작업, 성능 측정과 같은 시간 기반 기능의 기초를 제공한다.

Timestamp

Proof of Historyは、壁時計時間に依存せずにイベントにタイムスタンプを割り当てる分散型時計として機能する。各PoHハッシュは暗号学的時計の離散的な「ティック」を表し、カウンタ値がタイムスタンプとして機能する。ハッシュチェーンは逐次的で検証可能であるため、これらのタイムスタンプは信頼不要である。任意の観察者がハッシュチェーンを確認することでタイムスタンプの正当性を検証できる。

Solanaでは、各バリデータがリーダーとして行動する際に独自のPoHシーケンスを生成できる。バリデータがリーダーシップをローテーションする際、前のリーダーからの最後の確認済みチェックポイントを使用してPoHシーケンスを同期する。これにより、異なるバリデータが交代でブロックを生成しても、時間記録の連続性が確保される。ネットワークは、どのPoHシーケンスを公式台帳の一部として受け入れるかについてコンセンサスに達することで、正規のタイムラインを確立する。

システムはクロックドリフトとハードウェア性能のばらつきを、リーダーローテーションとコンセンサスの組み合わせで処理する。悪意のあるまたは故障したリーダーが不正な速度(速すぎるまたは遅すぎる)でPoHタイムスタンプを生成しようとした場合、バリデータは自身のローカルPoHジェネレータとPoHティックレートを比較することでこれを検出できる。予想レートからの大幅な逸脱は問題を示し、バリデータはPoHシーケンスがネットワーク中央値から大きく逸脱するリーダーからのブロックを拒否できる。

このタイムスタンプメカニズムは、分散システムにおける根本的な問題の1つを解決する。信頼できる中央機関なしに共通の時間概念を確立することである。PoHを分散型時計として使用することで、Solanaはバリデータがグローバルに一貫した順序付けを維持しながらトランザクションを並列に処理できるようにする。タイムスタンプはまた、トランザクションの有効期限、スケジュールされた操作、パフォーマンス測定などの時間ベースの機能の基盤も提供する。

Proof of Stake Consensus

Tower BFT라 불리는 Solana의 합의 메커니즘은 Proof of History의 시간적 속성을 활용하도록 특별히 설계된 Proof of Stake 알고리즘이다. 검증자는 SOL 토큰을 스테이킹하여 합의에 참여하고 블록을 올바르게 검증하면 보상을 받는다. 스테이크 가중 투표 시스템은 네트워크에 더 많은 경제적 이해관계를 가진 검증자가 합의 결정에 비례적으로 더 큰 영향력을 갖도록 보장한다.

Tower BFT의 핵심 혁신은 연속 투표마다 기하급수적으로 증가하는 잠금 기간의 사용이다. 검증자가 PoH 해시에 투표하면, 일정 수의 PoH 틱 동안 해당 원장의 포크에 대해 커밋한다. 해당 포크의 다음 블록에 투표하면 잠금 기간이 두 배가 된다. 이는 검증자가 동일한 포크에 계속 투표하도록 강력한 경제적 인센티브를 만드는데, 포크를 전환하려면 이전 잠금이 만료될 때까지 기다려야 하기 때문이다.

구체적으로, 검증자가 PoH 타임스탬프 t에서 블록에 투표하면, 2^n 틱이 경과할 때까지 충돌하는 포크에 투표할 수 없다. 여기서 n은 현재 포크에서 연속으로 한 투표 수이다. 이 기하급수적 잠금 메커니즘은 빠른 최종성을 허용하면서 장거리 공격에 대한 시스템의 보안을 유지한다. 충분한 깊이로 블록에 대해 스테이크의 초과반수가 투표하면, 해당 블록은 사실상 확정된다.

슬래싱 조건은 정직한 행동을 강제한다. 검증자가 잠금 상태여야 하는 기간 동안 두 개의 충돌하는 포크에 투표하면, 슬래싱된다 — 스테이킹된 토큰이 부분적으로 소각되고 검증자 세트에서 제거된다. 이는 이중 투표나 기타 비잔틴 행동을 시도하는 것을 경제적으로 비합리적으로 만든다. PoH의 검증 가능한 타임스탬프와 Tower BFT의 기하급수적 잠금의 조합은 빠르고 안전한 합의 메커니즘을 만들어, 전통적인 BFT 시스템의 보안 보장을 유지하면서 수 초 만에 최종성을 달성한다.

Proof of Stake Consensus

SolanaのコンセンサスメカニズムはTower BFTと呼ばれ、Proof of Historyの時間的特性を活用するために特別に設計されたProof of Stakeアルゴリズムである。バリデータはSOLトークンをステークしてコンセンサスに参加し、ブロックの正確な検証に対して報酬を得る。ステーク加重投票システムにより、ネットワークにより多くの経済的利害関係を持つバリデータがコンセンサス決定に比例してより多くの影響力を持つことが保証される。

Tower BFTの核心的なイノベーションは、連続投票ごとに指数関数的に増加するロックアウト期間の使用である。バリデータがPoHハッシュに投票すると、一定数のPoHティックの間、台帳のそのフォークにコミットする。そのフォークの次のブロックに投票すると、ロックアウト期間は倍増する。これにより、バリデータが同じフォークで投票を続ける強い経済的インセンティブが生まれる。フォークの切り替えには以前のロックアウトの期限切れを待つ必要があるからである。

具体的には、バリデータがPoHタイムスタンプtでブロックに投票した場合、2^nティックが経過するまで競合するフォークに投票できない。ここでnは現在のフォークで行った連続投票の数である。この指数関数的ロックアウトメカニズムにより、システムは高速なファイナリティを可能にしながら、長距離攻撃に対して安全になる。ステークの超過半数が十分な深さでブロックに投票すると、そのブロックは事実上確定される。

スラッシング条件は正直な行動を強制する。バリデータがロックアウトされているはずの期間中に2つの競合するフォークに投票した場合、スラッシングされる。ステークされたトークンは部分的に破壊され、バリデータセットから除外される。これにより、二重投票やその他のビザンチン行動を試みることが経済的に非合理的になる。PoHの検証可能なタイムスタンプとTower BFTの指数関数的ロックアウトの組み合わせにより、従来のBFTシステムのセキュリティ保証を維持しながら、数秒でファイナリティを達成する高速かつ安全なコンセンサスメカニズムが実現される。

Streaming Proof of Replication

Proof of Replication(PoRep)은 검증자가 데이터 자체를 공개하거나 집약적인 계산을 요구하지 않고도 원장 데이터를 저장하고 있음을 증명할 수 있는 메커니즘이다. Solana는 검증자가 블록체인 상태를 복제하고 있음을 지속적으로 입증하는 스트리밍 버전의 PoRep을 구현한다. 이는 원장 데이터가 소수의 위치에 집중되지 않고 검증자 전체에 적절히 분산되도록 보장하므로 네트워크 보안에 필수적이다.

PoRep 메커니즘은 검증자가 자신의 아이덴티티에서 파생된 검증자 고유 키를 사용하여 CBC(Cipher Block Chaining) 모드 암호화로 원장의 세그먼트를 암호화하는 방식으로 작동한다. 암호화 프로세스는 각 암호화된 블록이 이전 블록에 의존하도록 되어 있어, 각 검증자에 고유한 체인을 생성한다. 이는 검증자가 단순히 서로의 암호화된 데이터를 복사하는 것을 방지한다 — 각 검증자는 고유한 암호화 버전을 생성하기 위해 원본 원장 데이터를 저장하고 처리해야 한다.

Sequential CBC encryption diagram showing chained block cipher used in Solana Proof of Replication

주기적으로, 네트워크는 검증자에게 특정 암호화된 블록을 제공하도록 요구하는 챌린지를 발행한다. 암호화가 체인으로 연결되어 있으므로, 검증자는 올바른 응답을 생성하기 위해 모든 선행 블록을 저장하고 있어야 한다. 검증자는 암호화된 원장에서의 위치를 보여주는 Merkle 증명과 함께 암호화된 블록을 제출한다. 네트워크는 데이터를 복호화하거나 재암호화할 필요 없이 이 증명을 신속하게 검증할 수 있다.

Fast Proof of Replication using Merkle hash tree for verifiable storage challenges

이 스트리밍 방식의 PoRep은 전통적인 저장 증명 시스템에 비해 오버헤드가 낮다. 검증자는 데이터가 도착하는 대로 암호화하고 최소한의 지연으로 챌린지에 응답할 수 있다. 시스템은 또한 데이터 손실 시 복구를 가능하게 한다 — 검증자가 원장의 일부를 잃으면, 다른 검증자로부터 다시 다운로드하여 재암호화할 수 있다. PoRep과 PoH 타임스탬프의 조합은 네트워크가 데이터가 생성된 시기와 검증자 네트워크 전체에 적절히 저장되어 있는지를 모두 검증할 수 있는 완전한 책임 시스템을 만든다.

Streaming Proof of Replication

Proof of Replication(PoRep)は、バリデータがデータ自体を明かしたり計算集約的な処理を必要としたりすることなく、台帳データを保存していることを証明できるメカニズムである。SolanaはPoRepのストリーミングバージョンを実装しており、バリデータはブロックチェーンの状態を複製していることを継続的に実証する。これはネットワークセキュリティにとって不可欠であり、台帳データがバリデータ間で適切に分散され、少数の場所に集中していないことを保証する。

PoRepメカニズムは、バリデータがそのIDから派生したバリデータ固有のキーを使用して、CBC(Cipher Block Chaining)モード暗号化で台帳のセグメントを暗号化することで機能する。暗号化プロセスは、各暗号化ブロックが前のブロックに依存するようになっており、各バリデータに固有のチェーンを作成する。これにより、バリデータが互いの暗号化データを単にコピーすることが防止される。各バリデータは、固有の暗号化バージョンを生成するために、元の台帳データを保存して処理しなければならない。

Sequential CBC encryption diagram showing chained block cipher used in Solana Proof of Replication

定期的に、ネットワークはバリデータに特定の暗号化ブロックの提供を要求するチャレンジを発行する。暗号化はチェーンされているため、バリデータは正しい応答を生成するためにすべての先行ブロックを保存していなければならない。バリデータは暗号化ブロックとともに、暗号化台帳内のその位置を示すMerkle証明を提出する。ネットワークはデータを復号化または再暗号化する必要なく、この証明を迅速に検証できる。

Fast Proof of Replication using Merkle hash tree for verifiable storage challenges

このPoRepへのストリーミングアプローチは、従来のproof-of-storageシステムと比較して低いオーバーヘッドを持つ。バリデータはデータの到着時に暗号化でき、最小限のレイテンシでチャレンジに応答できる。システムはデータ損失の場合のリカバリも可能にする。バリデータが台帳の一部を失った場合、他のバリデータからダウンロードして再暗号化できる。PoRepとPoHタイムスタンプの組み合わせにより、ネットワークがデータの作成時期とバリデータネットワーク全体に適切に保存されていることの両方を検証できる完全な説明責任システムが作成される。

System Architecture

Solana의 시스템 아키텍처는 트랜잭션 처리의 여러 단계가 병렬로 진행되는 파이프라인으로 설계되었다. Transaction Processing Unit(TPU)은 수신되는 트랜잭션을 처리하는 핵심 구성 요소이다. TPU는 여러 단계로 구성된다: 페치(트랜잭션 수집), 서명 검증, 뱅킹(트랜잭션 실행), 쓰기(스토리지에 커밋). 각 단계는 CPU 파이프라이닝과 유사하게 서로 다른 트랜잭션에 대해 병렬로 작동한다.

Solana system architecture showing the Transaction Processing Unit pipeline from fetch to write

서명 검증은 트랜잭션 서명 검증에 필요한 타원 곡선 암호화 연산에 매우 효율적인 GPU를 사용하여 가속된다. 이 계산 집약적인 작업을 GPU에 오프로딩함으로써, Solana는 범용 하드웨어에서 초당 900,000건 이상의 속도로 서명을 검증할 수 있다. 이 병렬 서명 검증은 매우 높은 트랜잭션 속도에서도 암호화 검증이 병목이 되는 것을 방지한다.

Solana PoH generator network throughput limits showing bandwidth and processing constraints

Sealevel 런타임은 Solana의 병렬 스마트 컨트랙트 실행 엔진이다. 트랜잭션을 순차적으로 실행하는 기존 블록체인과 달리, Sealevel은 트랜잭션이 접근하는 계정을 분석하여 충돌하지 않는 트랜잭션을 여러 CPU 코어에 걸쳐 병렬로 실행한다. 동일한 계정에 접근하는 트랜잭션은 일관성을 유지하기 위해 순차적으로 실행되지만, 서로 다른 계정에 접근하는 트랜잭션은 동시에 실행될 수 있다. 이 병렬성은 PoH가 전역 순서를 확립하기 때문에 가능하다 — 검증자는 PoH가 지정한 시퀀스로 상태에 적용하기만 하면 어떤 순서로든 트랜잭션을 실행할 수 있다.

Executing user-supplied BPF programs in Solana Sealevel runtime with shared intrinsic calls

아키텍처에는 블록 전파와 스토리지를 위한 최적화된 구성 요소도 포함된다. turbine 블록 전파 프로토콜은 이레이저 코딩을 사용하여 블록을 더 작은 패킷으로 나누어 트리 구조로 네트워크에 분산하여 대역폭 요구 사항을 최소화한다. Archivers 네트워크는 PoRep을 사용하여 데이터 가용성을 보장하면서 역사적 원장 데이터에 대한 탈중앙화된 스토리지를 제공한다. 이러한 구성 요소들이 함께 블록체인의 탈중앙화와 보안 속성을 유지하면서 초당 수십만 건의 트랜잭션을 처리할 수 있는 시스템을 만든다.

System Architecture

Solanaのシステムアーキテクチャは、トランザクション処理の異なる段階が並列に行われるパイプラインとして設計されている。Transaction Processing Unit(TPU)は、着信トランザクションの処理を担当する中核コンポーネントである。TPUはいくつかの段階で構成される:fetch(トランザクションの収集)、署名検証、banking(トランザクション実行)、write(ストレージへのコミット)。各段階は異なるトランザクションに対して並列に動作し、CPUパイプラインと同様の仕組みである。

Solana system architecture showing the Transaction Processing Unit pipeline from fetch to write

署名検証はGPUを使用して加速される。GPUはトランザクション署名の検証に必要な楕円曲線暗号演算において非常に効率的である。この計算集約的なタスクをGPUにオフロードすることで、Solanaはコモディティハードウェア上で毎秒900,000を超える速度で署名を検証できる。この並列署名検証により、非常に高いトランザクションレートでも暗号学的検証がボトルネックになることが防止される。

Solana PoH generator network throughput limits showing bandwidth and processing constraints

Sealevelランタイムは、Solanaの並列スマートコントラクト実行エンジンである。トランザクションを逐次的に実行する従来のブロックチェーンとは異なり、Sealevelはトランザクションを分析してアクセスするアカウントを特定し、競合しないトランザクションを複数のCPUコアで並列に実行する。同じアカウントにアクセスするトランザクションは一貫性を維持するために逐次的に実行されるが、異なるアカウントにアクセスするトランザクションは同時に実行できる。この並列処理はPoHがグローバルな順序付けを確立するため可能である。バリデータは、PoHで指定されたシーケンスで状態に適用する限り、任意の順序でトランザクションを実行できる。

Executing user-supplied BPF programs in Solana Sealevel runtime with shared intrinsic calls

アーキテクチャには、ブロック伝播とストレージのための最適化されたコンポーネントも含まれている。Turbineブロック伝播プロトコルは、イレイジャーコーディングを使用してブロックをより小さなパケットに分割し、ツリー構造でネットワーク全体に配布することで帯域幅要件を最小化する。Archiversネットワークは、PoRepを使用してデータの可用性を確保しながら、履歴台帳データの分散ストレージを提供する。これらのコンポーネントが一体となり、ブロックチェーンの分散化とセキュリティ特性を維持しながら毎秒数十万のトランザクションを処理できるシステムを構築する。

Performance

Solana의 아키텍처는 무어의 법칙을 따르며 하드웨어 개선에 맞춰 확장되는 성능 수준을 달성하도록 설계되었다. 표준 1기가비트 네트워크 연결에서 이론적 최대 처리량은 트랜잭션당 176바이트(서명 및 메타데이터 포함)를 가정할 때 초당 약 710,000건의 트랜잭션이다. 이 계산은 네트워크 대역폭을 주요 병목으로 하며, 병렬화를 통해 계산 병목은 제거된 것을 기반으로 한다.

블록체인 성능에서 종종 제한 요인이 되는 서명 검증은 GPU 병렬화를 사용하여 가속된다. 단일 GPU는 초당 900,000건 이상의 ed25519 서명을 검증할 수 있으며, 이는 네트워크 처리량 한도를 초과한다. 이는 서명 검증이 시스템 성능을 제약하지 않는다는 것을 의미하며 — 병목은 네트워크 대역폭과 트랜잭션 실행으로 이동한다. 복잡한 스마트 컨트랙트 로직 없이 단순히 가치를 이전하는 단순 트랜잭션의 경우, 뱅킹 단계는 네트워크 입력 속도에 맞는 속도로 트랜잭션을 처리할 수 있다.

PoH 생성기는 전용 CPU 코어에서 실행되며, 4GHz 프로세서에서 밀리초당 약 4,000개의 해시를 생성한다. 이 속도에서 PoH 시퀀스는 0.25마이크로초의 세분성으로 타임스탬프를 제공하며, 이는 초당 수백만 건의 트랜잭션을 정렬하는 데 충분하다. PoH 생성의 순차적 특성은 이 구성 요소가 병렬화될 수 없음을 의미하지만, 처리량이 충분히 높아 전체 시스템 성능을 제한하지 않는다.

하드웨어가 개선됨에 따라 Solana의 처리량은 그에 맞게 확장된다. 더 빠른 네트워크, 더 강력한 GPU, 개선된 CPU 모두가 더 높은 트랜잭션 속도에 기여한다. 시스템은 프로토콜 변경 없이 이러한 개선 사항을 활용하도록 설계되었다. 이 확장성 접근 방식은 순차적 합의 메커니즘에 의해 근본적으로 제한되는 블록체인과 대조되며, Solana가 보안과 탈중앙화 보장을 유지하면서 분산 시스템에서 이전에 불가능하다고 여겨졌던 성능 수준을 달성할 수 있게 한다.

Performance

Solanaのアーキテクチャは、ムーアの法則に従ってハードウェアの改善とともにスケールするパフォーマンスレベルを達成するように設計されている。標準的な1ギガビットネットワーク接続では、理論上の最大スループットは1トランザクションあたり176バイト(署名とメタデータを含む)を想定すると、毎秒約710,000トランザクションである。この計算はネットワーク帯域幅を主要なボトルネックとし、計算上のボトルネックは並列化によって除去されている。

署名検証はブロックチェーンパフォーマンスの制限要因となることが多いが、GPUの並列化を使用して加速される。単一のGPUは毎秒900,000以上のed25519署名を検証でき、これはネットワークスループット制限を超えている。これは署名検証がシステムのパフォーマンスを制約しないことを意味する。ボトルネックはネットワーク帯域幅とトランザクション実行に移行する。複雑なスマートコントラクトロジックを含まない単純な価値移転トランザクションの場合、bankingステージはネットワーク入力レートに匹敵するレートでトランザクションを処理できる。

PoHジェネレータは専用のCPUコア上で動作し、4GHzプロセッサ上でミリ秒あたり約4,000ハッシュを生成する。このレートで、PoHシーケンスは0.25マイクロ秒の粒度のタイムスタンプを提供し、毎秒数百万のトランザクションの順序付けに十分である。PoH生成の逐次的な性質はこのコンポーネントを並列化できないことを意味するが、スループットは十分に高く、全体的なシステムパフォーマンスを制限しない。

ハードウェアが改善されるにつれて、Solanaのスループットはそれに応じてスケールする。より高速なネットワーク、より強力なGPU、改善されたCPUはすべてより高いトランザクションレートに貢献する。システムはプロトコルの変更を必要とせずにこれらの改善を活用するように設計されている。このスケーラビリティアプローチは、逐次的コンセンサスメカニズムによって根本的に制限されるブロックチェーンとは対照的であり、Solanaがセキュリティと分散化の保証を維持しながら、分散型システムでは不可能と考えられていたパフォーマンスレベルを達成することを可能にする。

Conclusion

Proof of History는 분산 원장의 확장성을 제한해 온 타이밍 문제를 해결함으로써 블록체인 아키텍처의 근본적인 돌파구를 나타낸다. 검증 가능한 암호학적 시계를 만듦으로써, PoH는 검증자가 전통적인 합의 메커니즘이 요구하는 광범위한 통신 오버헤드 없이 이벤트의 시간적 순서를 확립할 수 있게 한다. 이 혁신은 핵심적인 병목을 제거하고 네트워크 전체에서 트랜잭션 처리를 병렬화할 수 있게 한다.

PoH와 최적화된 시스템 구성 요소 — GPU 가속 서명 검증, Sealevel을 통한 병렬 트랜잭션 실행, 효율적인 블록 전파 프로토콜 — 의 통합은 범용 하드웨어에서 초당 수십만 건의 트랜잭션을 처리할 수 있는 블록체인을 만든다. 더 중요한 것은, 이 아키텍처가 하드웨어 개선에 맞춰 확장되도록 설계되어 있어 프로세서가 빨라지고 네트워크가 더 강력해짐에 따라 성능이 계속 향상된다는 것이다.

Solana의 설계는 고성능과 탈중앙화가 상호 배타적이지 않음을 보여준다. PoH를 합의와 시스템 조율의 기반으로 활용함으로써, 네트워크는 탈중앙화된 블록체인의 보안과 검열 저항 속성을 유지하면서 중앙화된 데이터베이스에 견줄 수 있는 처리량 수준을 달성한다. 스테이크 가중 Tower BFT 합의 메커니즘은 빠른 최종성을 달성하면서 비잔틴 행위자에 대한 네트워크 보안을 보장한다.

이 아키텍처의 구현은 블록체인 기술이 글로벌 채택으로 확장하기 위한 실질적인 경로를 제공한다. 높은 트랜잭션 처리량을 요구하는 애플리케이션 — 탈중앙화 거래소, 게임 플랫폼, 금융 시스템 — 은 이제 성능을 타협하지 않으면서 진정으로 탈중앙화된 인프라 위에 구축될 수 있다. Proof of History는 이전에 확장성 제약으로 인해 실현 불가능했던 새로운 세대의 블록체인 애플리케이션의 문을 연다.

Conclusion

Proof of Historyは、分散型台帳のスケーラビリティを制限してきたタイミング問題を解決することで、ブロックチェーンアーキテクチャにおける根本的なブレークスルーを表している。検証可能な暗号学的時計を作成することで、PoHはバリデータが従来のコンセンサスメカニズムで必要とされる広範な通信オーバーヘッドなしにイベントの時間的順序付けを確立できるようにする。このイノベーションにより重要なボトルネックが除去され、トランザクション処理をネットワーク全体で並列化できるようになる。

PoHと最適化されたシステムコンポーネント(GPU加速署名検証、Sealevelによる並列トランザクション実行、効率的なブロック伝播プロトコル)の統合により、コモディティハードウェア上で毎秒数十万のトランザクションを処理できるブロックチェーンが実現される。さらに重要なのは、アーキテクチャがハードウェアの改善とともにスケールするように設計されており、プロセッサが高速化しネットワークがより高性能になるにつれてパフォーマンスが向上し続けることである。

Solanaの設計は、高性能と分散化が相互に排他的ではないことを実証している。PoHをコンセンサスとシステム調整の基盤として活用することで、ネットワークは分散型ブロックチェーンのセキュリティと検閲耐性の特性を維持しながら、中央集権型データベースに匹敵するスループットレベルを達成する。ステーク加重Tower BFTコンセンサスメカニズムにより、高速なファイナリティを達成しながら、ビザンチンアクターに対するネットワークの安全性が確保される。

このアーキテクチャの実装は、ブロックチェーン技術がグローバルな採用へとスケールするための実用的な道筋を提供する。高いトランザクションスループットを必要とするアプリケーション(分散型取引所、ゲームプラットフォーム、金融システムなど)は、パフォーマンスを犠牲にすることなく、真に分散化されたインフラストラクチャ上に構築できるようになった。Proof of Historyは、スケーラビリティの制約のために以前は実現不可能であった新世代のブロックチェーンアプリケーションへの扉を開く。