プロトコル・アーキテクチャ

Parallaxのセキュリティモデルの詳細。作成者のための署名、セマンティクスのためのPVM、時間のためのProof of Work、そして正規の履歴のためのNakamotoコンセンサス。

各要素がどう噛み合うか
Parallaxは、暗号、決定的実行、Proof of Workによる時間管理、中立なフォーク選択を、単一の検証可能なパイプラインへと織り上げます。
暗号

誰が行動できるかをECDSAが決めます (有効な作成者)。

実行 (PVM)

行動が何をもたらすかを定義します (状態遷移)。

タイムスタンプサーバー

行動がいつ起きたかを確立します (PoWによる順序付け)。

Nakamoto

どの履歴が優勢かを選択します (最も重いチェーン)。

デジタル署名
誰が行動できるか: secp256k1上のECDSAが状態遷移を認証します。
  • Bitcoinと同一のsecp256k1上のECDSAを採用し、実戦で鍛えられた安全性とツール群を活用します。
  • トランザクションは (r, s, v) を含み、送信者は公開鍵からのアドレス導出によって復元されます。
  • 検証は実行パイプライン内で行われ、ノード間で一様なルールを保証します。
  • 否認防止: 署名は意図と鍵を結び付け、チェーンIDとnonceによるリプレイ保護が提供されます。
署名検証 (概念)
疑似コード
// Pseudocode: PVM-side validation sketch
verify(tx):
  msg = keccak256(encodeTxForSig(tx))
  pub = ecrecover(msg, tx.v, tx.r, tx.s)
  require(address(pub) == tx.from)
  require(tx.nonce == account.nonce)
  // gas accounting & state updates proceed
チューリング完全なスクリプト (PVM)
行動が何を意味するか: Bitcoin型の貨幣ルールのもとでの、決定的でEVM互換な実行。
  • EVMとの命令パリティ (CALL/SSTOREなど)、gas計量された決定的実行。
  • 状態はMerkle Patricia Trieに格納され、ブロックヘッダはstateRootとreceiptsRootにコミットします。
  • 希少性の内側でのプログラマビリティ: 2,100万の上限、半減期 ⇒ 実行は健全な貨幣を継承します。
  • 包含証明と決定的リプレイにより、ライトクライアントにもやさしい設計です。
ブロック → 実行 → ルート
疑似コード
// Conceptual block processing
for (tx of block.txs):
  result = PVM.execute(tx, state)
commit:
  stateRoot    = MPT(state)
  receiptsRoot = MPT(receipts)
  header.stateRoot = stateRoot
  header.receiptsRoot = receiptsRoot
タイムスタンプサーバー
いつ行動が起きたか: PoWは時間を暗号的リソースに変え、イベントを順序付けます。
  • 各ブロックは前のヘッダハッシュにコミットし ⇒ 検証可能な時間的連鎖を形成します。
  • Proof of Work (XHash) はコストを時間に結び付け、再計算が時間の矢を強制します。
  • 信頼される時計なしの客観的順序付け。Median-Time-Past がタイムスタンプの濫用を防ぎます。
  • 安全性は累積難易度とともに増大し、過去へのバックデートは経済的に不可能になります。
ヘッダの連結
疑似コード
// Block header sketch
header = {
  parentHash,
  stateRoot,
  txRoot,
  time,
  nonce,
  difficulty,
  mixHash,      // XHash result
}
assert(block.parent.hash == parentHash)
assert(XHash(header) < target(difficulty))
Nakamotoコンセンサス
どの履歴が優勢か: 累積ワークが最大の有効チェーンが正規となります。
  • 累積PoW (難易度合計) により、最重量チェーンルールが正規の履歴を選択します。
  • 確率的ファイナリティ: リオーグリスクは深さ (k-confirmation) とともに指数関数的に減衰します。
  • 難易度再調整 (XHash) は、Median-Time-Past を用いて約10分ブロックを目指します。
  • 経済的に中立: ステーキングも特権的バリデータもなく、開かれたPoWのみ。
フォーク選択 (概念)
疑似コード
// Choose chain with max cumulative work
best = argmax(chains, sum(block.work for block in chain))
パイプライン

エンドツーエンドの流れ

署名済みトランザクションがメンプールに入り → マイナーがブロックを提案 → PVMが決定的に実行 → ヘッダが状態/レシートにコミット → XHashが作業を証明 → ネットワークが最重量の有効チェーンを採用します。希少性 (2,100万、半減期) がすべての実行を支えます。

1
署名
2
実行
3
コミット
4
証明
5
選択