AlphaCurve Contract由顶尖 AI 模型驱动OpenAIClaude

拟约、议约、定稿,然后留下 站得住脚的证据

AI 读完整份合同,指出缺漏的条款与前后不一致之处;定稿之后,每一次签署都留下对方不必相信你、自己就能查证的证据。

登录 / 注册

Demo 以示例数据体验完整功能,不会保存到服务器

定稿指纹
SHA-256
第三方可信时间戳
RFC 3161
版本差异
逐行比对

为什么这件事值得问

就算我们明天消失,这份证据一样成立

采购通常会问供应商三个问题:你们倒了怎么办?数据被你们改了怎么办?如果我要告的人就是你们呢?下面是这三题的答案,不需要看懂任何技术名词。

  1. 文件不放在我们这里才算数

    签署完成的那一刻,合同 PDF 与证据报告以「真正的附件」寄进双方各自的邮箱——不是下载链接。平台哪天关掉,那两份文件还在你的邮箱里。

  2. 任何人都能自己验,不必有我们的账号

    我们提供一个开放源代码的验证器:把证据包拖进去,在你自己的浏览器里逐项重算,断网也能用。不想用它,包里附了用免费标准工具做同一件事的命令。

  3. 时间点由外部见证,不是由我们宣称

    每天的签署会汇总成一个值,送到三个互不相关的地方,其中一个是 Bitcoin。要串通就得串通全部,而其中一个没有人可以串通。

讲清楚它的上限:这不会让合同条款自动有效,也不证明签署人的自然人身份。它证明的是——这份文件在那个时间点就是这样,而且事后没有被改过。

争议发生的那一天

对方开口的时候,你手上有什么

合同真正被拿出来用的场合,通常是双方已经不客气的时候。下面每一句都是对方可能说的话——把卡片翻面,可以看我们用什么做到,以及每一项各自证明不了什么。

这份跟你当初给我的不一样,中间被改过

你拿得出证据

定稿那一刻的内容指纹,加上第三方签发的时间证明,对方可以自己算、自己验,不必经过我们。

机制与限制

这份跟你当初给我的不一样,中间被改过

定稿当下对该版本内容原文(UTF-8)计算 SHA-256,指纹印在证据报告与 A4 文件末页的“数字认证指纹”区块。同一个指纹送交第三方时间戳机构,取回 RFC 3161 时间戳令牌;.tsr 文件可从系统下载,用 openssl ts -verify 独立验算——不需要我们的系统,也不需要相信我们。证据报告会把时间戳覆盖的哈希与当前定稿指纹比对,标示为“时间戳一致:覆盖当前定稿指纹”或“时间戳不符:非当前定稿指纹”。

这不证明什么: 时间戳证明的是那个哈希值在签发时点之前就已存在,不证明内容为真、不证明签署人是谁,也不等同公证。

记录都在你们自己的数据库,你们想改就改

你拿得出证据

这一条我们不辩解:哈希链确实防不了我们自己。真正算数的是交给第三方的那一段——而报告会逐段标出哪些有、哪些没有。

机制与限制

记录都在你们自己的数据库,你们想改就改

审计轨迹是 append-only 哈希链,每笔事件的哈希都含前一笔的哈希,因此“只改一笔而不重算后续”会立即被检测到。但能重算整条链的一方——也就是我们——重算后的链验证起来完全正常。所以链头会送第三方时间戳机构签发 RFC 3161 时间戳,那一刻之前的事件我们就改不动了。证据报告逐段标示“已锚定”或“未锚定”,并且白纸黑字写着:未锚定仅代表本平台自身记录一致,尚无第三方佐证。数据库层还有两道:已写入的签名行由 append-only 触发器挡下 UPDATE,签署证据相关的外键一律 ON DELETE RESTRICT——合同或邀请一旦带有签署证据,数据库就拒绝删除它。

这不证明什么: 哈希链本身不构成对抗本平台的效力,未锚定的区段只通过我们自己的一致性检查。这句话不是营销话术,它就印在证据报告上。

就算有第三方时间戳,那家时间戳公司也是你们自己挑的

你拿得出证据

所以每天的汇总结果会同时送到三个互不相关的地方,其中一个是 Bitcoin。要串通就得串通全部,而其中一个没有人可以串通。

机制与限制

就算有第三方时间戳,那家时间戳公司也是你们自己挑的

