区块链技术在教育领域的应用调研

区块链又称做『写入速度最慢的分布式数据库』。顾名思义,就是数据增长速度有限,以比特币为例,其网络大约每10分钟产生一个区块,每个区块大小是1Mb,大约可以记录数千笔交易。如果网络交易频繁,会导致拥塞。也就是说,比特币网络不能保证交易数据能在有限的时间内得到确认。

区块链本质上是一种去中心化分布式账本,其账本属性就意味着数据只能追加,不能修改和删除,而账本的最小写入单位是区块。区块链网络运行的大致原理如下:

  1. 每个节点都拥有一组公钥和私钥来保证数据安全。一旦私钥泄漏,就会导致节点被攻破;
  2. 用私钥签发的数据会广播到全网,此时数据仅被缓存,并没有得到确认;
  3. 当网络通过共识机制产生了新的区块,那些数据会被写入区块中得到确认;
  4. 数据一旦写入区块被确认就无法更改;
  5. 如果没有达成共识,会导致区块链分叉;
  6. 基于区块链中数据的不可篡改的性质,可以建立相关应用,比如智能合约。

区块链的种类

公有链联盟链私有链
参与者所有人联盟成员区块链所有者
共识机制PoW/PoS/DPoS分布式一致性算法SOLO/PBFT
记账人所有参与者联盟内部协商区块链所有者自定义
激励机制可选
中心化程度去中心化弱中心化强中心化
承载能力<100笔/秒<10万笔/秒区块链所有者自定义
应用场景虚拟货币物流、银行、电商大型组织机构

伪区块链应用

很明显,私有链不具备去中心化的特征,是一种蹭热度的伪区块链应用,毫无意义。私有链的应用场景完全可以用成熟的分布式算法来等价代替。

只有满足『去中心化』和『防篡改』这两个需求的业务场景才需要用到区块链技术。否则都是伪应用。

共识机制

增加新的区块需要达成全网的共识,特别是公有链,其每个节点都被视为不可信任的潜在攻击者,所以需要有一些手段来保证写入的一致性。如果无法达成共识,就会产生分叉

共识机制,或称为分布式一致性算法,分为两类:一种需要解决拜占庭将军问题,另一种不需要。前者用于存在不可信节点的网络中,比如公有链;后者用于可信网络中,比如联盟链和私有链。

PoW

工作量证明。需要算力来支撑整个系统。生成新的区块的节点会得到激励。

优点是非常可靠,支持大型网络。缺点是存在51%攻击的风险,而且浪费算力。

PoS

权益证明。根据币龄(持币数量×持有时间)给每个节点分配权益。

优点是不浪费算力,且增加了51%攻击的难度。缺点是存在权益粉碎攻击,导致系统分叉。

DPoS

(略)

PBFT

(略)

BFT-DPoS

(略)

其他分布式一致性算法

如果认为节点都是可信的,即不存在拜占庭将军问题,那可以使用 Paxos 或 Raft 算法。

当联盟链和私有链的节点被视作是可信任的,排除拜占庭将军问题,便可以使用这些算法。


共识算法是区块链的核心。在数学上被证明可靠的分布式一致性算法(共识机制)只有 Paxos 算法。该算法是在排除拜占庭将军问题的情况下才有效。其他算法都未被证明可靠。

激励机制

公有链为了维持网络的运行,对于工作节点必须给予一定奖励机制作为回报。没有激励机制,则网络无法维持。

智能合约

智能合约并非区块链的直接应用,它实现了一个图灵完备的脚本,以实现复杂的商业逻辑。智能合约只是将合约数据部署在区块链上保证数据不被篡改。

区块链在教育领域应用

常见的公有链都会被打造成一个金融系统,也就是公有链的第一应用必然是代币。因为没有代币就无法实现激励机制,从而无法维持整个区块链网络的运行。然而代币并不是区块链的必要应用,对于联盟链和私有链来说,代币应用没有必要性。

区块链种类分析

去中心化的公有链意味着不可控,在国内的大环境下,这种系统肯定不会被体系所待见;而私有链作为蹭热点的跟风概念,也没有实施的必要性;只有联盟链的概念可能会更加贴合国内的实际情况。

联盟链可以引入一个根证书机构,而节点则分为两种:一种持有根证书机构签发的公钥,角色是联盟成员,这类节点有创建区块的权限;另一种持有非根证书机构签发的公钥,此类节点可查询和产生数据,但是不能生成区块。

使用对象分析

对于体制内的学校机构,有天然的中心化倾向,几乎不存在去中心化应用的必要。有两种情况会比较适合区块链的去中心化特征:

  1. 跨国家/地区的院校之间
  2. 商业教学机构之间

应用分析

  1. 学历认证 联盟成员可以提供学生的学历证书供查询;
  2. 培训认证 类似1。只是将认证细化到课程或者知识点。
  3. 教师资格认证 针对教师教学水平的信息认证。
  4. 匿名认证 通过零知识证明的原理,用户可以在匿名的情况下实现学历等信息认证。
  5. 智能合约联合颁证 利用智能合约,学员可以参加跨机构培训,最终获得联合颁布的学历认证。

其他

首先,区块链只能解决数据防篡改的问题,但是无法保证数据来源的真实性。常见的应用都是基于节点没有创建虚假信息的动机来保证的。比如转账数据,节点没有动机虚构一笔交易来把自己的钱转给别人,除非是私钥泄漏了。但是在其他领域,节点是否有创建虚假数据的动机则不能保证。

其次,区块链网络自运行起数据就在不停的增长,比特币这种只保存交易数据的网络,如今的数据量也已经有100多G了。而为了分区容错,每个节点都保存一份完整的数据,那随着数据增长,对存储的压力是很大的。