@asentum/crypto

中文文档
0.1.0发布于 2026/05/16Apache-2.0TypeScriptES Module近 30 天下载 4780

Post-quantum cryptography primitives for AsentumChain. ML-DSA-65 (Dilithium3), BLAKE3, address derivation.

原始使用文档
文档目录6 节
  1. What's in here
  2. Install
  3. Usage
  4. Design notes
  5. Status
  6. License

@asentum/crypto

Post-quantum cryptography primitives for AsentumChain.

What's in here

  • ML-DSA-65 (Dilithium3) signing and verification: the NIST-standardized post-quantum signature scheme. Wraps @noble/post-quantum/ml-dsa.
  • BLAKE3 and SHA-256 hashing. BLAKE3 is the chain-wide canonical hash; SHA-256 is kept around for Ethereum-compatibility surfaces only. Wraps @noble/hashes.
  • Address derivation: 20-byte addresses derived as BLAKE3(pubkey)[0:20] with an EIP-55-style mixed-case checksum.

Install

This package is part of the AsentumChain monorepo and is not yet published to npm. From the repo root:

pnpm install
pnpm --filter @asentum/crypto build
pnpm --filter @asentum/crypto test

Usage

import {
  generateKeypair,
  sign,
  verify,
  blake3,
  addressFromPublicKey,
} from '@asentum/crypto';

// Generate a keypair and derive an address
const { publicKey, secretKey } = generateKeypair();
const address = addressFromPublicKey(publicKey);
console.log('New account:', address);

// Sign a message
const message = new TextEncoder().encode('hello asentum');
const signature = sign(message, secretKey);

// Verify
const isValid = verify(message, signature, publicKey);
console.log('Signature valid?', isValid);

// Hash some data
const digest = blake3(message);

Design notes

  • All inputs and outputs are Uint8Array. Hex/base58 encoding helpers live in @asentum/sdk, not here.
  • verify() never throws on invalid input: it returns false. This makes it safe to call on untrusted data without wrapping in try/catch.
  • Addresses are 0x-prefixed 40-character mixed-case hex strings. The case pattern encodes a checksum of the address bytes hashed with BLAKE3, matching EIP-55's mechanism but using our chain hash instead of Keccak256.

See docs/post-quantum.md in the repo root for the full reference on the cryptographic choices.

Status

Phase 0 scaffold, not yet benchmarked. The implementation is thin wrappers around well-audited upstream libraries, but we haven't measured it on the actual target hardware yet. Performance numbers (keygen / sign / verify on consumer PC vs Pi 4) will land in Phase 0's benchmarks task.

The exact import path for @noble/post-quantum/ml-dsa may need adjustment depending on the installed version: verify against the actual package when you first run pnpm install.

License

Apache License 2.0. See the root LICENSE file.

版本与发布记录

@asentum/crypto 共发布 1 个版本,首次发布于 2026/05/16;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.1.0latest2026/05/165 个月前

关于 @asentum/crypto 的常见问题

@asentum/crypto 是什么?

Post-quantum cryptography primitives for AsentumChain. ML-DSA-65 (Dilithium3), BLAKE3, address derivation.

如何安装 @asentum/crypto?

在项目目录运行 npm install @asentum/crypto,或使用 pnpm add / yarn add / bun add。

@asentum/crypto 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@asentum/crypto 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@asentum/crypto 可以商用吗?

@asentum/crypto 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@asentum/crypto 的下载量有多少?

根据 npm 官方下载统计,@asentum/crypto 在 2026/10/07 – 2026/11/05 这 30 天内被下载 4,780 次,日均约 159 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@asentum/crypto 还在维护吗?

最新版本 0.1.0 发布于 2026/05/16(5 个月前);至今共发布 1 个版本,其中过去 12 个月发布了 1 个;首次发布于 2026/05/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。