每天结束后,当日所有签署汇总成一棵 Merkle 树。叶节点为 SHA-256(0x00 ‖ 规范化原文),内部节点为 SHA-256(0x01 ‖ 左 ‖ 右),前缀用来区分两者,避免以叶节点伪造内部节点;奇数节点直接升位而非复制自己。叶节点原文采用长度前缀格式(名称=字节长度:值),字段顺序固定为 v, signature_id, request_id, contract_id, chain_head_hash, chain_head_seq, signed_at——公开于证据报告,可自行重算。树根连同一段自我描述的声明(含日期、格式版本、树根、当日笔数)送往三处:RFC 3161 时间戳(多家机构备援,并记录实际签发的那一家)、Sigstore Rekor 公开透明日志、OpenTimestamps(最终写入 Bitcoin 交易)。Rekor 的查询是以该声明的 SHA-256 反查索引,因此第三方不需要接受我们对“哪一笔是你的”的说法;OpenTimestamps 收据一经 Bitcoin 确认,验证只需要 Bitcoin——不需要我们、不需要 Sigstore,也不需要 OpenTimestamps 自己还在。证据报告将三者分开列出各自状态,包含 OTS 尚未确认的等待状态与确认后的 Bitcoin 区块高度。报告上印出的是你那一天的实际数值——树根、Rekor 的 logIndex、Bitcoin 区块高度——不是说明文字里的示例;每一个都能拿去对应的公开系统查,而那些系统与本平台没有关系。

这不证明什么: 送出去的是一个 64 字符的哈希值与日期,合同内容、姓名、金额都不在里面——这既是隐私上的必要,也表示它不证明内容为何。汇总以“天”为单位且当日结束后才建树,所以今天签的要等今天过完;审计哈希链之前的旧签署永远不会被覆盖,报告会据实写出。OpenTimestamps 显示“已送出,尚未确认”时,该收据还不构成可独立验证的时间证明,通常需数小时——期间即使该摘要其实已被写进某笔 Bitcoin 交易,报告仍不会显示区块高度,因为在收据补完之前,“你的摘要在那笔交易底下”是 calendar 的说法而不是可验证的路径。我们选择让报告晚一点说,而不是早一点借别人的话说。最后:没有任何法条因为一份数据的哈希出现在 Bitcoin 上而提高它的地位,提高的是你的举证能力。

不是我签的

你拿得出证据

签署当下,对方必须先收得到你事先指定的那个邮箱的验证码;之后每一步都留下时间、来源 IP 与设备。

机制与限制

不是我签的

收件地址由发起人填写,签署页只做遮蔽显示,对方改不了。6 位数验证码 10 分钟有效、连错 5 次即作废、60 秒才能重发、整份邀请最多发 5 次。签署历程逐笔记下发出邀请、验证通过、首次打开合同、勾选同意声明、完成签署的时间、来源 IP 与 User-Agent。证据报告记的是实际达到的级别,并把 L1 到 L4 的对照整份印出来——L3 多因子(Email + Passkey 设备验证、Email + 与指定邮箱一致的 Google/Microsoft 账号登录,或 Email + 发送至发起人指定手机号的短信验证码;属进阶选配,发起组织需单独授权)达成时如实记载,L4 证书式数字签名(经 TWID 移动身份识别后由 TWCA 签发证书、对合同 PDF 完成数字签名;同属进阶选配)达成时也如实记载——整张表印出来,就是为了不让任何一级被读成天花板。

这不证明什么: L2 证明的是签署当下对方能收取那个指定邮箱的邮件,不是自然人身份:邮箱可能多人共用、设有转发或由他人代收。我们不写“已验证身份”,系统也没有任何证件、自然人证书或工商证书的核验。

是我签的没错,但我没有权限代表公司

你拿得出证据

他当时对自己权限说过什么,逐字留着;你事先填的公司资料和他自己填的,并排印在报告上。

机制与限制

是我签的没错,但我没有权限代表公司

同意声明含“本人确认上开签署人姓名、职称及公司资料正确,并确认本人有权代表上开签约方签署本合同”,送出当下的全文原样快照进签署记录。证据报告另外把“发起人预期”与“签署人声明”逐栏并列,共五栏:公司名称、统一编号、签署人姓名、职称、Email 域名,每栏标成相符/不相符/仅声明,无预期可比/仅预期,未经声明/双方均未提供。不相符不会挡下签署,两份都按原样保存、不做调和——差异本身就是一项事实。

