CELAR文档 CELAR.NETWORK →
开发者 · CELAR 文档

ConfidentialERC20:用标准 Solidity 编写的加密代币

Celar 完全 EVM 等价 —— 标准的 Solidity、钱包、JSON-RPC 与工具链无需修改即可使用。加密计算通过标准库暴露的预编译合约引入:加密整数(euint8euint64)与布尔值(ebool),合约以 32 字节的句柄来操作它们,而密文本身存放在 FHE 数据平面中。

一笔保密转账

import {TFHE, euint64, ebool} from "celar/TFHE.sol";

contract ConfidentialVault {
  mapping(address => euint64) private bal;

  function transfer(address to, euint64 amt) external {
    ebool ok = TFHE.and(
      TFHE.le(amt, bal[msg.sender]),      // funds check
      TFHE.le(amt, TFHE.sub(MAX, bal[to])) // overflow guard
    );
    euint64 m = TFHE.select(ok, amt, ZERO);
    bal[msg.sender] = TFHE.sub(bal[msg.sender], m);
    bal[to]         = TFHE.add(bal[to], m);
    // no revert, no branch, no leakage
  }
}

以规则确保无分支,以结构确保安全

请注意,在加密检查上并没有 require 。这就是 无分支规则:任何回滚都不得依赖加密数据,因为依赖数据的回滚会把保密状态变成一个公开的预言机。比较结果只能流入 select —— 转账要么转移该金额,要么转移一个加密的零,而无论哪种情况交易都是有效的。这条规则在编译期强制执行 在部署时由字节码分析复核: 隐私泄露是一个构建错误,而不是一条审计发现.

开发者得到什么