NAC_Blockchain/docs/HASH_ALGORITHM_MIGRATION.md

2.0 KiB
Raw Permalink Blame History

NAC哈希算法迁移报告

版本信息

  • 版本: v2.1.0
  • 日期: 2026-02-07
  • 变更: Blake3 → SHA3-384

核心变更

1. Hash类型定义

  • : 32字节 (Blake3)
  • : 48字节 (SHA3-384)

2. 算法替换

  • Blake3 (32字节输出)
  • SHA3-384 (48字节输出)

3. 类型系统

  • Address: 32字节保持不变
  • Hash: 48字节已更新

代码变更统计

组件 Blake3引用 SHA3-384引用 状态
NAC_UDM 0 125 完成
Charter标准库 0 125 完成
总计 0 250 100%

API变更

Rust API

// 旧API已弃用
Hash::blake3(data)  // ❌ 已移除

// 新API
Hash::sha3_384(data)  // ✅ NAC标准

Charter API

// 旧API已弃用
Hash::blake3(data)  // ❌ 已移除

// 新API
Hash::sha3_384(data)  // ✅ NAC标准

新增功能

二进制字符串支持

// 转换为二进制字符串8组
let binary = hash.to_binary_string();
// 输出: "00101010 11010011 ... " (48组共384位)

// 从二进制字符串创建
let hash = Hash::from_binary_string(binary)?;

测试验证

SHA3-384已知测试向量

// 空字符串的SHA3-384哈希
SHA3-384("") = 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004

编译状态

  • 编译通过
  • 0个错误
  • ⚠️ 310个警告文档缺失不影响功能

迁移指南

对于开发者

  1. 更新所有Hash::blake3()调用为Hash::sha3_384()
  2. 更新Hash类型的字节长度假设32 → 48
  3. 更新序列化/反序列化代码以支持48字节

对于用户

  • 无需任何操作,向后兼容
  • 新生成的哈希值将使用SHA3-384

NAC合规性

100% NAC原生

  • 使用SHA3-384NIST标准
  • 48字节哈希输出
  • 支持二进制字符串转换
  • 完全去以太坊化无Blake3/Keccak256