昨天刚翻译完一篇Frederick Pohl的小说《Day Million》,打算继续翻译科普《Calculate the Cosmos》,正好一个朋友问我我好几天前发的一条朋友圈是什么意思,所以打算展开写一下。
那条朋友圈,是我说我觉得区块链与学术论文出版系统很搭,而且可以做到链币分离。
要说理由的话,大致能想到下面这九条:
- 使用区块链,将文章和作者都放在区块链上,使用区块链本身的特性可以防止恶意篡改;
- 文章和作者是挂钩的,所以文章本身不会被冒名顶替(使用数字指纹与非对称加密可以做到);
- 引入类似现在已有的文章查重的机制,可以知道文章的每个段落是否是从别人的文章直接搬过来的,以及是否有引用他人文章但没有标明出处的,这个需要在现有的文章格式基础上增加一些元数据信息,改动不是很大;
- 可以在区块链上加上作者个人信用数据,这个数据在区块链上的话所有节点都可以公开查询,而且无法修改,所以如果有抄袭或者造价行为,会直接影响到这个账号的声誉,对学术界来说是很重要的;
- 学术文章本身不要求高频交易这种行为,所以使用比特币的POW方案的话可以人为降低认证时间周期,降低算力消耗;
- 学术文章本身可以分类,所以也不要求全网只有一根链,有利于拓展;
- 学术文章允许分岔,出现不同版本,对共识算法要求较低;
- 学术文章的撰写与评论可以给与一定的奖励,奖励可以是声誉值或者别的东西,不用和数字货币挂钩,这样链和币就可以分离,有利于链本身的发展,不会被币绑架;
- 共识机制本身可以是学界常用的网格计算,这样算力不会白白浪费,而是做有意义的事。
这么设计的核心思想,将币从链上去除,取而代之的是信用与声誉。这点在很多传统DAPP上是做不到的,因为没有币作为奖励机制,节点凭什么给你入块记账?
传统的共识方案就是入块者获得奖励,奖励被称为挖矿,这样能刺激节点持续在线并争夺记账入块的权利。如果没有激励,那节点就不会浪费资源给你记账——除非是死宅,但死宅无法统一世界。而激励的代价,无论是POW还是POS,必然是马太效应,这个上一篇文章里我就计算过相关模型了。
或者可以是用DAG的方案,没有挖矿,没有记账权争夺。但DAG方案需要witness,这货本身就是一个非平庸阶层,且不说和去中心的点对点对等网络的设计理念相冲,witness的选举本身也是需要一套解决方案的,所以并不能做到万无一失——当然,我们可以有各种绕开的方案,比如机制去中心而决策中心的方案。当然,DAG总体而言还是比POX方案更环保高效的。
不谈这些,我们的目标是将链与币分开,而要做到分开,一个目标就是记录节点能维持记账的不中断——过去使用电驴或者BT的时候大家应该都感受到过,如果某个seed-source不在线了,那就只能呵呵了。
挖矿(产生新币)与记账(区块入链)原则上是可以分开的,这个此前我设计过一套不完善的方案雏形。但我们换一个思路,不禁止挖矿,但让挖矿不再那么有经济利益,那会如何?
吸引人来的方式除了简单粗暴地撒钱,另一个方法就是给别的能吸引目标受众的东西。
所以,可以做垂直领域——学术文章的发布与流通。
对于学术界来说,经济利益当然是一个很大的驱动力,但学术声誉是更重要的。
区块链原则上可以为一个无信任网络提供算法保证的机械公信力,这是它最大的价值所在(虽然理论上1024n级量子纠缠的量子计算机可以轻易击碎现有的所有区块链安防,但毕竟实用的量子计算机还天晓得什么时候能面世呢)。而对于学术体系来说,这恰恰是有吸引力的地方——学术界最怕的就是抄袭与造假。
这里问题就分成了两个领域:
- 使用区块链手段来防抄袭;
- 使用区块链手段来防造假。
所以,我们下面就这两个问题分别讨论。
当然,在开始讨论之前还是要说一些在学术文章上使用区块链的几个最大的好处,这个其实在上面的九点中已经提到了。
首先就是对数据修改的采纳频率没有高要求——现实世界的经济与金融行为都要求高频交易,但在学术系统中,比特币的6次确认用一个小时根本不叫事,等论文发表等个几天也是常有的,何况才一个小时。
其次就是不同论文提交的现有顺序其实完全不重要,这和比特币必须保持单链这种一读群写模式是很不相同的。对于学术界来说,重要的是反抄袭反造假,同步发表不叫事。所以这套系统天然地允许多链,因此是MultiBlockChain还是DAG都可以,不是重点。
要防抄袭,其实相对来说是非常简单的一件事,我们“只”需要做到下面这些事:
- 区块链上可以同时保存作者(账号)与论文(索引地址)的信息,所以是双链;
- 论文之间要有一个判断是否存在段落级重复的判定机制(这是小问题,每个大学都有这么一套判重系统,问题不过就是做得有多烂罢了……);
- 文章格式要允许区分引用于非引用的复制粘贴(对LaTeX来说这压根不叫事);
- 判定结果保存在区块链用户信息上,且是公开的(所以要使用智能合约)。
因此,这部分的整个流程是这样的:
全网有至少两条链,一条链是作者信息,别的链上是文章。
作者使用一种修正过的LaTeX文档格式来编写论文,论文与作者信息挂钩,这点可以在LaTeX格式的作者格式中做修改,直接使用作者哈希。
提交文章的行为并不是将文章直接提交给区块链,而是提交给一份智能合约,这份智能合约会触发一个校验,验证提交的文章与全网当前所有的文章是否存在非引用段落的重复,这里可以具体设计各参数和判定条件,但结果就是给出一篇文章是否存在抄袭行为的值,一旦大于某阈值,提交失败,智能合约自动撤销提交申请,区块链上不写入任何数据;而如果没有抄袭,那智能合约自动将数据加入区块链。
如果发现文章抄袭,则会对文章相关作者的个人信息进行调整,比如下降声誉值和学术信用度等;而如果文章成功发表,则自动增加声誉值或学术信用度。
文章如果被成功加入到区块链,还可以执行另一份智能合约或者DAPP,便是将所有引用的文章自动增加引用数,被引用文章的作者也增加引用数以及声誉值等。
这里具体数值有哪些,以及在不同行为下如何变更,可以深入设计,这里暂且按下不表。
因此,这里的关键就是那份智能合约或者DAPP应该如何设计,但这事相对于别的DAPP落地项目来说,那真的是小CASE,不足挂齿。
防抄袭只是第一步,下一步是防造假。
以AEternity(此前我翻译过他们的白皮书)和DFinity为例,他们提供了Oracle为基础的Prediction Market,这Oracle理论上是桥接现实世界数据与区块链数据的通道——虽然它的原始与最终目标是作为一个巨大的期货对赌契约。
因此,一个设计方案是使用Oracle作为所有文章中所用数据的数据源提供者。
但这个想法只是一种理想,因为Oracle机制所解决的问题是数据在区块链上传递的过程中不会被篡改,以及入链的时候得到大多数人的接受和相信,但它并不能杜绝数据源本身的造假行为——也即,如果入链的数据本就错误,而这份数据又很稀有以至于没有任何来提出质疑,那么现有的Oracle方案只能接受这份数据。
一句话:Oracle只能保证入链之后的数据安全与真实有效,入链之前的数据安全与真实有效它管不了也没法管。
而,学术论文中的数据往往具有这种稀缺性,所以很可能一份假数据也不会有人来质疑。
所以,这里就需要引入两种不同的机制:
- 事后评议
- 撤销发布
学术文章和UTXO账簿相比,相同点是都有输入输出(输入就是引用了哪些文章,输出就是文章自身的索引地址)。所以采用我在此前一篇文章中设计的“熔断”机制,是可以做到撤销发布的——而且由于这里文章之间的关系很松散,并不要求输入输出严格匹配,所以撤销发布其实不存在技术层面的阻碍。
事实上,一个更加简单粗暴的方案,是采用GIT所用的步进变更记录,来维护一份文章是否被引用的表,那就不存在撤销,而只要将相应文章的状态在那张表里变更为已撤销即可。当然,这样这份文章状态变更表就需要一根单独的链来记录了。
事后评议的部分则非常简单,就是作者各数值状态的变更,在区块链上这个操作不存在什么技术难度。
解决了上述两个问题后,我们就可以说现在这样一种设计下的区块链——无论是MBC还是DAG——是可以满足学术系统对作者与论文诚信的需求的。
下面需要解决的就是共识机制。
相对于金融平台或者货币形态的区块链项目,这套系统对共识机制的要求其实很低——个人看来,甚至低于判断是否抄袭的智能合约。
整个网络的结构其实更加接近DAG,当然是用MBC也可以。
一个不引用任何别的文章的文章可以作为Root节点,这样整个网上可以存在大量Root节点。而后通过引用关系可以构建一颗多岔树,引用关系是网上的有向边,文章是节点,所以一般不会出现有向环,即循环引用。
当一篇新的文章加入到网络中的时候,可能是添加到某些已有的节点之下,也可能是新开辟一个Root节点。共识机制所要做的,其实仅仅是确保这篇文章不会被多个节点同时当做新节点给加入——也就是双花问题。
但因为我们现在有熔断机制,所以即便出现了双花也无所谓,同作者同文章的双花直接熔断撤销即可。
更何况,即便出现了双花问题也不大——因为在这个系统中真正有意义的是文章上的内容,与文章本身有几个实现并没有多大关系。
所以,这里的共识机制可以很弱,个人建议依然采用POW。
但这个POW有点特别——它并不是计算无意义的哈希计算,而是完成一系列学术计算。
因此,这套共识机制需要有一个任务发布平台与之对应。
人们在任务发布平台上根据特定的格式编写任务的执行程序与判定程序,然后各节点运行执行程序,并将得到的结果送交判定程序进行判定,判定通过就是共识达成,任务平台记录结果并反馈给任务发布者,同时算出结果的节点得到相应的回报——声誉值。
这样,这套系统的共识算法其实本身是一个格点计算平台,计算结果作为是否挖到矿的判断标准。
比如,SETI@Home或者计算蛋白质折叠方式,都可以放到这个平台上用。
好了,我们现在有了一个有用的共识机制了。
在这个系统上,还可以很方便地引入评论系统——评论可以作为一类特殊的文章。
数据结构和UTXO还是很类似,输入就是评论的哪篇文章或评论,只能有单一输入,而输出只是自己的索引地址。所以是One-In-One-Out的结构。
发表评论和发表文章一样,对个人声誉等数据都有影响。
然后会需要一个文章与评论的评分系统,这一方面是和前面所说的事后评议相关,另一方面也通过不同的评分来给出一篇文章的评价。这里,不同声誉值和学术信用度的人给出的评分的权重是不同的。
一旦一篇文章被撤销,那么所有给高评价的用户都会遭受损失(也是智能合约/DAPP来完成的),从而这在一定程度上也让大家为自己的选择负责。
因为操作越多,用户数据会越大,所以可以采用我此前文章中设计的遗忘熔断来有效减少无用信息。
当然,上面还只是一些小附件,真正重要的是,这样的系统中需要一个仲裁集团,为是否需要撤稿或者给予某作者一定的惩罚以最终的仲裁——没人会指望智能合约可以做一切事,这个看下合约理论就知道了。
仲裁集团的生成其实很方便,使用每个用户的声誉值与学术信用度就可以选出,只有此后是使用传统的PAXOS或RAFT的方式,还是POS/dPOS的投票方式,都无所谓。
至此,一个整体设计的草案就完成了,我们需要以下这些东西:
- 多链MBC或者DAG;
- 基于LaTeX的文档格式;
- 非引用抄袭判定机制;
- 熔断与遗忘机制;
- 声誉与学术信用度更改标准;
- 一个仲裁集团。
它的优点,是构造了一个信用无法修改、文章无法修改、作者记录无法修改、任何人都可以发表、任何人都可以阅读的币链分离的学术文章发表与流通区块链系统。
它的缺点,就是其实可以中心化来干的干嘛一定要区块链来做这个有点蛋疼我除了想到能这么做以外并没有想到为什么要这么做大概唯一理由就是防抄袭和防造假比较容易么但似乎看起来这也不是什么天大的理由啊真是蛋疼。
通过本协议,您可以分享并修改本文内容,只要你遵守以下授权条款规定:姓名标示 、非商业性、相同方式分享。
具体内容请查阅上述协议声明。
本文禁止一切纸媒,即印刷于纸张之上的一切组织,包括但不限于转载、摘编的任何应用和衍生。网络平台如需转载必须与本人联系确认。