2024年初,云港的风还带着冬天的湿气。
周晓云到世界公议会登记处时,楼外的旗帜刚被海风卷回去。登记处设在一座旧展馆的一层,门口没有守卫队列,只有几张木桌和一块写着“召集、记录、公开材料归档”的纸牌。
负责登记的工作人员把澜陆的授权文件翻到最后一页,问:“代表权限写到哪里?”
周晓云说:“代表澜陆参加本次会议,说明三项入场要求和本地立场。不能改写基础协议,不能替其他共同体承诺,也不能把参谈意见写成全部使用者的选择。”
工作人员在表格上逐项勾选,又问她是否有权在现场接受一份共同定义。
“我有权确认澜陆听见了什么、保留什么意见。”周晓云说,“没有权替澜陆接受一个没有经过后续授权的制度结论。”
她的名字被登记为“澜陆代表,权限限于本地立场与会议记录确认”。旁边的说明注明,世界公议会只负责召集和记录,不拥有向各地发布命令的权限,也不是一个世界政府。
李波排在她后面。他把自己的独立报告人说明递过去,说明上写着:仅报告本人观察与经授权公开的材料,不代表澜陆、临时工作组、源币社区或任何用户;无投票权,无承诺权,不替任何一方签署制度安排。
工作人员看了他一眼。“你不作为澜陆代表发言?”
“周晓云已经登记了代表权限。”李波说,“我可以补充材料,也可以说明我的报告为何拒绝某一项推断,不能把个人意见变成澜陆的票。”
登记处给他一张灰色的资料牌。上面没有“观察员”三个字,只写“独立报告人,发言不构成承诺”。他把牌挂在胸前,和周晓云一起走进会场。
会场原来是旧展馆的中央大厅,四周还留着以前展柜的浅色印痕。桌子没有围成一个高台,参与方坐在几组小桌旁,桌面上放着公开目录、接口说明、责任联系页和一台供演示用的旧终端。
公议会的召集人没有先宣布谁代表多数。她只说明,会议会把不同意见放进同一份记录,记录不自动成为规则;每一项要改变的事情,仍要回到拥有相应权限的人那里。
周晓云把澜陆的三项入场要求放进本地立场栏。她没有说这些要求应该适用于所有地方,只写参谈方运行信息、案件触发的只读核对和地方受理暂停的范围。李波在自己的报告页旁添了一句:我可以说明观察,不能替澜陆确认参加。
第一场演示不是发言。一个参与方把一笔公开请求从协议记录拖到网关状态页,两个页面上的时间差了半天。有人伸手要把“已确认”改成“已完成”,旁边的开发者梁屿按住了鼠标。
“先别改。”他说,“先看它们各自说明了哪一段。”
周晓云在纸上记下时间。会议从这个小小的停顿开始。
梁屿把终端上的目录切到公开版本,指给几位参与者看。基础协议的代码、供应规则和节点运行方式分开存放,任何一处都没有“主持人”栏位。一个参与方可以运行自己的节点,不能仅凭自己的身份改掉别人的供应记录,也不能把某次网关受理写成协议已经承认。
“如果我们把门口的网关关掉,”一位记录员问,“基础链会怎样?”
“基础链继续。”梁屿说,“关掉的是这一处入口。”
“如果多数入口都关了呢?”
“普通使用者可能找不到可用的入口,但这和协议被某个主体改写不是一件事。”
顾远把自己维护的节点日志放到桌面上。日志不长,只有运行时间、最后一次同步和几处缺失说明。他说自己可以在本地验证公开记录,却不一定有条件每天保持服务。
“去中心化的底层能力还在。”顾远说,“但人通常不是直接和基础协议打交道。大家找的是能接电话的网关、替他保管东西的服务方、能把结果交给窗口的人。”
周晓云问:“所以单一主体不能改供应,不等于普通人没有单一入口的依赖?”
“对。”顾远说,“一个人没有设备,也没有时间研究节点,他自然会去找看得见的入口。入口可以有很多,若都要通过同一类服务方才被正式受理,最后还是会形成依赖。”
一位来自小型协作组的参与者拿出自己的流程页。页上有三个不同的链接,前两个已经停止新请求,第三个只提供查询。她说,公开节点仍然能运行,组员却把服务入口当成网络本身;入口一变,大家就以为规则也变了。
梁屿把协议页和入口页并排放着。“这里要分开写。基础链规定记录怎样被验证、供应如何变化、节点怎样参与;网关决定自己的受理范围;托管服务承担钥匙和状态;公共服务入口还有自己的答复义务。任何一层都不能替其他层自动签字。”
李波在报告里记下三处来源,没有写“去中心化已实现”。他把一个容易被引用的句子删掉:只要代码开放,人人就拥有同样的选择。后面留下的是一段较短的事实:基础协议未被单一主体改写,普通使用者的设备、时间和服务入口仍然影响他能否实际参与。
周晓云读到这里,点了点头。她把澜陆的要求放在桌边,另附一行说明:澜陆只要求参谈者披露自己的运行条件,不以此要求整个网络呈现同一种状态。
演示继续往下走。网关页显示“待受理”,协议记录仍显示“已确认”。召集人让记录员把两种状态都保存下来,没让任何人替其中一个覆盖另一个。
午间休息时,顾远把小节点搬到展馆侧门的长凳上。机器外壳被磨得发白,启动后没有漂亮的图案,只显示正在读取公开记录。
一个负责搬运材料的年轻人停下来问:“如果我只想验证一笔记录,能不能绕过网关?”
梁屿说:“技术上可以运行自己的节点,读取公开部分。”
“那我就能办理了吗?”
“办理要看服务入口是否受理。验证记录和获得服务,是两件事。”
年轻人看了看机器,又看了看会场里那几扇写着机构名称的玻璃门。“所以我可以自己看,却还得去别人那里办。”
顾远没有把这句话当成对协议的否定。“我能给你一条可核对的记录,不能替窗口接单,也不替托管方拿钥匙。开放规则给了你一条路,设备和服务把路变窄,这个差别要写在同一份说明里。”
周晓云听见后,让记录员把“可运行”与“可办理”分成两行。她没有提出一个更大的入口,只要求门口的说明不要把其中一行覆盖掉另一行。
年轻人最后没有参加演示。他说自己只是来送文件,不知道会不会再来。顾远把机器收回袋子里,继续回到会场。小节点没有改变任何规则,却让几个人看见,基础链开放和实际使用之间隔着一段需要有人承担的距离。
消费者保护的材料是一宗没有姓名的状态冲突案例。
案例中的使用者提交了一项跨域服务请求。协议记录显示请求已经确认,网关的公开页面却显示“待受理”,托管服务的状态则停在“暂停核对”。三处记录都带着签署版本和时间,彼此没有互相覆盖。
公共服务席的陆恺把案例打印出来。“使用者拿着协议记录来窗口,会问为什么还不能办理。窗口能确认协议记录存在,却没有权限替网关受理,也不能替托管方解除暂停。”
风险席的人问:“那消费者保护到底保护什么?只保护他看到三种状态吗?”
陆恺说:“先保护他不被一句‘记录已确认’骗到下一步。窗口要告诉他哪一层已经完成、哪一层还在等待、下一次答复找谁。”
另一个参与方建议把三种状态合成一个总状态,免得普通人看不懂。梁屿在纸上写了几个词,又把它们划掉。“合成以后看起来简单,可一旦出了问题,没人知道总状态是由协议、网关还是托管方写出来的。”
李波问:“如果三方都没有故意出错,使用者要找谁?”
陆恺把案例背面的答复页翻给他看。协议维护者只能确认记录和供应变化;网关负责说明受理与否;托管服务负责钥匙控制、暂停和恢复条件。三方可以转交,但每次转交都必须留下送达时间和当前状态。
“这仍然会让人跑三个地方。”一位参与者说。
“会。”陆恺回答,“把三个地方写成一个入口,不会让责任真的合并。我们能做的是在入口处明说自己没有哪项权限。”
公议会记录员把案例拆成三段,不用“消费者已获得保护”作标题。周晓云在澜陆立场栏补充,地方可以保留不同的受理、申诉和退出方式,但每种方式都要让使用者知道当前状态与责任入口。
李波在报告中写下:状态可被并列核对,不等于损失已经补救;责任可以被指向,不等于取回一定完成。这里没有赢家,只有一份更不容易误读的案例页。
数字法币适配演示安排在下午。参与方没有搬来真实资产,只准备了公开的源币证明、一个转换请求的空白编号和两套状态说明。
第一项测试把源币证明交给适配层。适配层核对公开签名后,将“已确认的源币记录”传给数字法币端。数字法币端返回的不是收款凭证,而是两行状态:待受理,待转换。
有人想把第二行改成“已兑换”,说这样普通人更容易理解流程已经走完。周晓云按住纸张。“它还没有完成转换。”
梁屿指着接口返回的时间。“数字法币端只收到了证明和转换请求。它没有收到澜元收款,也没有确认兑换完成。我们要让它显示自己看见的那一段。”
李波在旁边写下两个状态,没把“待转换”译成任何价值结论。参与方确认,这一项测试没有转移真实资产,也没有改变源币规则。
第二项测试来自一宗公开的状态冲突。适配层收到一份网关页面的“待受理”和一份协议记录的“已确认”,只读接口按案件授权返回记录编号、时间、签署版本和责任入口。测试结束后授权关闭,输出与查询开始、结束时间一起留在公开审计里。
风险席希望把这套接口永久放在基础协议里,这样遇到任何新的冲突都能直接查询。韩岚从远程屏幕前抬起头。
“永久查询不是技术上的必需。”她说,“参与方可以在适配层按案件、范围和期限申请。案件结束,权限就关闭;需要再次查询,就要重新授权。”
“如果重复请求发生在两次授权之间呢?”
“把重复请求本身作为新的案件。不能为了追查它,提前获得所有请求的关联。”
风险席又提出,把每一笔请求和一个长期身份关联起来,方便追踪。韩岚拒绝了。她说明接口只核对状态冲突、重复请求和责任入口,不读私钥,不读无关账户,不转账,不冻结余额,也不替任何人判定罪责。永久关联会把临时的审计需要变成长期的观察资格。
李波把韩岚的意见记在自己的报告里,注明她只确认接口在两项有限测试中怎样读取公开状态,不对适配层的安全、数字法币端的转换结果或源币的价值作保证。
周晓云问数字法币端的参与方:“如果你们只能看到待受理、待转换,是否会要求澜陆把源币记录先写成澜元收款?”
对方摇头。“那会把两种状态混在一起。我们只能按自己的受理规则回复。”
韩岚把两项测试的范围、期限和无真实资产移动说明附在技术意见后面。她没有签“接口可用”,只签了公开输入、返回状态和关闭时间。
第二项演示结束后,风险席有人提出用一笔真实的跨域余额再跑一次,看看暂停和转换会不会互相影响。
韩岚拒绝了这个安排。“公开案例已经足够核对状态字段。把真实余额放进来,会让测试变成一次未经授权的操作。”
李波问:“如果不碰真实资产,普通人会不会觉得你们只是在纸上演示?”
“纸上演示能确认接口读了哪些字段、在什么时候关掉。”韩岚说,“不能靠一次未经授权的移动,证明它将来一定安全。”
周晓云让这段争议留在会议记录里。两项接口测试都不转真实资产、不改变源币规则,测试结果也不代表任何参与方获得新的操作权。
记录员在案例页的底部留了一格,标题是“最终责任人”。他想把协议维护者、网关和托管方中选出一个,方便普通使用者查找。
陆恺没有同意。“这个案例里,三方各自承诺的范围不同。把一个名字放在最后,不会让它自动承担其他两方的工作。”
周晓云建议改成“当前责任入口”,并把受理、托管和协议记录分别列出。若入口已经转交,就留下送达时间;若没有收到回复,就标成未回应。
一位参与方担心,地方各写各的,用户仍要读很多页。李波说:“可以让格式相近,不能把责任合并成一个名字。简短要靠字段清楚,不靠替人决定。”
记录员接受了这项修改。他在摘要里保留三种责任,不把任何地方的受理方式当成默认方式。
回到会场,周晓云发现“无许可”三个字被一位记录员圈了出来。对方担心它会被理解成谁都不需要负责。
她在旁边补写:无许可指协议层的参与不先由一个主体批准,不等于网关、托管或服务入口可以省略自己的受理和申诉说明。顾远看完后说,这样写仍然不轻松,却没有把开放和免责混在一起。
李波把这条补充放进事实报告,没有给它加上“公议会确认”的印章。
演示结束后,公议会没有安排各方依次发言。记录员把几张纸夹在一起,问周晓云哪些内容可以放入会议定义,哪些只能作为澜陆立场。
周晓云把自己的三项入场要求重新看了一遍。她不愿把参谈方的运行披露写成所有节点必须遵守的规则,也不愿让案件接口的限时权限变成永久资格。地方暂停只涉及本地受理和新请求,其他地方可以有不同的处理方式,只要把状态和责任入口说清楚。
李波在旁边标出几个容易被误引的词:承认、保护、退出、可用。
“‘承认’放在这里,读者会以为公议会替它背书。”他说。
“那写成‘会议记录中的有限定义’。”周晓云说,“定义要说明它不带来什么权限。”
梁屿把基础协议的公开版本放在桌角。顾远看着其中一段供应规则,确认没有一个单独的参与方可以把供应改成自己的安排,也没有一个公议会按钮能够代替节点运行。可他又把入口图推回来:普通人很少直接和那段规则相遇,大多数时候先碰到网关、托管或服务窗口。
“这两句都要留。”顾远说,“协议不能被单一主体改写,是一层事实;人要经过哪扇门才能办事,是另一层现实。”
公议会的记录员问:“如果两层都是真的,会议定义要偏向哪一层?”
没人立刻回答。周晓云把一张空白页放在两张图之间,写下问题,而不是选择。
消费者保护案例也没有被改成一个统一状态。协议记录的确认、网关的受理、托管服务的暂停,各自保留来源和时间。陆恺要求在案例页首行加上“使用者可据此提出申诉”,但不能写成“提出申诉即可取回”。
“可退出呢?”记录员问。
韩岚从远程连接里补充:“至少要知道申请能从哪里提出,当前状态由谁更新,异议联系谁。能提出不等于立即拿回。”
李波把这句话记进报告,却没有把它写成一项新的全球义务。不同地方可以设置不同的受理、申诉和退出方式,参与者要把自己的责任接口公开;如果某地只提供查询,应该明说只提供查询;如果某地可以受理,也要说明受理到哪一步。
数字法币端的演示结果被放到附录。源币证明仍是源币证明,转换请求仍是待转换,数字法币端没有因为收到证明就自动产生澜元收款。周晓云要求在附录开头加一句:跨域传递可以让不同协议看见彼此的状态,不替任何一方完成自己的受理。
有人建议把会议成果写成“建立统一可用标准”,方便以后引用。李波没有抬头,直接把“统一”划掉。基础链的供应、节点和规则不由一个主体改写,地方也不必用同一种受理、申诉和退出方式;如果把差异压掉,普通使用者会先失去知道差异的机会。
公议会召集人看完修改稿,只确认几处记录来源和参与者权限。她没有宣布会议形成共识,只说可以在会议档案中保存一项有限定义,供后续参与方引用和提出异议。公议会负责召集、记录和归档,不替任何地方批准服务,也不拥有世界政府式的执行权。
周晓云在代表确认页上写下:澜陆三项入场要求仍是澜陆立场,不是全球规则。她确认自己有权说明这份立场,没有权把它改成其他共同体的承诺。
李波在独立报告页上写下:会议材料所能支持的,是一项有限定义和若干责任接口要求;不支持把任何接口写成唯一入口,也不支持把可提出退出写成立即取回保证。
记录员把他的报告页和周晓云的确认页分开归档。两页都签了名字,却没有一枚总印章把它们压成相同意见。
会议最后一天,记录员把一页没有标题的文字投到墙上。投影的字很小,下面密密麻麻列着来源和保留意见。
第一页写的是:源币是可被跨域协议引用的无许可结算协议。
有人问:“这是不是已经给它定义了制度地位?”
周晓云说:“只定义它在本次会议记录里的用法。后面要立即写它不是什么。”
李波把下一行补上:不是法币,不是发行机构,不是唯一入口。源币记录可以被跨域协议引用,不表示数字法币端已经收款,也不表示任何地方必须通过同一个服务方办理。
一位参与者担心,这样的文字太像在给源币保留特殊位置。顾远指着基础链和入口页说,所谓无许可,至少意味着协议的公开规则、供应和节点运行不能被单一主体随意改写;如果有人要把“引用”读成“自动受理”,那是入口责任出了问题,不是定义需要把两者混在一起。
另一位参与者则担心,地方保留不同方式,会让普通人每到一个地方都要重新学习。周晓云没有否认这份麻烦,只要求各地把受理、申诉和退出的责任接口写在自己的范围里。地方可以不一样,不能把差异藏在一个看起来相同的总状态后面。
韩岚在远程连接里确认最后一段:“参与方须保留可核验、可申诉、可退出的责任接口。可退出只代表可以提出申请、知道当前责任方和状态,不保证立即取回。”
她补充,反欺诈和审计仍按案件、范围和期限授权,放在参与方适配层;基础协议不增加永久关联,不读取私钥,不冻结余额。两项接口演示没有转移真实资产,会议也没有改动源币规则。
公议会的召集人把各项保留意见列到定义下面。有人接受有限定义,有人只接受它作为记录用语,有人认为责任接口还不够清楚。没有人得到一份可以替所有地方执行的命令。
周晓云在澜陆代表页上签下“已知悉会议形成的有限定义”,注明这不扩大她的权限。李波签独立报告,只确认来源、观察和未解决的疑问。他没有在“源币已经适合公众使用”或“所有地方应当采用”旁边留下名字。
会议结束后,公议会把摘要放在云港展馆外的一张长桌上。纸页一共有六页,第一段就有“无许可结算协议”“跨域引用”“参与方适配层”“责任接口”几个词。
一个来办事的普通使用者停在桌前。她叫姚琴,手里捏着一张要交给别处窗口的服务回执。她从第一页翻到最后一页,又翻回来。
“请问,”她抬头问坐在旁边的李波,“现在能不能用?”
李波看着她手里的回执,只能问:“你要办的是什么,哪一个入口给了你什么状态?”
姚琴皱眉。“我就是不知道才问。这里说可以引用,又说不一定受理。”
周晓云走过来,指着摘要里关于地方接口的那段。“要看当前入口的说明。”
“出问题找谁?”
“先看记录里标的责任入口,再看它的申诉方式。”
姚琴又问:“如果我不想继续,怎么走?”
“可以提出退出申请。”李波说,“但要看谁接收、当前状态是什么,也不能保证马上取回。”
她低头看那几个词。“那我现在到底能不能用?”
三个人都没有马上把六页摘要改成一句答复。李波把她的问题记在会议反馈单上,没有写成她不理解规则,也没有把一场尚未发生的办理当作规则失败。周晓云在纸页边缘标出三个词:能否使用,责任入口,继续或退出。
云港的风从展馆门口吹进来,压住了摘要最后一页。上面的有限定义已经写完,桌前的人仍然需要知道下一步。
虚构声明
《链》是一部架空近未来小说。文中的人物、国家、城市、机构、货币和事件均属虚构;源币受到公开数字货币思想的启发,但拥有独立的历史与规则。
订阅《链》:https://www.790427.xyz/subscribe.html