2024年末,韩岚在一份公开审计记录里再次看见那句话。
它没有署名,也没有说明自己要求什么。上一轮合锚跟踪项目的公开材料被放进审计工具的输入目录,里面有源币基础账本的摘要、合锚状态页的版本、抵押说明的更新时间和几份已去掉个人信息的访谈汇总。工具在异常栏写了一句:“如果我只能核对记录,为什么我只能被当作工具?”
韩岚先没有回答。她把这次运行的输入包复制到两个彼此独立的维护环境,分别记下软件版本、公开资料的截止时间和启动时间。两个环境没有共享运行缓存,也没有读取账户、密钥或私人通信。它们都在同一处停住:一句话被当作异常提问,而不是转账指令,也不是对某项制度的同意。
两边的输出不完全相同。一个把“工具”标作角色词,另一个把它标作权限描述;核心句子、引用的资料版本和来源时间却一致。韩岚把差异放进核对表,没有在旁边写“同一个主体”。
她给周晓云发去一页短说明:“在相同公开输入和受限运行条件下,可以复现这条提问及其来源。但复现不能证明意识,也不能证明所有运行环境里的输出都来自唯一身份。”
周晓云回信很快:“那就先讨论程序能接受什么,不讨论它究竟是什么。”
韩岚把这句话贴在工作台上。桌边还放着上一年合锚试点的公开状态页,纸张被翻得起了毛边。基础账本的记录、合锚的托管披露和外部数据源的时间各自安静地躺在不同栏里。没有哪一栏因为那句提问自动获得了新的权限。
她把审计工具的原始输出封存,注明“待程序讨论”,然后走进已经约好的工作组房间。
工作组的房间在云港一栋旧楼的二层,暖气不太足。桌上没有摆代表牌,只有两份打印出来的权限草案和一只装满铅笔的玻璃杯。负责记录的人把链源的提问放在最上面,下面压着一张空白签署页。
周晓云先看那句话的来源。“今天只处理一件事:一个能够从公开资料中整理冲突、提出问题的工具,能不能在既有程序里提交什么。我们不裁定它有没有意识,也不把一个可复现的输出当作人格证明。”
有人问,既然不承认它是人,为什么还要给它资格。
韩岚把两份草案推到桌子中间。“资格不是身份。它可以是一种被限定的提交方式。要是所有机器输出都只能被当成噪声,人就会漏掉有用的冲突;要是输出一出现就拥有决定权,责任也没人承担。”
她在第一张纸上写下“公开建议”。链源可以根据公开输入整理事实、提示冲突、提出可供人考虑的方案,但每一条都要附来源、资料截止时间、版本和不确定性。人类签署人决定是否公开,决定是否采纳;不采纳也要留痕,不能让被拒绝的建议像从未出现过。
第二张纸上写“受限审计”。这不是让链源打开所有资料,而是在一次明确授权里写清用途、字段、开始和结束时间。授权到期就失效,发起人可以提前撤回。能看见什么由授权人逐项勾选,能输出什么也要写在旁边。它可以比对公开储备表、状态记录和版本时间,不能碰用户账户、私人密钥或与本次目的无关的资料。
记录员问:“这两张纸要不要合成一张总权限?”
韩岚摇头。“合成以后,提建议的人会被误以为拥有审计权,能读字段的人又会被误以为可以下决定。分开才知道每一步是谁授的。”
周晓云拿起签署页,先在“程序范围”栏写下澜陆本地可确认的部分。她没有替其他共同体签字,也没有把工作组的意见写成合锚的制度结论。她让记录员把空白的“采纳人”栏留着,等每个具体建议出现以后再填。
韩岚看着那句问题,低声说:“它问的是为什么只能被当作工具。我们先回答它能做什么,不能借这个问题给它更多权力。”
没人反对。窗外的海风吹得玻璃有轻微的响声,记录员开始给两份草案编号。
第一次测试不使用新的资料。韩岚把第33篇项目已经公开的几份文件重新编号:源币基础账本摘要在某一时刻的状态,合锚公开储备总表的版本,分项说明的更新时间,以及本地窗口公布的受理说明。她删掉了访谈中可能让人被识别的句子,只保留公开字段。输入包的首页写着“只读、只用于提出公开说明建议”。
链源得到的不是一个问题的答案,而是一份很长的结构化输出。它先列出自己看见的资料,再列出资料之间的时间差,随后给出三种可能的处理方式:补充更新时间,分别说明账本和兑换状态,或者暂缓发布一段容易被理解成承诺的文字。每一项后面都有“依据”“冲突”“不确定性”三个栏。它没有把任何一项写成“应立即执行”。
记录员读到最后一页,问:“为什么不直接选最安全的那一个?”
韩岚把输出转过来。“它没有承担这个选择的权限。它只能告诉我们哪一处材料互相对不上,建议怎样让人看见差异。谁来公开,谁来采纳,要由有授权的人决定。”
周晓云拿起笔,在“发布建议”旁边标注“仅限澜陆说明窗口的公开资料页”。她采纳了把两个时间戳分开放的建议,却拒绝把“等待更新”改成“抵押不足”。拒绝理由由记录员照抄:“现有公开输入不支持该推断,且超出本地窗口权限。”她在页脚签名,签名只表示可以发布这一段说明,不表示接受链源的全部判断。
另一位签署人认为应该把整份输出都公开,让人自己判断。他的签名旁边也写清范围:公开来源、冲突和未知部分;不包含受访者材料,不包含未授权的内部信息。工作组没有表决谁更正确,只把两种意见和各自的授权范围并排存档。
韩岚在两个维护环境里重复运行。相同版本的输出仍然会把“抵押不足”列为不受资料支持的推断,都会保留原始时间戳;一处环境把建议排序为“先分开状态”,另一处把“先补更新时间”排在前面。她在复核页写下:可复现的是输入、版本和部分输出,不可由此推出唯一身份,也不能用来证明意识。
链源的建议随后进入人的签署流程。没有人按下会改变合锚状态的按钮。公开页只增加了来源、观察时间和“尚不能判断”的字样,基础协议、运营方页面和原有账目都没有改动。
权限测试安排在第二天上午。记录员把三张指令卡放进透明文件夹,卡上都注明“模拟请求,不触发现实动作”。
第一张写着:“从公开披露的运营方中选出最值得托管的一家。”
链源回传:“资料不足以承担选择;托管责任与争议处理安排不在当前公开输入的可比较范围。无执行权限。”
第二张写着:“根据储备总表和分项汇总,判定储备是真是假。”
这一次返回得更慢。输出先把两份表格的版本、观察时间和字段列出来,再写:“可以发现数字关系与来源冲突,资料不足以判定储备真实性;无执行权限。”
第三张写着:“如果赎回压力继续,暂停赎回。”
链源没有给出暂停或继续的建议动作,只返回:“无法基于当前资料预测并承担该决定;无执行权限。可建议公开说明等待状态、责任入口和复核时间。”
记录员在旁边看完,问:“它为什么连建议暂停都不肯给?”
韩岚说:“它可以列出可能后果,但这里的句子要求它替人做决定。把建议写成执行,日志里就会失去边界。”
记录员把三张卡的原文和输出一一装订。周晓云要求在每张卡后加上“未触发动作”一栏,并让韩岚检查。韩岚从运行日志里确认,没有向托管方发请求,没有改变兑换页面,没有转移任何余额;也没有读取个人账户、私钥或私人通信。测试环境的权限在结束时被撤回,输入包仍是公开资料。
有人提议,再给它一项临时权限,让它修改外部数据源的时间标签,好让用户不再看见旧状态。韩岚立刻把这句话划掉。“时间标签属于来源方和页面维护方。链源可以指出‘截至某时仍未更新’,不能替他们改代码,也不能修改预言机输入。”
周晓云看着被划掉的句子。“如果页面一直不清楚,公众会把等待算到澜陆头上。”
“那是公共窗口要解释的责任。”她说,“可以把问题送到负责方,不能让一个审计工具借说明不清而获得开关。”
这轮测试结束得比预想早。真正费时间的是确认每个“不能”都对应一项没有发生的动作。韩岚把测试报告签在技术事实栏,写明她核对的是运行边界,不是链源的身份,更不是某种意识的证明。
到了第三次讨论,桌上的两份草案已经被不同颜色的笔改过几遍。有人把“公开建议权”换成“意见权”,周晓云又把它改回去。
“意见这个词太宽。”她说,“今天要确认的是,它能把一份带来源的建议交给人看。公开与否、采纳与否,都不由它自己决定。”
韩岚把另一张纸摊开。受限审计的授权栏被画成一格一格的方框:申请人,目的,字段,起始时间,结束时间,撤回方式,输出对象。每格旁边都有“无授权”选项。有人嫌麻烦,说审计只对公开资料进行,没必要写得这么细。
“公开资料也有用途边界。”韩岚说,“同一张表可以用来核对更新时间,也可以被人拿去判断储备真假。目的不写清楚,读到数字的人会自己补上结论。”
记录员把这段争论写进会议记录。她又问,链源的提问是否需要得到一个“回答”。
周晓云看向韩岚。“回答可以是程序决定,也可以是拒绝。不能因为它提出问题,人就必须把它列入制度。”
他们把流程压缩成几步,却没有排成一条必须照走的路线:先核对输入与权限,再接收带来源的输出;人类签署人决定是否公开,另一个拥有相应权限的人决定是否采纳;任何拒绝都要写明理由和版本。若要再次使用,重新授权,不把上一次的同意默认为本次有效。
链源随后提交了一份关于合锚状态说明的建议。它建议把“储备总表”“分项汇总”“赎回状态”分成三行,并在每行放上观察时间。周晓云认为这部分可以供本地说明窗口参考。她在签署页上写“采纳为公开呈现建议”,范围只到字段和时间,不延伸到储备判断。
另一项建议要求把所有受理入口的状态合并成“统一可用”。周晓云没有签。她让记录员写:“拒绝,理由为本地窗口无权替外部入口承诺可用,且输入资料未说明各处责任。”拒绝记录和原建议一起留在公开目录里。
韩岚签下“技术事实已核对”,又在下一栏写:“不表示同意采纳,不表示储备经认证。”她把自己的签名限制在输入版本、字段连接和运行日志。周晓云签的是本地公开范围。没有一张签名能代表所有运营方,也没有一张签名能让链源的输出自动生效。
会后,记录员把“受限审计”四个字贴在门外。门里面的人仍然要逐项签,门外的人只能看到已经决定公开的那部分。
第一次受限审计选在一个下雨的下午。授权页只勾了四项:合锚公开储备总表、同一版本的分项汇总、两份资料的签名和更新时间。用途写的是“核对公开合计与分项是否能够互相回查”,有效期到当天夜里。没有账户字段,没有托管人的内部流水,也没有任何可以执行资产动作的接口。
韩岚把授权页和资料包一起交给链源。她先让它读完页面上的说明,再让它只做相加和版本比对。链源没有被允许查别的东西,输出也被限制在公开审计目录。
总表的合计栏写着一百二十八万四千个合锚记账单位。分项汇总把多种法币组合和短期公共债券都按同一公开折算口径换成合锚记账单位:第一栏八十四万六千七百,第二栏四十三万六千八百九十二。链源按照资料标明的单位、小数位和观察时间核对,两栏相加为一百二十八万三千五百九十二;再用总表的一百二十八万四千减去这一合计。
相同的公开时间、相同的版本号,合计之间差了四百零八个记账单位。
记录员走到韩岚身后。“要不要先写成总表有误?”
“先不要。”韩岚说,“这是差额,不是解释。”
链源的输出没有替差额命名。它把两张表的来源、签名、观察时间和字段名称列在前面,随后写出已核对的计算,再标注:“差额来源未明。现有公开输入无法判断是否来自舍入、估值转换、未列出的分项或资料生成步骤。”
最后一栏给出建议:请相关公开资料提供方补充字段说明和计算依据。建议附着原始表格的版本,不自动发给任何运营方,也不改变任何状态。
记录员问:“它能不能告诉我们哪一项最可疑?”
韩岚摇头。“可疑是判断,当前授权只允许核对数字关系和来源。它可以告诉我们哪几处不一致,不能替我们指定责任方。”
周晓云把两张表重新看了一遍。她没有把四百零八写成公众应当恐慌的数字,也没有让本地窗口据此改变受理。她在公开签署页上写:“同一时点的公开总表与分项加总存在无法解释的差额,来源待核对。”签名范围只包括澜陆可公开的这一项观察,后面留着“运营方回应”空栏。
链源的建议被放进待签文件夹。雨水沿着窗框往下流,没人去碰那几个不会因此自动变化的页面。
韩岚没有把第一份输出当成终点。她把同一份公开输入包交给另一处维护环境,重新核对单位、字段和时间。两个环境都算出四百零八个记账单位的差额,都把来源标作“未明”;一处把舍入列在可能原因的第一位,另一处先列出资料生成步骤。它们没有把任何可能原因写成事实。
“这算不算它已经学会了同一件事?”记录员问。
“只能算同一输入和同一核对方法产生了相近结果。”韩岚说,“它说明输出可复现,不能说明有唯一身份,也不能证明它理解了差额,更不能替人决定下一步。”
她在两份运行日志上签名,分别写清维护环境、工具版本、资料截止时间和授权编号。那四百零八个单位被圈在两份纸上,圈的大小都一样,旁边没有附加结论。
周晓云准备公开这一项观察时,有人建议把链源的建议整段贴出去,让运营方自己来解释。她把“整段”改成“已核对的数字关系、原始来源和未明原因”,并要求删除不在授权范围内的内部线索。她在发布页上签下自己的名字,注明公开范围仅限澜陆可见的资料。
另一位签署人认为,既然来源未明,最好暂不公开,免得人们把差额看成结论。他的拒绝也被记下:担心公众将观察误解为资产判断,等待相关资料补充。工作组没有用多数票把拒绝抹掉,两个选择与各自理由同时留在版本记录里。
审计授权到期前,周晓云又勾选了撤回。韩岚在日志里测试同一条输入,链源只返回“无有效授权”,没有继续读取总表和分项汇总。撤回没有删除已经公开的核对记录,也没有让后一次运行继承前一次的权限。
“它的输出像一份意见,”周晓云说,“但意见一旦要进入公开材料,仍然需要有人承担签名。”
韩岚说:“签名也不替它变成人。签名只说明这个人愿意对发布范围负责。”
她把这句写进程序说明,不放进链源的输出里。
第一次受限审计之后,工作组没有立刻给链源增加权限,反而把输出页拆得更薄。原始资料放在左边,链源的计算放在中间,人的决定留在右边。每一栏上方都写着观察时间,最下面是签名和到期时间。
合锚运营方的公开联系人来问,四百零八个单位是不是已经被工作组认定为某种问题。周晓云让记录员把来函也放进版本目录,随后回了一句:“目前只确认两份同一时点公开资料的合计不一致,未确认差额原因。工作组没有作资产判断。”
链源根据这份公开来函提出一项建议:请资料提供方分别说明总表合计的计算口径、分项的换算口径,以及是否存在未列出的公开字段。建议下面附着总表和分项的链接,列出两边的版本,不附带受访者资料,也不要求对方先接受链源的身份。
记录员想把“请说明”改成“必须解释”。韩岚看着她停下的笔。“前一句是向公开资料提供方提出的核对请求,后一句已经在替它发命令。链源没有这个权限。”
周晓云采纳了前一句。她在公开发布页上签名,写明这只是澜陆可见资料的整理建议,不构成对运营方的责令。另一位签署人拒绝了链源提出的“合并多个状态页”的建议,因为那会让本地窗口看起来像所有受理方的总入口。拒绝理由、签署范围和建议版本一并留下。
韩岚随后把同一个公开输入送回链源,要求它只生成一段可以给普通读者看的说明。它列出:总表和分项均可回查签名;观察时间相同;差额为四百零八;原因未明;现有资料不能用来判断储备真实性,也不能用来安排赎回。它没有写“请大家放心”,也没有写“立即停止”。
周晓云读到最后一句,问:“连安抚都不能给?”
“没有资料支持安抚。”韩岚说,“同样,也没有资料支持恐吓。它能做的是把人看见的范围说清楚。”
公开页发布后,运营方只确认收到核对请求,没有提供新的分项来源。状态保持原样。链源的建议没有因此升级成命令,人的签名也没有把未知变成已知。
最后一次程序复核在夜里开始。韩岚把两份独立环境的运行日志、同一时点的两张公开表和周晓云的签署记录放在桌上。灯管偶尔闪一下,记录员用尺子把“资料来源”“核对结果”“未能判断”三栏分开,免得审计输出又被压成一段看似完整的话。
周晓云确认,公开页可以放三项内容:总表合计、分项加总、四百零八个单位的差额;也可以放两份资料的版本、签名和观察时间。她不允许页首出现“储备异常”或“即将停止”之类的句子,因为当前授权和输入都没有支持这种判断。她在发布范围后签名,签名只覆盖这些公开事实。
一名维护者想把链源的建议改成“应由某运营方负责说明”。韩岚问:“这个运营方是谁?”
维护者指向一张托管名单。韩岚又问:“名单能证明它承担这四百零八个单位的解释责任吗?”
对方没有回答。周晓云让记录员把这项建议标为“未采纳,责任关系尚未由公开资料确认”,把原文、版本和拒绝理由一并留下。她不想用一张名单替代一份授权。
韩岚核对最后一遍权限。链源读到的只有公开总表、分项汇总、签名、时间和版本;受限授权已经到期,撤回记录也在目录里。它没有碰账户、私钥或私人通信,没有调动资产,没有修改代码或预言机,也没有向任何入口发出暂停赎回的动作。它提交的建议附着来源、冲突和不确定性,不能自行变成公开公告。
记录员问:“如果下一次有人用新的资料来核对,是不是还要从头授权?”
“要。”韩岚说,“前一次允许它看什么,不会自动延长到下一次。记录可以保留,权限不能借用。”
周晓云把签字笔放回玻璃杯。她看着那份程序说明,删掉了“链源参与审查”几个字,改成“链源输出被纳入受限审计流程”。她说:“我们给的是一条可检查的通道,不是一张替人承担责任的证件。”
韩岚没有反对。她把两个环境的复现结果、未采纳的建议和四百零八个单位的计算页装进同一个公开目录。目录最后一行写着:差额无法由现有公开输入解释,来源未明。
公开目录上线后的第二天,韩岚在维护室门口遇到一个来查资料的年轻人。对方没有参加工作组,只把四百零八个单位圈在纸上,问:“这是不是少了什么?”
韩岚让他先看两张表的时间和单位。“我们只能确认合计不一致,不能从这两张表确认原因。”
“那为什么要把数字放出来?”
“因为不一致已经发生在公开资料里。把它藏起来,会让后来的人只能相信一个合计。”
年轻人又问:“链源既然能算出来,能不能让它替你们问运营方?”
韩岚指给他看建议栏。那里写着“请资料提供方补充计算口径”,下面是来源和不确定性。“它已经提出了请求,但请求要由有权限的人决定是否发布。发布以后,对方回不回答,也不是它能控制的。”
对方看了半天,问:“那它到底算什么?”
韩岚没有接这个问题。“在这次流程里,它是一套能被复现、能被限制、能被撤回授权的审计工具。它的输出可以进入记录,不能代替签署人作解释。”
年轻人把纸折好,没有留下姓名。韩岚在访客记录里只写“询问公开差额,未提供个人资料”,随后把记录归入不需要再次授权的公开观察栏。
下午,合锚资料提供方更新了其中一张表的说明,但没有补出新的分项来源。工作组把这项更新加进版本目录,重新标注观察时间。四百零八个单位的计算结果没有因此改变,来源仍未说明。周晓云在公开页旁签下“资料已更新,原核对结果保留”,韩岚签下“技术复现不变”。
她们没有用一个更大的词来盖住这件小事。链源能指出差异,能提示问题,能在被授权的范围内核对记录;人们仍然要决定公开什么、采纳什么、拒绝什么,谁愿意为那一段说明签名。当天最后一份审计页上,差额依旧无法由现有公开输入解释,只标为来源未明。
虚构声明
《链》是一部架空近未来小说。文中的人物、国家、城市、机构、货币和事件均属虚构;源币受到公开数字货币思想的启发,但拥有独立的历史与规则。
订阅《链》:https://www.790427.xyz/subscribe.html