这不证明什么: 比对只做全角半角、大小写、空白与公司法律形式(“股份有限公司”与“(股)”)的规范化,没有模糊比对。第三栏“政府公开数据”是签署当时向台湾经济部商业司公司登记数据查得的快照,只能证明登记内容当时如此——报告写的是“公司登记比对:相符”,不是“代表人已验证”,因为登记数据不能证明屏幕前的人就是那个自然人,也不认定他是否真的有权代表;勾选同意声明不会凭空创造代理权,留下的是他当时对自身权限的明确陈述。

你们哪天关掉了,我上哪拿文件

你拿得出证据

不必来找我们。签署完成的那一刻,文件就已经以附件发进双方各自的邮箱了。

机制与限制

你们哪天关掉了,我上哪拿文件

签署事务完成后,系统在后台自动发出完成通知,合同 PDF 与证据报告 PDF 是真正的 MIME 附件,不是下载链接——副本落在双方各自的邮箱里,不依赖本平台继续存在。发起人与签署人各收各的一封。信中直接印出 contract.pdf 与 evidence-report.pdf 的 SHA-256,以及定稿内容指纹,并注明这三个值覆盖的不是同一件事:前两个是附件的字节哈希,最后一个才是时间戳签发的对象。

这不证明什么: 附件受发送服务单封 10MB 上限,超过时会降级,并在发送状态上如实标示“未附上”哪一份;若 PDF 渲染失败则整封信不发——我们不发一封声称附了文件却没附的信。

你给我的那份,跟你自己留的那份,本来就不会一样

你拿得出证据

会一样。两边拿到的合同 PDF 都不是各自的浏览器打印出来的,而是同一个服务器渲染出来的同一组字节。

机制与限制

你给我的那份,跟你自己留的那份,本来就不会一样

合同 PDF 一律由服务器端 headless Chromium 渲染,版本钉死在 Chrome for Testing 152.0.7977.54:色彩描述文件钉在 sRGB、关闭字体 hinting 与 LCD 次像素平滑、时区钉在 Asia/Taipei、viewport 与 device scale factor 固定。输出后再把 PDF 里唯一会逐次变动的 /CreationDate 与 /ModDate 规范化成固定值;万一 trailer 出现 /ID,渲染直接失败,而不是默默产生一份日后对不起来的文件。合同定稿后内容不再变动,因此同一份合同每次渲染都得到同一组字节。

这不证明什么: 这个保证只覆盖合同 PDF。证据报告会随后续事件继续增长——每成功发送一次就多一笔发送记录——所以两份证据报告 PDF 未必逐字节相同。我们不声称系统里封存了一份 PDF 文件:持久保存的是合同内容与它的指纹,PDF 是按需重新渲染的。

中间那一页被抽掉换过,你看得出来吗

你拿得出证据

每页盖同一颗章看不出来。把章切成片、每页一片,对不上就看得出来。

机制与限制

中间那一页被抽掉换过,你看得出来吗

骑缝章把公司公章等宽切成 N 片,每页右缘各印一片、垂直位置固定;页面依序排好时印章才完整,抽掉一页、换掉一页或页序被动过,切片就对不起来。需先在“设置 → 组织设置”上传公司公章才能启用,2 页以上才会盖,可逐份开关或设成新合同的默认,定稿后锁定。

这不证明什么: 这是纸面上的视觉辨识,不是密码学保护:印章图可以被复制,整份重印也能重新对齐。而且骑缝章设置不在定稿指纹的覆盖范围内——防篡改靠的是内容哈希、RFC 3161 时间戳与审计哈希链,不是这颗章。

要证明我这份在你们的记录里,是不是等于把你们所有客户的签署都摊出来

你拿得出证据

不用。对外只要一个树根,你那一份照样证明得出来,而别人签了什么、签了几份,都看不出来。

机制与限制

要证明我这份在你们的记录里,是不是等于把你们所有客户的签署都摊出来

每日汇总把当天完成的所有签署收拢成一棵 Merkle 树,对外送出的只有树根(送往哪些地方见上方“时间戳公司也是你们自己挑的”一则)。证据报告印出你那一笔的叶节点原文(逐字)、叶节点哈希、在当日的位置(第 N 片,当日共 M 片),以及 inclusion proof 的每一步:兄弟节点哈希完整印出,方向标成“左(在前)”或“右(在后)”。叶节点算 SHA-256(0x00 || 原文)、内部节点算 SHA-256(0x01 || 兄弟 || 当前值),以 domain separation 区隔两者,你可以照着自己重算回树根。证明是每次实时重算而不是存起来的,避免存下来的证明日后与实际数据对不上。

