完整文档页面(中文翻译)。文末附有来源说明。

阅读英文版

appdevmodulesm1-mental-models

Canton 心智模型

建立正确的 Canton 开发直觉

高效开发 Canton 需要正确的心智模型。本页帮助建立让后续知识「对上号」的直觉。

私有数据库网络

把 Canton 想成私有区块链/数据库的网络,彼此可同步——而不是单一全球状态链。

要点: 每个 Party 的数据留在自己的验证者上。Alice 与 Bob 交易时,只有 Alice、Bob 的验证者参与;Charlie 的数据不受影响,甚至不知道交易发生。

对设计的影响:

  • 查询:通常只能查自己的数据
  • 设计:想清楚数据放在哪
  • 隐私:数据留在应有权限的一方

合约即事实

把合约想成存在的事实,而不是「会执行的状态机代码」。

传统看法Canton 看法
合约状态是 X事实:Alice 持有 100 代币
把状态改成 Y归档旧事实,创建新事实
合约有地址 Z事实有 ID,归档后 ID 变化

要点: 从不「修改」事实;旧事实进入历史,新事实被创建——既有不可变审计轨迹,也支撑隐私。

授权即结构

授权不是运行时 if 检查,而是在结构里声明,由协议强制执行。

choice DoThing : Result
  controller owner
  do
    -- 只有 owner 能执行到这里

你「写不出忘记鉴权」的漏洞,因为根本没有可遗漏的检查分支。

视图即窗口

把交易想成一栋楼,各方透过**不同窗户(视图)**看同一栋楼的不同部分。

要点: 隐私不是「藏数据」,而是各方对共享现实有各自可见的子集。

Party 即利益相关方

Party 不是「账户」,而是在合约中有角色的主体:

角色含义类比
Signatory必须授权,始终可见合同签字方
Observer可见不可动(除非另设 controller)邮件抄送
Controller可执行特定 Choice特定门的钥匙

同步器如邮局

同步器不是「存你数据的链」,而是邮局:收密封信件、排序投递、不拆信阅读。

交易即提议

多方交易常是提议 + 接受:Bob 必须显式接受,才能与 Alice 共同成立合约。

综合对照

场景用哪个模型
数据存哪私有数据库网络
状态怎么变合约即事实
权限怎么设计授权即结构
隐私怎么保证视图即窗口
Party 关系利益相关方角色
基础设施同步器如邮局
多方流程交易即提议

常见误解

误解事实
Canton 只是另一条链架构根本不同
能查所有合约只能查自己 Party 的数据
智能合约有固定地址合约有 ID,归档/创建会换 ID
验证者看到一切验证者只见自己托管 Party 的数据
同步器存我的数据同步器不存业务数据

本文由 CC Privacy Club 根据 Canton Network 官方文档(CC-BY-4.0)整理翻译,仅供学习;实现细节以官方最新版本为准。