跳到主要内容

密码学规范

Savitri Network 中使用的所有密码学原语的完整规范。

签名方案

属性
算法Ed25519
ed25519-dalek
私钥32 字节
公钥32 字节(压缩 Edwards 点)
签名64 字节
地址十六进制编码的公钥(64 个十六进制字符)

交易签名

message = from_hex_bytes || to_hex_bytes || amount_le_u64 || nonce_le_u64 || fee_le_u128
hash = SHA-256(message)
sig = Ed25519_sign(signing_key, hash)

区块签名

区块由提案者使用 Ed25519 对区块头哈希(SHA-512)进行签名。

对等节点身份

libp2p 对等节点使用 Ed25519 作为其对等节点身份密钥(与账户密钥分离)。

哈希函数

SHA-256

用途输入输出
交易签名消息规范 TX 字节32 字节
Monolith 承诺头部字段32 字节
ZKP 声明哈希声明字段32 字节
AES 密钥派生密码32 字节

SHA-512

用途输入输出
区块哈希"BLK" + 版本字节 + 头部字节64 字节
头部提交区块头的二叉树64 字节

BLAKE3

用途输入输出
快速哈希通用目的可变
状态计算状态数据32 字节

Keccak256

用途输入输出
合约存储槽address || base_slot8 字节(u64)
嵌套映射key || inner_hash8 字节(u64)

域分离

所有哈希计算包含域标签以防止跨域冲突:

标签哈希输出
区块"BLK" + version: u8SHA-51264 字节
TX 根"TXv1" 叶标签滚动累加器32 字节
状态根"STATEv1-LE" 种子 + "STATE"字典序快照32 字节

交易根

作为交易规范 bincode 的滚动累加器计算:

accumulator = H("TXv1")
for tx in transactions:
leaf = bincode::serialize(tx)
accumulator = H(accumulator || leaf)
tx_root = accumulator

状态根

从字典序数据库快照计算:

seed = H("STATEv1-LE")
for (key, value) in storage.iter_sorted():
leaf = H("STATE" || key || value)
seed = H(seed || leaf)
state_root = seed

加密

AES-256-GCM(静态加密)

用于:

  • SDK 中的私钥加密
  • 移动数据库列加密
  • IoT 连接器中的设备数据加密
属性
算法AES-256-GCM
密钥大小256 位
Nonce 大小96 位(12 字节)
标签大小128 位(16 字节)
密钥派生基于密码

P2P 加密

属性
协议Noise(XX 握手模式)
密钥交换X25519
密码ChaChaPoly
多路复用Yamux

密钥派生(移动端)

BIP-39

  • 词表:英语(2048 个词)
  • :128 位(12 个词)或 256 位(24 个词)
  • 助记词 → 种子:PBKDF2-HMAC-SHA512(2048 轮)

BIP-44

  • 路径m/44'/1337'/0'/0/0
  • 币种类型:1337(Savitri)
  • 账户:0
  • 找零:0(外部)
  • 索引:0

密钥层次结构

mnemonic → seed (512 bits)
→ master_key (via HMAC-SHA512)
→ m/44' → m/44'/1337' → m/44'/1337'/0'
→ m/44'/1337'/0'/0 → m/44'/1337'/0'/0/0
→ ed25519_private_key (32 bytes)
→ ed25519_public_key (32 bytes)
→ address (hex-encoded, 64 chars)

零知识证明

详见 ZKP 架构

后端曲线证明系统使用场景
MockN/A始终有效测试
ArkworksBN254Groth16生产
PLONKBN254PLONK通用目的

安全属性

常量时间操作

所有签名验证使用常量时间比较(通过 subtle 库)以防止计时侧信道攻击。

密钥零化

私钥在 SDK 和移动应用中均使用 zeroize 库在丢弃时清零。

重放保护

  • 交易:基于 nonce(每账户单调递增)
  • FL 更新:每个训练者的每轮次 nonce
  • 预言机馈送:序列号跟踪
  • P2P 消息:Gossipsub 去重