这不证明什么: 汇总本身不证明我们没有重建整棵树,产生效力的仍然是树根被送到的那些第三方。当日的树要等该业务日结束后才建立,因此当天完成的签署会先显示为尚未纳入。

鼠标移到卡片上会暂停;点一下会停下来,方便阅读。

这些限制我们写在自己的产品里,不只写在这一页:证据报告会把未锚定的区段标成未锚定,把尚未提供的验证级别标成尚未提供。

法律效力链

一份合同,四种不同的证明

模板工具帮你把字打出来,这里多做的是后面那一段。往下滚,右边会跟着换成那一个环节在系统里真正长出来的画面。

  1. 01 · 定稿

    定稿指纹(SHA-256)

    证明:内容没有被改过

    定稿当下对内容原文计算 SHA-256,完整哈希可一键复制,并印在 A4 文件最后一页的“数字认证指纹”区块。任何人拿到同一份内容,用标准工具重算都会得到一模一样的值。

  2. 02 · 签署

    对外签署证据

    证明:对方确实表示同意

    对方不必注册,打开链接就能签。默认要先输入发到你指定邮箱的 6 位数验证码才读得到合同;系统记下签署人姓名职称、所签的版本与内容哈希、来源 IP、浏览器 User-Agent、手写签名图,以及当下那份同意声明的全文快照。

  3. 03 · 时间戳

    可信时间戳(RFC 3161)

    证明:内容在那个时点就已存在

    把定稿指纹送交独立的第三方时间戳机构取得凭证。下载 .tsr 后,对方或律师用 openssl 就能自行验证——不需要登录这套系统,也不需要相信我们。

  4. 04 · 报告

    审计轨迹与证据报告

    证明:整段历程说得清楚

    创建、每一次存版本(附该版哈希)、状态流转、审批、在线签署、取得时间戳,串成一条只增不改的时间线,可打印成“合同审计证据报告”。报告另含审计轨迹哈希链与每日汇总,逐段标示已锚定或未锚定,并自动标示哈希一致或不符。

下载 .tsr 后,用标准工具自行验证(命令示意)
$ openssl ts -verify \
    -in contract.tsr -data contract.txt \
    -CAfile tsa-chain.pem
Verification: OK

或者,把整个证据包 zip 拖进开源验证器——在你的浏览器里重算每一项,断网也能用。 打开验证器

效力范围,讲在前面

  • 对外签署系依《电子签章法》一般电子签章之概念设计,以签署意思表示、Email 验证、文件指纹与审计轨迹建立证据链;并非证书式数字签名。
  • 可信时间戳由第三方机构签发,证明内容在该时点已存在,不等同公证;此功能需由系统管理员启用。

画面截取自免登录 Demo,内容为示例合同,非任何真实客户数据。

签署与身份

不只证明签了,还要证明是谁签的

签署页上发生的每一件事都留下记录;对方主张“不是我签的”或“我无权代表公司”时,你拿得出当时的证据。

Email 验证证明签署当下对方能收取你指定邮箱的邮件,不证明操作者的自然人身份;邮箱可能多人共用、设有转发或由助理代收,亦不等同自然人证书或公证。

AI 能力

AI 负责草稿与对照,决定权留给你

每一项 AI 产出都先给你看、由你决定要不要采用;没有任何一段会自己写进合同。移到卡片上(或点一下)看细节。

画面截取自免登录 Demo,内容为示例合同,非任何真实客户数据。 AI 生成的内容一定要经法务审阅,它是草稿的起点,不是可以直接签的文件。Demo 的 AI 回应为本地模拟,因此上面呈现的是界面与输入,不是模型输出。

合同的一生

每个阶段留下什么,决定了将来拿得出什么

