开发者 · CELAR 文档
ConfidentialERC20:用标准 Solidity 编写的加密代币
Celar 完全 EVM 等价 —— 标准的 Solidity、钱包、JSON-RPC 与工具链无需修改即可使用。加密计算通过标准库暴露的预编译合约引入:加密整数(euint8…euint64)与布尔值(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 —— 转账要么转移该金额,要么转移一个加密的零,而无论哪种情况交易都是有效的。这条规则在编译期强制执行 并 在部署时由字节码分析复核: 隐私泄露是一个构建错误,而不是一条审计发现.
开发者得到什么
balanceOf返回一个只有其所有者才能解密的句柄(通过门限重加密)。- 统一的事件与按类别固定的 Gas 档位 —— 执行结果与实际消耗的 Gas 绝不会为加密的控制流留下指纹。
- 与后端无关的 ABI:FHE 引擎可在节点层面更换,对已部署的合约不可见。
下一篇: $CELAR 代币经济 →