Wiki · Zikaron

账本与条目

每种角色有一本自己的账本:一串签名条目,按顺序写成,只能追加。第一条是「创建账本」,一本账只有这一个根。

条目的构成

作者
签署这一条的密钥地址。
序号
在账本中的位置,从 0 起算。
前一个条目
前一条的编号,把本条与此前的整本账本连在一起。
类型与正文
这一条记的内容,如一份内容指纹、一次授权、一次撤销。
签名
作者的密钥对以上全部内容的签名。

每个条目都带着前一条的编号。任何一条被改动、增删或调换,其后所有编号都随之改变;所以核实了最新一条,即核实了此前的整本账本。

条目类型

类型说明
创建账本账本的根
存证一件记录的内容指纹
授权授权某个地址在一段时间内使用某件记录
撤销撤销一份授权
注记给某一条补充说明
导入把这把密钥早先上链的锚收进账本
换密钥或移交把账本交给新密钥
删除条目把一条存证标为已删除

条目类型是开放的。其他工具可以约定自己的类型写进账本;读者遇到陌生的类型,把它列为「无法识别的类型」,法的检查结论照旧。「删除条目」就是这样一种读法约定:本应用认得它,别的工具把它列进这一栏。本应用的账本状态行把这一栏算作问题,自己的删除条目除外:条数正好等于删除条目数时,这一项亮绿灯「约定条目 N 条」。

只追加

账本只做一件事:在末尾追加。写错了,追加注记;作废一条存证,追加删除;收回授权,追加撤销。既有条目永远原样保留,账本的历史因此确定。

存证

在首页或「记录存证」页,把文件、文件夹或 Git 仓库拖进拖放区,或点它选择,打开「新建存证」卡。内容指纹这样算:

类型算法
文件文件字节的 SHA-256
文件夹连同各文件名和内容一起算
Git 仓库按当前提交算
  1. 填「记录名称」。留空时自动填上:文件取去掉扩展名的文件名,文件夹或仓库取全名。记录名称写进存证条目。
  2. 可选的「为谁留证(可选)」折叠有四格:「应用」「对方身份(0x…)」「对方编号」「对方角色(可选)」。填了任一格,前三格都要有,对方身份写成 0x 加 40 位十六进制。这些字原样写进存证条目,供日后读到这条记录的人对应到具体的交易。
  3. 可选的「高级选项」里可以关联一个 Git 仓库,以后按「检查新提交」查看上次存证之后新增了几个提交。
  4. 按「加入账本」,在确认卡上核对「文件」「费用」,再按红色的「加入账本」,条目即写入账本并排进待上链队列。

批量存证。往卡里的拖放区一次拖进两份以上文件,就成为一批:一个文件写一条存证,「记录名称」写进每一条。中途有一件失败即停下,已签入的留在账本里,其余文件留在表里,处理后可以再按。批量只收文件。

验一份文件。「记录存证」页搜索格旁的「验一份文件」:选一份文件,应用算出它的 SHA-256,在当前账本里找同样指纹的存证,答出第几条、是否已上链、块时间。

写入即公开

签入时的文件位置只存在这台机器上。记录名称、注记文字、「为谁留证」的内容、授权中的使用范围都写在条目里:凡拿到你账本的人都能读到(授权文件就带着整本账本),并且永久保留。落笔前请慎重;记录名称留空时,填进条目的是文件名。

指纹只回答两份内容是否相同。内容很短、容易猜时(如一个日期、一个金额),别人可以逐个算候选答案的指纹来比对。这类内容存证前,请与一段随机文字合成一个文件。

删除存证

在记录详情页底部按「删除存证…」,确认卡写着「存证将标为已删除,已发出的授权不受影响。」按「删除」后,账本里写入一条「删除条目」指向这条存证,原条目一个字节都保持原样。此后这件记录划掉显示,详情页注明它已被删除,新建授权的选单也随之略去它。

被删的存证结果
还在队里待发,或始终只在本地存证从队里拿掉,删除只记在本地,显示「本地删除」
已经发出、入块或上链删除条目进待上链队列,像其他条目一样上链;链上记录照旧,深度照旧计入

删除条目的格式与读法是本应用的约定,写在文件与格式里。

注记

「账本」页「更多」菜单里的「添加注记…」,或条目详情里的「注记…」:写注记内容,点选目标条目,按「添加注记」。注记另存为新条目,原条目保持原样。

导入上链存证

把这把密钥早先上链、账本里尚缺的锚收进账本。打开「账本 › 更多 › 导入已有存证…」:

  • 「密钥地址」空着:列出本机密钥早先发过、账本里尚缺的锚,清单来自上一趟账本检查。
  • 填一个地址:扫链列出那把密钥发过的锚。表中「通过」的行默认勾选,只有这一种能导入。
  • 导入别人的地址时,要那把密钥的持有人签字:把卡上的「文本」发给对方,对方在自己的应用里用「更多 › 为他人签认领…」输入本机口令签字,签回后你粘贴进来,当场核验。缺了签字也能导入,那几枚锚记为未证实。

按「导入 N 枚」,写一条导入条目,进待上链队列。

移交账本

「账本 › 更多 › 换密钥或移交…」:填「新密钥地址」(新密钥的上链存证须为零条,读数为零才能继续),选「仅换钥」或「交给他人」,可写说明,按红色的「确认移交」。移交后这本账由新密钥续写,本机转为只读。移交是单向的。

一钥一账

一把密钥只写一本账。同一把密钥在同一序号上签出两个相异的条目,任何核验者都能发现,账本检查随即判为「未通过」。所以:

  • 同一个数据目录同一时间只有一个窗口写入,后打开的窗口只能读,页顶挂只读提示条。
  • 凭助记词、私钥或密钥文件在另一台机器上还原的身份,先暂停写入,从整机备份取回账本并与链上核对相符后再恢复,见取回账本。
  • 换密钥前先登记移交,新密钥凭此续写这本账。