从拟稿到存证,一份合同会经过五个阶段。每个阶段各自提供哪些功能、又各自沉淀出哪一种证据,摊开来看。

  1. 01

    拟稿

    条款、变量与 A4 排版在同一个画面上;金额、日期、公司名填一次就套进全文,条号自动重排。

    留下的证据: 每一次存版都记下时间、作者与版本说明,并对该版内容算出 SHA-256。

  2. 02

    审阅

    指定审阅人逐位核准,评注挂在条款上;任两个版本可逐行比对,新增是绿色、删除是红色。

    留下的证据: 核准者、核准时间与核准意见逐笔进入审计轨迹;未核准就不能定稿。

  3. 03

    定稿

    内容锁定,要再改必须先解除定稿——而解除定稿本身也是一笔记录。合同 PDF 由服务器渲染,双方拿到的是同一组字节。

    留下的证据: 定稿当下对该版本原文计算的 SHA-256 指纹,印在证据报告与 A4 文件末页;同一个指纹送第三方时间戳机构取回 RFC 3161 令牌。

  4. 04

    对外签署

    发出邀请链接,对方先通过你指定邮箱的验证码,再勾选同意声明完成签署;完成当下双方各收到一封含 PDF 附件的通知。

    留下的证据: 发出邀请、验证通过、首次打开、勾选同意、完成签署各留下时间、来源 IP 与 User-Agent,同意声明全文原样快照。

  5. 05

    存证

    整条时间线可打印成证据报告、打包成证据包下载。当日所有签署再汇总成一棵 Merkle 树,树根送往公开日志与 Bitcoin。

    留下的证据: append-only 哈希链、RFC 3161 时间戳、每日 Merkle 树根,以及送往 Rekor 与 OpenTimestamps 的发布记录——报告会逐段标出哪些已锚定、哪些还没有。

拟约效率

排版、编号与重复信息,交给系统

合同真正花时间的往往不是想条文,而是改条号、对金额、换公司名。这些都自动化掉。

条款自动编号

在中间插进一条新条款,后面所有条号自动往后推,不用再手动改“第七条”“第八条”。

排序条款会警告引用失效

拖拽、键盘或直接指定“移到第 N 条”重排条款。套用之前,系统会列出这次重排让哪些“详见第八条”改指到别的条款——条号自动重算,但条文里写死的字不会,这是最容易静默出错的地方。

公司章与承办人个人章

公司公章设在组织设置、盖在单位栏;个人印章由每位成员自己设置、盖在承办人栏,指定成员时一并带入。存进文件的是当下的快照,该成员日后换章或离职都不影响已签出去的合同。

六种变量类型

文字、日期、数字、金额、列表、图片。金额型可指定 ISO 4217 币别与税额(百分比或定额、外加或内扣),一处改值全文同步。

三层变量作用范围

本合同变量 › 组织变量 › 内置乙方资料,同名时以合同自己的值优先——全公司通用一套,个别合同要例外就地覆盖。

模板库

调好的合同一键存成模板,下次用模板出约时先把已知的变量值填一填,直接生成一份可编辑的新合同。

报价单与附件

小计与总计实时计算、常用项目存成物料库重复使用、AI 依工作范围生成项目,并可挂成合同的“附件一”一起交付。

A4 真分页预览

预览上看到的“第 2 页 / 共 3 页”就是打印出来的样子,每页重复公司信笺头,不会打印时才发现签署区被切成两半。

金额变量的税额计算仅为文书辅助,实际税务认定请咨询会计师。

版本与协作

每一次改动都留下痕迹

版本、审批、评注都是审计记录的一部分,会一起写进证据报告的时间线。

版本不会互相覆盖

每次按“保存版本”就留下一版,存下去不能删改;版本说明让你半年后还认得出这一版改了什么。

任两版逐行比对

新增的行绿底、删除的行红底,中间没变动的区块自动折叠成“… 12 行未变更 …”,对方偷改哪几个字一眼就看到。

审阅人全数核准才能定稿

送审时指定审阅人,只要还有人没核准,“定稿”按钮就是灰的;任何一位按“要求修改”就立刻退回草稿。

条款层级评注

讨论挂在合同甚至挂在某一条上,可标记已解决但不能删除;评注不会出现在打印稿,也不会被对外签署的人看到。

定稿后附件跟着锁定

合同一定稿,挂在它下面的报价单就拒绝修改与删除,“保存”按钮整颗消失。这样签署证据覆盖的内容才不会在事后被改;要调整就把合同退回草稿,附件立刻解锁。

登录双因验证(个人自选)

账号里放的是全公司的合同,账号安全也是记录可信的一部分。每位成员可自行开启登录双因验证:密码之后再完成第二步——寄到账号邮箱的一次性验证码,或登录与账号邮箱一致的 Google/Microsoft 账号(OAuth,方式可自选、随时可退回邮箱验证码);开启、关闭或换方式都要重输密码,捡到已登录画面的人关不掉它。

先看看做出来长什么样子

Demo 已备好五份不同状态的示例合同——含一份已定稿、已在线签署、并取得可信时间戳的 NDA,可以直接打开它的审计轨迹与证据报告。

登录 / 注册

示例数据存在浏览器标签页里,不会保存到服务器;关掉标签页就消失。