精华内容
下载资源
问答
  • 进入2018年以来,区块链在资本市场的风口上依然热度不减,已成为当下最热的投资领域。而普通投资者想通过区块链投资赚钱最简单的方式就是投资数字货币,目前投资比特币的主要方法有四种: 一:比特币挖矿  “挖矿”...

    进入2018年以来,区块链在资本市场的风口上依然热度不减,已成为当下最热的投资领域。而普通投资者想通过区块链投资赚钱最简单的方式就是投资数字货币,目前投资比特币的主要方法有四种:

    一:比特币挖矿

        “挖矿”是指利用芯片的计算能力(hashpower),在比特币全球网络的区块中不断进行“哈希碰撞”,只要比竞争对手更快求解,就能赢得在公开账簿上的记账权,获得系统奖励的比特币。
        就目前的市场状况来看,“矿工”已经远不比以前吃香。由于比特币诞总供应量仅有2100万枚,随着时间推移,比特币产生数量越来越少,矿工能挖到比特币的几率就越来越小;除此之外,比特币的价格一直在下跌,而挖比特币的成本则高达7000美元,业内分析专家称:如果比特币的价格不能很快恢复到8600美元,比特币矿商继续挖矿是无利可图的。

    二、搬砖套现
       
        简单来说就是从低价格的平台购买,转到高价格的平台卖出,从中赚取差价。对于普通投资者来说,搬砖套现的赚钱方式需要承担较大的风险,首先是平台的风险性,搬砖过程中是否会遇到平台关停服务、跑路等风险;其次是币价波动风险,当比特币价格波动较大,在还未完成搬砖买卖时,可能已经没有差价可赚了。

    三、炒比特币
      
        炒币类似于炒股票,就是典型的高抛低买。投资者在低价时买进,等待价格上涨,根据行情选择卖出,从中获得利润。就当前市场来看,一枚比特币的价格为8400美元左右,而且市场行情极其不稳定,随时都有暴跌的可能,这种炒币方式对于投资者来说,需要的投资成本较高,承担的风险也较大。

    四、比特币趋势交易法

        比特币趋势交易法是国际知名期权平台极速新欧SPEEDXO独家推出的炒币新玩法,这种投资方式只需要判断虚拟币在一段时间内的价格涨跌方向,不需要判断涨幅大小,判断正确即可盈利,而且极速新欧SPEEDXO上的单笔交易成本仅需5美元,交易周期在30秒-5分钟不等,最高收益达到93%,其具有投资周期短、成本低、高收益、风险可控的特点,已经吸引了很多投资者加入。

        比特币作为区块链的第一个原型运用,在区块链成为投资风口之前,就已受投资者的热捧,有的人在炒币中亏了钱,也有了赚了钱。对于普通投资者来说,选择投资成本较小、风险可控的炒币方式,会是一个比较明智的选择。

    展开全文
  • 区块链

    2020-01-19 18:04:09
    区块链 文章目录区块链1. 概述2. 比特币2.1 密码学原理2.1.1 比特币使用的哈希函数的性质2.1.2 签名2.2 数据结构2.2.1 Hash pointer2.2.2 merkle tree2.3 比特币的协议2.4 比特币系统实现2.4.1 UTXO2.4.2 比特币区块...

    区块链

    1. 概述

    有人说,区块链是最慢的数据库,还有人说是新型商业模式,但是并不是这样的,区块链是一个去中心化的账本,比特币采用的是基于交易的账本模式。

    Ps:比特币不等于区块链,比特币只是区块链的一种加密货币。

    比特币的价格走向图:

    描述:2017年是加密货币价格大爆发的一年,从2017年1月开始暴涨,不要觉得现在去了解区块链算晚了,现在还是区块链发展的早期阶段。

    各种加密货币的市场占比:

    描述:一开始一直是比特币一家独大,从2015年某一天出现以太坊后,各种加密货币都能在市场上占据一定定位,本文也主要说明比特币和以太坊两种加密货币。

    课程大纲:

    2. 比特币

    2.1 密码学原理

    比特币主要使用了密码学的两个东西:哈希、签名。

    2.1.1 比特币使用的哈希函数的性质

    抗碰撞性:

    将不同的输入进行哈希后,可能得到相同的结果,这就叫哈希碰撞。

    X ≠ Y,H(X) = H(Y)

    产生的原因是,输入空间大于输出空间,输入空间是无限的,输出空间为 2256

    在哈希碰撞的情况下,我们发现人为去找两个哈希值相同但是信息不同的数据非常难,所以引出一个概念:抗碰撞性,也就是说,我们可以根据信息的hash值来判断信息是否被篡改过。

    PS:常用Hash算法MD5已经被破解了,可以人为制造哈希碰撞。

    Hiding:

    我们将X进行hash后得到H(X),这个时候想以H(X)反推原数据X目前是无法做到的,这就叫hiding。

    X --> H(X),H(X) -//->X

    Puzzle friendly:

    如果想要得到一个固定类型的Hash值,并且从H(X)推算出X大概落在哪个范围,是不现实的,比如想要得到一个前K位为0,后256-K位为字符串的H(X),去估算X大概的范围,是无法做到的,这就保证了我想得到一个比特币,一定是要付出很大工作量去找满足要求的nonce。

    比特币用的Hash函数是:SHA-256(Secure Hash Algorithm)

    2.1.2 签名

    签名要提到一个概念:非对称加密,用户创建账户后,会获得属于他自己的公钥和私钥,并且公钥和私钥是不一样的,公钥是对外公开的,私钥只有用户自己知道,用户在发起交易后,首先会对交易进行hash,hash后使用用户的私钥进行签名其他用户可以使用发起交易用户的公钥对这笔交易进行验证签名,这样就可以保证交易不会被伪造,。每个用户的公钥私钥都不相同,这个是通过使用非常好的随机源保证的,如果出现不同用户拥有相同的公钥私钥,那么就全完了。

    2.2 数据结构

    2.2.1 Hash pointer

    区块链使用的是Hash指针,Hash指针不仅保存了数据的地址,还保存了数据的Hash值,保证数据不被篡改。

    区块链结构图:

    每一个区块含有:自己的数据、上一个区块的Hash指针,Hash指针的Hash值会根据区块的整个内容来进行Hash。这么设计的好处在于可以保护数据不被篡改。当途中红色区块的数据被篡改后,指向它的Hash指针的Hash值就会改变,蝴蝶效应,会导致再下一个区块的Hash值改变…最后导致后面所有的区块的Hash值都会变。

    有两种Hash指针:

    • 连接区块的Hash指针;
    • 记录交易的比特币来源(上一个交易)的Hash指针。

    2.2.2 merkle tree

    merkle tree的结构:

    描述:最下面的是一个个交易,将交易两两组合进行Hash,如果交易数为奇数,会复制一个交易凑成偶数,通过一层层Hash,最后得到一个根Hash值,通过判断根Hash值,就可以保证整个merkle tree的交易不被篡改。

    区块包括区块头和区块体:

    1. 区块头block header包括:
      1. version,比特币协议版本;
      2. hash of previous block header,前一个区块的hash值;
      3. merkle root hash,merkle tree根节点的hash值;
      4. target,挖矿的目标;
      5. nonce,随机字符串。
    2. 区块体block body包括:
      1. transaction list,交易列表

    merkle tree 将区块头和区块体连接起来,交易放在区块体,根Hash值放在区块头。

    比特币的节点分为两类:

    • 轻节点,比如手机的比特币钱包,只包括block header
    • 全节点,包括block headerblock body

    如果轻节点要想要知道特定交易是否已经进入区块链应该怎么做呢?


    步骤

    1. 轻节点向全节点发起请求,从全节点那里拿到途中红色的Hash值;
    2. 轻节点从交易数据块开始,不断的往上Hash;
    3. 将计算得到的根Hash值与轻节点记录的Hash值进行比较,如果相等,就证明交易已经进入区块链,如果不相等,那么交易被篡改,没有真正进入区块链。

    Ps:使用Hash指针的时候,必须是无环的,如果有环,那么环内每个区块的Hash指针会出现循环依赖的情况,每个区块的Hash指针的Hash值都无法求出来。

    2.3 比特币的协议

    共识协议:

    由于每个用户都有机会获得记账的权利,往区块链中加入新的区块,那么出现了以下几个问题,解决这些问题的方法也就是共识协议:

    1. 为什么用户会有记账的欲望?

      因为用户将满足标准的新区块加入区块链后,会获得奖励,在比特币数量区间为[0,21W]时,一个新区块奖励50比特币,比特币数量区间为[21W,42W]时,一个新区块奖励25比特币,如此往复;用户还会从区块中的交易中抽取一部分当做手续费,这样可以保证用户不会仅仅只将自己的交易打包进区块。

    2. 其他用户怎么分辨,新加入的区块的交易有没有被篡改?

      交易流程图:

      交易大致流程:A获得了10个比特币,在一次交易中,A需要给B和C各转账5个比特币,首先,A通过解析B和C的公钥拿到B和C的收款地址,A在交易里写明对B和C个转5个比特币,接着A使用A的私钥对这笔交易进行了签名且将A的10个币的来源信息进行Hash存进交易里。对于B和C来说,通过使用A的公钥进行解密,可以知道这笔钱是A转过来的;对于BC和其他所有用户,通过验证A的10比特币来源信息的Hash值,从区块链中A获得币的区块开始一步步往下验证交易信息,就可以知道A是不是真正有10个比特币,再通过使用A的公钥进行解密去验证交易的签名,就可以知道这笔交易确实是A发起的。

      交易时时刻刻都在发生,只有当交易被打包成区块,收入区块链后,交易才算生效。

      新的交易已经可以保证真实可靠了,那么如果有人想篡改区块链中原有的交易会出现什么问题呢?见2.2.1↑。

    3. 在短时间内,如果同时出现两个用户都添加了新的区块,我们应该选哪一个作为正确的区块?

      在用户不断的记账时,可能发生以下情况:

      图中一个方块代表一个区块,区块上面的A->B表示的是区块的交易中有一则A转账给B的交易,以此来表示区块的不同。我们可以看到,区块链发生了分叉,在一条链中,新的区块为A转账给B,在另一条链中,新的区块为A转账给A‘,我们应该将哪一个区块作为新的区块呢?为了保证区块链的唯一性,采用最长区块链原则,哪一条区块链最长,就使用哪一条作为区块链,旧的分叉的链就直接抛弃,旧链的奖励也会回滚,所以A转账给B的区块所在的链最长,我们将它记账入区块链。

    4. 记账成功的概率和什么因素有关?

      非常明显,受算力影响,因为挖矿的时候,要不断的计算出符合标准的nonce随机字符串,要满足整个区块头的Hash值小于target,所以只要你算的快、运气好,就能比别人先一步添加新的区块。

    2.4 比特币系统实现

    2.4.1 UTXO

    UTXO:Unspent Transaction Output,是所有没有被花掉的交易的输出组成的集合。

    描述:在一个交易中,A转账给B 5个比特币、C 3个比特币,如果B和C都没有将获得的比特币花掉,那么都会进入UTXO集合,但是B花掉了,C没花掉,所以B的记录会从集合中删除,C的记录会保存在集合中。集合中会记录这个交易的Hash值,并且记下C留有3个比特币。

    记录这个UTXO集合的目的是,防止二次转账,比如B将获得的5个比特币转给了D,那么B持有5个比特币的记录就会从UTXO集合删掉,这个时候B再想转给E比特币的时候,会因为UTXO集合里面没有B持有比特币的记录而导致交易失败,就防止了二次转账。

    2.4.2 比特币区块例子

    由于现在挖矿的人很多,难度被调得非常高,所以可能会导致nonce就算遍历完了也没办法找到匹配的,这个时候我们还可以通过改变merkle tree里面的铸币交易中的一个域CoinBase去进行调整,Coinbase可以写入任何的内容,这个域里面的内容是没有啥影响的,但是可以增加挖矿的空间范围。

    2.4.3 比特币交易的例子

    2.4.4 出块时间和概率

    比特币系统设定,每隔10分钟出一个新的区块,每次去计算nonce时,都可以看做是一次伯努利实验(Bernoulli trial),意思就是概率和之前的实验是无关的,就相当于抛硬币,每次正面的概率都是50%。这样设定的目的是为了限制算力高的用户挖到矿的概率,不会太高,使挖到矿的概率绝大部分受算力的影响,极少部分受运气的影响。如果不这样设定,让实验次数影响概率的话,算力高的用户挖到矿的概率会随着时间的进行越来越大,就违背了比特币系统的约束。

    2.4.5 selfish mining

    selfish mining 的意思是指,用户挖到矿以后,不发布,而是接着继续挖矿,最后挖出来的链比现在区块链要长的时候,一次性发布出来,替代区块链中现有的链。这种攻击方式显然是不显示的,因为需要非常高的算力,当一个用户的算力比比特币系统总算力的50%要多的时候,用户可以随意篡改区块链,那么这么牛逼的用户可以利用这个机制干什么呢?在目前现有的链里面M向A付款5个比特币,并且由于写入了区块链,M在现实生活中拿到了A付出的3W美金,但是M呢又自己挖了一个区块,自己挖的区块里面是没有向A付款的,接着M利用自己的算力不断挖矿,挖到比现有的区块链长的时候,M发布所有区块,这个时候区块链回滚,M付给A的5个比特币又回到了M手上,但是M玩起了消失,不将5W美金还给A。

    这么大的算力是不现实的,如果出现了这么大的算力,区块链就木得了,对于M不还钱的线下行为,线上是没办法管理的,但是线上能做一些交易确认的处理。对于一些别的情况,比如在区块链分叉的刚开始,就分了两个区块,不知道选哪一个作为真正的区块的时候,区块链有确认机制保证交易安全–confirmation,当新的区块进入区块链后,会记录confirmation的值,一个新区块confirmation值就加一,直到在这个区块后增加了6个新的区块,confirmation = 6,才能保证这个区块是安全的、不可篡改的。

    2.5 比特币网络

    比特币系统的结构:

    • 比特币的应用层:区块链;
    • 比特币的网络层:P2P覆盖网络,所有节点都是平等的,没有超级节点(Super node/ Master node),节点之间通过种子节点来找到位置,再通过PCP协议进行通信。

    比特币的设计原则是:简单、鲁棒、非高效。

    交易在比特币网络如何发布?

    比特币网络中每个节点都要维护一个等待上链的交易的集合,第一次听到一个合法交易的时候,将这个交易加入等待集合,再将交易随机转发给其他邻近节点,以后再收到同一个交易的时候,就不会再转发了。有可能会出现恶意节点发布双重消费的交易,就是A转账给B,A又将同一笔比特币转账给C,每个节点由于网络的位置不同,可能会收到不同的交易记录,比如D收到了A转账给B的交易,E收到了A转账给C的交易。由于交易还没有被打包上链,那么对于D来说,先收到A转账给B,是合法的,再收到A转账给C就知道是不合法的,就不将A->C的交易记录入D的交易等待集合了;对于E来说,先收到A->C的交易,再收到A->B的交易就认为是不合法的了。如果这个时候新发布了一个区块,区块中记录了A->B的交易,那么D就会将A->B的交易删除,因为已经入链不需要再保存,E会将A->C的交易删除,因为不合法

    区块在比特币网络如何发布?

    和交易的类似,每个节点都要确定区块内的交易是不是合法,并且要判断区块是不是在最长合法链上,越是大的区块在网络上就传输得越慢,所以比特币网络对区块大小做了限制:1M。

    比特币网络中的节点分类:

    1. 全节点;
      • 一直在线;
      • 在本地硬盘上维护完整的区块链信息
      • 在内存里维护UTXO集合,以便快速验证交易的正确性;
      • 监听比特币网络的交易信息,验证每个交易的合法性;
      • 决定哪些交易会被打包在区块里;
      • 监听别的矿工挖出来的区块,验证其合法性;
      • 挖矿,决定沿着哪条链挖下去、分叉时选择分叉。
    2. 轻节点。
      • 不是一直在线;
      • 不需要保存整个区块链,只需要保存每个区块的区块头;
      • 不用保存全部交易,只保存与自己相关的交易;
      • 只能验证与自己相关交易的合法性,其余的交易无法验证;
      • 无法验证新的区块的正确性;
      • 可以验证挖矿难度;
      • 只能检测出最长链,但是不知道哪条是最长合法链。

    2.6 挖矿难度

    挖矿就是不断调整block header里面的nonce值,使整个block header的hash值小于等于目标阈值,比特币使用的hash算法是 SHA-256,产生的hash值是256位,所以整个输出空间是2256

    H(block header) ≤ target

    调整挖矿难度就是调整目标空间在整个输出空间所占比例。

    为什么我们要调整挖矿难度?

    1. 如果不调整挖矿难度,控制出块时间为10分钟的话,随着参与挖矿游戏的用户越来越多,出块的时间就会越来越短,出块时间越来越短就会导致分叉成为常态,甚至可能出现几十个分叉,对于系统达成共识是没有好处的;
    2. 比特币系统是假设大部分算力掌握在诚实的矿工手里的,分叉越多,会导致系统中的诚实矿工的总算力被分散了,如下图,假设A->B的交易后出了6个新块,那么A->B的交易就会被确认,这个时候恶意矿工开始从A->B交易的前一个块开始挖恶意的区块,由于诚实矿工总算力被分去确认原区块链上的最长链了,那么就会导致恶意矿工的算力不需要超过系统的50%,只需要比别的诚实的矿工速度快就可以对系统进行攻击。

    比特币协议中规定,每个2016个区块,就会调整一下目标阈值,大概是每两个星期调一次,难度调节公式: t a r g e t   =   t a r g e t   ×   a c t u a l   t i m e e x p e c t e d   t i m e target\ =\ target\ \times\ \frac{actual\ time}{expected\ time} target = target × expected timeactual time ,注意分母的expectedtime是2016*10分钟,actualtime是产生2016个区块的时间,target越大,出块越容易,target被设定一次最多增加或减少4倍。

    注意:目标阈值不是挖矿难度,目标阈值只是反映了挖矿难度,目标阈值和挖矿难度成反比,挖矿难度的计算公式: n e x t _ d i f f i c u l t y   =   p r e v i o u s _ d i f f i c u l t y   ×   2   w e e k s t i m e   t o   m i n e   l a s t   2016   b l o c k s next\_difficulty\ =\ previous\_difficulty\ \times\ \frac{2\ weeks}{time\ to\ mine\ last\ 2016\ blocks} next_difficulty = previous_difficulty × time to mine last 2016 blocks2 weeks,实际比特币代码里算的是目标阈值。

    2.7 挖矿

    2.7.1 挖矿的设备

    挖矿设备的演化趋势是越来越专业化,从每个人的电脑都使用的CPU挖矿,到后来更适合的GPU挖矿,再到出来一款只能挖矿、专业挖矿的芯片ASIC。为啥要从CPU换成GPU呢,因为使用CPU挖矿,我们电脑上有很多其他资源比如硬盘、一些其他的部件是闲置的,所以划不来,GPU适合通用并行计算,里面有很多负责运算的部件,所以效率比CPU挖矿高很多;从GPU到ASIC是因为,GPU挖矿时,还是有很多部件用不上,比如负责浮点数计算的部件,很适合深度学习计算,但是挖矿用不上;ASIC的产生就是专门为了挖比特币矿的。

    随着挖矿的竞争越来越激烈,ASIC芯片也会不断的更新,会出现更好的矿机打败它,所以购买ASIC矿机的时间也很重要,算力是不断变化的,而且一些提供新型强力矿机的厂商做出来后不会马上交货给矿工,会自己先用着挖矿,等挖了2个月了,再给矿工,导致矿工挖矿的风险很大。

    2.7.2 大型矿池

    由于算力很容易掌握在一少部分人手中,所以单干的矿工获得奖励的几率就更低,风险就更大,大型矿池就成为了趋势。

    矿池就是将一些分散的算力集合起来,为矿主打工,在挖出框后,根据每个矿工的工作量去分配获得的比特币,确定矿工工作量是根据每个矿工提供的接近target的nonce数量确定的,矿主会个每一位矿工分配一个范围的nonce区间,并且在merkle tree的coinBase域的收款参数会填上矿主的收款地址,这使得矿工不可以挖到矿后自己找别的全节点发布,因为收款地址对不上就取不出比特币来。

    矿池的优点:减少了矿工的经济风险,以前没有矿池的时候,矿工可能2年才能挖出一个区块,也可能2年都挖不到,有了矿池后,矿工可能每天都能得到分红。

    矿池的缺点:增加了51%攻击的风险,因为每个矿工都是接受了矿主分配的任务,并且一个机构可能拥有很多个矿池,这使得有一些矿工可能在不知情的情况下去帮矿主干坏事。

    2.8 比特币脚本

    比特币有自己的脚本语言,主要是为了验证交易的真实性,但是也有一些用户用脚本语言去记录一些知识产权等等,想把这些记录加入区块链中。交易的脚本分为两类:input scripts和output scripts,每个交易都有这两个脚本,交易的输入脚本要和上一笔交易的输出脚本匹配,说明交易真实有效,如果不匹配,交易非法无效。

    比特币的脚本语言是基于栈的,也就意味着,脚本中最上面的程序,最晚被执行。

    2.8.1 脚本在哪里呢?

    脚本肯定在交易里,那么我们从交易的结构入手,慢慢往脚本进行推导。

    交易结构:

    交易结构中vin的结构:

    交易结构中vout的结构:

    所以交易的输入和输出脚本就在交易结构里的vin和vout中。

    2.8.2 有几种类型的脚本?

    2.8.2.1 P2PK(Pay to Public Key)

    使用下面的例子,来对P2PK的脚本进行讲解。

    当前交易的输入脚本:

    上一笔交易的输出脚本:

    脚本执行:

    实例:

    2.8.2.2 P2PKH(Pay to Public Key Hash)

    使用下面的例子,来对P2PKH的脚本进行讲解,这个脚本与上面P2PK的脚本相比,在输出脚本里,没有直接给出上一笔交易的收款人的公钥,而是给的公钥的Hash值。

    当前交易的输入脚本:

    上一笔交易的输出脚本:

    脚本执行:

    实例:

    2.8.2.3 P2SH(Pay to Script Hash)

    P2SH主要解决了,当验证交易需要多重签名的时候,付款人在写入output script时由于收款人提供的公钥过多,导致付款人写的很累的问题。

    以前没有用到P2SH的多重签名例子:

    说明:我们发现在input script的第一行有一个false,是历史遗留问题,因为在运行最下面的CHECKMULTISIG的时候,会多出一个对象,所以才多加一个false去抵消。

    脚本执行:

    我们确实能发现,上一个交易的output script里面东西很多,上一笔交易的付款人要将收款人如此多的公钥装进output script里,不同的收款人他们要求的公钥数量也不一样,这就导致每次付款人付款的时候,要根据不同的收款人提供的公钥去写output script,非常麻烦。为了减少付款人的压力,P2SH将这些收款人提供的公钥封装在另外一个脚本(redeemScript)里,并且付款人只要将这个脚本的Hash值放入output script里面就可以了。

    P2SH多重签名的例子:

    所以在验证的时候,P2SH需要验证两步:

    1. 验证赎回脚本的Hash值是否匹配;
    2. 验证赎回脚本的内容是否和input script里面的签名匹配。

    步骤一脚本执行:

    上面的脚本执行完,在堆栈中还剩下:

    所以我们还需要执行步骤二的脚本:

    P2SH的实例:

    2.8.2.3 Proof of Burn

    这是一种特殊的脚本形式,有人在交易的output script里面开头写上一句return,这会导致下一笔交易在验证的时候,拼接input script和out script执行后,碰到output script里面的return就直接返回了,使得验证不通过,这会导致output script里面有return的那些交易中输出的比特币永远无法被花出去,其对应的UTXO里面的数据也可以被删除了。

    使用场景:

    • 一些小的加密币种会要求用户销毁一部分比特币来换取小的加密币,通过使用在output script 里面加return的方法就可以销毁比特币;
    • 一些人使用区块链去记录一些东西,比如知识产权啊之类的,也可以使用这个方法完成。

    那么为啥不用coinbase去做一样的处理呢?是因为coinbase域所在的交易只有获得记账权的全节点才有资格去写,而使用Proof of Burn就可以让随便一个用户完成操作。

    2.9 分叉

    分叉就是指区块链变成了多条链,分叉有下面几种类型:

    1. state fork,自然挖矿产生的分叉;

    2. deliberate fork,人为恶意分叉;

    3. protocol fork,比特币协议发生修改时,由于有一些旧节点更新慢或者不愿意接受更新而造成的分叉,根据协议的不同分为硬分叉(hard fork)和软分叉(soft fork);

      1. 硬分叉,对比特币协议的内容产生分歧后导致永久分叉。比如更新比特币中的区块大小限制,每一个区块容量从1M扩容到4M,大部分节点都更新了,小部分没有更新,对于这小部分不更新的旧节点,会认为那些容量大于1M的新区块是非法的,这就会导致分叉,而旧节点永远不更新,这种分叉就一直会存在。
      2. 软分叉,往比特币协议里面加一些限制导致临时分叉。比如给目前协议中一些没有规定的域增加新的含义,每一个区块的coinbase transaction(铸币交易)中有coinbase域,有人提出将UTXO集合的hash值放在coinbase域的区块才合法,那么占绝大多数的更新了软件的新节点们就只认封装了UTXO集合hash值的区块,而没有更新的小部分旧节点们认为封装UTXO的区块和没有封装的都是合法的,就造成了临时性的软分叉。

      硬分叉软分叉都是由于比特币协议发生了变化导致的。比特币协议改变后,旧节点不认可协议更新后产生的区块,会因为旧节点不更新就永远存在分叉,那么就是硬分叉;如果旧节点认可协议更新后的新区快,新节点只认符合新协议的区块(因为旧节点挖出来的区块不符合新协议),因为大部分算力掌握在新节点手中,旧节点挖出来的区块不会被认可所以会经常被回滚,导致分叉临时存在,那就是软分叉。

    3. 以太坊

    以太坊的内容暂时没看,等需要用到的时候再了解~

    参考资料:

    北京大学肖臻老师《区块链技术与应用》公开课

    展开全文
  • 怎么样加入区块链?个人如何进入区块链? 区块链现在很火,大家进入币圈的目标也相当一致,那就是赚钱!那么个人投资区块链有几种赚钱方式呢?对于这个大家比较关心的问题,业内人士整理了一份普通人加入区块链赚钱的...

      怎么样加入区块链?个人如何进入区块链?

      区块链现在很火,大家进入币圈的目标也相当一致,那就是赚钱!那么个人投资区块链有几种赚钱方式呢?对于这个大家比较关心的问题,业内人士整理了一份普通人加入区块链赚钱的几种方式,给跃跃欲试的小伙伴们提供一份参考:

      1.自己买设备挖矿

      现在有人发明了专门用于挖矿的“矿机”,普通个人想参与挖矿也比较简单了,只要给矿机插上电源和网线就可以开机运行了。不过挖矿也有风险,比特币产量每四年减半,除了矿机,电费,维护等成本外还有计算不稳定,断电等风险,而且矿机运行声音很大,放家里会影响到休息,需要挑选一台算力高、功耗小的“矿机”,然后找个地下室或者仓库挖,综合来说,成本非常高,如果遇上币圈熊市,那最惨的就是矿工了。

      2.参与炒币或囤币

      作为区块链技术最成功的一个项目,虚拟币才是真正适合大多数投资者参与的投资。“买卖虚拟币本身,或许不是每个人都有资本做到;但是去交易如金盛期权推出的虚拟币趋势交易法,5美元的成本还是很多普通投资者都能轻松做到的,而且无论涨跌都能盈利的特性,将投资者获利的可能性提升了数倍。”一位有3年虚拟币投资经验的投资者如是说。

      3.做区块链自媒体

      区块链市场初期,很多人不明白什么是区块链,又想参与进来,必然催生了区块链知识付费市场。目前为止,做区块链的媒体还不多,所以仍有广阔的人口红利。你可以写文章,可以录视频,可以播语音,甚至可以做直播内容也有无限可能:投资心得、项目分析、行业快讯、福利精选、知识科普。

      4.ICO

      ICO(是Initial Coin Offering缩写),首次币发行,本质上是区块链众筹,是区块链创业公司向公众募集资金的一种方式。。有些朋友可能想参与ICO项目,觉得比炒币收益高,就好像原始股上市比二级市场买卖股票强。但目前市场上忽悠的ICO比比皆是,很多白皮书都懒得写就大肆募资,大多空气币、传销币。ICO风险极大,而且在国内被定性为违法,不建议普通投资者参与。

      5.IFO

      IFO(Initial Fork Offerings)首次分叉币发行。它们通过分叉比特币区块链生成新的代币,声称自己能够实现优于比特币的功能,目前也是受到关注得一种方式。

      投资区块链跟股票等高风险的投资一样,成本和风险都较高,需要背负的压力也是一般投资无法相比的,所以在进入币圈之前,大家一定要考虑清楚。

    展开全文
  • 据报道,美国跨国IT企业AMD(Advanced Micro Devices)已经加入区块链游戏联盟(Blockchain Game Alliance),并建立了两个新的合作伙伴关系,以帮助推动区块链技术在行业中的应用。 12月12日的一份新闻稿透露,...
  • 重构区块链

    万次阅读 2019-04-27 09:29:00
    撰写这篇手册,并不简单的因为区块链是一个热门话题,更因为随着研究的深入,你会发现这是一个相当复杂的领域。关于这一话题的信息来源无外乎三个方面:技术文档和代码,商业机构的宣传,研究机构或个人的整理。但是...

    前言

    撰写这篇手册,并不简单的因为区块链是一个热门话题,更因为随着研究的深入,你会发现这是一个相当复杂的领域。关于这一话题的信息来源无外乎三个方面:技术文档和代码,商业机构的宣传,研究机构或个人的整理。但是每一种媒体都因其形式、渠道或作者而带有某种偏见。技术文档固然详细精确,但是不够通俗,视野也不够广阔;商业宣传必定带有一定的偏向性;而看似中立的研究机构和媒体也因其背后资助方或者受众市场的差异而显现出意识形态的不同。区块链领域的技术人员喜欢强调其技术领先性,但偏偏这一领域在学术界还没有一致的评判标准。区块链商业机构流行的白皮书,只有极少数既保留了技术细节,又蕴含对整个体系的理解。媒体和研究机构里则存在一种悖论,那些对区块链理解不够深,但是想象力丰富的人,率先推出了所谓的畅销书,只能让普通人初步理解一些浅层的知识,无法用来灵活运用和价值创造。只有那些深入区块链一线的研究员才会意识到,这个领域还处在高速变化期,很多东西都没有定性,出书立著为时尚早。

    笔者不是最早的区块链研究员,该手册的内容是从2017年中期的研习笔记开始,逐渐积累而来。当时大家对比特币的看法还在交易代币和价值储存间徘徊,手册第二章节会重点探讨这个问题。而近年来对于区块链技术的探索,也从基本的交易协议扩展,到共识机制扩展,和算力的扩展。这就好像同时站在了密码学,社会学,计算机科学的交叉口。这让笔者联想到6年前和时任天猫总裁的张勇(逍遥子)对话时,他提到全中国真正理解“电子商务”的人可能只有10个,因为“电子商务”里包含了“电子”这个不断变化的元素,也包含了“商务”这个需要稳定,需要持久的元素。一年后张勇升任阿里集团首席运营官,如今已是集团CEO。要说到区块链蕴含的元素,一个是相对稳定的技术,一个是非常不稳定的人性。但深层次上,这两者是统一的,手册最后章节会在这里展开。也正是这种不稳定,使本文所述不敢妄称为书。要说和本册子的内容形式最像的,应该就属北大经济学教授汪丁丁的《经济学思想史讲义》。他不是讲具体的经济学,而是讲经济学的思想是如何演化而来的。摘录其中对思想史概念的几个解释:零散的经济思想有别于系统的经济学,经济史不同于经济学思想史,经济学思想史是对经济学核心议题的反省。估计现在很多人都遗忘了经济学的本质,其实是一门研究幸福的科学,在马歇尔的定义里是人类社会和个人的“较好生存”(wellbeing)。那区块链的本质是什么呢?本手册通过对其核心原理的不断拷问,提出的观点是:区块链不论如何称呼,其背后的技术以及发展方向,是自然规律中隐含的一种用于修复人类社会性缺陷的一系列规则设计,最终达到人与人,人与机器的完美协同

    这里所说的社会性缺陷,在很早的社会协作里就已经被深刻的意识到了。现在常说的去中心化的问题,也只是这种社会性缺陷的一种表现形式。严格意义上说,去中心化不一定优于中心化,本质上还是要看社会性缺陷是什么。圣经里“巴别塔”的故事,隐喻着人类的沟通障碍是上帝特意安排来限制人类发展的。而电影“罗生门”进一步阐述了不同的主观观察者,对同一客观事物也会产生认知偏差,就像本文开头所说的,背后受每个观察者动机的影响。甚至有非常极端的思想实验,在一个每个人都能当面阅读对方思想的城市里,一个完全透明的城市,可能比罗生门的世界更加可怕。面对这种无法改变的人性,为了维持人类社会的组织,其实已经设计出了很多的社会制度。这些制度有的偏向中心化,有的偏向去中心化,背后都是在适应不同的社会性缺陷,重建社会的信任。对此已有不少理论研究,但这些设计的出发点,始终是人类管理自己,而区块链可以说是利用宇宙规律来管理自己,是一大进步。这一进步的历程才刚刚开始,很多数学原理被重新评估并运用到这一体系之中,也不失为人类探索基础科学的一大回报。但这一波的进程能够推进多少,是否真的对社会有益,都还不得而知。但至少我们愿意相信,茫茫宇宙中,蕴含着这样的宝藏,等待人类去发现。

    张翔
    2018年5月7日 凌晨

    更新手记:未来预言

    2个月来6万字的初稿底稿基本成型,但里面大量超前的理念和项目一般读者很难快速消化。所以提前总结6大预言以方便读者选读。好比在踢足球时,一味追着球跑是永远追不上的。要提前预判球的走向,才能成功拦截。希望这几大预言能帮助区块链研究人员在大量分叉的技术和应用方案里,梳理头绪。同时每个预言也对应着具体的实现时间,放在这里等多年后回顾评判。

    1. 比特非平衡账本,打破了余额为正数的固有思想。经由本书提出,会在2019年萌芽,2020年深度讨论,2021年成熟和应用,将现有的机械算力升级为金融算力
    2. 大量衍生出来的不成熟共识机制将衰亡,到2019年会收敛到主流的机械化共识算法上,引入大量密码学成果,将人为干预的机会降到最低。矿工社区反过来成为保证去中心化的核心因素,也是市场争夺的重点。
    3. 通用币的饱和带来资产币的繁荣,2019年加密经济将重新定义金融的一、二级市场。数字币在融资市场的渗透率从5%起步,未来5年可能超过20%。
    4. 从链上到链下的协作2018年已经开始萌芽,在2019年解决区块链性能后会爆发。但要等到2020年信用体系完善,实体区块链才能真正走向主流。这时除了矿工提供算力和资源共享以外,社区成员还会普遍参与决策和仲裁
    5. 激励机制成为社区运营的核心玩法,2018年下半年将会有大量项目浮现,2019年饱和。
    6. 存储问题比预想的困难,一直到2019年以前都会以多形态组合机制来实现。期望2019或2020年完整解决这个问题。
    7. 智能化算力在2018年由本书提出概念,2019年会有广泛的讨论,也会有大量质疑。要等到2020年软硬件安全环境的成熟,才会逐渐开放,由合约反过来选择算力和共识机制。

    等到2021年存储问题解决,矿工社区成熟,金融和智能算力解放,会迎来最大的一拨区块链风口。最终打破用户社群的局限,实现真正的全民挖矿。彼时成立于2017~2018年间的公司就是市场的主力,所以作者与合伙人也在这诸多方向中选取了3个立项。在年底书稿完成前,这几个项目会完成发布和初期验证,期待大家检验。

    2018年7月1日 午后

    更新手记:新的假设

    欧几里得大约于公元前300年写成《几何原本》,基于直线,平行线的公理形成了欧式几何。其中的5条公设如下:

    1. 从一点向另一点可以引一条直线。
    2. 任意线段能无限延伸成一条直线。
    3. 给定任意线段,可以以其一个端点作为圆心,该线段作为半径作一个圆。
    4. 所有直角都相等。
    5. 若两条直线都与第三条直线相交,并且在同一边的内角之和小于两个直角,则这两条直线在这一边必定相交。

    几何原本发布以来,数学家们就发现第五公设和前四个公设比较起来,显得文字冗长,而且也不那么显而易见。现在普遍的引申描述为:两条不相交的直线为平行线,而通过直线外一点有且仅有一条直线与该直线平行。有些数学家还注意到欧几里得在《几何原本》一书中直到第29个命题中才用到这第五公设,而且以后再也没有使用。也就是说,在《几何原本》中可以不依靠第五公设而推出前28个命题。因此,一些数学家提出能不能依靠前四个公设来证明第五公设?这就是几何发展史上最著名的,争论了长达两千多年关于“平行线理论”的讨论。由于证明第五公设的问题始终得不到解决,人们逐渐怀疑该公设是否是显然而必要的?

    这类放弃或者修改第五公设而产生的几何统称非欧几何。现在有一条直线和直线外的一个点,以“通过该点可以引最少两条平行线”为新公设就是罗氏几何(双曲几何)。以“一条平行线也不能引”为新公设就是黎曼几何(椭圆几何)。当时有不止一位数学家有这样的想法,其中匈牙利数学家鲍耶·亚诺什在研究非欧几何学的过程中遭到了家庭、社会的冷漠对待。他的父亲——数学家鲍耶·法尔卡什认为研究第五公设是耗费精力劳而无功的蠢事,劝他放弃这种研究。但鲍耶·雅诺什坚持为发展新的几何学而辛勤工作。终于在1832年,在他父亲的一本著作里,以附录的形式发表了研究结果。

    70多年以后的1905年,另一个人对存在了数百年的经典力学提出了疑问。当时人们认为时间和空间是各自独立的绝对存在,这是自伽利略时代以来就建立的绝对时空观。但描述电磁波的麦克斯韦方程组在伽利略变换下有不协变的问题,加上迈克尔孙-莫雷干涉仪实验,已经有人尝试推导一种空间不变的数学变换。但这个人在开始他的推导之前,引入了一个新的假设:真空中的光速在任何参考系下是恒定不变的。这一光速不变公设,加上惯性参考系的平权性,让爱因斯坦打开了狭义相对论的世界。和非欧几何的诞生一样,这一新理论加入了一个反直觉的公设,得出了诡异的结论,所以在初期只有很少人理解并且认可。但实验结果的支持,让这一理论大获成功,人类从此改变了对世界的认识。

    用新公设(公理)开天辟地似乎是不二法门,爱因斯坦尝到了甜头,还想再来第二次!在人们用狭义相对论改造传统物理的协变性时,发现除了万有引力论难以协调以外,其他主要理论都迁移的非常顺利。也就是说在不考虑引力的情形下这种新的物理学具有洛伦兹不变性(狭义相对性原理,又称狭义协变性原理)。为了让任何物理规律都使用与参考系无关的物理量表示出来,整个物理世界跃跃欲试,不就是引力嘛,我们修正他。在大家埋头苦干时,爱因斯坦微微一笑,在一个思想实验中,他打算再一次引入一个新的公设,来迅速解决问题。他想象着,我们习惯认为一个人的体重是引力质量在引力作用下产生的,我们站在地面称体重就可以得到自己的质量。那如果把人放到一个在无重力空间加速飞行的火箭上,人因为惯性产生的“重力”,和引力中的重力,是等效不可区分的。同样不论从哪个参照系测量,物理世界的力学现象也都是等效不可区分的。

    这样我们得到了一个新的惯性参照系,就是在引力下自由落体的空间,这里引力和惯性力相抵消。这让真空中羽毛和小球等速落体的现象变得显而易见,但这并没有让问题变得简单。爱因斯坦从1907年开始了长达八年对引力相对性理论的探索,在历经多次弯路和错误之后,他拍拍脑袋,打算引入第三个公设,给这一问题以致命一击。如果说惯性运动是匀速直线运动,那同时也是时空几何上的最短路径(测地线)。在狭义相对论的4维模型里,是闵可夫斯基时空笔直的“世界线”。但现实物理世界不存在全域惯性系,引力无处不在,也就是只有跟随自由落体粒子一起运动的局部惯性系。这导致世界线彼此相互弯曲,这第三个公设就是,引力场是时空弯曲的体现。在解这个时空弯曲的方程时,近百年前打破第五公设的非欧几何起到了至关重要的作用。最终广义相对论诞生,这一理论的怪异程度大大超过了上一次的狭义相对论。一下引入两个超前的公设,就好像出拳用力过猛,即使积累了一定名声的爱因斯坦也难以驾驭。直到1915年通过广义相对论证明了水星轨道的近日点反常进动现象,和日食光线在太阳引力场中的偏折现象(预测角度是传统理论预测值的2倍),新理论才被广泛接受。

    世界上经历了几代人的锤炼,最终留下来的创世公理(公设)并不多。如果当时有知乎一定会有人问,10年间提出3个全新公设是怎样的体验。在新理论下物理学蓬勃发展,构建在那些久经锤炼的公理支柱上,人类生产力迎来腾飞。路德维希·维特根斯坦也早早下了定论:凡能够说的,都能够说清楚;凡不能谈论的,就应该保持沉默。从此除了在现有框架下做拓展外,很多学者一定不时会拿起小榔头,在这些公设支柱上敲敲打打,看看有没有什么东西松动了掉下来。科学大厦越建越高,而他的根基也越发牢固,希尔伯特提出的23个世纪问题中的第二个,就是公理系统内的命题彼此是否相容无矛盾。在1930年哥德尔不完备定理(Gödel's incompleteness theorems)证明之后,粉碎了希尔伯特的梦想,也粉碎了理论学家的小榔头。旷世骇俗的新公设,也许只有等到我们的观测能力大幅提升,有了全新的实验发现之后吧。

    走出接近完美的数学和物理,还有什么算是能够说清楚的呢?罗纳德·费希尔在他1935年的著作实验设计(The Design of Experiments)一书中,举了一个女士品茶的例子。那是20世纪20年代后期,在英国剑桥一个夏日的午后。一群大学的绅士和他们的夫人们,还有来访者,正围坐在户外的桌旁,享用着下午茶。在品茶过程中,一位女士坚称:把茶加进奶里,或把奶加进茶里,不同的做法,会使茶的味道品起来不同。在场的一帮科学精英们,对这位女士的“胡言乱语”嗤之以鼻。这怎么可能呢?他们不能想象,仅仅因为加茶加奶的先后顺序不同,茶就会发生不同的化学反应。然而,在座的一个身材矮小、戴着厚眼镜、下巴上蓄着短尖髯开始变灰的先生,却不这么看,他对这个问题很感兴趣。 他兴奋地说道:“让我们来检验这个命题吧!” 并开始策划一个实验。在实验中,坚持茶有不同味道的那位女士被奉上一连串已经调制好的茶,其中,有的是先加茶后加奶制成的,有的则是先加奶后加茶制成的。

    有的读者可能觉得,这和传统的物理化学实验并没有不同,只要确定每次预言正确,就可以得出结论。但要知道,参与实验的是人,人的行为并不像物理世界那样一成不变。这位女士即使瞎猜,在第一杯也有50%的概率猜对,到第二杯连续猜对的概率为25%,第三杯12.5%...以此类推。那到底要猜对几杯,我们才敢断定这位女士真的可以品出不同顺序调制的奶茶来?这是一个不那么容易说清楚的事,是一个开放性问题而不是简单的确定性假设。后来这种不确定性也写进了以严谨著称的物理学,在量子力学里,上帝玩起了筛子。

    今天我们不打算敲打那些恒久的公设,我们只想问这么一个问题,如果去掉所有信息系统中的中心管理节点,还能否继续维持这个系统的运作?如果能运行的话,执行效率如何?这个问题的答案,就是我们今天要讨论的去中心化高效分布式系统。区块链作为最早一块拼图,让我们暂且沿用他的名字,将这套体系称为狭义区块链。去中心的不光是信息系统,其实我们看整个物理世界,就是由公式和计算组成的。这么多的粒子,在相同的时空里,完全遵守统一的规律,一刻不差。如果要模拟这样的世界,那需要的计算量人类恐怕永远无法完成。这么一个近乎完美的世界,是不是也算一种去中心化高效分布式系统的实例?目前这套狭义区块链还在发展和证明自己,距离高效还差很远。期间和人类社会金融系统的摩擦不断,掀起的融资狂潮和价格崩盘一样频繁。为了修正这个问题,已经有很多的努力,而我们打算引入一个非常危险的假设:区块链账本的余额可以为负。这一改变带来的一连串问题,会大大超过本书的范围,所以我们暂且称之为广义的区块链模型,留待后续去挖掘其内涵。但设想一下暗物质的存在,宇宙的诞生可能就是因为借了一点点能量,带来的一次非平衡波动。

    2018年8月27日 午后

    信任的来源

    社会需要信任,区块链修复信任,但信任到底是什么?当每天早上我们睁开眼睛,如何知道我们还身处同一时空?如何确信今天的太阳会升起,而且还是昨天那个太阳?每次和家人相见,如何知道对面的就是你的亲人?看似习以为常的东西,在我们反复叩问下,展现出其异常神奇的一面。我们可以先下一个简单的定义:信任是对于事物连续性预判的把握程度。在这个定义下,信任首先不是有无的问题,是程度的问题。科学带来了多次的工业革命,其背后就是因为对事物预判性的把握程度达到了前所未有的精度。牛顿力学带来了我们对简单机械的信任,电学用信任取代了最初对电的恐惧,相对论和量子力学让我们有勇气去探索更大的宇宙空间,也能够从最小的粒子中获取能量。但是决定论在量子理论和混沌理论中遇到了极大的阻碍,这预示着“对于事物连续性预判的把握程度”可能是有上限的,而这就是信任的极限。在信任的上限和下限之间,充满了各种人类社会的信任问题。

    在对社会学信任进行展开之前,我们还需要翻开信任这枚硬币的另外一面:事物本身的可预判性是固定的,而信任的差异源于主体对信任对象的认知。人类是认知能力最强的生命体,也是唯一系统性发现和利用宇宙规律的生命体。刚性物体的力学性质最简单,也最容易认知理解;生物的化学性质较复杂,要基于大量现代化的观测手段才能认识其中的规律。所以认知能力受到信息获取手段的制约,幸好计算机科学的发展,使我们拥有了处理海量信息的能力。但是在人工智能领域,数百万乃至上亿节点的神经网络模型虽然能够提供很好的预测能力,但我们对其原理仍一知半解。所以认知能力也受到理解力的制约。回到社会学的信任问题上,在简单的测谎实验里,有靠机器进行大量数据采集分析获得的测谎结论,也有专业人员依靠观察和直觉判断的结论。但不论是基于信息的还是基于理解力的,都只能达到非常浅层的连续性预判,也就是信任。理想情况下,如果我们能够知晓对方所有的思维,而且掌握了完备的博弈理论,那么在这种信息完备,且完全理性人的假设下,可以建立完美的信任社会。但很遗憾上述两个假设都不成立,所以社会学里的信任是需要刚性制度去约束的,也就是契约。

    我们逛超市,完成每一次看似轻松的交易,我们和商家的信用,如果没有契约的约束,将是及其脆弱的。但参与这个简单交易的信任元素其实非常多:商品生产厂商的品质,质检部门的尽职,物流的可靠,货品信息和标价的完整,收银结算的透明,异常问题的反馈等等等等。针对如此多的约束条件去设计契约是非常困难的,我们需要更加巧妙的方法:对于社会群体的信任源于经济学原理。以最简单的收银机举例,如果开发收银机软件的程序员埋了一个隐藏的后门用以窃取客户的付款资金,那么他有两种选择:开发通用的后门大量窃取资金,或者开发针对性的后门只在特定情况下窃取特定用户的小量资金。第一种情况下,开发成本相对较低,但是金额大非常容易被发现。第二种情况下,开发成本很高,收入反而降低,需要很长的时间在运气足够好没有被发现的情况下才能获利。所以最终这个程序员放弃了这个计划,在法律缺失的一些角落里,经济规律仍然起着作用。区块链最基本的作用就是解决了社群协作的信用问题,而我们对于区块链的信任,一方面基于对密码学和计算机代码的认知,另一方面也基于其按经济规律设计的契约规则。

    信任的区块链演化

    如果说区块链承载了信任和交易,那么我们也不能忘了硬币的反面,也就是恶意。通过善意和恶意的不断碰撞,我们才能充分理解区块链如何解决交易信任的问题。从世界上只有两个人的时候说起,在丛林法则里,是面对面的恶意。这时的博弈场景正好满足囚徒困境的条件,假装合作,然后侵吞对方会带来最大收益。但当双方都意识到对方的策略,采取规避态度时,合作的可能也消失了。直到环境的压迫足够大,任何一方都无法独立生存的时候,经济动力使合作与信任再次成为可能。合作的久了,人类产生情感,这为更大范围的合作信任建立基础。

    比特岛的故事

    我们暂且把这个合作的温床比喻为一个小岛,叫做比特岛。这里有两个人“阿稳”,和“阿北”。他们每个人都掌握一定的生成技能,需要交易合作才能生存。而且聪明的两个人已经约定使用贝壳作为记账工具来记录和换算两个人的资源交易。一开始他们住岛的东面,生活在一起。因为所有交易对双方都是透明的,所以在交换贝壳和物资的时候,双方都会对数量进行确认,一旦出现误差,可以回退到交易前的状态重头开始。这就是区块链的隐形基础,网络通信协议。这个通信层作为整个互联网的基础,就像空气一样,大家已经习以为常了。

    经过了1个多月,阿稳和阿北积累了足够的物资,打算出门,分头去探索比特岛的其他区域。阿稳往南走,阿北往北走。我们把时间拨快,一年后,阿稳盘踞在岛的南面,阿北占据岛的北面。他们发明了可以远程通讯的工具,但是双方的相互猜疑让两个人不敢见面。他们殖民了岛上的原住民,让他们传递货物。阿稳尝试给原住民1个贝壳,让他去阿北那边换1个香蕉。可过了很久都没收到,两人通讯后发现原住民拿贝壳跑了。阿稳思考后换了一种策略,他打造了一个保险箱,把贝壳放在里面锁上,交给原住民A,传递给阿北。等A走后再把钥匙交给另一个原住民B,传给阿北。阿北拿齐保险箱和钥匙之后,打开箱子,取出贝壳,放进香蕉。再用同样的方式分批传递给阿稳。两个人用这样的方式,成功进行了几次交易。

    但是好景不长,某天传递保险箱的原住民A和传递钥匙的B相遇了,他们很快发现钥匙的使用方法,联手把贝壳拿走了。阿稳并不气馁,他把制作保险箱的方法教给了阿北,他们每个人都做了10个自己的保险箱。双方保留自己的钥匙,但把空箱子通过原住民传到了对方手中。这一次阿稳把贝壳放进阿北制作的箱子里锁上,找原住民直接交给阿北。因为箱子是阿北制作的,钥匙只有阿北自己拥有,所以原住民没办法窃取箱子里的物资。他们俩的这种方法成功使用了很长时间。在区块链里,这种钥匙和锁的错配,就是非对称加密。比特币的收款地址就好像这把公开的锁,比特币支付到了这个账户,就是被这把锁锁上。只有地址所有人能够花这笔钱,因为私钥密码,也就是钥匙只有地址所有人知道。而这把锁和钥匙的生产我们稍后介绍。

    原住民每天传递着无法打开的箱子,非常懊恼。有一天终于怒气爆发,把阿稳刚交给他的箱子直接扔进了海里。阿稳换了其他原住民又试了几次,还是被扔进海里。这样下去,贝壳总有一天要被耗光。所以阿稳提出了一个大胆的提议:放弃贝壳,直接用纸条来记账。双方先约定初始账户皆为0,阿稳要向阿北买香蕉,就在纸条上写:

    阿稳支付给阿北1元,阿稳账户余额-1,阿北账户余额为 1

    纸条的成本是低廉的,所以阿稳写了很多重复的纸条,交给了所有能找到的原住民。其中还真有一些单纯而空闲的原住民,把纸条交到了阿北手上。阿北收到第一张纸条,验证了收款1元后余额计算无误。阿北收到第二张纸条,计算如果再收款1元,自己的余额应该为2,所以第二组纸条不正确,直接作废。如此看完所有纸条后,他确定阿稳支付了自己1元钱,于是对应的把香蕉放进盒子里寄给了阿稳。如此一来,原来单线的货币贸易,变成了并行式的账本系统,这就是区块链里所谓分布式账本的起源。到这里为止都没有出现任何代币,因为交易的本质是账本,而货币只是纸质不记名账务的一个便携表现形式。另外那个箱子里的香蕉如何保证不会被扔进海里呢?这个问题在后面“从移动比特到移动原子”的章节单独讨论。

    如此有效的交易协议,也没有坚持太久。某天原住民突然发现,自己可以轻易的伪造交易。他们打造了自己的箱子和钥匙,自己写了纸条:

    阿稳支付给阿北1元,阿稳账户余额-3,阿北账户余额为3

    阿北看到纸条,如约把香蕉放进了原住民的盒子里,而原住民顺利的用自己的钥匙取出了花阿稳的钱骗来的香蕉。阿稳得知后非常恼火,要求勾销这笔交易。但是阿北的香蕉已经消费了,所以无法撤回。阿稳苦想了很久,设计了一种透明的盒子,里面每张纸条都用自己特殊的笔迹进行签名,并把这个方法同步给阿北。从此阿北只有确认这个签名是阿稳的,才会接受那张纸条的交易信息。这就是比特里使用的椭圆函数签名。阿北很感谢阿稳的发明,决定把被盗的1元还给阿稳。当阿北向阿稳支付的时候,他只要用自己的钥匙打开这个盒子,在上一次账单下叠加新的支付请求,并签上自己的名字,用阿稳的保险箱锁住即可。保险起见,我们再在账本里加上时间戳,并且尽可能多的复制和广播这个账本。

    2018年5月1日 17:30:00 阿稳支付给阿北1元,阿稳账户余额-3,阿北账户余额为3 ;
    2018年5月2日 13:50:00 阿北支付给阿稳1元,阿稳账户余额-2,阿北账户余额为2 ;

    到此为止,比特岛上阿稳和阿北发明的这种交易记账法,可以说是比特币协议的变形,我们暂时称其为“透明保险箱签名记账余额开放协议”。其中“余额开放”的意思是不强制账户平仓,这个问题在下一个大章节再深入讨论。回顾设计期间每次的规则修改,都是为了避免恶意中间人的攻击。最终结果是一套不受中间人意志影响的可信任的交易规则,保证付过来的就是我的,而且只有我能花。但是其中承诺的锁和钥匙不被破解的配对关系,以及无法被伪造的签名,要如何让人信服呢?这里就需要召唤数学家出马了,只有上述元素被充分证明,且用户充分的理解和认知,我们才敢说区块链保证的交易信任是优于目前的三方交易体系的。因为最开头我们定义了,信任是对事物连续性预判的把握。而基于数学的预判精度,远高于对人类行为的预判。但现在这个版本,仍然有缺陷,后面我们还会不断扩充优化这个协议,以进一步提高其可预测性。

    区块链中的数学

    中国文化重文采,历史故事写的美妙。近代几次寻求文化属性的突破,但时有回潮。西方文化在跨越宗教限制之后,走向了辩证和唯物,追求真理。我们的比特岛看上去是一个美好的世界,但上述可信的交易记账协议里,留了两个数学问题等待我们解决。但这两个数学问题的证明及其复杂,无法用美妙的文字来描述,仅仅是使用这两个原理都不是一般人能够做到的。那我们可以相信这些我们无法理解的科学吗?每一块组成比特岛的砖石,都曾经历百年的风化和打磨,才最终固化为现在的模样。正如科学一样,人类所有持久有效的创造,几乎都和科学有关。而在科学之中,最不容辩驳的就是数学。你看社交网络上大家对一些热点事件七嘴八舌,甚至法庭判案他们都能插上一嘴。但当我抛出一个数学问题时,只闻鸦雀无声。为了向大家解释区块链信任的数学基础,我会用一个章节的篇幅去推演,对于数学不感兴趣的读者可以跳过,只管相信就行。

    费马大定理

    这是一个困扰数学界300多年的问题,由“业余数学家”费马提出。他出生在17世纪初的法国,职业生涯本和数学无关,是图卢兹议院的顾问,就是一名政府文官。当时正好在红衣主教黎塞留(Richelieu)晋升为法国首相3年后,政府机构里充斥着阴谋和诡计。费马显然对这些人世间的问题不感兴趣,他有效的履行自己分内的职责,不站边,也尽量不把人们的注意力引向自己。在避开了议会混战的同时,将自己余下的精力都奉献给了数学,被埃里克·贝尔(Eric Temple Bell)称为“业余数学家之王”。但朱利安·库利奇(Julian Coolidge)不这么认为,在写作《业余大数学家的数学》一书时将其排除在外,因为“他那么杰出,他应该算作专业数学家”。要知道当时数学还在从欧洲中世纪的黑暗中逐渐恢复,不是很受重视的学科。

    巴黎数学家们有个守口如瓶的奇怪传统,这是从16世纪cossists沿袭下来的。cossists是指精通各种计算的专家,受雇于商人和实业家,以解决复杂的会计问题。所以出于利益考虑,这个时代的专业解题者都努力创造他们自己的聪明方法来进行计算,并且尽可能的保密。唯一例外的是梅森尼神父,他试图鼓励数学家们相互交换自己的思想,以相互促进。他作为唯一与费马定期接触的数学家,一直鼓励费马将他的研究公布。但费马不为所动,公开发表和被人们认可对他来说没有任何意义,他以创造和发现新的未被他人触及的定理为乐。他甚至在与友人的通信里不时挑逗,描述他最新的定理但不提供任何相应的证明。这种习惯让人咬牙切齿,但费马的贡献如此之大,大家前赴后继的追求他定理的证明。甚至在普遍认为是微积分发明者牛顿的一个注记里也写到,他是在“费马先生的画切线法”基础上发展了他的微积分。

    费马留下的遗产被后人反复研习,他那些刻意隐藏证明的定理,终于被后人一一验证。这一次激发他灵感的是亚历山大的巨著《算数》,其中求等式有理数解的丢番图方程引起了他的注意。在《算术》第二卷中,描述了毕达哥拉斯定理和毕达哥拉斯三元组。这个定理其实就是勾股定理,古代中国早在公元前一千多年就已有论述。毕达哥拉斯对勾股定理的证明方法和三国时期的赵爽一样。但费马关心的是这个问题的扩展,既然二次方等式能够成立,那么三次方,以及更高次幂的勾股方程能有整数解吗? $$ x^2 + y^2 = z^2 $$ $$ x^3 + y^3 = z^3 $$ $$ x^n + y^n = z^n $$

    挑逗的费马在研究完这个问题以后,老毛病又犯了,在书的页边处记下了他的结论:

    不可能将一个立方数写成两个立方数之和,或者将一个4次幂写成两个4次幂之和,或者总的来说,不可能将一个高于2次的幂写成两个同样次幂的和。我有一个对这个命题的十分美妙的证明,这里空白太小,写不下。

    在费马恶作剧般的其他定理早被验证完毕的百年后,唯独这一个看似非常简单明了的定理,无人能证。从此我们将这个问题称为费马大定理。而这一切看上去都只是中学数学而已,也确实对4次幂的证明在费马手稿中透露了些许线索,很快得征。但为了证明3次幂,我们已等了百年。直到18世纪的天才欧拉,通过引入虚数的概念,再结合4次幂类似的套路,完成了证明。而这也只是漫漫长路上的一小步,人们不断攻破各种非质数的情况,但余下需要证明的数量还是无穷。一直等到新世纪的数学进入抽象,我们才迎来曙光。这里第一个难啃的概念叫椭圆函数。

    椭圆函数与丢番图

    科学本身有一种很友善的性质:问题可以被清晰的描述,而结论可以相对容易的验证。费马大定理是否定式定理,所以穷举验证起来很费力。但我们换一个有解且容易验证的丢番图谜题,号称史上最贱的数学题为例,来告诉大家,再难以理解的数学,其可靠性是相对容易验证的。这道题及其解答来源于Quora问答网站,并由知乎网友授权翻译。

    题目是如下这张图片,第一眼看到的时候,你绝对会以为这又是什么脑筋急转弯的趣味问题。在我们开始枯燥的数学之前提醒读者,只要你看明白了问题,而对于证明过程不敢兴趣,那可以直接跳到结尾去验证我们的结论。当然想挑战这个趣味“脑筋急转弯”的朋友也可以跟着我们一步步的进行数学求解。这就是科学善解人意的地方。
    difficult math

    用a,b,c替换苹果,香蕉和菠萝,我们可以很快得到题目的数学描述,就是解下面的3元方程:
    $$ \frac{a}{b+c} + \frac{b}{a+c} + \frac{c}{a+b} =4 $$

    等式两边相乘去分母后可以发现是三元三次方程,这里似乎已经有些不详的预感:
    $$ a^3 + b^3 + c^3 - 3(a^2b + ab^2 + a^2c + ac^2 + b^2c + bc^2)- 5abc = 0 $$

    多项式方程很容易找到某个特解,比如说, a=−1 ,b=1, c=0。但这些解还要带回原方程以确认分母不为零。
    这意味着我们的立体方程(3维)实际上是个椭圆曲线
    但这里不是大家熟悉的圆锥曲线中的椭圆,而是复域上亏格为1的光滑射影曲线,好像一个甜甜圈。
    对于特征不等于2的域,它的仿射方程可以写成:
    $$ y^2=x^3+ax^2+bx+c $$

    这个复数域上亏格为1的黎曼面,被Mordell证明其有理点是有限生成交换群(有限域),这是著名的BSD猜想(世界7大难题)的前提条件,所以我们就不在这里费劲的解释细节了。大家唯一需要紧记的是,方程整数解也组成一个有限域,通过其中任意一个解,可以推算出其他的整数解。所以现在我们需要把原方程给椭圆曲线化,变成所谓魏尔斯特拉斯(Weierstrass)形式。这是一个长得像这样的等式:
    $$ y^2=x^3+ax+b $$

    即使你不知道如何完成变换,验证它是很容易的,或者说至少是机械的。对于我们而言,需要的变换由令人生畏的公式导出。
    $$ x=\frac{-28(a+b+2c)}{6a+6b-c} $$ $$ y=\frac{364(a-b)}{6a+6b-c} $$

    得到的这个方程尽管看起来和原方程长得不怎么像,但确是如假包换的可靠模型
    $$ y^2=x^3+109x^2+224x $$

    在实数域的坐标上它长成这样,一条有着两个实部的经典椭圆曲线,右边的“鱼尾”连续延伸至正负无穷。左边的封闭椭圆曲线将成为解决问题的契机。:
    oval plot

    我们略过一些内容,直接找到一个很好的有理数点x=−100, y=260,通过下面的等式还原对应的a,b,c
    $$ a=\frac{56-x+y}{56-14x} $$ $$ b=\frac{56-x-y}{56-14x} $$ $$ c=\frac{-28-6x}{28-7x} $$

    得到的a,b,c乘以公分母14,就变形为 a=4,b=−1,c=11。带入原方程,验证确实等式结果为4。只可惜这个解有一个负数,不满足题目的条件。但至少我们验证了上述的变换是成立的。
    $$ \frac{4}{-1+11}-\frac{1}{4+11}+\frac{11}{4-1} = 4 $$

    现在一旦你在椭圆曲线上找到了有理数点,就可以利用弦切技巧进行加法,生成其它的有理数点(有理数的加法是封闭的,有理数加有理数还是有理数)。这种加法需要用到近世代数中阿贝尔群,是一种满足满足二元运算定律的代数结构,我们姑且叫做椭圆曲线加法。经过相同点做切线,不同点做连线,取交点的垂足镜像,形成“有限加法循环群”,就能逐一找到方程的解。
    oval plus

    一开始,我们可以通过作P点(x=−100, y=260)的切线,找到它和曲线再次相交的点,以此增加P点的值。结果开始变得有点吓人
    $$ P+P=2P=( \frac{8836}{25},\frac{-950716}{125}) $$

    这个新的点也对应一组a,b,c的值 (a,b,c)=(9499,−8784,5165),很遗憾这组解也有负数。

    我们继续计算3P=2P+P,计算4P,5P等等等等,直到我们计算到9P,对应的a, b, c的值就非常恐怖了

    a=154476802108746166441951315019919837485664325669565431700026634898253202035277999,  
    b=36875131794129999827197811565225474825492979968971970996283137471637224634055579,  
    c=4373612677928697257861252602371390152816537558161613618621437993378423467772036
    

    终于这里没有负数,而且经过很简单的计算机验证,确实满足求和为4的方程。这就是这道题的答案,一个80位数的答案,显然是不可能通过瞎蒙或者暴力手段去破解的。你不一定看得懂过程,但是可以简单的验证答案,那么就姑且相信科学是对的吧。

    诡计或真理

    椭圆函数只是费马大定理破解之路的一个途经点,最终在成千上万的途经点里,要保证不迷路,不算错,没有漏洞,可以说是人类史上最大的挑战。为此法国科学院设立了一系列的奖项,包括金质奖章和3000法郎奖金,以奖励能最终揭开费马大定理神秘面纱的数学家。在奖金和声望的诱惑下,诡计和真理在搏斗。巴黎的沙龙里充斥着关于某某正在采用某种策略尝试解题,以及距离宣布结果还有多久等等传闻。就好像区块链最火爆的2017、2018两年,业界大量的企业家和研究员投身该领域,每天都有人宣布自己发明了某种更加高效的共识算法,或者上线了某个区块链项目,以及某某加密币涨势喜人等等。每周都有大量区块链聚会,每月有小型发布会,每年在全球各地争相邀请富有声望的专家和明星项目同台论道。那时法国数学界也一样,在1847年3月1日,科学院举行了极富戏剧性的会议。

    首先上台的是曾经证明费马大定理在n=7时成立的数学家加布里尔·拉梅(Gabriel Lamé),面对台下当时最卓越的数学家们,他宣布自己差不多已经证明费马大定理了。虽然当前证明还不完整,但是他概述了他的方法,并预言几星期后发表。全体听众都愣住了,但是拉梅一离开讲台,另外一位巴黎最优秀的数学家奥古斯丁·路易斯·柯西(Augustin Louis Cauchy)也请求发言。他宣布自己在用拉梅类似的方法进行研究,并且很快也将完成。柯西和拉梅都意识到时间的重要性,谁先提交完整的证明,谁将获得一切,而晚来的那个人,将一无所获。仅仅过去3个星期,双方各自发布声明,宣传已将完整证明盖章封印,存放在科学院内。

    有了封印的时间作证,整个4月,柯西和拉梅都在不间断的透露这个证明的细节,但却又保持着一份神秘,亦或是某种不安。要知道费马的这个谜题如此简洁,但证明却如此困难,能够理解和跟上这两位领跑者的人并不多。在数学的巅峰是孤独,不像区块链将简单的交易交给全世界去论证,能够胜任前沿数学校验的人屈指可数。这一次站出来的是德国数学家恩斯特·库默尔(Ernst Kummer),这位最高级的数论家对法国科学院发生的事件一清二楚。从柯西和拉梅透露出的少量细节里,看出这两个人在走向同一条逻辑的死胡同。两个人的证明里依赖“唯一因子分解”这个性质,对于给定任意数,都只有一种可能的质数因子组合。因为质数本身无法继续拆分,所以当因子分解到最后,剩下全都是质数的时候,显然具有唯一性。这一性质如此明显,历年来并未受到质疑。但是前面提到,在解决费马大定理n=3的情况时,欧拉引入了虚数。

    以12为例,在实数域上,可以分解为2 x 2 x 3。但在虚数域里,还可以分解为如下形式: $$ 12 = (1+ \sqrt{-11}) \times (1-\sqrt{-11}) $$ 虚数的引入,使得因子分解不唯一。这一瑕疵在小于31的质数可以避免,但是在例如n=37,59,67这种非规则质数下,无法完成证明,所以费马大定理没有完全解决。库默尔的发现对拉梅是极大的打击,他也意识到如果将自己的工作更为公开一些,或许就会更早发现这样的错误。但柯西拒绝失败,他认为自己的方法对唯一因子分解依赖较少,还可以挽救。随后几个星期他还在坚持研究和发表。但夏季接近尾声,秋风将摇曳的树叶吹落,柯西也变得安静了。那两份盖章封印的证明再也无需打开,柯西在1857年撰写了这场科学院关于费马大定理奖项的最终报告,通往证明的道路仍然停留在库默尔指出的那个问题下。很多人觉得在当下数学知识框架内,费马大定理恐怕无法解决。这是数学史上暗淡的一页,委员们建议撤销对费马大定理的竞赛,而将奖励颁给库默尔先生。

    也许只有在数学的领域,进攻并不总是获得奖励的那一方。每一扇数学大门的背后,都有一代代坚韧的守门人把守。他们的贡献值得获得最高荣誉的奖励。在他们严谨而睿智的审视下,数学大厦越建越高。经过了椭圆函数与模形式,经过了谷山-志村定理,在20世纪数学的虚拟世界里,英国数学家安德鲁·怀尔斯(Andrew John Wiles)通过7年的孤独探索,最终宣布找到了那个困扰300多年的证明。这份200页的证明摆在最后一代守门人面前。考虑到这个证明的重要性,这次的审稿人不是通常的2~3位,而是6位。其中第三章由尼克·凯兹(Nicholas Michael Katz)负责。考虑到这一章节有70页长,占全部证明的2/3,所以在他坚持下,邀请到当时也在巴黎的吕克·伊卢齐(Luc Illusie)作为合作审稿人。两人日复一日,逐行检验着论文。通过和作者怀尔斯的不断交流互动,他们解决了一个又一个描述不明确的小毛病,最后在又一个“小毛病”上停了下来。但这一次看来遇到了真正的麻烦,怀尔斯不得不再一次把自己关起来,重新上路寻找修复的方法。这时外界充满了各种猜想,人们担心1847年夏天的那个暗夜再次降临。

    所幸怀尔斯7年的积累没有白费,最后的灵感闪现,让他如释重负。在全世界的目光下,数学巅峰的钥匙失而复得,其中的感动难以言表。那篇修正后的论文缩减到130页,手稿名为《模椭圆曲线和费马大定理》,是历史上核查最彻底的数学稿件。数学大厦就这样在天才的进攻者和睿智守门人的合作下,提高了一层。复建在数学大厦上的物理,工程等等应用学科依然牢固。这种牢固,其实也脆弱,因为最前沿的科学,依赖的不过那几位守门人。一方面依赖他们的技能,另一方面依赖他们的品德。不论技能还是品德,都不是天生的,可以说这样的守门人,必须由社会环境培养而来。伟大的教育,使社会追求真理,顶尖的名校,让大家相信真理。社会道德的堕落最多让生活徒增艰辛,而知识道德的堕落,让科技大厦崩塌。

    我们身边有很多能言会道的意见领袖,针砭时弊的秒文精彩叫绝。但当你和数学家说话的时候,会觉得别扭。每次被提问,他们都会先停顿一下,停顿的长度让你觉得他们睡着了。当他们再开始说话时,听起来却都井井有条。因为在面对每一个问题时,数学家都会在庞大的逻辑空间里反复求证,最后才得出一个他们认为最精确的文字表达。显然在使用文字和数学符号之间,他们觉得后者更加严谨。还是那个苏格兰黑羊的经典笑话,我们稍加改编:

    有一个公知,一个物理学家、一个天文学家和数学家走在苏格兰高原上,碰巧看到一只黑色的羊。“啊” 天文学家说道:“原来苏格兰的羊是黑色的。” 物理学家不满意,“得了吧,仅凭一次观察你可不能这么说。你只能说在苏格兰有一只黑色的羊” 。“也不对” 数学家补充道,“只能说在这一时刻,这只羊,从我们观察的角度看过去,有一侧表面上是黑色的。” 这时公知咳了一下说到:“看来现在学生们的学习压力太大,学校招生考试也越来越难,尽出一些刁钻的题目。家长都不会,搞得同学们各个钻进了牛角尖。”

    众人走过以后,艾德蒙·兰道的灵魂按奈不住,喃喃自语道,你们怎么知道那个黑色的东西,真的是一只羊?原来很久以前有人问埃米·诺特(Emmy Noether)的同事艾德蒙·兰道(Edmund Landau),诺特是否真的是一个伟大的女数学家?他回答说:“我可以作证她是一个伟大的数学家,但是对她是一个女人这一点,我不能发誓。”

    现代密码学

    从二战时期德国的英格玛密码机开始,现代加密手段不断加强,在通讯和计算机领域得到广泛应用。不管方法如何,设计方向都是寻找一种单向的计算,加密非常容易,而解密的逆运算格外艰难。只有在掌握了某种关键信息的时候,才能快速解读。我们用两个大质数相乘就可以简单构造这样一种系统:

    p=12026655772210679470465581609002525329245773732132014742758935511187863487919026457076252932048619706498126046597130520643092209728783224795661331197604583
    q=8002511426596424351829267099531651390448054153452321185350746845306277585856673898048740413439442356860630765545600353049345324913056448174487017235828857
    p*q = N
    

    这里已知p和q,计算N非常容易,但已知N,要做质因素分解则相对困难。而给你N和其中一个因子p,你计算q又变得非常容易。这就是我们要的性质,经过更加强化的构造,就是RSA密码系统的基础。该类方法我们统称为非对称加密,在通信前,需要双方在各自系统里生成自己的私钥和公钥,公钥公开给对方,用来传信,私钥自己保留,用来读信。整个环节除了质数乘法外,显然还依赖一种随机数生成规则,正是这个规则埋下了软件后门的隐患。

    RSA Security是由RSA算法的发明者Ron Rivest, Adi Shamir和Len Adleman在1982年创立,作为互联网通讯的基础运行在大量计算机上。后来该公司在2006年以21亿美元的价格被EMC公司收购。但据NSA前通讯员斯诺登所提供的机密文件显示,NSA跟RSA达成了一份价值1000万美元的合同,前者通过在后者的加密软件中植入一个缺陷公式,为自己留了一道“后门”。据悉RSA存有缺陷公式的软件叫做Bsafe,而该缺陷公式的名字为Dual Elliptic Curve,函数方法是DUAL_EC_DRBG,意为双椭圆曲线确定性随机数发生器。没错,这里的椭圆函数,就是史上最贱数学题里的椭圆函数,也是费马大定理里涉及的椭圆函数,更是后来区块链加密币里常用的椭圆曲线。它由NSA开发而出,自2004年起就开始在RSA的软件中使用这一缺陷公式,并受到大量密码学家们的批评。看到这里相信大家都忍不住呼唤库默尔、凯兹那些正直的数学守门人。不论听上去多美妙的理论,在魔鬼的诡计里,都是通往地狱的暗道。索性10多年后NSA带着悔恨放弃了这个后门。

    但密码学从不停步,椭圆曲线本是连续的,并不适合用于加密,所以必须把椭圆曲线变成离散的点。我们把椭圆曲线定义在有限域上,先给出一个有限域Fp。Fp中有p(p为质数)个元素0,1,2,…, p-2,p-1,其加减乘除的定义是对P取模,也就是结果除以P取余数,以控制数值在有限域内。Fp域内运算同样满足交换律、结合律、分配律。基于该有限域生成椭圆曲线E(Fp(a,b)),p为质数,x,y∈[0,p-1],函数表述为: $$ y^2 \equiv x^3 + ax + b (\mod p) $$ 选择两个满足下列约束条件的小于p的非负整数a、b就可以完成构造 $$ 4a^3+27b^2 \neq 0(\mod p) $$ 考虑Q=kG ,其中Q、G为椭圆曲线Ep(a,b)上的点,n为G的阶(nG=O∞ ),k为小于n的整数。有限域中的加法和乘法是有特殊规定的,根据加法法则,给定k和G 计算Q很容易。但反过来给定Q和G,求k就非常困难,因为加法取mod循环n次时,对应的减法逆推可能要2^n。而且实际使用中的椭圆曲线p取得相当大,n也相当大,要把n个解点逐一算出来列成上表是不可能的。这就是椭圆曲线加密算法的数学依据。比特币系统选用的secp256k1中k(k<n)为私有密钥(privte key),Q为公开密钥(public key),其他参数如下:

    • p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
      • = 2^256 − 2^32 − 2^9 − 2^8 − 2^7 − 2^6 − 2^4 − 1
    • a = 0, b = 7
    • G =04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8
    • n = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
    • h = 01

    透明保险箱签名记账余额开放协议”里无法篡改的签名,就是基于比特币椭圆曲线加密算法 ECC (Elliptic curve cryptography)的一种椭圆曲线数字签名(ECDSA)。他对于数字的单向放大能力,造就了签名算法容易生成,容易验证,但是难以破解的特性。他和量子时代的OTS单次抗量子(匿名与隐私章节会单独介绍)签名一样,成为了区块链信任的基石,被用到不同的项目里。需要提醒的是,上述我们自己创造的协议,加上区块链的数学工具,仍然和真正的比特币协议有些许差异。我们不打算在这里解释具体的比特币交易协议是什么样的,但是通过我们对数学的信任,对交易的推导,相信大部分读者已经可以理解比特币颠覆性的运作机理。“信任源于认知”,有时候守门人也是可信的,那对于没有看过比特币源代码的人,我们只需要相信基本的经济规律。世界上这么多聪明人在没有串通的情况下,一致认同且投入大量的精力物力在比特币之中,他们不是为了骗你的那一点钱,这样不经济。“对于社会群体的信任源于经济学原理”,所以当比特币和区块链已经是社会群体现象时,对他的顾虑可以打消了。

    拜占庭分布式系统

    如果说密码学是区块链的左腿,那分布式系统就是区块链的右腿。这个计算机领域的热门话题包含了寻址协议,网络通信,传输协议,一致性校验等等问题,复杂度并不逊与密码学。其中皇冠上的明珠就是拜占庭容错的分布式,这个拜占庭问题源于一个流传久远的段子。始作俑者是莱斯利·兰伯特(Leslie Lamport),他是微软研究院的首席研究员,曾获得2013年图灵奖——计算机界的诺贝尔奖。这家伙觉得故事让问题变得受欢迎,因此他在提出观点和问题时常用故事背景吸引眼球,拜占庭将军的故事就是兰伯特在研究分布式系统容错性的时候编出的一个故事,原文如下:

    We imagine that several divisions of the Byzantine army are camped outside an enemy city, each division commanded by its own general. The generals can communicate with one another only by messenger. After observing the enemy, they must decide upon a common plan of action. However, some of the generals may be traitors, trying to prevent the loyal generals from reaching agreement.

    假设拜占庭帝国的几支军队在敌人的城池外扎营,每支军队听命于自己的将军,这些将军之间只能通过信使传递消息。在对敌军进行侦察后,将军们必须制订一份共同行动计划。但是,有些将军可能是叛徒,这些叛徒会阻碍那些忠诚的将军达成共识。

    为了简化问题,将各支军队的行动策略限定为进攻或撤离两种。因为部分军队进攻部分军队撤离可能会造成灾难性后果,因此各位将军必须通过投票来达成一致策略,即所有军队一起进攻或所有军队一起撤离。系统的问题在于,将军里可能有叛徒,他不仅会发送错误信息,而且可能选择性的两面派。比如对支持进攻的说他支持撤退,又对支持撤退的说他支持进攻。比特币的信任和公平机制,可以证明是满足拜占庭容错 (Byzantine fault tolerance) 的。首先信息有数字签名不会被伪造,而且信息广播对所有人透明,一旦认证后不可篡改。所以只要叛徒将军的比例不超过50%,好将军还是可以达成一致的行动,并作出正确的选择。如果叛徒超过50%且相互串通,他们可以对所有好的将军说支持进攻,但其实内部达成不进攻的决议。这样以不到一半的兵力盲目进攻,会导致溃败。

    但这里面临很多假设,通讯可靠性的假设,延迟假设,消息记录的假设,不同情况下会得出完全不同的共识机制。最轻的假设是问题节点只有一种报错,就是失联,如果联通,消息内容便是可靠的。那只要在网络层维护一个节点通讯录,略过超时无响应的节点,其余在线节点可以非常容易的达成数据一致。这就是中心化系统里最常见的分布式架构,解决的问题也仅限在节点宕机和部分网络崩溃的情况。假设稍微放开一点,节点间存在假消息,而且节点间的广播同步不做历史记录。你会发现慢慢的,诬陷的温床开始滋生。发送者C可以对A,B两个节点发送两个版本的消息。AB收到以后彼此广播同步会发现矛盾,A会觉得B是叛徒,而B觉得A是叛徒。因为C的两面派行为没有证据记录,这就造成了完美犯罪。现在有些共识机制的设计者希望通过严厉的惩罚来剔除作恶者,但在上述场景里,要追溯问题源头或定位恶意节点都是不可能的,严厉的惩罚是风险很高的。

    拜占庭的故事构造的如此成功,区块链开发者无人不知。Lamport尝到了甜头,后来在《The Part-time Parliament》的论文中又讲了一个虚构的故事。这个故事发生在古希腊一个名叫Paxos的岛屿,作者将分布式一致性的问题比喻为岛上的立法机构如何对一项决议达成一致的问题。本来觉得用故事加以描述更易理解,但其结果完全相反,这篇文章的评审根本不吃这一套。当时的理论过于复杂,几乎没有人看懂,被埋没了多年,原文1998年才得以发表。后来Lamport又重新“正儿八经”地写了一篇《Paxos Made Simple》,似乎要做个简化版来照顾大家的智商。但这个题目和摘要真的害死人:

    Abstract:
    The Paxos algorithm, when presented in plain English, is very simple

    论文的标题和摘要都说的很清楚了,简单啊!但作者其实十分恶意的讽刺了所有读者。我们引用另一篇文章中关于Paxos算法的描述,摘自USENIX ATC 2013的Best paper《In Search of an Understandable Consensus Algorithm》,大致含义说:Paxos真的太难懂了,很少有人不付出极大努力就能完全理解。在另一个高水平会议NSDI上,不少人对Paxos感到不爽。连点评者自己都和它做了很久的斗争,所以他这篇文章取名为“寻找一种易懂的一致性算法”...意思是还在寻找中,根本不像Lamport说的那么简单。后人无不感到Lamport深深的恶意,我们且来看看这个Paxos岛上到底发生了什么:

    公元 10 世纪初,爱琴海上的小岛Paxos是一个兴盛的商业贸易中心。经济发展带来了政治的进步,Paxos 的公民们用议会形式的政府取代了原先的神权统治。议会的主要作用在于确定律法以保证城市可以有序稳定运转。所有律法都必须经由议会成员投票表决后方可生效实施,且已通过的律法必须被记录在案。但是对 Paxos人来说,做生意才是头等大事,城市职责反在其次,没有人愿意把他全部的时间投入到议会事务中。所以 Paxos 的议会必须在每个议员都可能随时缺席的情况下也能工作下去,这就是所谓的“兼职议会”。

    一个现代的议会可以雇佣秘书来记录它的每一次活动和决议,但是在Paxos,没有一个人愿意始终呆在议会大厅里作为一个秘书从头到尾参与所有会议。取而代之的是每一个议员都会维护一个律簿,用来记录一系列已通过的法令,每个法令带有一个唯一编号。比如法令115要求工人按照15%费率缴个人所得税,法令135要求买东西也要交5%消费税...等等。如何保证议员手里的法令是最新的,又如何保证各个兼职议员手里的法令不冲突?了解比特币的朋友会觉得这个问题特别熟悉,没错,拜占庭和Paxos的故事都和区块链有关系,但分布式账本的概念其实和Paxos议会律簿更加接近。要完整解决去中心化的问题,不但要解决恶意节点,还需要能够运行在一个非常不稳定的兼职议会上。中本村结合前人的积累,创新的加入了“议会激励机制”,完成最后一脚。这种方法里的数学是如此“简单”,我们就不在这里赘述了,后面会继续通过一些小故事让大家理解。其实除了区块链,BFT容错还是很多航空航天信息系统的设计原则,是真正的火箭科技(Rocket Science)。

    去中心化的进击

    我们自己发明的“透明保险箱签名记账余额开放协议”,已经完全可以应用在现有的交易系统里,即使这个系统是中心化的也没问题。因为我们在开头已经说了,区块链只是用于修复社会性缺陷。以银行会计为例,据统计有27.5%的会计从业者都曾在系统中录入错误的数据。只要在交易和授权这一层用上区块链的加密协议,再加上一个三方见证,就可以修复这种人为因素导致的社会交易缺陷。另外从经济学角度讲,银行和国家的政策也是博弈平衡的结果,在大经济环境的约束下,银行对个人有意作恶的投入产出太低,也就失去了作恶动机。所以最早的区块链金融应用比如Ripple,被很多人批评过于中心化,是一种误解。但不可否认区块链确实蕴含着更大的野心,这个野心不是改造银行交易业务那么简单。在全球化的视角里,中心化最大的风险是超越国家的系统性风险,也就是国家遭受重大打击,金融体系崩溃,记账系统瘫痪,交易无法进行。面对这种情况,简单的分布式,多机房可以解决硬件问题,但是仍然解决不好人的问题。所以区块链索性彻底放开账户管理的权限,所有人都可以参与见证。这些见证者是超越国界的,但却被赋予了非常土的名字:矿工。银行业的区块链项目,没有甘于做矿工的,都想打造自己的平台。但银行不可能推出真正去中心化的产品,因为他们是旧体系的受益者,这是经济规律决定的。所以去中心化的进击主力,将会是另外一群人。

    比特岛矿工事件

    去中心化可以理解为对于人类社会缺陷的更深层修复,我们还是以比特岛为例来推演和放大这种缺陷。今天“比特岛”上发生了大事件,有一种恶意病毒肆意的传播。感染的人会记忆模糊,分不清敌友。他们疯疯癫癫,时而胡说八道,时而思维清晰,导致整个岛上没有一个人是可信的,包括阿稳和阿北。这时能够依赖的只有科学,所以钥匙和锁,以及数字签名都还正常工作。感染了病毒的阿北,开始胡乱记账:

    2018年5月1日 17:30:00 阿稳支付给阿北1元,阿稳账户余额-3,阿北账户余额为3 ;
    2018年5月2日 13:50:00 阿北支付给阿稳1元,阿稳账户余额-2,阿北账户余额为2 ;
    2018年5月3日 11:35:00 阿北支付给阿稳1元,阿稳账户余额-2,阿北账户余额为2 ;

    阿稳拿到账本简单计算就可以发现第三条支付之后的余额没有按规则变化,而如果自己擅自修改的话,阿北也可能不认账。所以阿稳打算把验证账本的权利,交给岛上剩下的意识清醒的人,以防阿稳自己哪天也感染了病毒。但是哪些人是清醒的?阿稳设计了一个小测验,做加减法。“透明的带锁带签名账本”被无限复制,分发给岛上所有的原住民,盒子上有100道题的算术小测验,原住民独立算完之后,跑到岛的中间比对答案。答案一致,且最快计算出来的,可以给自己的账户增加1元钱。这笔交易最后由帮他验证答案的其他原住民一起签名,达成共识。那些意识模糊,或者恶意捣乱的,因为测验答案不通过,所以被排除在账本见证权限之外。留下那批意识清醒的原住民在无需打开盒子的情况下检查这个“透明的带锁带签名账本”的合法性并投票。这些原住民就是矿工,获得的记账奖励就是挖矿,交易的投票验证就是共识机制。之前阿北胡乱记账的内容就因为不合法而被抛弃,仍然以上一周期的账本为准。比特币利用更巧妙的一种小测验形式,保证小测验的答案和账本的内容耦合在一起,当原住民算完小测验之后,他验证的那个正确账本也被锁定,无法篡改。感兴趣的朋友可以去阅读比特币的白皮书或者代码文档,到此为止,我们的加强版记账协议就和比特币一样做到了广义上的公开透明不可篡改。

    原住民通过帮助阿稳和阿北记账,自己也积累了一些“小金库”。那些记忆模糊的原住民显然无法撼动这个系统,但是意识清楚的原住民中,也分裂出了恶意分子。因为每一笔记账经过钥匙和签名的双重保障,所以要篡改别人的账本内容是不可能的。而如果只是捣乱干扰验证,也并没有任何经济收益。但某一天这些恶意分子发明了一种重复消费(double spending)的诡计。邪恶原住民转账1元钱给友善原住民买一个香蕉,转账记录签名锁好交到岛中央进行验证。友善原住民看到记录后把香蕉交给了邪恶原住民。谁知邪恶原住民同时发起了另外一个转账,将同样的1元钱(尚未支付给友善原住民时的账本状态)转给自己,用自己的签名和锁锁上。这时在岛的中央出现了相互冲突的两个记账版本,这一元钱有的说支付给了友善原住民,有的说还留在邪恶原住民那里。见证者分为了两派,也都分别完成了自己的小测验。但是有效账本只能有一个,这时投票是唯一的方式。只要邪恶原住民相互串通好,超过50%的投票比例,就可以把白的说成黑的,完成这种“重复消费”攻击。比特币协议也存在这个风险,如果矿工严格按照现在的代码执行,那么哪怕发现了冲突的账本,也只能认可那个票数多的版本。

    真理的意外流行

    有没有办法避免这种攻击?我们虽然无法改变恶意矿工,但是至少我们可以隔离他们,产生分叉,将善良矿工保留在一个社群里持续运作。这里我们要介绍一种创新的意外流行算法(surprisingly popular),很多时候真理真的掌握在少数人手里。比如我们在街头调研,澳大利亚的首都在哪里,相信大多数人第一反应会是“悉尼”。但是我们现在多问一个问题:你认为别人的答案会是什么。就是这么一个小小的改变,带来了意外的效果。大部分人会认为自己的答案和别人的答案都是悉尼,而真正的内行人知道澳大利亚的首都其实是堪培拉,而且一般人会误以为是悉尼。还有一部分一知半解的,可能会觉得墨尔本是正确答案。通过两道问题的统计,只要有足够多内行存在,我们就会发现堪培拉会是那个“意外流行”的答案,也就是自己回答堪培拉的比例,要显著高于“以为别人会回答”堪培拉的比例。内行越多,这个意外流行的程度的就越大。只要10%的专家存在,就有足够把握获得正确的答案。

    将这个算法应用到比特币协议中,矿工除了验证正确的那本账本以外,还需要留意异常的节点变化。进行”重复消费攻击“时需要在一段时间内将51%算力隐藏,在攻击者释放这部分攻击算力的时候,是有迹可循的。一种攻击方式是,平时对外同步正确的账本,攻击时突然拿出另外一个版本的账本。那么善良节点通过观察该异常节点前后账本间的矛盾就可以预判恶意攻击。另一种攻击方式是平时只维护那个攻击账本,不与外界同步,在攻击时直接释放攻击账本。那么善良节点对于历史不明的新节点要隔离同步,并行保存自己验证的版本,和那些新节点意外流行的冲突版本。最后在善良节点一致识别出攻击节点后,可以进行隔离分叉。这是一个全新的比特币升级协议,目前还没有人实现过,但可以预见的是,这将对系统产生更多额外的开销。

    到底去中心化要到什么程度?对风险的防范是否要做到极致?目前比特币交易速度慢,成本高已经是其最为诟病的问题,这就是完全去中心化的代价。一个简单的交易,要动用这么多见证者,还要做那些无意义的算术题。过度的去中心化和风险预防显然会导致效率低下,资源浪费。一个人出门要带伞预防下雨,要带厚外套预防降温,要带现金随时消费,要带医疗包预防受伤,要带户口本预防突然警察查岗......那这样的生活就失去了意义。为了解决比特币这种负面作用,大量的升级协议,比如持币者权重(Proof of stake),委托权益共识(DPOS)等等,试图用更低的成本来达到群体的信任。他们的可信度是否服从经济规律,是否经得起人性的考验?我们拭目以待。

    用户社群的变化

    在区块链的去中心化时代,每个人,每个个体的身份也面临着转变,他们的组织形式面临重组。想象如果是一个中心化的组织,去攻击现在的货币和银行体系,那么国家机构能够非常方便的找到带头人,并予以控制,这个组织不攻自破。而去中心化的区块链,在安全情况下可以使用半中心化的共识机制(DPOS)来提升效率,而面临外部威胁的时候,又可以迅速转变到完全去中心化(POW)模式以自我保护。国家在调查这种区块链组织时,会发现每一个人都是全节点。就好像收集签名时大家围着一把雨伞循环签名,首尾相接,找不到谁是第一个,谁是最后一个。也正是这种组织形式,即使内部有人作乱,也很难真正影响到总体。

    矿工是保障去中心化的核心

    回到区块链的去中心化特性,其实是由矿工实现的。虽然区块链的发展经历了很多技术的升级和优化,比如密码学的改进,共识机制的改进等等。但不论技术如何改变,不变的是矿工。假设我们发明了100种新的共识算法,那最成功的不一定是技术最好最安全的那个,而是矿工支持最多的那一个。因为区块链项目代码必须开源,所以新技术相对容易学习,而要改变矿工社区背后的人,反而会遇到很大的惯性阻碍。这就是为什么在比特币和以太坊这些主流数字币之外,大部分新公链的市值都不高,不论有多少创新的技术。矿工算力,以及投资资金这些有限资源被头部公链吸收殆尽,市场流动性堪忧。同时这些创新技术正在逐渐被以太坊的开发者社区吸纳,在强大的矿工群支持下,技术的决定性在降低。

    不过矿工群也不完全理性,比特岛上的原住民内部会形成小社会。有认知差异的地方,就有等级阶级。管理底层原住民无外乎让其忙碌,无暇思考,满足其基本需求,给他一点希望但不要太多。再进一步用情亲的羁绊,家族的传承,社会的责任给其洗脑。这样矿工自然集结成群,形成矿池。而利益开始流动,信息开始受到约束,媒体被挟持。这时博弈的平衡会走向两个方向,信息的进一步集中,或者思想的独立打破信息的垄断。这为之后矿工社区和数字币的利益冲突埋下了伏笔。

    比特币在2017年曾经历过巨大的冲击,但是他挺过来了,正是因为社区的信心为比特币的价值提供了最佳的保证。当时的冲击就是网络分叉,好比善良的原住民和邪恶原住民在规则设计上产生分歧,要分道扬镳。唯一的差别是,这里并不区分善恶,只是选择的不同。这个分叉的目的是要解决比特币交易缓慢的老问题。经过开发者社区和矿工代表的磋商、妥协,最后分为两个阶段:第一次分叉是比特币核心开发者社区提出的,在不改变底层协议基础上,创建上层共享账簿 lightning network 。交易双方在主链一次性提取共同基金,就可以在私有通道里多次交易,方便快捷。而第二次分叉是比特大陆等矿工代表基于"New York Agreement"发起的SegWit2x。主要目的是将区块大小从1M扩容到 2M,这样全网账簿的体积也会扩大,门槛会提高,影响区块链的去中心化程度。对照下面比特币价格图表我们可以看到,第一次分叉提升区块链交易能力,带来了小幅升值。而第二次分叉因为太多的经济利益和政治思维,忽视中小玩家导致了最终分叉失败。这反而证明了比特币去中心化不可篡改的能力,矿工社区取得了最终胜利,也带来比特币价格的飞跃。
    image

    比特大陆推进的Segwit2x虽然失败了,但其强行进行了分叉产生出新的币种Bitcoin Cash (BCH)。虽然新币完全兼容比特币,在478558区块的比特币持有者可以等值映射到BCH网络里,但仅由少数矿工支持的新链,面临中心化的质疑。矿工参与去中心化的建设,并不是公益,而是以数字货币为激励。为了维护利益,吸引更多参与者,比特大陆利用其持币规模和市场影响力,直接将BCH推上交易所获得流动性。虽然币值经过几个月的攀升,最终还是回到发行价附近,但基础流动性还在,留住了矿工,这条链就存活下来。同期有很多相似的操作,产生了很多侧链,令矿工和投资者眼花缭乱。在区块链和实体经济还没有建立强有力的连接前,基于交易所的信仰交易,是把去中心化事业代代相传的纽带。最终如何定义数字货币的价值非常复杂,答案也随时间在不断演变,我们稍后会有完整的章节来讨论。这里BCH的案例充分展示了,矿工是去中心化的保证,而交易所带来的流动性是吸引矿工的关键

    未来矿工的门槛会大大降低,去中心化的交易所会大量涌现。在这一轮行情之后,大量的普通百姓,开始把自己的资产转移到这个基于数学和经济原理的去中心化网络之中。为了保证全流程的安全,比特币地址的私钥(保险箱的钥匙)和签名都需要妥善的保管。但因为数字秘钥是一长串无规律的数字字母组合(32字节),人类记忆又是如此不可靠,就催生了数字钱包这个产品。最安全的是使用桌面版的离线开源钱包,并将长串秘钥写在纸上保存。在需要交易的时候,先断开网络,填入收款信息和秘钥进行签名。然后重新联网,将交易信息和签名结果同步到区块链网络,完成验证。但这样显然非常麻烦,完成一次交易可能需要10分钟的手工操作。便捷一些的是联网钱包客户端,可以是桌面或者手机版的。把秘钥保存在本地的某个文件内,这样在交易时只要复制粘贴即可。在客户端不被病毒攻击的情况下,是安全的。最方便快捷但也最不安全的就是交易市场,在交易市场你只要用邮箱注册一个自己的账户,输入较短的日常密码就可以交易。但背后真正关键的区块链地址私钥,是保存在交易市场服务器上的。一方面面临交易所主动的作恶风险,另一方面也面临交易所被黑客攻击的风险。

    诉诸利益,而非诉诸理性

    我们现在从未来往前回顾,似乎一切都顺理成章。但其实在2017年以前,比特币的价格一直不温不火,愿意接受其支付的商铺都是用信仰在交易。2010年Laszlo Hanyecz成为了世上第一个用比特币买东西的人,他买了个披萨,花了10000枚比特币。当天是5月22日,从那以后这一天被庆祝为比特币披萨节。在推特上,每天都有人根据当天的市值推算10000个比特币的价值,如今这笔交易价值上亿人民币。所以本杰明.富兰克林说:“如果你想要说服别人,要诉诸利益,而非理性”。早期被说服的,是各种法外交易。

    2017年5月12日WannaCry勒索病毒通过MS17-010漏洞在全球范围大爆发,距离披萨节仅仅10天。病毒要求受害者支付价值数百美元的比特币到攻击者的比特币钱包,且赎金金额还会随着时间的推移而增加。于此同时segwit的激烈争论,一起推动比特币价格连续1个月上涨,从$1700涨到了近$3000。在此之前,比特币真正的转折发生在2013年。当时还没有以太坊,很难自己发币,比特币是所有的焦点。比特币基金会和联邦在当年8月进行了第一次多边会议,普遍观点认为比特币是罪犯用的,因为比特币正是当时最大的非法交易网站silk road的主流货币。因为需求量大,为了承载那些非法交易,当时比特币价格已在几百美元间徘徊。好消息是,监管部门还没有完全理解比特币,所以暂时没有提出监管要求。但是10月突如其来的噩耗,美国司法部门逮捕了Ross Ulbricht,关闭了他创建的丝绸之路网站,并将缴获的144,336枚比特币在2013年底以均价$334抛售。这本是灭顶之灾,但因为高流通量以及涨了一轮的价格,使这种货币获得了一般技术社区的普遍支持。奇迹般的,比特币坚持了下来,币值也稳定在数百美元。有人专门整理收集了那个时期的几个重大事件,可以说比特币的成长,充满了意外,是整个社区努力的结果,几百美元的价格坚持到了2017年的牛市。从2017年2月头开始,币值就冲到了$1000以上,并一发不可收拾。

    比特币的原理没有变,变化的是看得见的利益。8年前买披萨的那个程序员,今年2月25日又买了两个披萨,这次支付了649000 聪,或0.00649比特币,这两块披萨的价格约为62美元。而且交易通过闪电网络完成,一种更“便宜快捷”的支付方式。你看,程序员推广新功能的时候,还是习惯了诉诸理性。那个披萨节早就被人遗忘啦,我们应该换一种角度诠释这个新闻:比特币闪电网络启用,交易成本大大降低,快速渗透到更多支付场景里,准备迎来比特币的新一轮涨幅吧!

    随着利益的驱使,为了保护自己的财产,用户是不遗余力的。有人用指纹,声纹,虹膜,面部特征等作为密码,在支付时先清醒的对镜头说出某些短语,然后用指纹验证密码,最后完成交易签名。Winklevoss也单独设计了管理自己钱包秘钥的系统和设备,最后催生出Gemini安全交易平台。但不论怎么设计,这些工具都需要经过实地验证,再传播和使用。后续可能还会有工具的升级,账户、平台的转换等等。为了确保这些中间步骤的安全,我们始终要加强自身的认知理解力。比如遇到IOTA这类使用一次性签名的区块链项目,在搞清楚每次支付以后账户地址不能复用这种操作细节之前,千万不要轻易尝试。

    追逐利益的乱象

    但历史也不断告诫我们,被捧起来的利益是不稳定的。2017年9月4日中国禁止ICO的监管政策颁布,市场短暂的下跌,又迅速回稳。大量交易所移至海外,因为互联网的流动成本相对较低,所以市场消化很快。而相比之下2018年1月3日流传出来“央行在内部会议中决定查封一切比特矿场”的消息,则直接把市场腰斩。矿工是基于物理设备挖矿的,依赖芯片和电力供应,所以流动性较弱。面临不确定时,大量的套现抛售使比特币跌至7000$左右,奠定了2018年的基线。但这则消息后来证实是谣传,假消息似乎比以前的真消息作用更大,调控者没出手,咋呼一下市场就倒塌,可见区块链基于“利益”的说服力有多脆弱。投机者的套现退出虽然套牢了晚期的进入者,但是刺破泡沫后7000$的价值基线比以往更加坚固。

    事后回顾,这次回调可以说是必然,因为当时的币值炒作,几乎都是黑市手段:玩分叉币,暗箱私募,庄家炒作。这样的市场怎么可能长久?本来“分叉”是区块链正常的升级过程,但在利益驱使下,变成了骗钱的工具。比如SBTC(超级比特币)就自称和比特币1:1分叉,在没有任何实际意义的情况下,玩概念圈钱。目前已经半死不活,全靠庄家自己炒冷饭,难怪有人戏称其为“SB套餐”。类似的套路以太坊上也在进行,无意义的分叉EMO(以太修)与ETF(以太雾)为了竞争谁是以太坊“太子”甚至多次擅自修改计划,抢先分叉。这样的太子怕是假的吧,目前看他们都清零了。但这都不妨碍分叉币及首次分叉(IFO)在当时迅速泛滥。典型的分叉币操作是:通过宣布分叉币,为每个用户按1:1的比例赠送新分叉币“糖果”。在用户普遍获得新币之后,自然会产生交易需求,这时可以引导舆论,以庞大的用户数量和交易需求倒逼交易所上币。而上币之后,分叉币持有者先用一定的资本拉高分叉币,营造出追捧假象,再将自己“预挖”的分叉币卖出套利。

    如果说分叉币操作过程还算公开透明的话,那么私募代投就是完全暗箱操作,骗你没商量。当时监管收紧,ICO转到海外,国内投资者被迫进入地下。ICO项目发布者利用微信群、QQ群宣布私募,份额由群中成员进行瓜分,完全没有实名要求。当份额超出群中个人资金量时,个人再转向其他群二级私募,层层加价分发。这些发布私募信息的QQ群、微信群充分利用了信息不对称和人性对稀缺性的追捧来营造高门槛,部分“大佬”加入的微信私募群入群报价高达数百以太币。你看中的是买到币以后的升值空间,别人看中的却是你手里的本金。后来甚至出现了钓鱼陷阱“假私募群”,用户加入一个特殊的私募群,所有微信“投资者”都是假的,专门吸引投资者上钩。这类套路不但在币圈,在微商圈也同样盛行。花钱加入一个号称能赚钱的微信群,就好像买票支持一场成功学“大师”的讲座,对于渴望知识的边缘青年,有无穷的诱惑力。

    这些乱象背后,都是人民面对恐慌和信息不对称时的非理性群体行为。政策越是打压,黑市越昌盛,形成政策监管的怪圈。唯有合理的规范和疏通,才能回归理性。证券市场百年来的经验自有其道理,加强注册认证,监管内部交易,打击庄家炒作,这样才能保护一般投资者,营造健康的投资环境。虽然不能赚快钱了,但希望能赚的持久。理性的说服力虽然缓慢,但是可靠。到此为止,我们通过一层层的推理,越过山头,逃过陷阱,走过了和比特币创建者一样的道路。一路上有对现有比特币的认同,也有对完全去中心化的批判;有对利益的渴望,也有回归理性的安稳;还提出了对比特币防御体系的改进算法,但这仍然不是区块链的终点。就像最初定义的,区块链是为修复人类社会性缺陷而存在的。我们后面还要继续叩问更加深刻的问题,发现更加隐蔽的社会性缺陷,并设计和重构区块链的未来。

    为什么需要货币

    区块链修复了交易信任问题,但比特岛上的交易似乎和我们日常的交易很不一样。在整个区块链设计过程中,核心的账本实际上替代了所谓的货币。就好像在移动支付如此便捷的今天,我们口袋里的纸币越来越少了。所有的交易也不过是数字的加加减减,那货币真的是必须的吗?在回答这个庞大的问题之前,我们先问一个更加具体的问题,我的货币余额可以小于零吗?

    余额为负的账本

    我们回到科学的范畴里寻找答案。世界上有火,也有水;有阳极,也有阴极;有正面,就有反面。而在金融的范畴里,我们有债务,也有债权。如果取债务平衡的起点为零点,那么债务可以用负数表示,而债权就是正数。数学的完美对称,使我们完全可以将金融体系纯数字化。不论债务还是债权都可以计算利息,因为债务为负,所以利息也为负要支付给债权人。债权人的利息为正,就是收取债务人支付的利息,最后两者平衡,求和为零。一般性债务不可怕,因为你可能同时也是别人的债权人。所以看上去在金融和会计的眼里,账户余额是完全可以为负数的。

    但数学中负数的发明和会计学都是后来才有的,人类最初的贸易里,使用的是实物记账。比如比特岛上曾经也用过的贝壳,还有后来的黄金,白银等等。描述这种实物数量的数字,叫做自然数。因为物质不能为负,所以自然数里没有负数。比特币不假思索的继承了这种自然数的特性,但现在我们重构区块链,设计一种账本余额可以为负的“比特非平衡账本”。

    在比特非平衡账本初始化的时候,任何人的账户余额都为0。支付交易时,支付方余额递减,收款方余额增加,系统总和仍然为零。这相当于一个熟人的赊账平台,只要双方没有异议,任何一方都可以存在负余额。负数账户向其他账户支付时,看似收款账户的余额增加了,没有拒绝的理由,但实际上每次支付背后都存在等价的物权或者服务转移。如果收款方无节制接受负账户的支付,兑换物品,那很可能面临事后自己的账户正余额无法消费的问题。因为负账户的债务人在消耗了赊来的物资和服务之后,变得懒惰,不愿意提供其欠款的等值服务。最后某一方负数太大时,债权人只能要求强制平仓,对方没钱就替其劳动还债,或者卖身。

    当交易人数增多时,情况会变得有点复杂。有些人相信这个债务人,愿意接受其负账户的付款,而另外一些人不相信他,就不接受其付款。这背后代表的是这个人的信用,这里就完全和现实世界的金融体系对接了。每个人出生的时候,是没有信用的,也就没有钱,不能买东西。但是他们的父母为社会创造了价值,余额为正,可以将余额转移给这个新生儿,帮助其成长。新生儿长大,毕业以后,父母的资助也停止了,这个人的账户重新清零。他需要工作先积累自己的账户余额,然后去消费自己喜欢的东西。当然也有人贷款买房或者融资创业,前提是别人能接受他的负账户支付来兑换实物资产或者创业资源。但这里有个漏洞,我接受了负账户的付款,我再用这个款项支付给别人来兑换物资,我就不吃亏了,相当于债务的转移。这个问题在于负账户的流动性,负账户的付款不是通用现金,而是债务的证券化,简称债券。理论上收取了负账户的付款,只能反过来再支付到负账户身上。看上去金额不变,但是因为负账户所有者的生产力或者偿还能力有限,所以这个债务债券,是会贬值的。

    为了解决负账户付款的流动性问题,我们引入债券的定价功能。首先这个定价权不能由债务人和债权人来行使,因为他们是利益相关方,会虚高定价。那在区块链里面,最合适的就是由矿工来定价了。每个矿工可以设置其能接受的某个负账户债券的折扣率,比如一个信用一般的人,他支付10元债券,其实只能当7元通用现金来使用,折扣率70%。足够多的矿工接受该负账户的债券后,交易被验证,从负账户里扣除10元,而收款账户获得7元。参与验证的矿工可以分得10% 0.7元手续费。约束矿工定价权力的是经济原理,因为他通过越多的负账户付款,区块链就会通货膨胀,他手里的挖矿收益就会递减。但如果他不通过任何负账户付款,而有其他矿工通过的话,他就拿不到收益。与矿工博弈的是负账户,也就是债务人,他们发起拍卖交易,只有折扣率满足他的底线,而且足够多的矿工同意,交易才能成功。在矿工和卖方讨价还价的博弈下达到区块链的流动性管理。交易结果对收款方是无差的,因为他就是收到了7元钱,给7元钱的货。这套体系和比特币兼容,因为比特币可以看做是一个特例:就是所有矿工设置负账户折扣率0%,那么所有账户如果支付超过其余额的金额,超过部分都会被清零,也就是余额不能为负。

    现实世界的现金,信用,债权,债务已经完全兼容进这个“比特非平衡账本体系”。这里的矿工从简单的算术劳作,升级为金融矿工,赚取债券的手续费。系统还可以再加入债券利息,以鼓励更多的矿工参与,并通过调整利率来调整区块链的“货币”流通。当然为了维持区块链的信用,这套利率调整规则也需要按照去中心化的方式去设计。最后我们发现绕了一圈,终于拜托了负账户的约束,但是似乎“货币”这个概念,还是摆脱不掉。因为开放的正负账本体系没有平仓的要求,但是一定有坏账的风险。通过“货币”这种通货的总量控制,可以在无需强制平仓的前提下,保持总体风险可控。可见**“货币”本身就是修复人类社会性缺陷的一种设计,区块链要利用这种设计**,而不是盲目的去改变他。

    货币和财富

    账户余额的正负,除了对应债务和债权,还可以和财富的积累对应。过去积累的财富为正,未来的财富提前使用为负。货币作为财富的记账形式,也只能接纳有限时间的提前预支,以控制不确定性。现实生活中如此复杂的财富形式,以统一的形式表述,也是货币的价值之一。反过来看,可以用货币衡量的,都是财富:股权、品牌,固定资产,预期收益,版权等等。区块链的信任机制使其能够承载交易,而区块链的稳定通货体系,即使在负账本协议内,也可以完全达到货币的财富储备功能。比特币虽然简单粗暴的约定其发币总量为2100万枚,但也基本具备了财富储备的能力。财富是虚拟的,但也是内在统一的。而货币经过了长久的变化,在不断升级。

    货币等价物历史上出现过很多,比如比特岛上用的贝壳,但是后来发现发币量不稳定。后来地球储量最为稳定的黄金和白银成为了最佳的货币等价物。但同样稀有的钻石为什么没有成为货币等价物?因为通俗的等价物要满足以下条件:

    • 发行量稳定可预估并且难以人为改变
    • 首次发现时的等价物分布与财富分布接近
    • 等价物质地稳定,不随时间损耗
    • 等价物难以人为合成或改造

    钻石满足以上第一点和第三点,但碳基的钻石是可以人为合成的,无法满足第四点。即使我们有技术区分人造钻石和天然钻石,并设计定价标准,弥补了第四点也无济于事。最大的难关还是第二点,新发货币分布要和财富分布接近。远古时代流通范围小的时候,不论货币最初如何分布,最终都会在部落斗争的过程里达到货币、财富、强权的平衡同分布。后来的城邦文明时期,财富被统治者掌控和分配,所以货币选型是反过来由财富分布决定的。统治者收集金银,并以金银为基础发型货币。帝国争斗时期,金银已经是世界通用的货币标准,所以强权直接掠夺金银和土地,并不需要设计新的货币体系。直到第二次世界大战末期,全球在新的权力平衡下,再粗暴的金银掠夺就显得有些过时。而且连年战争,各国过度兑换黄金造成挤兑困难,导致金本位制度崩溃。所以当时44个国家的代表在美国新罕布什尔州“布雷顿森林公园”召开联合国和盟国货币金融会议,商讨新的货币体系以匹配现在的权力和财富分布。他们达成的以黄金为基础,各国推出固定汇率货币以便流通的体系,就是布雷顿森林体系(Bretton Woods system)。该体系在黄金的基础上,还算尊重历史的财富分配。直到各国完成战后恢复,开始寻求新一轮发展和财富争夺的时候,黄金的初始分布已经成为障碍。美国强权的崛起,使其抛弃了美元和黄金的挂钩。在美国贸易盈余,马歇尔援助计划(Marshall plan),石油美元等手段的推进下,美元成为了实际意义的国际货币。而美国黄金储备也拒绝向外界开放,布雷顿森林体系名负实亡。直到1976年,国际社会才象征性的通过了牙买加协定。国际货币的浮动汇率,实际上形成了货币、财富、强权的动态平衡。21世纪中国的崛起也首先反应在汇率市场,和黄金等传统货币无关了。

    基于财富、资源和强权之上的货币,是随着时代变化的。每一次货币权利的更替,都会带来或多或少的财富重新分配。而分配过程庞大而复杂,无法保证完美的财富公平。所以每一次都是“货币战争”,以前是真的战争,现在是金融战争。基于现代货币体系的现代金融体系,已经相互耦合在一起。随着借贷的发生,债务和债权的债券化,创新金融资产大量流通。他和货币的交易转换主要基于流通性和价值计算,而杠杆的加入加剧了兑换的风险。如果对全球金融资产强制平仓的话,其规模已经超越了流通货币的承载能力。这就是为什么会爆发美国债务危机,以及触及国债上限的原因。货币是财富的表现形式,但债务不是。我们在允许账户余额为负的“比特非平衡账本”体系里已经验证,需要矿工对债务债券的约束,才能维持整个系统的财富价值稳定。而以美国为首的脱离管控的债务体系,正是区块链需要修复的人类社会性缺陷之一。

    理解比特币

    回到比特币本身,我们暂时抛开那些潜在的货币优化,维持现在比特币的版本,定义交易时验证支付账户不能为负,并将交易单位从最大的比特币到最小的“聪”限制在整数范围。比特币对标现在自然货币规则,并不是要直接替代它,而是提供一个渐进式财富转移认证通道。现在主权国家的货币权和金融权是封闭的,导致财富固化。虽然美国允许个人发币,但小玩家无法获得足够多的支付支持,而大玩家享受现有美元体系的财务积累不愿意改变。中国等国家更是严控金融系统,把发币和金融管控权限集中在党中央。可以大胆想象,如果开放这个门槛,那么Q币等大型公司都完全可以发行自己的货币系统,区块链不是必须的。所以这里比特币冲击的并不是货币本身,其实是封闭的权力系统,也是人类的社会性缺陷之一。这里又体现了经济规律,如果是公司发起这样的冲击,那带头人很容易被质疑,攻击而放弃。但是区块链就好像古代的循环签名,开放且普惠。政府无法确定所谓的带头人,面对大量的参与者法不责众,下不了狠手。这种无形的防御体系留给比特币这个项目一线存活的生机。虽然在很多国家禁止比特币和法币的兑换,但是一旦上链,比特币网络内的交易,还没有人能够阻止。

    我们通过6个层次来深入理解比特币:

    第一层,交易中间体。革命军要问军火商买枪械,银行转账容易被查,现金交易有危险,所以革命军先用美元买了100个比特币,然后到丝绸之路网站找军火商。军火交易的时候,将比特币转账给军火商,10分钟区块确认以后,军火商将枪械交给革命军。革命军拿到了货,军火商拿到了比特币,再去交易所里换成美元。虽然比特币每笔交易在区块链里都是公开的,但只记录了虚拟的钱包地址。军火商完全可以建100个小号,分批提现,让监管部门无从查证。这时比特币对美元的价格只要保持稳定,其币值高低对军火交易就没有影响。但尝到甜头以后,大量的非法交易,合法交易都跑到区块链上来,导致通货(比特币流通量)不足,也就带来比特币升值。如今1万美元一枚的比特币体系,能够承载的财富交易总量,是三年前100多美元时期的100倍。但纯粹的交易双方都只是短暂的持有这个交易中间体,所以并没有任何财富的变化。

    第二层,交易中间商的投机品,通过囤货、哄抬物价来人为炒作。早期用比特币作为中间交易的商家,发现比特币有升值趋势,所以在卖掉货物,收到比特币支付的时候,不再提现,而是保存起来。比特币升值的越快,供给交易中间体的流通量反而会减少,对区块链体系是不利的。2017年底比特币价格剧烈波动以后,已经很少有人拿比特币做真正的日常交易了。交易所里大部分的买卖,都是投机者低买高卖,或者忍痛割肉的投机交易。之所以说是投机,因为在这一层面,还无法定义比特币的内在价值,所以不存在基于价值回归的投资逻辑,而只有投机。那些大玩家在仅有的流动性里面,可以非常容易的操纵市场,对于想要简单交易的商家非常不友好。索性剩下真正有商品交易需求的人,可以转向DAI靠抵押债务稳定或者USDT(Tether) 靠中央储备和美元挂钩的稳定数字货币。这类货币都会通过流动性干预来保证币值对美元的稳定。

    第三层,赌场代币。假设某一天有人建造了一个只使用比特币的赌场游乐园。里面吃喝玩乐,五脏俱全。赌场越好玩,来玩的人越多,购买代币的兑换率就越高。成功的赌场经营者,可以从代币兑换过程中收到大量过桥资金。用这些资金,他们继续扩充赌场的设施,把赌场建成了一座城市。这个概念在Second Life这种虚拟现实游戏里也同样适用。但有一天大家觉得无聊要退币走人的时候,会导致挤兑风险,强制平仓是无法弥补每个人的损失的。那聪明的赌场经营者,应该在发生这种风险之前,在积累了足够的过桥资金之后,赶快携款走人。需要说明的是,这里的赌场不只是比特币本身的网络,而是以比特币为门户,所有可以和比特币快速兑换的数字货币组成的新经济体。对这个经济体未来前景的判断,是影响比特币价值评估差异的最根本变量。老派投资人比如巴菲特,因为不认同区块链经济体的总体价值,所以对比特币的认知还停留在第二层:投机品。而以矿工、开发者联盟为主体的赌场建设者,对赌场的价值深信不疑,暂时还没有携款潜逃的迹象,是他们撑起了现在比特币的市值。以比特币单价1万美元计算,全部发行完成,比特币会具有210 Billion$的市值。这从侧面代表了这些开发者和矿工共同创造的赌场经济体的价值。

    第四层,开发商预售。看到赌场赚钱,很多人也想盖赌场,但是缺乏资金,所以先发行代币来众筹资金,就叫ICO。这个过程有大量信息不对称和违规操作,但这也是投资区块链的重要途径。好比投资圈的一级市场和二级市场,在一级市场进行风险投资,可以获得更高的回报,但是风险也大。ICO就是区块链项目的风险投资,更准确是天使投资。众所周知天使投资只有4%的成功率,要投过大量的项目,才能从中筛选出真正的好项目。所以没有足够的财力和精力,就不要玩ICO。这里的玩法和天使投资如出一辙,主要参考赌场设计图纸(白皮书,PPT),建筑工程队质量证书(团队能力),还有赌场老板不会跑路的信用担保(个人声誉)。一般个人投资者没有这个判断能力,所以更加适合等项目上线,赌场盖好有人进去玩过之后,再进行投资判断。

    第五层,国际贸易和生产力。国家间的外汇贸易和一般交易稍有不同,国家货币由国家信用担保不会跑路。所以这个时候我们需要把第三层里的赌场,升级为一个虚拟的主权国家。同时把其他现实中的主权国家,也看做赌场游乐园。比如中国开了赌场自得其乐,赢钱容易。美国人看了都要来,就是美元兑换人民币。那人民币不愿意卖怎么办?美国忽悠说我这里有酷炫的可以上网的电话。所以喜欢用电话上网的人用人民币换给了喜欢赌钱的美元。一国的国力反映了货币的话语权,和发币量一起反映国家的市值。而国力是指管辖范围内的综合生产力。比特币这个赌场如果只是交易中间商,那国力非常薄弱。就像巴拿马,虽然有个非常重要的运河,但是国民生产力落后,都是帮别人赚钱。比特币需要从交易平台扩展到以太坊这样的计算平台,最后通过计算的力量,来支撑区块链经济体的市值。如果没有这层支撑,所谓的比特币价值储存功能,都将是泡沫,财富会流向生产力支撑强的货币平台。2018年3月上线的第一个运行在以太坊的围棋游戏EthernalGo,算是一个微小的进步,但前面道路还很漫长。

    第六层,财富分配。不论是建赌场还是建国,新发货币甚至新型资产都会带来财富重新分配。前面我们也论证了,货币,财富,强权最后是会统一在一起的。所以比特币的财富分配,逃不过现存世界的强权体系。首先持币量最多的个人玩家里,就有和Facebook创始人打官司的“富二代”投资兄弟Winklevoss twins。据说他们拥有比特币市值的1%。金融玩家也早已入场,老的财富积累在新分配里保有话语权。早期的很多矿工因为长时间的币值波动,没有坚持下来,被后来的玩家攫取了劳动成果。而个人小玩家因为对区块链的认知理解不同,也导致了分配的不同。不过现在比特币在很多国家不被认可,所以有效的财富转移有局限性。未来可能出现更多的区块链经济体,如何在货币,财富和强权间达到新的平衡?似乎天下所有致富的捷径都不能重复走第二遍。

    深入理解比特币之后,环顾四周,已经有非常多的新数字货币加入流通。如果只是解决第一层的效率问题,而没有根本上优化货币和生产力体系的话,这些币都无法超过比特币现在的高度。而针对比特币,我们早前的章节已经至少提出两个大的升级建议了。从一个交易,转移财富的平台,升级到真正的货币,金融,经济生产平台,才是区块链真正要走的路。一路上我们会运用数学工具和经济规律,来优化人类的社会性缺陷。

    区块链上的储物盒

    如果说交易是一枚硬币,那货币只是硬币的一个面,另一个面是权利转移(物权,信息权等等)。为了完成这个转移的闭环,我们先设计一个非常简单的转移模型:区块链上的快递盒子。这个盒子事先编写好代码,一旦启动就不可更改。盒子和区块链有通信,可以监听区块链上的某些特定事件来做出应对。区块链也不是比特币这种交易链,而是以太坊这样的智能合约区块链。他除了代币叫做以太币ETH外,最大的特点是可以在区块链虚拟机上执行事先发布不可篡改的代码,简称智能合约。稍后我们会单独介绍这个计算的力量,现在我们先借用这个功能,同样通过前面军火交易的例子,来完成区块链经济体的一个闭环交易。

    这天革命军要新进一批军火,他们找到了军火商,并把枪械的名称型号等标准化信息提供给了军火商。双方对100ETH的报价达成一致后,开始准备交易。军火商准备好枪械,放进区块链上的盒子里。这个盒子有两个地址,一个是关联的支付账户地址,还有一个是实物的存取地址。卖方发起一个智能合约,由区块链见证之后植入到这个带锁的盒子里,一直到交易结束前,都不能修改。合约内容如下:

    Loop 统计支付到收款地址的每一个付款方的累计付款金额
    If any(支付地址累计付款 >= 100 ETH) then 停止接收其他任何付款
       Try get(向满足条件的地址请求设置取货密码)
         If 设置成功 then 将付款转付到 军火商账户地址XXXXX and 退回其他账户的付款
         else if 等待时间超过1小时 then 退回该账户支付的金额,回到第一步从头开始统计
         else retry
    Else If 卖方继续等待 then 刷新统计
    Else If 卖方终止交易 then 退回所有支付款项到原账号 and 由卖方设置开锁密码取货
    

    卖方设置完毕后把盒子的支付地址和取货地址都发给买方。买方和矿工见证协议无误后,给盒子通电。买方开始向盒子的支付地址打款。如合约设计的,付满100ETH之前,卖家可以随时取消交易。买家不可以单方面取消,但是买家可以和卖家协商。此时钱还没付完,钱和货都锁着不能用,卖家不会恶意阻挠买家的协商请求,因为卖家被锁住的货价值更高。如果此时付款地址泄露给了其他人,这个人也想买货,那公平交易,谁先交钱谁拿货,其他的钱原样退回。

    买家没有犹豫,快速付完100ETH之后,收到了在1个小时内设置开锁密码的消息。这时卖家已经不能反悔了,买家设置密码123,完成物权转移。与此同时,盒子账户里的100ETH也如数转移到卖方的军火商账户地址,同步完成资金转移。这样一个区块链上的实物闭环交易就完成了,从此黑帮交易再也不用打打杀杀。但是等一等,黑帮片里经常还会发生另外一幕,就是买回去的货发现是次品,后悔莫及!这是现在很多人将区块链技术移植到线下场景最容易犯的错误,物权在上链前的那一刻,缺乏质检验证。这里因为交易的物品是枪械,我们可以在区块链盒子里预埋一个X光扫描仪,通过扫描枪械结构来判断其真假。但这种方式并不通用,而且不同物品的检查需求千差万别。所以真正要完成交易闭环,还需要一个区块链去中心化的质检服务。

    我们把新的盒子改造成一个试验箱,通过封闭的手套可以进入箱子,操作和检查箱子里的物品,但是无法取走。然后像比特岛那样,随机邀请矿工来检查货品。只要诚实的矿工占主导,就可以确定箱子里的货品是否可靠。这种众筹式的实物检查模式,和区块链分布式交易合规检查的原理是一样的,但成本更高。所以再一次我们强调,去中心化不是区块链的目的,我们要在效率和信任间取得平衡。为了优化上述流程,达到真正可用,还需要非常多的工具,等准备充分以后,我们会在后面的章节回来重新解决这个难缠的问题。

    什么是公平

    小时候老师一直教育我们人人平等。但是每个人出生的时间,空间,继承的基因和财富是那么不同,怎么可能做到平等?前面说比特币深层含义是一次财富分配,从目前的结果看,优惠了一部分人,但是把更多的人排除在外。所以经济学有个段子说,如果从现在起,把世界上所有的财富平均分配。那么一周后,还是会有百万富翁诞生,会有人变成乞丐。所以公平不是绝对的,是相对而言的。既然区块链对信任的修复可以做到数学的精度,那么对公平的修复,也许做不到绝对,但是至少能提升。追求公平的终点,最后可能还会回到政治和经济学原理。

    回顾中国漫长的文明进程,有句老话“没有功劳,也有苦劳”,这就把公平分成了两个方向。苦劳是你的付出,功劳是你的收获。大量非标和需要创造性的工作里,这两者难以匹配。但是随着工业革命的进程,工作流已经被大量标准化的分拆,在机器的世界里,有机会做到一致的公平。剩下那些非标的内容,我们可以设计一种交易市场,在货币的统一度量下,在多方的交易撮合下,也达到一致的公平。不论是绝对的机器公平,还是撮合下的市场公平,都被用到了不同的区块链项目里。这也是最近区块链发展最活跃的领域。公平就是在中心化和去中心化之间搭起效率的桥梁,公平、可信的半中心化,是通往安全高效的道路。

    工作量的公平 POW

    这里绝对的公平就是比特币最早的工作量公平(proof of work)。比特岛上原住民都要计算算术题以获得参与资格,这很像中国古代的科举制度。虽然有诸多诟病,但不可否认,在这个数十亿人口的国家,通过考试来分配工作和激励,是最公平的,但可能也是效率低下的。这个考试机制的设计有两个基本要求:

    1. 考试内容和工作能力要紧密相关
    2. 考试题目不能提前泄露,防止作弊

    比特币的工作量证明,专门为此而设计。首先每一次的证明需要加载这段时间的所有交易账本作为一个区块(block),这些账本本身就是矿工们要验证的交易。然后我们在这个账本块后面加上一个小尾巴,使账本和小尾巴组成的字符串,经过哈希变换以后,头部出现足够多的0。这里每个账本块由全世界的交易组成,无法提前预知,而哈希变换是一个完全随机的过程,连续出现10个零,就好像丢10个筛子丢到10个6那么难。一旦账本块和这个小尾巴被验证之后,就会被所有的矿工验证。虽然找到这个小尾巴很那,但是验证起来很容易。被验证的块,一个个连起来就是区块链。如果有人改动了区块链账本里的任何一个字符,都会导致哈希结果错误。非对称加密和数字签名确保了交易双方的交易权限,而区块链工作证明保证了交易结果的正确可靠,两者配合确保区块链的不可篡改性。

    规矩定下了,矿工就各显神通。很多人用计算能力更强的显卡来挖矿,还有矿工使用专门定制的ASIC(application-specific integrated circuit)芯片。这些都无可厚非,因为工作量的考试题,和验证账本的需求是耦合在一起的。矿挖的快,就是账本验证的快,理所应当获得更多的比特币奖励,这就是经典的按劳分配。但因为有些专用芯片挖矿效果特别好,占据了矿工收益的大头,招来了中心化过高的质疑。但既然是在规则范围内,质疑也站不住脚。反而那些质疑者的内心才是中心化的,因为他们在试图用规则外的方法维护其并不正当的利益诉求。芯片被制造出来,人人都可以购买使用,只要其生产没有侵害他人利益。

    但围绕挖矿芯片的速度优化代码,还真有专利争议。AsicBoost在2018年发起了最具争议的专利行动,他们拥有提高哈希效率30%的专利,几乎所有矿工都会使用。开发者社区展开防御,尝试开发绕过他们专利的挖矿算法和新协议。这种升级的专利战争,将旧世界财富和强权的影响力,扩散到区块链世界,引发了大量不满。Coinbase率先采取了防御性的DPL (Defensive Patent License),不久William Ting就和知识产权律师发起了升级版Blockchain Defensive Patent License (BDPL) 以促进专利互通。最终AsicBoost 在2018-03-01宣布加入BDPL,改变了专利争议走向,维护了比特币社区的和平。

    中国矿机企业Bitmain也面临同样的局面,但他不够开放,拒绝加入BDPL。一方面他可能已经在其销售的芯片里用了这个技术,但拒绝承认。另一方面前任设计总监Yang Zuoxing自己创立了Bitewei,却遭Bitmain起诉其窃取了技术。Bitmain的Antpool矿池曾占据超过17%的比特币矿力(hashrate),但这种能力却被社区所排斥。2018年3月Halong Mining(BDPL的成员)发布了其新款DragonMint miner series,短暂抢下了部分Bitmain的矿力份额。很多人期待Halong利用AsicBoost的技术对Bitmain带来进一步打击,以倒逼Bitmain加入BDPL,但似乎也徒劳无功。区块链不是空中楼阁,一整套区块链系统还是要运行在物理世界里。物理世界和人类社会的公平程度,最终都会反过来体现的区块链上。

    除了专利问题,还有一个更严重的浪费资源问题。随着比特币挖矿竞争日益激烈,工作量证明难度日益加强。为了抢夺那相对简单的账本验证权,矿工要在无用的随机题上消耗百倍的资源。就好像为了抢一个包子,大家要比赛跑一场马拉松。为了解决这个问题,大家又想出很多创意。比如为了让计算资源有意义,有人开发了Primecoin (XPM)。这里认证算法是要求找出连续的质数链Cunningham chains,为数学做点贡献。其中最为成功的要数litecoin(LTC 莱特币)。除了比特币默认的SHA256挖矿算法以外,使用了另外一种对CPU和内存资源要求更平衡的scrypt算法,力求避免ASIC大矿池的垄断。同时也把块认证时间提升到了2.5分钟。这样算力的恶意争夺被大大弱化,资源浪费得到缓解,而交易转账的验证时间大大加快。目前有人统计,LTC已经替代比特币成为暗网的潜力代币

    POW算力的本质是时间

    当人们追求算力的时候,被POW工作内容蒙蔽了。不论内容如何,“工作”的最终目的是时间稳定的前行,区块相连保证事件发生的先后顺序不可更改。工作(work)是一个时钟(clock)。Proof of work名字的内涵是Proof of Time。这里把时间和“难度”捆绑在了一起,因为只有这样才能在去中心化系统中维持时针统一。当矿工增加,算力增加的时候,工作难度自动相应的提高,最终时间进度是不变的。而难度的调整有算法保证,不论你在地球还是在银河系外,无需任何事先交流,大家感受到的难度,也就是时间的进展是完全一样的。每一次出块,就是时钟的一个“滴答”。其实时间本就是人类定义的概念,我们发现某些现象规律的发生,这种现象完全中立、可信、去中心化,比如一个原子时钟。利用这些规律我们定义了时间的间隔。但这些规律背后是物理“难度”的约束,光速恒定不变,微观物理事件受限于光速,宏观规律受限于微观事件,最终产生了难以挤压的时间方向。只有在改变时空,改变这种约束时,人类定义的时间才会发生变化,就是相对论。而宇宙这个分布式系统的时钟,虽然有些地方快,有些地方慢,但是事物发展的前后顺序是统一不可篡改的。这种顺序一致性,是POW时钟的最终目的。

    不论POW算法如何改进,区块的时钟不会停止。即使总有人发明高效的矿机来垄断算力,也改变不了时间的进展。虽然POW非常浪费资源,但确实这个设计,是利用宇宙的规律,弥补了人类概念的缺陷。然而人类孜孜不倦的追求时间旅行,想要超越时间的约束,没想到在区块链里变相实现了。通过Proof of Stake一种基于累计持币的激励算法。我们不需要这么频繁每次都考试,将大量精力浪费在机械的备考上。我们把历史上的考试结果积累起来,平时成绩好的,投票权就大。因为从经济角度讲,持币多的人,在这个系统里付出也多,他作恶的投入产出就小,导致没有作恶动机。那些靠挖矿卖币,短线赚钱的人,话语权会受到限制。但是矿挖的好,又长期持有的会被欢迎。这种社会化的制度,在区块链时空中产生了相对论效应,持币者扭曲了时空,实现了时间旅行。目前这种力量不受矿机市场的影响,所以在2018年4月Bitmain发布针对ETH的ASIC矿机后,引发ETH社区的激烈讨论,其中以太坊创始人Vitalik Buterin的选择,就是加速Casper POS协议的实施进行防御。但因为POW时间的属性是一切的基础,所以不存在纯粹的POS,必须是POS和POW的组合。因为如果没有时间,何来时空扭曲?没有时间就没有区块链。

    累计权益公平 POS

    Proof of Stake(POS) 可以说是区块链里面除了POW以外最重要的共识机制。所谓共识机制要承担两个职责:第一是对于记账达成统一正确的验证结论,第二是确保矿工工作的公平高效。所有共识机制都要面对恶意节点的攻击,抵抗攻击的能力分为不同等级。中心化系统的抗攻击能力最弱,分布式系统可以容易一定节点的失效,但是大量串通节点的攻击会导致数据丢失或篡改。区块链共识系统设计的标准是要满足BFT(Byzantine fault tolerance)容错。

    比特币系统的发明,起源于学术界对拜占庭问题的研究积累,但是区块链并不以拜占庭问题为最终目。除了比特币这种高成本的方式,POS是目前最佳的替代品,他们都可以称为BFT consensus。POS的基本原理是基于累积贡献的权重来对新决议进行投票,这样坏的“将军”在实施捣乱攻击以前,需要帮助我军打赢足够多的胜仗。久而久之所谓坏将军其实已经站在我军这一边,失去了作恶的动机。另外有了累积权益,也就等同于信用,所以省去了工作量证明带来的大量能源消耗。这和“意外流行算法”监控友邻节点反常行为的出发点是一致的,但是解决的更加完整而优美。这是对POS的第一层理解。

    深入分析POS,很多人把注意力集中在容错上,而忽略了共识机制更重要的公平。在满足拜占庭容错的同时,POS另一个最大的改变是用按资本分配替代了按劳分配。从理解比特币的第三个层次开始,区块链系统的价值就和其生产力密切相关。而共识机制和激励机制一起,定义了区块链建设者的分配模式,这种分配机制带来货币的分布差异。回归历史,这种新货币的分布差异最终还是会向历史财富分布靠近。POS一旦启用之后,区块链项目的创始基金会因为拥有大量廉价的初始货币,所以能够决定项目的走向并持续获得资本升值。而现有POW协议里靠挖矿来支持区块链价值建设的矿工收益将大受影响。这又是一个向现实世界靠拢的体系,可以用知识产权体系做类比:发明了某个专利的个人或公司,会获得应用这个专利技术的产品收益的一部分。这种设计对区块链发展方向的影响是巨大的,他鼓励开发创建自己的区块项目,或者在通用区块链平台开发上层应用,而不是简单机械的挖矿。从这个意义上说,POS协议是鼓励创新的协议。

    共识机制没有绝对的对错,因为人类合作是一个长期过程。以囚徒困境为例,单次实验的最佳策略是损人利己。但是同样两个人,如果无限次玩下去的话,最佳策略就是合作共赢。学术界已经得出这个游戏的单方面最优解:1. 不首先作恶;2. 以彼之道还之彼身。就是别人合作你也合作,别人作恶,你要报复。当玩游戏的一方直接对外公布这个策略时,他的对手别无选择,只有合作是最佳对策。这也是POS协议优于POW的设计思路,我们要做到合作者受益,捣乱者惩罚。人类历史上有很多经典的决议策略,比如长子继承制,投票制度,知识产权制度等等,他们都对后来的社会进程有深远的影响。区块链的POS机制还在探索的初期,但是已经触及了很多深刻的思考。

    市面上落地实施的POS协议版本很多,比较简单的Peercoin (PPC)采用coin age模式,网络节点无需再以无效的算力去竞争激励,而改为基于累计持币时间的轮流抽奖;还有出现较早,发展稳健也相对成熟的Tendermint;以及以太坊推进的容错更强,且可以削弱寡头的Casper FFG押注模式。但是他们都还没有经过真正大规模的验证,因为POS模式背后仍然有诸如Long Range Attack 和Cartel寡头的潜在问题。其中以太坊的升级道路最为稳健,也是唯一在机制内抵制寡头串通的协议:ETH从2016年开始一个庞大的EIPs (Ethereum Improvement Proposal) 计划代号"Metropolis";2017年已经完成了第一步Byzantium;2018计划完成的第二步Constantinople聚焦在解决共识机制和算力扩展这两个方向。Casper POS 采用了渐进式的 FFG (Friendly Finality Gadget) ,这是一个混合了POW/POS的模式,每50个POW区块会发起一次POS check point,对区块的最终状态进行投票。参与者需要锁定一定数量的代币作为筹码,在验证区块交易的时候如果作恶,代币会被没收。

    发展到现在的POS理论,已经摆脱BFT的强制约束,在寻找新的平衡。在CAP定理里,分布式系统的一致性(Consistence),可用性(Availability),分区容错性(Partition tolerance) 三者不能同时满足。上述的BFT机制处理一致性的优先级要高于可用性,而基于链经济的机制将可用性的优先级高于一致性。没有绝对的公平,需要和实用性进行取舍。链经济版本POS的代表是Casper the Friendly Ghost (CTFG)。他舍弃了严格版本需要2/3绝对多数票来确定区块最终状态的繁琐投票,而是采用开放的块增长模式,以增强可用性。

    公平的三元平衡

    现实世界,不可能每个人都像专业开发者一样实时在线,但是每个经济体参与者都有一定的货币积累。这个时候DPOS委托权益证明(Delegated proof of stake),就可以盘活这批资产,好比金融里的代客理财,或者政治里的人民代表。这给区块链经济带来了新的层次,之后所有现实社会里的合作模式,都会逐渐体现在区块链上。但DPOS只满足放松条件的DBFT容错,这和真正的BFT之间有一个选举代理人的差异,所以不免会被人担心中心化风险。但我们说去中心不是区块链的目的,真正目的是修复社会性缺陷。而经济学也早已证明,在经济规律面前,少数寡头,只要通过频繁换选避免私下协作,就可以保证市场化效率。DPOS正是利用这一规律,通过少量代理人集中资源,加速区块链的执行效率。这种模式一般在少于1/3恶意节点的情况下能保证系统一致性,在公平和效率间建立多元平衡。

    DPOS的代理人陷阱

    实践DPOS的项目不少,但是简单的应用显然无法满足区块链新项目的胃口。一种寻找平衡更激进的方式“政治碎片化”诞生了。虽然我们说DPOS里区块的交易认证和经济激励体系已经高效的去中心化了,但系统的升级和迭代目前还是以开发者社区为主,有一定门槛。EOS试图打破这种形式,他为期1年的ICO完成之后,背后的block.one公司拿走部分融资收益直接退出维护工作,由社区竞争21个代理人席位,决定之后项目的走向。这21个代理人,就相当于议会,扮演了政治角色。这对于EOS体系内的玩家,增加了参与性,而对于能够独立创链的外部玩家,又提供了一个体系内创新的机会。但更加的开放,也隐藏了一种代理人杠杆攻击:

    假设一:代理人具有可观的代理收益
    假设二:选举时大部分票数分散在选民手里
    假设三:选民都是逐利的

    推论一:竞选者会形成寡头并阻碍竞争,使选民损失

    证明:

    1. 一般竞争者将代理收益的一定比例返还以竞争选票
    2. 恶意攻击者逐渐提高返现比例以争夺领先地位。在对手保持不变的情况下,每提高1%的返现比例,会获得远大于1%的选池扩张,最终有利可图
    3. 对手一定有所反击,选票价格逐渐提高,恶意竞争下必然到达某一返现比例,使正常经营的矿工无法覆盖运营成本,导致亏损运营或者退出竞选
    4. 在缺乏恶意竞争监管的区块链世界,最终经营成本最低的矿工都无力负担,市场上只剩下恶意竞争者。恶意攻击者之间直接的竞争最终会导致100%获利返还,整个代理市场持续亏损
    5. 至此攻击者只要自持少量代币资产,以少量的短期亏损就可以获得大多数投票权,相当于金融杠杆的原理。
    6. 攻击者有两个选择:
      1. 选择恶意操作,摧毁市场信用,以被代理者的代价破坏整个市场的价值
      2. 选择寡头联合垄断,逐渐降低返现比例,直至自己盈利。当新竞争者加入时,适当恢复高返现比例进行防御

    推论二:在发生寡头垄断时,分散选民难以形成抵抗联盟

    如果代理人席位有限,新进者需要满足最低标准才能获得资格。这会在选民间形成囚徒困境:如果支持更换新代理的人数不够,哪怕返现再多,我投给新代理人的票也会作废拿不到收益,所以我必然选择投票给寡头。如果支持新代理人的票够了,寡头一定会提高自己的返现比例以进行防御,这时我投票给寡头的收益是最大的。综合博弈平衡下,分散的选民是无法抵御寡头统治的。

    推论三:选民联合体容易被假信息操纵,新竞争者会被寡头收编

    历史的经验不断告诉我们,那些号称要打倒旧体制的人,最后往往也变得和他们一样。当选民联合推举新代理人的时候,他们也是依靠新代理人给的信息做判断。寡头可以通过操作媒体进行抹黑,同时背后收买和腐化新代理人。甚至扶持多名攻击者,串通伪造正义角色,混淆好人和坏人,使选民无法区分。由于投票杠杆始终存在,新竞争者在资本积累不足,无力长期维持高返现的竞争成本时,最佳策略是接受寡头的收买。

    由此可见在区块链缺乏管理的市场环境下,代理投票和代理收益的机制存在重大缺陷。而现实经济世界里的反垄断法,反不正当竞争法,金融管理办法,等等法规的设置都是有的放矢。区块链想轻易超越这些历史积累的规律,自建一套乌托邦是不可能的。

    EOS为期1年的ICO过程就伴随着发币争夺和节点争夺。从ICO启动到2018年6月26号截止,每天固定数量发币,按照充值金额等比分配。哪天充的人少,人均获得代币就多,看似价格低了,但如果之后抢购导致价格飙升,反而意味着之前是捡到便宜。当天充的人多,人均获得代币少,价格看似高了,但是买入成本也高。很多人会犹豫,等充值人数少的天数再抄底。就这样在1年的周期里,充满了复杂的不确定性心理,带来价格的剧烈波动。初期可以说一路下滑,1年时间太过长久。直到临近终点,超级节点争夺前,大玩家进入炒高币值,获得大量套利空间。到6月2号选举当天需要21个supernodes来确保顺利过渡,有50多个公司参与supernodes选举。他们主要是区域的矿工集团和专业矿池,前来竞争特许经营权。有趣的是这时散户的投票比例非常低,竞选者直接购买代币,持币入场。这让前面设计的代理人攻击的第一个假设失效,也暂时保住了选举的安全。但50多个机构只有21个席位,必然有大量背后的结盟操作。这种脱离于区块链记录之外的隐藏交易,是一种隐患。就算机构间顺利达到有利的平衡,但是散户也基本失去了话语权,EOS实质上成为了某种自己选举自己轮流坐庄的联盟链。2017下半年比特币成功抵制SegWit2x分叉的情况将不再出现,机构玩家代替社区掌控了项目的完全控制权。

    不论标准的POS还是DPOS都把政治权利和经济权利捆绑在一起,某种程度上对于后来的区块链参与者是不公平的。所以基于类似DBFT(Delegated Byzantine Fault Tolerance)协议的NEO最值得关注的是处理政治和经济的关系。NEO代表投票权,GAS除了算力支付还可以流通,每次挖矿都会有8 GAS像税收一样打散分配到NEO的持有者手里。项目发起方以及参与方可以把资源投入到基础平台建设,换取NEO的投票权;矿工和后期参与方也可以选择把资源投入到智能合约和交易的执行上,换取GAS的经济权。NEO和GAS间有交易市场可以兑换,这和以太坊单纯将GAS作为测量单位完全不同。NEO的进一步探索,赋予了GAS独立的货币权。项目发展初期GAS作为交易货币曾经随着交易量上升持续升值,在2017年8月甚至超过了NEO本币,但最终回落在1 GAS 兑换 0.5 NEO的均值。考虑到最终NEO和GAS总量都限制在1亿枚,所以GAS的定价不会太低,这带来的负面作用就是NEO平台以GAS结算的智能合约运行成本过高。另一个负面问题是目前投票的主要节点bookkeeping nodes集中在创始的7台机器上,中心化程度很高,虽然计划2018年会扩展,但总体还是受控的。

    小结一下:POW和POS都是可以清晰定义的,满足BFT条件的技术协议。但是公平不是简单的机械过程,除了考虑共识还要考虑分配,最终在去中心化和效率间寻找平衡。这个世界上除了CAP定理还有很多不可能三角(三元悖论),比如商业社会的,质量好、速度快、又安全的不可能三角;经济学里的:“一个国家不可能同时实现资本流动自由,货币政策的独立性和汇率的稳定性” 不可能三角。通过区块链的改造,我们从可信(一致性)的一角出发,走到了公平这里,在向效率转移。可信、公平、高效 就是区块链的平衡三角

    验证者的两难困境

    代理人不可靠,其实验证者也不一定可靠。这种不可靠并不是因为贪婪,或者恶意,而是纯粹的,最简单的经济博弈的结果。矿工通过自己的计算资源,验证账本块来竞争奖励,这种需要合奏的场景下,很可能存在“南郭先生”。一个南郭先生偷懒,大家听不出来,一个矿工偷懒,还有很多矿工在验证。我只要默认别人已经验证的交易,直接去抢算POW激励就可以。但很多人偷懒,大量矿工聚集的矿池偷懒,就会导致账本冲突,甚至区块链分叉。以前就真的发生过这类事件,称为SPV mining。

    偶尔偷懒可能还不是恶意的,但利用这种漏洞可以构造相当恶意的攻击,比如“抢答攻击”。这种攻击在比特币交易型网络的作用不大,因为验证交易相对容易,并不会获得很大的时间优势。但是在以太币这类EVM算力网络里,复杂的计算需求确实能够拖慢整个网络。攻击者先发起一个计算成本高的任务,但事先自己算好了答案。为了让主链执行这个任务,需要很高的执行成本,即手续费。但因为自己知道了答案,可以通过抢答拿到这笔手续费,相当于自己支付给自己,实际攻击成本为0。而诚实的验证者为了执行这个任务,消耗了大量算力而来不及得出答案,逐渐在出块的进度上落后,只能接收攻击者的出块提议。这样攻击者没有付出实际的成本,就实现了DoS(Denial of Service)攻击的效果。逐渐攻击者的挖矿收益会大于诚实矿工,劣币驱逐了良币,可能会引发更大的危机。还好留给攻击者的空间也不是无限的,如果攻击任务的计算难度和验证难度过大,有可能阻碍这个特殊区块的正常广播。节点执行验证任务的耗时和节点遇到网络延迟的情况类似,受到阻塞的节点账本更新进度慢于外部节点的更新进度。当大多数没有受这个耗时任务影响的节点,累积了长度超过这个阻塞区块的新块时,阻塞区的矿工也会逐渐放弃任务,转而跟随没有包含这个攻击任务的长链。最后出块的最长链里没有这个攻击任务,攻击者也拿不到收益。

    所以通过一段时间的试探,偷懒的矿工和恶意攻击的矿工,都会产生自适应的策略。诚实矿工可能会对计算发起方有一个评级,安全性高的可以偷懒略过验证。攻击矿工可能会不时的发布些有一定强度的任务,以拖慢其他矿工,但还要平衡攻击的执行成本。作为平台的共识机制,可以进化到POS模式,并对矿工有考核,甚至要求资产抵押。但风险和收益的细微失衡,都会促使某些验证者铤而走险。从定量博弈上分析,在满足下面公式的情况下,就可以激励矿工坚持验证,维持区块链的公正公平: $$ 略过验证的时间收益 * 单位时间优势对应的出块概率 * 出块奖励 < 作弊被发现的概率 * 抵押资产的损失 $$

    所以应对方法就很清晰,限制每个块的交易数量和执行极限。那些计算消耗大的交易和任务需要分拆执行,在多个块进行验证。这样略过单一步骤的时间优势有上限,而新块的计时会重新开始,导致等式左边的收益项无法累加。同时基于Casper POS协议对参与验证者的资产进行抵押,要竞争更大的收益就需要加大抵押,进一步加重等式右面的损失项。这样资产越多的验证者越不愿意作恶,也就基本避免了这种现象。当然还可以通过加大抓作弊的力度来进行惩罚,但实操起来会有些复杂。现实中倒是有类似场景,就是机场的缉毒犬。这种警犬通过条件反射的训练,能够利用强大的嗅觉,隔着行李箱识别里面的毒品。它们训练过程中设置的激励是食物,但现实中发现毒品的概率太低,很难获得激励。其实正确的排查没有毒品的箱子也是重要贡献,如果缺乏相应的校验和反馈就容易滋生慵懒。所以训练员会不定期的放置问题行李当做诱饵,一方面刺激警犬保持警惕的状态,验证它的能力,另一方面也是补偿激励。这种诱饵法,在智能算力的一些项目里有实施。

    VBFT匿名委任共识

    可见以人的恶意假设为基础,要超越三角平衡是非常困难的。我们需要进一步缩小人的作恶空间,用算法来约束流程。在POW/POS保证了“公平”,代理机制提供“高效”的同时,用可验证随机函数Verifiable random function VRFs来加强“可信”这个角。这一方法源自于图灵奖得主Silvio Micali在2017年发表的一篇论文 “Algorand: Scaling Byzantine Agreements for Cryptocurrencies”。其中提出了基于 VRFs的代理人选举方式,当然VRF的概念他们早在1999年就提出过,只是在DPOS里发现了应用场景。在区块链委任共识里,按照VRF选出的区块提名者和验证者,是匿名当选的,只有当选人自己完成第一次确认。这让权力蒙上了面纱,腐败和贿赂很难渗透进决策流程。而且当选单次有效,当选者提名区块的同时,揭示自己的选票,由验证者来确认其当选身份和区块有效性。验证完成后该次选举结束,选票自动失效,所以无法形成多人串通,难以持续保留权力。

    应用该算法的Algorand项目是比较纯粹的,通过一个随机数发生器来随机决定下一个区块的生成者是谁。这种VRFs随机数发生器不需要广播,不需要见证,仅凭验证函数就能达成共识。而提名者的选中概率根据其余额权重分布(POS),任何人(包括上个区块的发布者)都无法预测下一个发布者是谁。在提名区块的同时,也会提名下一次随机函数的SEED,这样将共识不断传递下去。接收到的提名区块,通过自创的Byzantine Agreement (BA) 来达成共识,类似PBFT,在2/3以上诚实节点时可避免Sybil attack的风险。最终这种共识机制可以实现弱同步(weak synchrony) 下的共识,就是说可以异步一段时间,但需要跟随足够的强同步(短于异步时长)来维持共识状态。正常同步态下是4次交互达成共识,而在最差情况下也可以保证13步以内达成共识。

    模仿这个设计,2018年4月Ontology就发布了他们的VBFT共识项目,是POS和VRF的合体。在VRF确保了随机性、匿名性、和瞬时性的基础上,可以大大加快共识过程又保证安全性不受损害。Dfinity和Cardano的Ouroboros共识也都使用这个思想。其中Cardano的Ouroboros版本基于publicly verifiable secret sharing (PVSS),而Praos版本使用VRF加强了异步网络下的共识能力。但这种动态分配机制下,如果要做sharding的分区扩展会遇到麻烦,给存储和计算的网络同步带来额外压力。所以只能说VRF是在解决共识机制的三元平衡,而暂时无法解决区块链算力和存储的所有问题。但方向是确定的,我们不断走向更加接近机器控制的共识,大大降低每个节点的人为操控。由机器控制的区块链,在后续章节将继续展开......

    机器的公平

    当共识机制深陷在人类对公平的矛盾诉求时,回过头来看,物理世界并没有碰到那么多问题。第一次工业革命放飞的生产力来源于能源的机械化使用,因为机器的运转是稳定无偿的。信息革命放飞的生产力虽然并不直接作用于物理世界,但信息的流通大大加强了物理世界的联通协作。通过信息技术连接起来的机器,能够达到远超人类组织的劳动能力和效力。于是在通往生产力和公平的泥沼里,我们想到了机器。如果我们把交易的主体从人,改变为机器,从互联网时代迁移到物联网时代,机器的区块链还是会现在这个样子吗?

    DAG物联网络

    机器自治区块链的主要推进者是IOTA,他们第一个改造是让交易的需求方,同时变成了别人交易的验证方。因为物联网里主要是机器交互,所以他们大都在线,当发起交易需要支付手续费的时候,可以顺带挖矿帮别人交易验证赚回手续费。这个理念的优雅实现是一个有向无环图(DAG)的交易网络Tangle。每一笔新交易都在网络图里指向前序的两笔交易,交易发起方需要帮助确认这两笔交易,然后等后续交易指向自己来帮助验证自己的交易。交易验证也需要POW的工作量计算以避免作恶,同时混合了POS权重,由关联节点路径累加而来。挖矿的奖励埋在DAG网络的tips - 新交易节点里,从tips出发的蒙特卡洛随机游走来选择前序交易的bundle组成区块。区块不断被验证,tips被挖走,新的交易tips在DAG网络的尾部生长。当有节点交易信息出错时,后续新交易通过验证会逐渐放弃这个异常节点,而集中在正确的节点链上生长。最后节点组成的区块又会被总体验证一次,以保证主链DAG网络的一致有效。当你的某个历史交易被50%以上后来的tips间接引用,表示大概率会被最终认证。99%的间接引用可以说交易确认,因为接下来的游走几乎必定会走到。

    这种基于随机过程的算法,在项目初期很不稳定,所以IOTA基金会通过官方节点Coordinator来保障交易验证。但是所有其他节点也都可以验证Coordinator的有效性,保持去中心化的性质。要体会当前时刻的DAG网络可以看实时的IOTA节点网络图,其中红色的milestone就是官方干预的确认节点。当交易量足够高的时候Coordinator会退出,完全由机器自己运行。2018-03月 Coordinator把milestone发放速度从2分钟加快到了1分钟,这样交易可以更快的被milestone引用也就是确认。DAG网络除了省去交易手续费以外,最大的好处是随着网络扩张,DAG网络增长加快,带来交易验证速度的加快,安全性也更高,并不会面临传统区块链的性能瓶颈。但在进行网络攻击的时候,攻防的胜负也是概率事件,防御机制虽然有理论证明但还需要时间的验证。

    IOTA的第二个改造是一个可加密的消息广播通道。他的MAM (Masked Authenticated Message)机制把每一个机器设备都变成了永不停歇的发报机。首先基于Verifiable Claims做发报主体的身份认证,然后通过或公开、或私人、或限制授权的形式在Tangle的网络管道发报。新消息接在老消息后面,老消息解码以后,可以看到新消息的nextRoot。所以收听方只能收到当前节点之后的消息,不能回溯。在这个机器互助,不断壮大的物联网消息集群里,可以预见智慧城市,自动驾驶的区块链未来。目前主要的瓶颈在于物联网设备的计算能力,并不是所有物联网节点都可以作为互助节点,有的只是上报数据但不参与交易和验证。但随着客户端芯片和设备算力的稳步增长,物联设备总有一天会走到一起。

    区块链虚拟机VM

    机器的进击远没有停止,交易过程确认后执行的脚本,除了记账还可以做很多事情。这就是以太坊开创的Ethereum Virtual Machine的世界,扩展到极致就是图灵完备的虚拟机EVM。整个系统看做一个状态机,每次交易就是严格按照挂在交易脚本下的二进制文件去执行状态变化,像个忠实的投币机器人。为了保证计算结果的有效,这个二进制文件需要在区块链上重复执行以被不同节点验证,这导致了性能瓶颈。对节点运行代码的激励以GAS来计算,最终兑换成以太币。目前ETH的EVM程序运行能力只相当于老式手机,无法允许用户运行哪怕稍微多一点的代码,而且成本很高,速度慢,唯一优势就是去中心化的运行保证。目前基于以太开发的只有一堆小应用Dapps,以博彩,游戏为主。很多应用主体其实并不在链上,而只是把其中一部分资产和交易环节上链。

    为了方便开发者使用,以太有一套自己的ERC标准,可以在这个自动柜员机上,发行自己的货币,或者进行资产登记。其对应的标准就是:ERC20、ERC721。前者是通用的发币标准,按照ERC20生成智能合约,就是在以太上修建了一个自动柜员机。如何取币,可以取多少币,都写在机器代码里,每一次的取币交易也都在区块链上记录。从此以太网上生出了无数的ERC20小币,这种token和比特币的coin不同,无法挖矿获得,是一种虚拟代币。但区块链应用里这两者有时候也无需区分太细,可以统称数字币或者加密币。网上还有10分钟教程帮你成为百万富翁,其实早说了技术本不是门槛,矿工和社区支持与认可是真正门槛。另外一个ERC721标准则更像一个房产登记处。和ERC20无差别的数字币不同,721标准发出的token都有不重复的身份编码,就好像人民币上面的数字编码。这种编码用在货币上用处并不大,但是用在资产登记上恰好可以保证物理资产的唯一性。所以车辆登记、房产登记、物流溯源等等项目都是基于ERC721的智能合约。

    区块链虚拟机虽然现在还很虚弱,但只要保证充值,就可以保证运行。如果里面运行的是一个人工智能程序,那可能真就是一个无法拔掉电源的AI。虽然这一天还很远,但现在已经有DanKu from Algorithmia 机器学习竞标平台。由需求方发起合约,提供训练数据。开发方下载数据,设计算法,再上传到EVM测试执行。满足设计目标,完成支付,需求方就可以直接在区块链部署该算法。如果最终EVM突破了性能瓶颈,而人类的社会性缺陷也被制度补齐,人类的协作能力终于可以和机器齐平,两者完美的结合也许会带来再一次革命吧。

    获得计算的力量

    当区块链拥有了几乎我们所有想要的特性之后,如何大范围的实地运用是区块链升级的重点。我们获得了科学和制度的力量,现在渴望计算的力量。力量的攫取分为纵向和横向,纵向是让单一计算资源提供更多的算力,横向是扩展更多的计算资源。计算机代码的执行效率,硬件内核的优化,算法的优化都是解决纵向的问题。并行计算,算法的分布式,数据的分布式,都是解决横向扩展的问题。区块链的算力扩展,视使用场景而选用上述方向的组合。

    交易的加速

    从POW到POS是一层交易的加速,因为相同的计算资源,现在从过度的POW上释放出来支持更快的交易验证。除此之外,仔细分析交易的行为模式,我们可以通过冷交易、热交易的区分,来进一步优化计算。比如我们的资金管理,大额存款作为冷交易保存在银行卡或存折里;每月的日常开销我们放到一张网银卡,可以关联移动支付工具;小额零钱我们直接充值到微信钱包这样的移动支付终端以支持快速交易。比特币网络里也存在同样的操作空间,这就是2017年中第一次分叉提出的闪电网络 lightning Network。他基于并联加密,创建一个共同“基金” (two-party ledger entry),双方提取定量的币值合并在一起。双方都可以快速的从这个基金签名交易,交易本身不对主链广播,只是不断刷新自己。任何一方都可以关闭这个基金,以最终结算金额同步到链上。这样只发生了两次区块链交易验证,但可以实际执行很多次的链外交易,大大降低了区块主链的负担。

    上述只是两个参与人的情况,如果是多方转移,且各方之间没有直接建立共同基金,而要从中间人的lightning network做跳转的话,需要类似区块链储物盒那样的中间人义务和回滚协议,称为Hashed timelock contract (HTLC)。比如A要支付给D,A和D不熟也没有直接建立闪电网络,但是A和B有闪电链接,B和C有闪电链接,C和D有闪电链接的话,支付仍然可以完成。回忆比特岛上带锁的盒子,这里使用类似的哈希加密,加密结果作为快递盒子广播到这些中间人,而且有时间限制。A用D和盒子,以及AB间闪电网络签名来完成第一步转移,逐层传递。盒子是透明的,所以ABCD之间的转移对外界可见,如果超时则逐层回退。D收到盒子之后,提供钥匙以确认和C的交易完成,C再把钥匙回传确认和B的交易,如此类推。除了广播通信延迟带来的风险外,可以认为这种链外的快速支付通道是安全的。

    微支付的应用

    生活在中国的消费者,被微信和支付宝宠坏了,体会不到区块链微支付的作用。其实东南亚很多国家现在还大量使用纸币,比如泰国就是以现金为主。好在围绕纸币的外汇兑换铺在旅游区已经比较普及,但纸币带来的安全和结算问题始终存在。也许隔两个街区,泰铢的柜台汇率就会有差异。但其实泰国的年轻人已经人手一部智能手机,网络技术的渗透早已不是问题。可惜基础金融设施的落后,目前无法提供快捷的微支付和在线跨境结算服务。这里区块链高效跨境支付的作用得以凸显,和微信或者支付宝可以在同一起跑线齐头并进。除了东南亚,通信和金融设施发达的欧美,也并没有形成便捷的微支付通道。这主要是因为长期依赖信用支票和信用卡的实体支付方式已经非常普及,解决了线下支付的便捷和安全问题。也许随着年轻一代的成长,手机移动支付市场和区块链微支付市场才会在欧美迎来春天。

    这种链外的交易通道除了在跨境法币间建立结算桥梁,还可以用来做跨链、跨数字币种的交易Atomic Swap,目前已经公布了测试网络代码。2017年底发布了Bitcoin到Litecoin的测试版,以及Bitcoin到Ethereum的智能合约版本。闪电网络本身的加速,加上转移到LTC的灵活性,使得区块链经济体的交易已经具备冷热层次。之后我们讨论区块链货币,就不只有比特币和现在热门的一些货币,更是一个完整的支付生态。比特币单价高、交易慢但是安全好比存折;LTC莱特币交易快、币值可靠好比银行卡;闪电网络好比网路银行;中心化交易所好比取款机只用于小额提现;和现有移动微支付体系打通的话,就可以让区块链货币渗透到当下的移动支付场景里。

    去中心化交易所

    交易加速从协议层到链外的通道层我们定义为从layer1 到 Layer2的扩展,这个扩展不只是运用在微支付。多链和Layer2的扩展,还使得完全去中心化的交易所得以实现。Plasma项目组就孵化了OmiseGO这个去中心化的跨链交易所,发币代码OMG。他可以跨链,跨钱包交易。在多币种间进行高维排单的最优化。L4 Research更进一步设计了一种更通用的Generalized State Channels。根据Li Xuanji在2018年2月ETHDenver会议上分享的Counterfactual Instantiation:联合签名Multisig钱包,使用Registry接口注册counterfactual address,协议执行和签名只需在参与方的机器上执行即可。

    去中心化是否是交易所的进化方向呢?2014年BM创建的bitshares就最早提出去中心交易所这个概念,现在不论layer1还是layer2都有很多这类尝试。但到目前为止,这些项目上的交易规模比中心化的还差很远,可以说不成气候。是因为没有需求吗?中心化交易所每年都有被黑客攻破和卷款潜逃的案例,每年都有人提去中心的改造。但去中心化目前只作为市场的补充而存在,很大程度还是受产品体验的影响。我们知道开源项目最擅长做的是架构和基础设施,而用户端产品一直都是互联网企业的强项。因为交互流程,产品体验,视觉设计,金融规则等方面的人才在开源社区非常少,基于开源的技术框架,用企业化的包装和运营,可以更有效的抢占市场。区块链钱包是这样,交易所也是。而且这两者都有规模效应,当中心化企业占据一定市场规模后,支持的币种多,交易规模大,体验会越来越好,后来者很难追赶。

    但只要中心化企业收取过度的垄断利润,就会有低价的挑战者出现。2018年新项目fcoin,提出交易即挖矿的概念,将手续费收入返还用户,通过分利的方式试图同时满足中心化的效率,和去中心的利益分配。这个理念吸引了很多链圈开发者和老用户。但在缺乏监管的市场里,惨遭分身攻击,通俗讲就是被黄牛党薅了羊毛。项目团队也短视,顺势完成了一次漂亮的韭菜收割,让人怀疑之前刷单的会不会就是庄家自己。在规模经济的规律笼罩下,在团队信息不透明,市场短视的大环境下,去中心化交易所目前还无法达到设想的高效和安全。

    空间的扩展

    当交易越来越普及,区块链里的账本也会越来越大。为了保持系统的信任和公平,不能轻易删除这些信息。还好在比特币最早的设计里已经考虑到这种情况,设计了Merkel Tree的分叉树存储结构。交易挂在Merkle Tree的叶子节点,从叶子节点往上每一层的数值都是下面关联子节点的组合哈希值。一层一层最后所有的节点汇集到一起,最后得到的哈希值就是Merkle Root。比特币每10分钟一个的区块block只需将这个Merkle Root保存到区块头(block Header)即可。对历史交易复查验证的时候,将需要验证的交易信息从叶节点往上追溯,只要追到认证的Merkle Root即可。所以这种方式是一种用计算时间换空间的置换。
    merkle root

    配合这种树结构存储,加上全账本节点(Full nodes)和轻节点(lightweight nodes)的层次,可以缓解现在比特币系统的储存压力。上述分工中全账本节点需要保存所有交易明细,这个储存量从2016年初的50G,到2017年的100G,再到现在150G,在以每年50G的速度增长,预计到2019年会超过200G。而轻节点使用上述Simplified Payment Verification (SPV),只需自己储存空间很小的区块头,然后到全节点获取和某个交易相关的哈希路径,并计算Merkle Root就可以完成交易确认。

    基于终态而非日志

    存储结构固定以后,网络的同步方式有多种。传统数据库的主从分库,是通过binlog这样事务安全型日志来保证分库间的数据一致。这也是区块链保留所有交易记录为基础的原因。但在所有的历史交易里,对未来有意义的只有那些没被花掉的余额Unspent Transaction Output (UTXO)。比特币的这种记录数量有5000多万,dbSize不到3GB。基于这样的账户快照,就可以极大的清理储存空间。QTUM是支持UTXO账户模式的智能合约平台,算是对比特币和以太坊的一次整合。为了克服兼容的冲突,加入了账户抽象层,将UTXO模型转换成可供EVM执行的账户模型。并提供通用的Consensus-critical coin picking,但所有这些优化都集中在交易层。

    Nervos项目是对EVM终态更彻底的整合,其状态机更新基于状态结果而非日志事件。从创始人Jan的访谈里可以看出,他们虽然从以太坊开发者社区来,但是对比特币的POW基础和能力推崇至极。项目底层Common Knowledge Base (CKB) 的目标是优化存储和计算,通过分级客户端,使其运行在轻设备甚至移动设备上。状态程序类叫做Cell,类似UTXO,每次更新需要先复制再修改。区块参与者分 Validator, Generator的分工,遵循新的混合共识机制,支持并行优化和匿名优化。设计思路基于这样的事实:计算出答案和验证答案的复杂度差异很大。比如排序复杂度在$$O(NlogN)$$,而验证结果的复杂度只有$$O(N)$$。当计算和验证分工解耦之后,其对应的计算关系需要事先建立,所以Cell的Type是事先约定的。当然一系列的优化,其目标是综合性能,而非单一的空间扩展。

    除了上述基于性能优化的主动改变之外,还在进化中的IOTA也会被动频繁的快照清理空账户,因为他的一次性签名不能重复使用,导致大量的弃用地址。但不论动机如何,综合来看,就交易数据本身而言,已经足够紧凑。随着Layer2交易通道的开启,多元交易平台的组合,以及硬件设备本身的进化,交易的数据储存不再是区块链社区的核心痛点。更重要的存储问题,在于和交易关联的服务与应用的数据管理。

    半中心化的混合区块云

    当所要储存的不单是账本,而是大文件或者数据资源时,区块链真正的痛点来了。让每个全节点重复保存所有文件显然不可能,这里最简单粗暴的方法是文件仍然储存在云平台的云存储上,而文件内容的哈希特征值保存在区块链进行所有权记录和交易。知识产权验证的区块链项目都使用该方法,将图片或者文章转换为特征值上链。即使云平台的图片或原文丢失,只要有人能够补充提供,并且通过哈希特征检查,就可以确认作品的所有权。我们将这种模式概括为双层结构的云上区块链,其中对云并不是强依赖,所以整个系统仍然保持去中心化特性。

    当要存储的是隐私文件时,可以将哈希特征上链,但文件本身不能直接上传云平台,需要在存储之前进行加密。这种先加密,再上传,最后记录区块并执行交易的方式概括为三层结构的夹心区块链。这就要求用户钱包app同时具备区块链账户交易和文件加密的功能,这种模式在大数据行业有广泛应用。以车联网为例,每辆行驶的汽车会产生大量行驶轨迹数据,该数据所有权归用户所有,并且可以直接定位到用户位置,非常敏感。用户需要在车机端就完成数据的加密,在数据使用时又需要用户客户端的解密和授权。CarChain车链项目就是按此模式设计,通过手机钱包对车载系统进行绑定和设置,行驶数据以Key-Value模式推送到HBase这类分布式高性能数据库。其中Value进行RSA加密,私钥保存在用户手机钱包里。为了更好的保护隐私,用户钱包以“地址池”形式存在,不同日期的行驶轨迹被打散到不关联的多个地址,防止通过云平台单一地址的信息串联来反推用户。该项目完成了用户端的数据保护,是夹心结构的第一层。夹心结构的第二层是分布式存储,以hadoop的HDFS为例,需要将其中NameNode改造为存储分配的账本和计费依据,而DataNode仍然作为数据存储块分发到存储网路里。夹心结构的第三层是数据权益和交易层,记录数据所有权简单,但是隐私数据的交易和使用仍然是一个遗留问题,需要在安全的计算区或者转化为零知识等价计算以防止数据原文泄露。我们会在后面章节重点讨论该问题。

    完全去中心的星际文件系统

    不论是双层还是三层结构,都不是完整的区块链,文件存储的责任和激励难以直接植入到区块链经济体系当中。为了解决这个大难题,我们先回顾传统的分布式文件系统是如何设计的。从单一文件系统开始,每个文件都唯一的存储在磁盘上的某个位置,在读写时需要一个文件名称和位置的对应表,相当于一个目录。有了目录和文件,就形成了一套文件系统。如果目录损坏了,或者文件所在的磁盘区损坏了,都会导致文件不可读。所以分布式系统第一步是把文件分散存储,通过设立多个独立的磁盘,把文件复制多份保存,这样即使某个磁盘坏了,还可以从别的磁盘读到。但跨磁盘的管理,需要这个文件目录也同时升级,记录同一个文件在不同磁盘上的位置。除了做文件备份,还可以将超大文件分拆保存。随着这套体系庞大以后,为了优化性能,文件的分块和磁盘分区独立出来成为虚拟的block。以HDFS为例,Block的抽象简化了存储系统,以Block为单位进行复制大大提高了效率。这次虚拟化,也把管理文件的目录Namenode和存放文件块的Datanode区分开,由单一Namenode来分配新文件,由Datanode来分布式存放,既保证了效率,又保证了分布备份。

    但这里的Namenode作为单一master节点的话,仍然存在单点故障风险,去中心化并不彻底。简单的做法是给Namenode实时备份,这里必然产生额外的设备和带宽成本,还有一定延迟。另一种做法是减少Namenode的工作内容,HDFS里目前Namenode就只保留文件树,而文件的Block分布在集群中的哪些节点上,是通过Datanode上报得来的。这一做法往前进一步的话,就是把文件树也备份到Datanode上。这样虽然浪费了点空间,但文件和目录都安全了。然而不难发现,新文件进来的时候,还是需要Namenode来单一的拍板决定其存放位置。所以文件的分拆容易,但是高效的统一管理难。这又回到了是否要去中心化的问题,在之前讨论共识机制时,也曾经面临效率和安全的平衡。借用共识机制的DPOS节点选举在这里处理Namenode似乎不太实际,用VRFs减少了交互,但复杂性仍然很高。

    那我们把文件分配的任务再简化一下,不需要分析网路情况和block空间,只依据文件的名称和内容,按照固定的block大小强行分拆文件。然后存储节点也唯一的根据其属性建立和文件的映射。这相当于所有节点都是独立的,但是大家完全按照统一的标准配合,在无需主节点的情况下完成文件的分布式存储。这样的方案就是Kademlia。他使用分布式哈希表(DHT)计算每份文件的Key,而这个Key和存储节点的NodeID是生成在相同数值域的,生成规则全网统一即可。任何一个节点接到新文件存储的时候,都先分块、复制并换算这个Key。接着计算该节点上友邻表里和这个Key的异或距离(XOR)最近的NodeID。文件被传送到这个和他更相近的节点,层层传递,直到某个节点NodeID是所有邻居中和文件Key最相近的,就直接储存下来。当要读取文件的时候,直接输入文件的Key,任何节点都能帮你找到存放这个文件的位置,然后上报其储存的内容。

    现在解决了去中心化的分配规则,但如果每两个节点间都需要知道彼此的地址,也就是说每一个节点都连接着所有节点的话,那会是一个相当冗余的复杂网络。当有N个节点的时候,网络的连接数为$$N^{n-1}$$,任意节点间的距离为1。但现实中的人际社会告诉我们,每个人的朋友不需要太多,按六度分隔理论,不超过6个人转介绍,我们就可以认识世界上任何一个人。也就是说存在一个数字k,每个节点只要保存k个邻居的地址,就可以在$$L \propto log_kN$$ 次的转移之后,达到这个网络的任何一个点。目前世界上的总人口超过75亿,要满足6度理论的话,理想情况下每人只要有45个朋友就够了。极限情况当K=N的时候,就是最密集的结构,全局信息直接暴露给所有节点,也容易在被攻击时一锅端。这样也有好处是任何一个节点的退出都不影响网络的连接性,但是任何一次信息同步都也会造成整个网络的扰动。另一个极端当K接近1时,每个节点只有一、两个邻居,最坏的情况下,要经过所有节点转介绍,才能到达那个最远的节点。这种网络是非常脆弱的,某几个节点断开都可能导致网络失效。当k取值合适的时候,就生成了一个小世界网络(Small-world network)。

    计算机里的世界都是2进制的,所以构造这个网络反而容易。我们令NodeID和Key的二进制地址长度为D,那么可以容纳的内容量和节点量就都是$$2^D$$。我们把从低位到高位的2进制数位看成不同的年级,最低那个年级的0和1只能存放2个节点,而最高那个年级的0和1则分别代表了整个网络的两半。Kademlia的k-bucket路由表,就是记录了每个年级离自己最近的那个邻居,一共D个。从低到高,这个二进制表实际上就是一个高度为D的二叉树。任何一次查找的复杂度,都和起始节点的高度有关,类似二分查找的情况,能保证在$$log_2(2^D) = D$$次查找下找到任何一个节点。平均情况下也已经从数学上证明查找复杂度为 $$\Theta (log_kN)$$。同时我们观察到$$log_2(2^k) \approx 10 * log_k(2^k)$$,最坏情况离平均情况不远,得到很好的控制。所以Kademlia的路由效率是标准的小世界网络。在此基础上如果抛开所有节点平等的假设,在邻居数量服从幂律分布的小世界网络里,可能通过一些高通量的中继站,进一步缩小网络的平均距离。这里我们再次看到了去中心化和效率间的平衡。

    有了Kademlia的网络,加上BitTorrent的传输层,就是完整的去中心化文件系统。免去了种子文件的麻烦。只要知道文件的哈希地址,就可以从任何节点下载文件。后来又加入了Git的版本管理,形成现在的星际文件系统 InterPlanetary File System (IPFS)。该系统就像鸡尾酒,调和了各种工具的优点,整合在一个统一的文件系统框架内。IPFS自己还在不断进化,其中下载速率,垃圾文件清理等等问题都还存在。但缺失的最大一块拼图,是激励机制。BT下载是按照网络上传贡献来换取下载资源的,但IPFS的文件系统对帮你保存文件的人没有有效的支付方式,导致现在大量文件隔天就会被清理。当然你也可以以物换物,只要你自己有储存节点挂在IPFS网络里,并且PIN到你上传的某个文件,那作为交换,这个文件就会在你的节点在线期间,安全存储在网络里。这么做似乎太原始,门槛也有点高,到目前为止IPFS还远达不到中心化云存储的效率和便捷性。

    为此IPFS的创始人Juan Benet 发起了filecoin项目,希望将区块链的激励机制进一步整合到IPFS系统里。我们说过凡事要诉诸利益,而非理性。有了激励机制以后,可以带动大量的闲置存储资源上链,在供应充足的情况下,网络协作效应会导致成本大大降低,安全性极大提升。可以预见这个文件系统有望成为主流,甚至替代现在流行的云存储。所以在2017年8月对外融资时,成为当时公募金额最大的ICO(除了私下发行的Telegram以外):
    top 10 icos

    在给予激励前,要先验证存储,最直觉的方式就是抽查。不定期的随机调取文件的某个片段,所有储存了这个片段的节点上报结果进行匹配。正确的给予奖励,错误的奖励清零。但何为正确、何为错误?在完全去中心化的网络里,每一个节点都不能完全信赖,其中的拜占庭容错和区块链交易共识面临的问题完全一样。所以有了POW,POS等等共识机制的差别,在文件系统里,我们追求的是空间贡献的公平。Filecoin设计里的存储方会提供Proofs-of-Storage (PoS) 证明。为了验证和计费,还需要进一步Proof-of-Spacetime (PoSt) 。在Filecoin最新文档里使用叫Proof-of-Replication (PoRep)的共识机制,由其他区块链节点来验证该证明,中间经过挑战和响应的交互过程。通过序列化的PoRep,可以递归证明该文件累计的存储时间POSt。整个过程还依赖zk-SNARKs的匿名验证以及Seal操作。听上去就很复杂,更别说要保证效率会有多难了。为了让这个复杂的流程在区块链上运行,交易过程分为储存和读取两个交易市场,以针对性的协调矿工合作。该项目ICO已经过了一年,每季度的官方博客汇报很久不更新了,github上代码说是合并在ipfs项目里,但看不出有什么进展。

    算力的扩展

    在加速交易时用到的layer2通道,还可以执行通用的EVM代码,是算力扩展的最简单方式。双方参与的交易不仅可以在闪电网络快速的执行,双方参与的应用程序也可以在Layer2通道运行,称为通用状态通道。比如有两个人要下一盘围棋,并且以1ETH为赌注。那么他们每人提取1ETH充值到通用状态通道的共同账本,总额为2ETH。同时围棋的代码也被加载到这个通道,只要双方对代码无疑义,就可以开始下棋。对弈结束以后,获胜的一方提取这2ETH并且同步到主链以完成确认。在单纯的交易场景下,如果一方反悔,交易金额会回退。但是在执行代码过程中反悔,情况要复杂一些,需要在特定执行步骤获取执行方签名以便最终仲裁。下围棋这种回合制的程序是非常合适的场景,因为每一步落子都可以进行签名和主链广播。主链有一个冲裁智能合约,对参与方的身份和执行流程进行验证,以便在出现分歧时做最终裁定。所以通用状态通道这种形式的算力扩展,主要适合离散的状态机代码,比如交易,回合制游戏等等。而且需要限制参与人数,并且对各参与方的网络链接稳定性有要求。

    上述理念还可以进一步推广,就是以太坊的Plasma项目。他使用MapReduce的机制从主链生出子链,子链还可以再生,子链以主链为root做中转。子链使用自己的高效共识模式,比如Proof of Authority(PoA)。资产必须先在主链生成再传递给子链,在子链完成复杂计算并同步回主链。这样子链的计算更快而且成本更低。如果发生恶意子节点,有两层防御:首先任何人都可以先发起fraud proof,证明false block的存在,执行子链回滚,类似下围棋回到上一步。然后如果子链信息不全,无法证明fraud,那也可以直接发起Proof of Funds,把资产提回主链,类似这盘棋重赛。使用类似原理的还有独立项目Lisk,除了支持侧链以外,还支持JavaScript等开发者社区更加普及的语言,开发者也是算力扩展的基础。

    不论对开发者多么友好,或者分裂更多的侧链,最后仍然会面对主链的性能扩展。开放类型的EVM代码还是要运行在每一台参与验证的矿机上,我们称其为Layer1的扩展。其中sharding 分布式是目前探索最多的方向。该技术来源于数据库,将需要执行的计算或者数据进行分区。在区块链里,就是将需要验证的交易或者智能合约分配给不同的矿工群来负责。Prysmatic团队提出了一个两步走的sharding方案,新加坡的Zilliqa团队也有基于新加坡国立研究的BFT容错的Secure Sharding protocol版本,但扩容的同时只能承受25%的恶意节点。因为我们在分区时,削弱了全网认证的安全性,分区内的交易只被选取的一部分节点认证,如果分配不小心,碰巧这些节点有串通,那交易将面临风险。所以sharding的难点有两个:第一个是保证分配过程的随机性,在区块链系统里,这个随机性需要整个分布式网络来保证,否则非常容易被恶意节点操纵,定向攻击某些交易。目前有一套RANDAO方案,具有预防串通和懒节点的优化。第二个难点是分区管理和验证的机制,需要Validator验证节点来管理验收,而由可靠随机方案推选的Collator工作群来分工处理不同批次的交易。可以说所有大型商业项目都需要这种性能扩展,否则无法支持现实场景的大并发。月活2亿的Telegram发起的区块项目TON里也明确了sharding的计划。此外还有野心巨大的Cardano(主要负责人 Charles Hoskinson是原以太坊联合创始人)声称兼具POS、递归网络、账本分区(Partitioning)和侧链(SideChain)等等的多级提升。

    智能算力的自组织

    我们完成了交易的加速,空间的扩容,以及算力平台的扩展,这些都是为了获得真正计算的力量。这个力量源自于之前简单提及的以太坊虚拟机EVM。在区块链里做交易首先要有独一无二的地址,人控制的钱包地址代表这个人的资产,而有一种地址是机器控制的,你只要投币,他就执行设定好的程序,这就是智能合约。比如我开设了一个博彩合约机,每次可以接受1元投币。当投币满100元之后,会随机挑选投币账户中的一个中奖者,把90元钱打给他。再支付5元钱给运行这些抽奖代码的矿工,最后剩余的5元钱会打给我这个开发者的账户,作为手续费形式的盈利。一旦这台机器上了区块链,就没有人能够阻止,是一台不知疲倦的自动贩卖机。当前述那些性能扩展完成之后,我们可以开发一种更强大的自动问答机,他通过预训练的深度神经网络,从海量的IPFS文件库里,为你寻找答案。这个愿景就是大家俗称的第二代区块链。

    二代之后还有没有进化空间?cardano项目首先提出了他认为的三代网络,但他的目光还停留在算力平台的范畴,所说的分区、侧链都还是第一代的基础问题,我们已经讨论过。当他完成第一代算力平台的扩展,释放虚拟机代码的能力,这个能力的探索,就是第二代网络的延续。而将算力平台和虚拟机的交互打开,由虚拟机反向选择算力,才是第三代区块链。这种形式可以类比为计算机病毒,病毒算力可以做到对计算资源更强的传播利用,但现在离我们能够驾驭这种能力还很遥远。我们还处在第一代的尾期和第二代的初期,所以这里重新定义区块链的三个发展阶段:

    • 第一代:去中心化的算力和结算平台
    • 第二代:机械算力的分发和应用平台
    • 第三代:智能算力的“自主传播”平台

    第三代区块链需要3次能力释放才能到达最终状态,第一次释放的是智能合约对网络算力的反向选择。其实目前大家所说的智能合约并不智能,他只是机械的执行固定的指令,姑且称其为“机械合约”或者“自动合约”。我们知道成熟的分布式系统设计,首先要考虑该算法任务是否可以分布执行。以多变量加法为例,我们可以分组相加再求和,实现简单的分布式。基本的矩阵变换也都具备这个性质,所以把算法转化为矩阵计算,就可以很容易的设计并行程序。还有些序列式优化模型因为前后依赖,所以并行化有特别的设计。比如最基本的线性回归并行化,会用到mini batch和梯度下降。但是更加广义的线性规划以及CVP逻辑环问题就难以并行。真正的“智能”合约就需要在内部对其并行化进行处理,当广播到区块链执行的时候,可以自动分配任务并回收。

    智能合约自主寻找算力之后,第二个面临的问题就是共识机制。所以平台基本的共识能力需要开放给智能合约自主选择,这就是第二次释放。站在合约的主观视角,或者将这个视角开放给合约使用者,就可以直观的监控合约计算结果的收敛情况。按照使用者自身的需要,来选择收敛的终点。比如某些个人提交的计算需求,没有被攻击的价值,那可以很快完成收敛,提交者快速拿到答案,节省算力。而某些博彩类涉及金额巨大且公平性要求极高的计算,就可以经过更多轮的收敛以确保结果的可靠性。甚至有一些高性能安全计算区的存在,智能算力可以指定执行,简单核对几家就能确保有效。只有在出现分歧时再寻求一般算力的众筹见证,并对验证出错的安全计算区收缴押金甚至直接隔离。

    两轮释放后,智能算力已经可以用来训练人工智能的深度学习模型。传统意义上的机器学习训练需要集中大量数据集和参数,但通过“参数服务”的并行化和训练样本的分块化,并行训练的模型精度已经逼近和代替集中式训练。在三代区块链上,就可以将训练样本分开储存在IPFS,并将模型参数分开储存在不同节点上组成参数服务器来并行更新。在早年的“寻找外星人”项目里,其实已经在用类似的思维。给智能算力开放更多的存储和更多的外部资源调用就是第三次释放。这也是最危险的释放,因为恶意的智能合约就等于是计算机病毒。而人工智能的附能,使其可以成为自我进化的病毒。历史已经证明,精心设计的Stuxnet病毒可以传播千里,直到进入伊朗核电离心机才苏醒,用加速设备老化的手段实施隐形攻击。如何管控这些自组织的算力,就是完成第三代区块链最后的门槛。

    COSMOS以及其上面的irisnet这种多链生态是满足上述要求的一种解法,但是弱耦合的。主链对子链并不具有完全的决定权,子链可以是某个私链,只将区块头哈希同步到主链上。子链反过来也很难得到主链足够的支持,比如分布式存储和隐私算力,都要子链自己完成。但这种弱耦合是容易取得进展的,就像开源生态,大家拼拼凑凑可以搞出一个不错的东西。但进行深度的整合和优化会有更大潜力,能够为区块链应用和各种算力需求方解决真正个性化部署。这是我们向往的第三代区块链,也是应用真正大爆发的一代。

    区块链3.0 智能算力平台

    但在落实第三代区块链的时候,传统的交易需求并不强烈,反而是AI算力走在前面。SingularityNET 就是专做人工智能算力的平台项目,用区块链实现AI智能民主化,建立AI agent之间的自主合作,还有数据和模型共享。听起来是一个很诱人,很伟大的项目,但在区块链世界里是一个很复杂的问题。抛开实现的细节,单从神经网络需求方看的话,这种网络算力似乎没能很好的区分模型训练和应用。做过大数据集群就知道,在大规模并行计算,尤其是神经网络训练时,并行化算力之间也保持一定的相互依赖,一些节点的失效或者延迟会大大影响整个系统的速度。所以主流AI厂商都是用尽可能高性能的单机去组合一个紧凑的模型训练集群。这和“寻找外星人”项目里,大家分头找,说不定谁先找到的情况很不一样。反过来如果不是做训练,而是做模型应用(推断)的话,则会简单很多。但伴随着AI的持续热潮,同类项目一茬接着一茬,还在积极推进中。2018年5月Singularity宣布和Ubex智能广告平台合作提供其智能算力。6月又宣布和深脑链DeepbrainChain建立合作,使Singularity的AI agent可以选择调用深脑链的算力。

    眼花缭乱的操作背后,是Ben Goertzel的手段高明。除了作为SingularityNET的CEO,他也是人行机器人Sophia背后公司Hanson Robotics的首席科学家。被AI领袖Yann LeCun大肆批评的Sophia,和AlphaGo相比甚至和自动翻译软件比起来,都算不上高科技。但奈何其抓住了观众的G点,在市场上收获颇丰。所以SingularityNET项目很可能不是作为完整的算力平台在设计,而只是AI模型间的协作平台,更简单说其实是智能接口串联应用平台。而这些模型的核心,训练的数据和算法,并不一定要运行在该平台上,可以像以太的Oraclize一样做外部接口封装。最后AI应用,AI agent串联平台,AI基础模型和数据形成一个三层弱耦合关系,倒也对应了Ben的主张。可见Ben真是一个整合高手,带着上下游一起圈钱。

    真正意义上的区块链3.0算力平台更像是Golem 这种闲置算力的共享市场。2018年4月上线,基于以太交易系统提供激励生态。初期运行CPU算力,后续陆续支持GPU。但正如之前推演的,这种算力的最大难点在安全。所以项目邀请了Joanna Rutkowska配合集成安全计算服务SGX,从计算核心向外建立起安全环境保护应用。Joanna是安全操作系统Qubes OS的创立者,此外还有Graphene LibOS支持这一实现,他们Fork的新版本在2018年暑假发布。对比之下 Intel以前的Trusted Execution Technology (TXT)是从业务侧反过来检查计算核心做自我保护的,但是无法实现对环境的完全监控,可能被镜像攻击。所以完整的智能算力要从业务侧和核心侧进行双向防护,以规避平台方和用户方的多重威胁。国内像360这样的安全公司似乎更加擅长这个领域。期待操作系统,网络安全,区块链技术的融合在这一领域取得突破性进展。

    从移动比特到移动原子

    把所有区块链的力量从线上扩展到线下是最重要,也是最难的一步。如果说区块链账本记录了无形的信息比特,那么现实世界我们要调动的就是由原子组成的物质。我们已经举过区块链盒子为例来展示比特和原子的差异,问题停留在区块链上链前的物权验证上。为了将这个验证去中心化,以苹果为例我重新设计下述流程:

    1. 将一个苹果放进区块链盒子
    2. 随机分发100个专家来验证苹果
       1. 每次10个专家到齐后开箱,确保没有人替换物品
       2. 专家验证后提交意见,并确认锁箱
    3. 过半专家确认就可执行交易
    

    这里寻找专家需要成本,如果专家意见一致达成交易,需要交易双方来支付成本。如果有专家作恶,还会面临物品遗失的风险。但在数字世界就不存在这些问题,显而易见移动比特和移动原子最大的差别就是成本。比特可以几乎无成本的复制和转移,所以失败的比特币交易并不会让区块链有缺损,重来即可。这导致一般的网络攻击并没有意义,除非获取50%以上算力,而这又意味极高的成本。但现实世界的失败交易除了交易成本外,还有可能损失物质价值,这给作恶带来了便利。按照热力学第三定律,物理世界趋向无序,人们耗费很多能量维持现在的有序状态。而作恶者破坏这种有序的成本是极低的,就像打破一扇玻璃那样简单。

    淘宝和顺风快递之前的商业摩擦就代表了比特和原子之争,背后是成本模式带来的业务模式差异。移动比特的边际成本为零适合做平台,以免费服务吸引客流。而移动原子按照力学定律需要消耗和质量相匹配的能量,所以一般都是预付费来平衡风险。好在移动原子本身已经有完整的商业模式,这里的问题是建立原子到比特的映射。区块链上的登记牌就是这样一种映射。虽然没有移动物体,但是我们可以先将物体所有权登记在区块链上。在以太坊里可以利用标准的ERC-721来实现物权登记智能合约,物权持有方将物权信息登记到这个智能合约投币机里,合约执行唯一性检测,并全网广播完成区块验证。但这面临和快递盒子一样的难题,就是物权的验证。目前实际推行的物权区块链都需要依赖中心化节点对上链物权进行官方认证,一旦上链之后,交易过程才可以安全的去中心化。

    要解决物权验证问题,关键不在物体本身,而在于验证者,也就是人。因为物体本身是不变的,物体验证相当于信息采集,不同的人有不同的判断能力,相同的信息对不同的人也意味不同的价值。所以在解决物权问题前,我们要先解决人的去中心问题。而人也分为精神和身体两个部分,我们后面会分别讨论。假设解决了上述所有问题,就可以产生基于物品的协作平台,而工作量证明有可能产生物理意义。比如货品的扫描,物流的线路规划和自动驾驶都可以借用比特的算力去实现。进一步还可以把物品转移的方法运用到工作技能的转移上,产生任务众筹的区块链平台。到这里区块链进入了全新的领域。

    移动注意力

    相对于人们身体的移动,人的精神力量是更加容易比特化的。人们其实很早就发现了这种低成本的物理协作机制,虽然这里移动的不是原子,而是原子的生产力:人的注意力和知识。比如reCAPTCHA把识别模糊印刷体的任务穿插到了验证码识别的动作里。还有更加复杂的协作系统wikipedia,linux开源社区等等,我们统称为远程协作。上述这些都是公益项目的例子,有可信赖的中心化平台。因为信息透明所以作恶成本高,而知识共享所以没有作恶收益,直接削弱了作恶动机。上述平台到目前为止都运行良好,也不需要区块链的改造。但有另外一种远程协作经济体,是带有直接经济激励的。以新闻app趣头条为例,用户浏览新闻,也浏览广告,平台基于这些行为给予用户积分。每天的平台收入按照一定比例分发给当天产生积分的人,最后可以提现。这就把用户对平台的贡献返还给了用户,激励更多人来参与平台建设,是媒体经济的一个齿轮。另一端的齿轮就是内容生产,中国社区由流量带动生产者,而欧美社区则是由优质内容带动流量,第二个齿轮的区块链化就是steem。因为区块链的改造,使得内容创造不局限在某几个大平台,而是嫁接到所有内容生产者个体。他们可以在自媒体植入steem的发币插件,在用户浏览和评论的时候,作者可以获得数据货币奖励。最后货币在交易所兑现,人们实际上在为优质内容买单。

    这个模式固然成立,但不一定成为主流,因为赚眼球的知识不一定是真正深刻的知识。对于高等级知识的判断,有一套更加传统、昂贵但是有效的体系。比如大众媒体靠日用品广告赚钱,专业媒体靠耐用品和金融广告赚高收入人群的钱,这个市场规律也是区块链无法动摇的。所以除了基于流量的基本激励外,还需要有评论员额外分配一部分基金会的货币,给那些不易理解,但是深刻有价值的媒体。这些评论员和小众媒体如何选择?还记得“意外流行算法”吗,眼光全面的评论员可以预测一般内容的受欢迎度,但深刻的小众内容不易被大众察觉,只在优秀的评论圈里“意外流行”。把这个规则写进steem,并调整激励机制,我们将得到一个更加丰富多彩的内容市场。

    除了知识协作,区块链虚拟机的智能合约在获取外部数据接口时,也需要对外部信息进行去中心化验证。这里没有复杂的信息发布,只是对信息源的反复确认。目前成熟的外部服务有Oraclize,他在一个中心化服务里包含了TLSNotary Proof协议,用一个锁定的开源AWS实例来对接口请求进行审核。另外也可以借用类似Augur的预测市场来对外部事件投票押注。当越接近事件完结,结论就越明显,投票也越可靠。但只是为了一个简单的客观结论,就调动这么多真实货币的集体投票,似乎有点小题大做了。我们可以按外部数据的重要等级划分,先调用中心化服务,在无法达成共识的时候,借用注意力经济来人工投票。这也算是注意力的一种生产力,类似原理应用在区块链盒子对简单物体的远程验证,也是有效的。

    不论区块链上的注意力经济发展的多么壮大,我们都不要忘了人类最初的好奇心和求知欲。甚至有时候经济的激励反而会毒害这套情感的驱动机制。注意力的背后是人,而人是感性的,曾有一个预言故事:

    以前有一群小孩儿喜欢来我家门口踢球,运动非常激烈,动静也很大。没几天我就觉得烦,嫌他们太吵了。一开始我善意地提醒他们换一个地方,但似乎不起作用,这群小孩都有些叛逆。后来我改变了策略,我对他们说:看到他们踢球让我想起了年轻的时候,我很开心,决定每次他们踢完球就给他们每人5元钱。没多久他们就习惯了这种经济奖励,所以当2周之后,他们踢完球我没有给钱时,反而让他们很失望,甚至恼怒。这群小孩儿那天扫兴而归,之后就再没回来我这里踢球了。原本单纯愉快的事,在和金钱挂钩之后,就像被诅咒一样走向物化的弊端。

    这则寓言的诅咒其实是容易解决的,作为最昂贵的注意力供应者,开发者的开源社区一直运作的非常好。这里信息是免费的,但开发者的时间不是。优秀的开发者通过免费的信息与社区合作探索未知,积累开发者声誉。最后通过提供工作时间来进行价值变现。这里的核心环节就是声誉。咨询顾问同样如此,通过市场会议和媒体撰文进行知识传播、积累声誉,再按照顾问时间收取费用。艺术创作稍有不同,因为作品难以复制和延展。但如果直接给图片、音乐这类作品产权上链标价,每次展示都计费,反而限制了其传播。就像1941年美国电台联盟对ASCAP音乐版权联盟的集体抵制一样,作品失去了传播就失去了价值。最后ASCAP妥协,电台以更低的价格,更便利的条款获得歌曲播放权。当代的Pandora电台数字版权困境也及其类似,这种中心化的版权运作显然是人类社会协作的重大缺陷,非常适合用区块链来修复。但在使用区块链的时候要非常小心的引入经济元素,因为基于自我满足的创作和服务他人的创作在激励模式上本质就是分离的,切忌本末倒置。

    比特人

    人的知识和注意力上链以后,轮到人的身体。新时代的知识社会,对人工劳力的依赖在减弱,更关注的是综合能力。这种能力难以评估,只能做一定可靠性验证,这就是信用。信用是人类社会的基石,不论是在知识传播领域,还是在商业领域。之前不同领域的声誉局限在内部传播,比如开发者的能力受开发者社区评估,音乐创作的能力受听众市场验证。这些能力或者声誉在面对普罗大众的时候,非常容易受乌合之众的打击。区块链可以尝试修复这一社会性缺陷,建立一个更加普世,更加通用的去中心化信用体系。这一体系的基本是个人身份归一化。因为信用体系是需要累加的,所以参与者天然具有整合信用的需求,只要提供一个安全的记录载体。这里区块链再合适不过,以基于椭圆函数的加密地址为基础,串联这个人的多维度信用集合。市面上已经有很多这样的应用,用户以私钥管理自己的信息和身份,在需要验证的时候,区块链发起验证合约,用户用私钥钱包签名确认。这个签名过程可以发生在线上,也可以是线下开启自己的汽车,或者在某个商务合约上签字的时候确认身份。保时捷已经和XAIN推出了这样的区块链车钥匙

    有了统一的身份体系,就可以把所有商业环节记录下来。不论是软件开发,还是歌曲创作,产品的价值是通过商业活动体现的。我们只要记录一个人所有的商业记录,就可以得到普世通用的信用评分。现有的中心化系统里,这个评分由中央银行保存,他会影响你申请信用卡,影响你贷款,找工作,甚至出国旅游都有可能牵连。但这么重要的信用信息,却不属于我们自己。我们需要用区块链修复这一问题,让数据回到他的主人手里,并通过安全协议和共识机制保证结果不被篡改和滥用。现在的商业文明里,存在大量灰色地带。冒名顶替、刻意隐匿行踪,背后都藏有不正当利益。在接受阳光评论的正统电商体系外,就有“微商”这样的隐形市场。在那里没有交易店铺,没有商品许可,没有点评反馈。是商家在刻意隐瞒还是消费者真的没有触网?设想我们用“信商”来代替“微商”,所有的交易在区块链上记录,并且生成相关联的评价合约。菜场里卖菜的摊位,服装店的小老板,做雕刻的手工艺人,这些阳光下的职业都会加入这个“信商”的体系,建立新的商业文明。

    基于新的信用体系,也会催生出新的社会合作模式。前面区块链盒子的物品验证不再是问题,首先有卖家的信用背书,不放心的话还可以选择一个信用等级高的中间人来辅助判断。听上去好像又回到中心化的意思,但这里最大的区别是:以前信用是中心化的,基于中心化信用的合作也是中心化的;现在信用是去中心化的,基于新信用的合作也就是去中心化的。虽然没有让所有矿工来验证这一笔交易,但是验证这个交易的人,经过了大量矿工的评估,是有代表性的。类似的物权登记合约也能够基于信用最终落地。可见信用就是打通比特到原子的关键纽带,是充分条件,也是必要条件。在新信用体系建立之前,所有用区块链替代中心化人工服务的计划都会失败。服务能力无法客观评价也就无法定价,最终难以交易,劣币驱逐良币。

    除了交易可以积累信用,信用间的背书和传递,基于持币量的信用,对违约的惩罚,都会作为变量不断优化这个算法。终极的信用体系是数据完全开放,算法也完全开放,由不同的供应商基于相同的数据,提供差异化结论,最终由市场去检验。信用保证了交易,大大降低交易门槛,从量变积累到质变就会催生真正的众筹协作平台。人们不用见面就可以发布任务,完成任务,并为此付费。coinbase收购的earn就在这个方向尝试,甚至以后会扩展到线下业务。Earn基于区块链,信用体系没问题,但数据是短板。所以初期Earn的账号认证要对接Github和Linkedin这样现成的个人商业信息平台。离开熟悉的数字领域,进入艺术品领域就难有现成的数据辅助。Verisart正在这里探索,通过艺术品上链,艺术市场撮合,他有机会从头建立艺术品的信用信息系统。相信更加复杂的信任认证领域,后续都会逐渐加入到区块链的大经济体中来。

    比特机器人

    区块链上人的信用是社会化信任,基于经济原理运作。人活的越久信用的预期价值越大,作恶动机越小。而机械世界的信用是对于科学原理的信任,基于可反复验证性。从对未来的稳定预期角度看,机械化是区块链更深影响现实世界的途径。区块链盒子里的苹果不是人放进去的,而是机器。苹果本身甚至不是人种植的,而是直接在机器农场培育和管理。在投放到区块链里进行交易的时候,信息已经是真实可靠的,最后由机器人运输队完成物流。但似乎很多时候机器人也会出错,比如看似最为可靠的ATM取款机。英国有大量取款时双倍吐钱的案例,但大部分银行都没有发起诉讼,即使起诉,惩罚力度也不大。因为ATM业务作为银行传统柜台服务业务的延伸,其失误的责任当然应该由银行来承担,正如银行不能因其柜台工作人员的工作失误而拒绝承担相应的责任一样。所以英国《银行业惯例守则》对银行的定式条款施加了具体限制:银行可以免除 或减轻《银行业惯例守则》中没有免除的持卡人的责任,而不能加重其责任。但类似案件在国内却是相反的走向,2007年许霆案就因为恶意占有最终判以五年有期徒刑。

    我们可以看到,当机器是人的代表,那么机器的行为也是人的延伸。在分歧处理上,是背后代表人力量的对抗。英国对于弱势群体的保护和中国既得利益群体的强势,造成了相同案件完全不同的判决结果。但是当机器发布到区块链之后,他的责权义务如何判定?共识机制是由所有矿工建立的,而机器的执行代码是开源多方贡献的。中心化社会在寻求对比特机器人的约束时,无法归责到具体个人,所以一般会引入第三方安全评估机构,以及保险机构。评估机构基于专业知识对机器人进行基础检查,包括了EVM代码、机器人和智能合约的通讯,以及机器人自身软硬件设备。而保险公司基于评估结果和机器人的历史运作情况,设计保险合约。使用该比特机器人时可以选择购买该保险。上述过程可以扩展到区块链去中心化平台里,就像上文比特人的开放信用体系一样。机器人和EVM的代码开放给社区进行验证,验证者基于自己的能力和信用评级,公平竞标该机器人的保险合约。使用者在其中自行选择,支付的保险费作为赔付基金,未消耗的盈余作为验证者的激励。

    个人信用和机器人信用的最大差异就是追责机制。比特人信用作为事前参考,只在发生了恶意事件后,通过线下追责。而比特机器人的信用是事前通过保险基金池来实现的。验证者完成验证后充值初始化赔付基金,每一个购买保险的用户持续对该基金充值。发生恶意事件后,从基金池进行有限赔付。超过赔偿极限外的损失是无法弥补的。这就是为什么在科幻电影里,我们对人工智能有先天的恐惧。因为面对坏人我们可以报仇,而面对邪恶机器人,我们反而显得异常无力。机器是没有恐惧和道德的实体,反过来说,其实机器也异常公平和高效。现在的机器人还停留在单一职能的工业化领域,当生产出具有人工智能的通用机器人以后,随之而设立的一整套管理体系,并不会比管理人的机制简单。因为这样的机器人,不再是简单可预测的,超大规模的深度神经网络已经超越了创造他们的科学家的理解能力。在我们企图将人进行物化管理的时候,机器反而在人化,最终在基于经济原理的社会化信任平台,达到统一。

    睡莲网络

    当可信赖的人和机器共同协作时,可以产生巨大的网络效应。21世纪初个人计算机兴起,MIT媒体实验室曾经发起一个让贫困地区的家庭和儿童也能拥有计算机的100美元计算机项目(One Laptop per Child - OLPC)。为了解决在没有运营商网络下的计算机上网问题,使用了一种随建即连网络 (Mobile ad hoc network)。该网络内的节点相互共享和传递链接,形成一个去中心化的广域网。实验室创办人尼古拉斯·尼葛洛庞帝当时曾举过一个简单的例子:有一只青蛙想要过河,它当然可以游过去,但是看到河面上布满了睡莲,它想到更快捷的方法是一个接一个的从相邻睡莲间跳跃到河对岸。这个网络我们命名为“睡莲网络”。回想小时候,下完暴雨路面积水,当我们要过路的时候,也是拿几块砖,一步一块铺成一条虚路。当砖块不够用的时候,还可以拆后路补前路,两块砖循环摆渡。还有很多场景存在这样的应用,比如搬砖时工人间相互传递的人力网络,比如旅游时每天一客栈的住宿网络等等。区块链可信赖的去中心化机制,使得睡莲网络可以在数字世界大放异彩。这一技术似乎并没有使人类社会前进,反而退到了最初,退到了无政府时期,全民协作的社群世界。

    我们把“机器公平”章节的物联网钱包IOTA,智能合约EVM,“计算的力量”章节里的分布式存储IPFS,分布式算力Sharding,比特机器人等等区块链的能力全部串联起来,几乎可以实现所有基础设施的去中心化。每户人家开放自己的随建即连网络,并在门口马路边建造路灯,乡村街道由这样的路灯串起来。当有车辆经过时,路灯亮起,汽车和路灯用IOTA完成微支付,消息在即连网络里传播。车辆到达目的地,停在共享车位,借用主人的充电桩给电动车充电。社区要修建一条新的高速公路,农户共享自己关联的田地,在车辆经过时支付微路费,这样应该就不会有钉子户了。看似不太现实的场景,其实在人类社会的边缘时常发生,比如南极洲,和宇宙空间站。根据1961年6月通过的《南极条约》,冻结所有对南极的领土主权要求,规定南极只用于和平目的,他属于全人类。南极考察站就是在一种共享互助的原则下建立。国际空间站也基于同样的情况由六国联合运营。

    进入外太空,当旅行者1号于1977年9月5日发射时,就正好赶上176年一遇的行星几何排列。利用引力加速,航天器只需要少量燃料以作航道修正,其余时间借助各个行星的引力加速,就可以一艘航天器连续造访太阳系里的四颗气体巨行星:木星、土星、天王星、海王星。这就是星际睡莲网络,旅行者1号借此只需要12年就能完成平常30年的星际旅程,而且截止到2018年仍然正常运作。回到地球上,区块链社区也在以同样的接力向前推进。最初的比特币白皮书由中本聪Satoshi Nakamoto发布,后来外号V神的Vitalik Buterin在社区提出了扩展比特币协议的提案,并联合创造以太坊。当时的合作者Charles Hoskinson又基于提升区块链性能的目标创立了Cardano。区块链的发展才刚起步,我们还处在第二代算力的初期。通过DAO去中心化的基金管理形式,在超越国界的领域里,推动区块链技术的发展。

    技术开发容易,但有时实施改造很难。以即连网络为例,实际上成熟的运营商体系,已经将网络通讯服务做得很好。在充分的市场竞争下,消费者承担的费用也相对合理。这让改造的成本远高于改造后带来的收益提升,不具有商业价值,这就是物理世界的常见问题。历史上经典的案例就是计算机芯片的指令集标准,早期复杂指令集CISC就因为当时CPU非常重视代码长度而带来历史遗留问题。后来的RISC精简指令集虽然有并行化的性能优势,但改造现有软件以支持新系统的成本过高,并不具备商业可行性。最后一直到P6架构的x86,这个开发起来像CISC,但是执行起来是RISC的版本,才算完成过渡。我们身边所有现存的中心化服务并不是没有原因的,在去中心的公平和中心化的效率之间,随着技术的发展,在逐渐融合。

    透明和匿名之间

    隐私和信任同样重要,因为在前言里我们提到了一种思想实验,在思想透明的城市里,所有人都可以直接阅读对方的心思,这样能否建立合作与信任?答案是否定的,因为没有了隐私。反过来也一样,完全的隐私保护,大家都不了解对方的过去,信用就无从说起,信任也无法建立。区块链技术本身是高度透明的,每一笔交易都对全网公开。但是区块链地址是虚拟化的,只要这个地址不提现,不与物理世界的人和物发生关联,就可以永远保持匿名。而且还有一种提供mixing service的中间商服务:他们在付款和收款人之间开设一个黑盒子,多个支付账户先付款到黑盒资金池,黑盒子内部会随机轮转,打乱之后分别支付给收款方。这样既可以完成等量的资金转移,又无法确定具体的对应关系。Dash的PrivateSend就是这种形式,其隐私性促使其成为暗网的流行交易代币。但是这个中间商是一种中心化的存在,在Dash里是masternodes,在传统网络支付里,支付宝在银行的中间账户也扮演类似角色。对于央行来说,只看到很多买家付款到支付宝,支付宝又打散付给很多卖家,隔离了资金流向明细,所以存在监管问题。2017年由中国支付清算协会组织发起,受中国人民银行监管的“网联”平台就是为解开这个黑盒子而存在的。

    看似透明的区块链,正好相反是高度匿名的。那些蜂拥而至的资金,在逃离社会责任的同时,隐藏了多少不可告人的秘密。如果不能在这些匿名的账户背后确定稳定的主体关系,或者无法让虚拟账户和社会实体关联,那区块链将永远停留在空中楼阁。信任的定义是对于事物连续性的预估程度,匿名地址和这种匿名交易,很多都是一次性用完就换,使得参与方无法积累对连续性的认知,也就没有长期的信任。所以现在有不少项目在基于区块链建立统一的ID身份体系,比如Namecoin可以将公钥和易记的姓名,以及各种身份ID绑定成为虚拟DNS服务;比特币钱包Coinbase可以用email和比特币地址绑定,转账直接支付到邮件地址。但他们似乎只是在为用户寻找好记的名字,并没有真正解决问题。一个相对小众的项目PICOPS找到了正确的方向,他们为线上的区块链交易,提供线下身份核实。使用Onfido提供的证件验证和活体检测等技术,在对交易有约束的场景里,确认交易主体符合要求。所以不论是透明还是匿名,最终的目的是信任的安全传递

    比较遗憾的是欧盟隐私法规GDPR的发布导致PICOPS的下线,GDPR走到了保护隐私的又一个极端。在给予人民绝对安全的同时,我们在损失流通能力。只有信息和信任安全的流通起来,才能盘活整个经济体,形成大规模的社会协作。在大规模社会协作里,才有宏观优化的可能。这些年流行的大数据,人工智能,都受益于此。国家的宏观经济政策和社会调控也需要这样的数据视角。所以完全信息能达到的那种信任强度,能否通过部分信息来实现?在信息不完全公开的情况下,能否进行宏观计算?这些非常困难的问题,我们要回到科学的工具箱里,寻找答案。

    蒙上眼睛的证明

    回想“可验证的科学”章节里,我们通过椭圆函数的单向放大性,设计了椭圆函数签名。在不泄露私钥的情况下,也能够向对方证明该签名是我的私钥完成的。这就是我们需要的“信任的安全传递”。椭圆函数签名太过复杂,我们用相对简单的哈希变换,来实现同样的效果。哈希变换是一种将任意字符串随机转化为另外一种特定长度字符串的编码方式。编码是随机的,但也是固定的。从源码出发,永远都会得到相同的编码,而且不同的源码对应的编码也不冲突。但是从编码出发,却无法反推到源码。就好像一扇单向门,永远只能走一个方向。

    One-time Signature 单次签名

    现在小北基于这种编码,制作了一个迷宫。迷宫周边有26个向外开放的门口,用字母A~Z表示。迷宫里面有无数连接这些门的通道相互交错。通道上有很多单向门,如果不小心走错了,可能永远都走不出来。小北住在这个迷宫的某一个入口,但是没有人知道。一天小北放了一个信箱在Z出口,她说欢迎大家给她寄信。为了防止有人偷看,小北把Z的门锁上了,只留下投信的小缝,她说她会从住的地方走过来拿信的。小楠听了不相信,你怎么证明这个信箱是你的呢?于是小北把小楠带到了F入口,她说你进去右转右转再左转,就可以看到信箱了。小楠一试果然如此,但是这样F入口就暴露了,难道小北住在这里?小北微微一笑,从F入口到Z是单向门,但是从F入口到不了她家,这只是她取信时候途径的一个地方而已。

    其实小北住在S,这个S就是小北的私钥,F就是签名可以用于验证,Z是她的区块链地址。编码的生成过程是从S经过几十次哈希生成F,再从F经过几十次哈希生成Z。但显然这个F一旦用过一次以后,就不能再用了。所以这种基于哈希的签名方法,叫做一次性签名one-time signature 简称OTS。这种算法的一大优点是计算速度快,而且抗量子破解 Quantum Resistant,也就是发明了量子计算机也无法破解出私钥(椭圆函数签名可以被量子破解)。但缺点也很明显了,每一次签名验证,都会暴露哈希链条里的一段,从F到Z的所有点都会一起暴露。当然链条足够长,几十个哈希点可以再往上选出一个来做签名。OTS签名也经过了很长的发展历程,现在IOTA项目里使用的就是相对成熟的winternitz OTS 版本:

    用户生成SEED
    基于SEED和编号ID一起生成10个区块链私钥:PriKey
    私钥经过26次哈希得到公钥: PubKey = Hash^26(PriKey)
        公钥发布到网络用于收款
    取款时进行签名
        将交易内容的文本,映射到0~26之间的数值: N = f(TxContent)
        根据该数值对私钥进行N次哈希(N不能为0,否则泄露私钥) 得到签名Sign = Hash^N(PriKey)
    矿工对签名验证以确认交易
        基于相同的交易内容,映射到26~0之间的数值: M = 26-f(TxContent)
        	可见:M+N=26
        矿工对签名进行M次哈希,数值结果和公钥(一共经过26次哈希)一致则验证成功
        	Hash^M(Sign) = Hash^M( Hash^N(PriKey) )
        				 = Hash^(M+N)(PriKey)
        				 = PubKey
        如果交易内容被篡改,M就会出错,或者签名有问题都无法算出公钥,导致验证失败
    

    这种方便快捷的签名方法,要反复使用也可以。比如IOTA官方节点milestone的签名就使用了Merkle Trees的方案,在保证官方节点地址不变的情况下,还可以反复支付和签名:

    milestone节点生成大量私钥,并关联在一棵 Merkle Tree上
    milestone公布 Merkle Root,并且始终不变
    交易时随机选择 Merkle Trees某个叶子节点对应的私钥来生成签名和公钥
        公钥不直接提供,只提供对应的 authentication path
    矿工对签名进行验证
        先计算M,做哈希变换,得到待验证的公钥
        结果按照验证路径,逐一和路径上的节点编码组合哈希,并一路向上传递
        最后获得 Merkle Root则验证成功
    

    这类编码方式还可以用在数据资产的验证上,CarChain项目里,我们可以把车辆行驶轨迹的隐私数据,经过多层哈希压缩后,登记在区块链智能合约里。这样在数据交易和授权使用时,就可以通过OTS签名,在不泄露隐私的情况下,完成蒙上眼睛的证明。

    Zero-knowledge Proof 零知识证明

    显然只有两方参与的验证太局限了,区块链是交易双方和矿工共同维护的多方验证平台。我们需要一种在不泄露交易双方金额明细的情况下,能够完成区块验证的证明方式。幸运的是密码学里早已有了这样的工具,叫做零知识证明zero-knowledge proof,他的进化版 Non-interactive zero-knowledge proof 是无交互的零知识证明。我们还是用小北的迷宫来举例:

    小楠觉得小北的迷宫很神奇,所以打算搬过来和小北一起住。她的母亲不放心,想来照看她。但小楠正值无拘无束的年纪,她不想让母亲知道她的房间,但又要让母亲放心。所以小北帮她重新设计了迷宫。这一次A~Z的门之间,不是路径串联的关系,而是配对映射的关系。从任何一个门进去,都会穿到另外一个门出来。对应关系是未知的,但可以保证,如果从相邻两个门进去,也会从相邻两个门出来。小楠让母亲转过身,她和小北分别回到各自迷宫的入口。大家准备好以后,母亲回过身来,小楠和小北从各自房间穿过迷宫。当他们分别出现在J、K两个出口时,小楠向母亲解释说,她和小北是住在隔壁门的,平时相互照应生活很好,不用家里太担心。

    这个证明原理应用在交易领域就好比我不知道你们两个人分别有多少钱,但是我知道你们加起来一共有50元钱。背后用到了数学中的加法同态,以及推广到乘法同态和更加通用的多项式同态

    对于E(x)函数有以下属性:
      1、难求反函数,及无法从E(x)反推x
      2、单调函数,及x≠y,,则E(x)≠E(y)
      3、通过E(x)和E(y),可以计算E(x+y) 的加法同态
         常用的的非对称加密方式RSA和ECC都支持加法同态
    C对于A、B两人账户的加法盲证明:
      A计算自己账户余额E(A),B计算自己的E(B)
      结果发给C,C通过E(A)和E(B) 计算E(A+B)
      交易前的E(A+B)和交易后的E(A'+B')保持一致,则交易没有作弊
      A、B对各自隐私的收款金额无异议后,区块可以认证该交易
    

    区块链里已经有不少该原理的应用,2016年10月发布的ZCash,优化了交易速度,弥补了部分这个技术的短板,使其更具有实用性。同年以太坊的提案zkSNARKs,目前还在测试阶段,并没有落地。其依赖 “可信启动”,“椭圆曲线”这些重度假设是最大的短板。此外Komodo是SuperNET团队从ZCash做的分叉,使用Delayed Proof of Work (dPoW)把自己的账本和比特币主链对账,借用比特币的算力来做备份防护。最近2018年初又从比特币分叉出了Bitcoin Private (BTCP),就是合并了ZClassicCoin (ZCL)和BTC主链的一个分叉,采用的也是zkSNARKs。可见该证明机制已在区块链领域广泛应用,在保护隐私的同时,免去了混合交易的中间商,也就加强了信任的流通传递。

    为了解决zkSNARKs的短板,最近两年有了新的尝试ZK-STARKs。这里的 T 表示 “transparent”,代表无需“可信启动”。同时也带来了更加简单的密码学假设,避免了使用椭圆曲线,而是完全基于哈希和信息论。这也意味着满足了抗量子计算攻击的能力。新设计的核心是多项式采样验证,假设需要验证的数据被编码在了一个1,000,000次幂的多项式里,那么任意选取1,000,001个点都可以恢复这批数据。但这样验证起来太繁琐,我们把需要证明拥有的多项式P(x),转化为两个多项式Z(x)和D(x)的乘积,并取x在1~1亿之间随机验证几次。由于原多项式P(x)被保护起来,而且极大的放大了检查空间,所以随便检查1次,作弊者蒙对的概率都不到1%。检查16次后,该方案的欺骗难度和哈希碰撞一样高。具体构造过程如下:

    你有一个多项式P,对于从 1~1百万 之间的所有x,P(x)是一个整数
    	这个P(x)相当于私钥,可以把某些数据编码进去,也可以本身就是某种计算规则
    	你想要在不公布P的情况下,证明P的函数特性
    		比如 0 <= P(x) <= 9
    构造一个检查多项式C(x),使得C(P(x))在P满足特性的情况下,恒等于0
    	范围约束的检查多项式可以简单构造为 C(x) = x·(x-1)·(x-2)...(x-9) 
    		如果P(x)的范围超过0~9 那C(P(x))则肯定不为0
    	关联约束比如斐波那契的检查多项式要引入多变量: C(x1, x2, x3) = x3 - x2 - x1
    		则 C(P(x)) = C(P(x), P(x+1), P(x+2)) = 0
    任何等于零的多项式都可以分解为 Z(x)和一个乘积,所以原证明转变为 C(P(x)) = Z(x) * D(x)
    	x的检查空间在 1~10亿 之间
    	Z(x)是由C(P(x))的根组成的多项式,需要提供给验证者,类似加密“公钥”的作用
    		Z(X)数据量庞大,所以一般公开编码进Merkle Tree,客户端只保存Merkle root
    	D(x)由多项式除法 C(P(x)) / Z(x) 得到,基于傅里叶变换
    	P(X)和D(x)由证明者自己编码Merkle Tree,同样公开Merkle root的哈希
    		这里令等式成立的有效值只有 100万/10亿 = 0.001 的命中率
    验证者在1~10亿间随机选择16个x
    证明者提供这16个x在P(x)和D(x) Merkle Tree的分支
    验证者检查:
    	分支与之前提供的 Merkle 根相匹配
    	C(P(x)) 在所有 16 种情况下都等于 Z(x) * D(x)
    	一个坏的p(x)通过检查的概率,在经过16次检查后会缩小到 1- 10^-32
    

    除了例子里的情况,其他不同的多项式特征,都要对应不同的检查多项式。有些还需要对特定值进行边缘检查。遇到特别大的数值,还需要使用有限域(finite field)的算数规则。这些都使得这种证明变得复杂,一个zk证明的大小将从 288 bytes 上升到几百kb。此外还需要对一些非多项式的逆工程攻击做防御,最后推广到一般特性的证明。详情可以看Vtalik博客的翻译版本(Part1Part2),还有未翻译的Part3。zk-STARKs是一种数学构造,并没有标准解法,在实际应用前还需要很多的优化。

    Ring signature 环签名&群签名

    零知识证明主要保护交易金额的匿名,但交易双方的地址是公开的。以Monero为代表的隐私链使用Gregory Maxwell的环形机密交易(Ring Confidential Transactions)算法,把交易双方进一步隐藏起来,实现完全的隐私。这种签名机制其实有两个版本:

    有管理员的版本是群签名(Group signature),由群管理者生成群公钥(Group Public Key)、私钥(Group Private Key)。加入该群的成员获得群管理者颁发的群证书(Group Certificate),就可以生成群签名。利用群公钥可以对签名做验证,但是无法定位到具体的签名者。在争议爆发的时候,就需要群私钥解开签名提取真正的签名者。

    加强版的环签名(Ring signature)则没有管理者。签名者利用自己的私钥和集合中其他成员的公钥就能独立完成签名,不需要其他人的帮助,集合中的其他成员可能都不知道自己被包含在其中。具体过程:签名者用自己的私钥和任意n个环成员的公钥为消息m生成签名a;验证者根据环签名和消息m,验证签名是否是环中成员所签。最初这种设计是用来保护wikileaks这类泄密者的。比如多名白宫官员通过环签名,公布棱镜门的秘密后,政府无法罪责到具体个人。现在Monero使用该机制来保护数字货币的交易者隐私:加上key image对币的染色,矿工可以验证该数字币的唯一性(类似序列号,检查是否被注册过)并防止double spending。再加上RingCT对金额的加密,功能已经齐全了。加拿大滑铁卢大学团队搞的Iotex项目也是同时使用了零知识证明和环签名,该技术正在逐渐成为区块链隐私保护的主流。

    隐私交易所

    大数据发展了10年,AI也重新火爆起来,整个行业背后都是数据和算力的角逐。互联网公司的快速崛起,就得益于其服务能力的天然数据采集器,也是天然算力整合平台。能和互联网匹敌的,现在只有金融科技公司,他们的爬虫时刻关注着世界经济的每一个市场事件,甚至调动天上的卫星监控农场里的牲口数量。当全世界都在数据里掘金的时候,似乎数据的拥有者被忽略了。天下没有新鲜事,社会总是不断循环的前进。让我们先回顾一下百年前加利福尼亚的淘金历史,从茨威格的书《人类的群星闪耀时》里寻找启迪。

    淘金的故事

    1834年,一艘轮船从法国的哈弗尔开往美国的纽约。船上载着数百名逃亡者,瑞士人约翰·奥古斯特·苏特尔就是其中的一员。为了谋生、发财,苏特尔做过各式各样的工作,不断改变自己的身份,在不同的城市迁徙。他在纽约开过客栈,在密苏里经营农场,最后受到西部大开发热潮的影响,决定去加利福尼亚。

    1837年的一天,苏特尔将所有的财产都变卖后组织了一支探险队。包括两名军官、五名传教士和三名妇女一起坐在牛车上,前往他们魂牵梦萦的加利福尼亚。他们穿过草原,搭上帆船,经过千辛万苦,终于在1838年抵达圣弗朗西斯科。但原来的伙计们早已各奔前程:两名军官在路途中就已经退出,五名传教士经过温哥华时停留下来想过稳定的生活,而三名妇女则在半路被活活饿死。现在,苏特尔成了孤家寡人。当时,那里是西班牙的殖民地,并因西班牙政局不稳而缺乏管理。经过仔细考察,苏特尔脑中逐渐行了对这个破旧小渔村的开发计划。他来到首府蒙德来,向阿尔瓦拉多总督请求建设圣弗朗西斯科。苏特尔凭借其三寸不烂之舌,得到了圣弗朗西斯科的开发权,租期为10年。

    1839年,苏特尔的开发工作开始了。正如苏特尔想的那样,收获的季节到来时他们已经硕果累累。不可思议的是,即使是同样的种子,他们的农作物产量也是其他地方的五倍。仓库里堆满了粮食,豢养的牲畜更是数不胜数。苏特尔终于美梦成真,成了一个大富翁,建造了很多气派的房屋和美丽的庄园。

    1841年,联邦政府在梳理早前为了管理土地分配而颁布的《西北法案》亦称《1784,1785暨1787年法令》。当时大量的领土都在殖民者手中,该法令规定了精确测量及系统划分西北地区土地的办法,并奠定了建立地方政府和建州加入联邦的基础。下图罗列的几个州都是该法案生效后建立的。法令中关于矿业的条款规定政府可以保留三分之一的金、银、锡和铜矿资源。但在1841年新颁布的《优先权法案里》,又排除了这个部分。
    NT1787

    1847年美墨战争后,曾经西班牙传教士管理的西海岸这片领土由美国和墨西哥分治。墨西哥所得到的那部分领土后来成了下加利福尼亚省(Baja California)。而美国所获得的上加利福尼亚则在1850年9月9日根据《西北法案》正式加入联邦,成为今天的加利福尼亚州,包括苏特尔的庄园。

    1848年1月,苏特尔庄园锯木厂木匠詹姆斯·威尔逊·马歇尔突然激动地跑到苏特尔家里,说他昨天挖土时发现这种奇特的金属。他相信这是金子,但其他人都嘲笑他。他们再次认真检查水下的泥沙,把泥沙放到筛网里,在水里轻轻摇几下,黑色的筛网上就出现了一层金光闪闪的黄金颗粒。这里的确有黄金,而且是大量轻而易举就能得到的黄金。 纸包不住火,不论苏特尔如何保守秘密,最后还是被全美洲的人都知道了黄金的所在。人们发疯似的从四面八方赶来,一切都陷入了混乱。矿工们在这里看不到篱笆,看不到土地测量员,也看不到法律。对这群乌合之众来说,他们只相信强权。如果真要严格按历史法令行事的话,这些人都是非法入侵者。但当时法不责众,联邦的执法缺失,导致黑矿条例成了当地的新法律。

    1849年加州出现了800多个分离的、非正式司法管辖区,每个管辖区都有自己的章程。诉讼人因此可以在采矿权、水源权之类的纠纷上引用风俗习惯作为证据。科罗拉多和其他各州加以效仿,对矿区的传统表示尊重。但苏特尔的王国被摧毁了,他的奶牛被随意宰割,粮仓被任意拆除,农田被肆意践踏,机器被随便破坏。仅仅一夜之间,苏特尔的财产被洗劫一空。矿工们全都把自己当成了苏特尔土地的主人,夜以继日地在这里挖掘黄金,从来没人想到要向苏特尔通报一声。

    1850年,加利福尼亚正式并入美利坚合众国的版图,成为美国的一个州,并开始被严格有序地管理。在政府的严格治理下,它的混乱局面得到极大改善,这个遭到黄金摧残性破坏的地方重新变得秩序井然。无政府状态告终,一切又都置于法律的掌控之下,淘金热也不断降温。苏特尔在偏僻山区安顿好自己第二个庄园后,也开始正式通过诉讼来维护自己的权利。他向州政府索赔的赎金高达2500万美元,理由是他私人出资修建的道路、水渠、桥梁、堤堰、磨坊等已经成了公共设施。其次,所有从他土地上挖掘出来的黄金,都应该分他一份,因为那些黄金原本就属于他。

    1855年3月15日,这场史无前例的审判终于落下了帷幕。加利福尼亚州的最高法官汤普森郑重宣布:约翰.奥古斯特.苏特尔依法享有圣弗朗西斯科城土地的所有权和使用权,他的利益是合法的,任何人都不得侵犯。苏特尔是这场官司的赢家,从那时起,他又站在了世界首富的位置上。但事情并非那么简单,苏特尔的胜利,仅仅只是法庭上的胜利,是表面的胜利罢了。那些因判决而遭遇财产损失的人,参杂着窃贼和捣乱分子,攻占法庭,威胁汤普森法官,烧毁苏特尔的新家,还杀死了他的三个儿子。

    如今的大数据公司很像当时的矿工,而苏特尔,就是我们每一个数据背后的个体。历史种种我们无需追责,但2018年5月生效的欧盟GDPR《通用数据保护条例》和中国的GB/T 35273-2017 《信息安全技术 个人信息安全规范》,意味着混乱局面的终结。数据所有权第一次在法律规定下,回到了用户手中。更加幸运的是,这一次法律战胜了强权。以美国互联网企业为代表的无约束数据矿工,纷纷匆忙修改自己的产品和服务,有些甚至直接退出欧洲市场。Facebook爆出的数据丑闻在全球范围引发了卸载热潮,并在2018年Q2汇报的业绩预警声中,股票下跌20%。于此相反,从不追踪隐私的搜索引擎DuckDuckGo早已实现了盈利,所谓数据保护阻碍科技进步的谎言不攻自破。用户第一次拿回原本属于自己的权利,就像苏特尔在得知汤普森法官判决结果的那一刻。只是那一刻对苏特尔太短暂,而我们终可以笑到最后,有了保护隐私的工具,还明确了数据资产所有权,具体包括以下几个方面的权利:

    授权过程要清晰明了,满足最小可用性
    数据保持完整性,保密性,不可联结性
    用户对其隐私数据具有转移权,修正权和删除权(遗忘权)

    蒙上眼睛的交易

    在这样的要求之下,隐私得到了保护,但是流通收到了限制。还好数据产权逐渐明确,在找到了数据管理主体之后,我们就可以使用上述隐私保护工具设计一个不对外泄露原始数据情况下的,三方可验证数据交易。首先数据在产生的同时就需要上链登记,比防止被篡改。登记形式可以是一个将数据原文多次哈希压缩的结果dHash。哈希结果只是用来登记所有权和验证数据准确,数据源文件一般较大,需要用用户的私钥进行RSA加密,然后储存到云平台。在交易的时候,基于智能合约,矿工不接触原文,而完成双方的交易和验证,流程如下:

    1. 交易金额由双方确认,共同签名,以确认交易意愿
       - 数据提供方为A,数据接收方和资金提供方为B
       - 启动智能合约,B的资金转移到合约地址下,并根据下面验证流程进行自动分配
    2. 输出方A提供原文,使用B的公钥RSA加密给B,由接收方B解码后通过dHash确认,并签名接收
       - 如果签名成功,执行资金转移
       - 如果B不承认接收,可能A没给,也可能B收到了不承认,就需要A和矿工C先进行zk proof验证
       - C创建验证数据对,A计算dHash的prf值,C验证prf
         - 如果C验证失败,说明A没有数据,交易终止,B资金退回
         - 如果C验证成功,说明A确实拥有原文,A再一次传递数据给B
         - 如果B仍然没收到,C投票选择中间节点验证原文,执行资金操作
           - 这里A没有作恶动机,因为资金已经锁定,如果要反悔交易应该在数据传递之前反悔
           - 这里B没有作恶动机,因为资金会被强制转移,如果数据通过C中间节点泄露,对B的采购价值反而有折损
           - 除非B报复性采购并公开数据。但这也可以交易完成后公开,并不影响交易本身
    3. B把接收的数据再用自己的RSA秘钥加密,提交到云存储网络
       - C区块链确保dHash一致,以及确认B是否有二次授权权限
       - B自己会保证密文结果一致,否则该数据他也无法使用
    

    看似简单的交易,但是在区块链拜占庭容错的要求下,需要考虑到所有可能的作恶情况。现在又加上了数据保密,所以异常繁琐。但所幸在经济规律的约束下,这样的协议基本足够应用。但即使完成了隐私数据的安全转移,还是无法保证数据接收方没有二次传播和滥用。在Facebook和Cambridge Analytica(CA)的数据丑闻中,正充分体现了这一风险。几年前一款由剑桥大学研究人员开发并提供给CA公司的叫做“this is your digital life”的小应用在Facebook流传开。按照当时的隐私条款,这款应用以公益为名,除了收集用户的调查问卷外,还获取了这些用户的个人信息,以及他们好友的社交信息。最终这些信息除了用来做小应用的分析结果展示给用户,还被二次利用到了美国大选的社会营销活动里。

    假设我们先把Facebook区块链化,这样我们获得了社区的自主权。然后利用加密工具把通讯记录和社交关系加密保存,只有我们自己能解密。当第三方需要申请授权数据的时候,无法绕过用户,保证了用户的知情权和修正权。但在最终将数据转移给第三方之前,我们还需要另外一层虚拟ID的保护以使数据脱敏。第三方看到的不是我的Facebook身份,而是一个虚拟甚至动态的临时ID。就像在医疗领域,其实不需要知道具体病人的个人信息,只记录病例相关信息就足够用于科研。在Facebook这里,同一个人给不同第三方提供数据时,使用的虚拟ID也不同,保证这个数据无法拿来二次关联。苹果手机的IDFV (identifierForVendor) 就是这样一种,同一用户在不同APP开发商那里会登记不同数值的ID。显然CA公司拿到了这个数据之后,无法再在美国大选的营销活动里定向用户了。但这也会导致一些交叉画像的精准广告失效,所以苹果手机预留了另外一个IDFA (advertisingIdentifier)的通用广告ID,这个设置是需要用户授权,可以被关闭的。

    背靠背的握手

    除了单向的买卖,还有数据关联合作也需要隐私保护。面对目前的数据孤岛,单一方向的数据流动并不高效,需要多元数据的相互融合才能真正解决商业问题。比如跨医院的医疗记录整合可以提供更加个性化和精准的诊断;汽车维修、违章、保险记录如果能够结合会颠覆二手车和汽车保险行业;跨电商平台的交易整合可以提供更加通用的信用;而反欺诈平台如果形成数据联盟,共享黑白名单的话对欺诈犯罪会是毁灭性打击。为此,在数据所有方充分告知和授权的情况下,双方数据可以无障碍流通。但在达成这种合作之前,两个数据源用户的匹配情况需要提前预估。用户ID如果是敏感的手机号,身份证等标签的话,需要在背靠背的情况下完成握手,求出交集以评估匹配度与合作可能性。一旦合作破裂,双方是背靠背的,不带走任何交集外的对方数据。匹配过程即使开放给第三方,也不会有任何泄露。

    如何实现这种背靠背匹配呢?最容易想到的就是通过单向哈希对匹配字段进行变换。因为变换规则一致,所以相同的用户ID在变换后仍然相同,可以通过这种间接匹配来建立关联。但哈希是可以碰撞破解的,如果对手机号这种短码进行哈希的话,对方可以很容易的穷举所有原文进行碰撞。这时就需要两步加扰来保护隐私,思路与OTS单次哈希签名类似:

    多次哈希背靠背:
    假设数据交换双方为A,B
    A将自己需要匹配的用户ID哈希n次得到 Hn(A) 交给B
    B将自己需要匹配的用户ID哈希m次得到 Hm(B) 交给A
    A拿到B的Hm(B)以后,一方面哈希难以反算,另一方面不知道m的次数,所以增加了碰撞的难度
      A接着对其继续哈希n次,得到Hm+n(B) 交给智能合约
      B也对其数据再哈希m次,得到Hn+m(A) 交给智能合约
    智能合约比较 Hm+n(B) 和 Hn+m(A)
    因为哈希函数满足次数交换律,所以两次哈希加扰结果相等的就代表A、B原文也相等
    

    其实只要满足交换律的加扰计算都可以用在这里,我们借助椭圆函数也可以完成类似设计

    椭圆加扰背靠背:
    假设数据交换双方为A,B
    约定一个有限域上的椭圆函数E
    A随机选择椭圆函数上一点P,将自己需要匹配的用户ID映射到椭圆函数并与P求和 得到A+P 交给B
    B随机选择椭圆函数上一点Q,将自己需要匹配的用户ID映射到椭圆函数并与Q求和 得到B+Q 交给A
    A拿到B+Q后,因为有限域上椭圆函数加法是取mod的,逆运算难度大,所以难以反推B的原文,其难度和破解私钥一样
      A接着对其做加法,得到B+Q+P 交给智能合约
      B执行同样步骤得到A+P+Q 交给智能合约
    智能合约比较 B+Q+P 和 A+P+Q
    因为椭圆函数满足加法交换律,所以两次加法结果相等就代表A,B原文也相等
    当让也可以用椭圆函数乘法来加扰,计算复杂度会提高,但安全性也大大提高
    

    数据完成关联后,还缺临门一脚就是计算。后面章节会结合计算机工具探讨各种匿名计算的形式。

    匿名的算力

    在动态临时ID的框架内,我们已经可以避免数据的滥用和隐私保护。但是为了更大范围的将数据进行关联,创造新的商业,我们还需要在IDFA这类通用ID的使用上,进一步匿名化。数据可以流通和计算,但是需要限制在某种“安全区”的范围内。并在计算完毕之后,原始数据自动解体,只将计算结果脱敏后返回给用户。这种匿名计算流程,简称为安全多方计算secure MPC,非常适合在区块链的智能合约 虚拟机环境里实施。但虚拟机通用计算的复杂度高,软件的解决方案需要包括保密数据分享和零知识证明等等,即使看似简单的计算,也需要定制化设计。

    与算法层并列配合的,是底层设备的计算与通信安全。从独立IC芯片的Trusted Platform Module (TPM) 到在基本芯片上的隔离分区Trusted Execution Environment (TEE) ,技术在不断普及。目前低cache的应用场景主要是保存硬件的私钥,用来做安全隔离的签名验证,比如指纹登录。之后隔离区的内存逐渐扩大,可以在服务器上做更加复杂的封装式安全计算。目前主流芯片厂商都已推出对应的产品线:

    目前匿名算力还是一个很新的领域,虽然发展了不少应用,但也有很多评论者认为存在漏洞。匿名算力和计算机安全一样,在攻防之间共同进步,简单的移植应用会带来很大风险。这里我们简单讨论一些攻击的可能,以优化配套的防御措施。

    黑盒攻击

    即使将算力保护在黑盒之内,也仍然存在从外部输出反推保密数据的破解方式。比如有一个黑盒子可以根据不同性别、年龄的组合来推荐书籍。这里性别和年龄的组合只有10多种,但是可选的书籍有上百本,不论盒子里的算法如何,最后都可以简化为10多个输入和输出的一一对应关系。破解方只需要穷举所有可能的输入,并记录下输出,就可以很简单的得到这种关系。当某个用户使用这个黑盒时,破解方不需要知道用户的输入,只根据输出就可以反推该用户的性别的年龄。当然我们可以通过安全通信保护用户和输入和输出,但如果这个黑盒还可以直接从第三方下单买书的话,等于用户的性别年龄已经泄露给了书商。为了保护这种算力层的隐私泄露,第一种方法和隐私交易所一样,针对每一个算力黑盒使用动态虚拟ID。破解方即使知道了隐私字段,但也无法和用户本身建立关联。第二种方法必须保证盒子输入的参数空间要远远大于输出的变量空间,使得反函数有并列多解。比如个人信用服务,通过上百个纬度的参数,推出10个等级的信用分级。这种压缩后的变量输出就很难反推具体的信用参数。当然进攻方也会发展出一些新的应对,在各大电商平台,为了预测用户账户的人口属性,可以说不遗余力。

    当攻击方执行的查询权限增大时,还有一种特殊的差分攻击。比如黑盒里面储存了用户是否参与某次促销购物的记录,参与者记为1,没参与的记为0。我知道昨天晚上有一个人去活动现场了,但我不知道她是不是买了东西。那我就查询昨天晚上以后的参与者合计,减去晚上以前的参与者合计,就可以推断这个人的参与值。为了避免这个问题,可以在输入层或者统计输出时加入干扰噪声,类似通信和反编译领域的扰码,这种保护叫做差分隐私(Differential Privacy)。干扰的大小在保持查询精确性和隐私保密性之前平衡,优化的目标就是在增加一条记录,和减少一条记录两种情况下,查询结果的误差足够小。假设我们得出分析结论,年轻女性更愿意参加这类促销。不论昨天晚上去现场的那个人有没有被记录下来,下一次的促销还是会根据规律推送她。而即使她的行为被记录下来了,差分查询的结果也是接近的,无法准确得知她的原始行为。这样该知道的规律总是会知道,而不该知道的细节都不知道,就同时保证了实用性和安全性。Oasislabs就曾和uber合作类似开源项目。

    另一个需要保护的还有程序本身。以信用模型为例,在开放的比特人信用体系里,面对相同的基础数据,可以使用多个评分模型。最后经过市场竞争来对模型服务定价,所以模型原理在这里作为资产是需要保护起来的。区块链虚拟机运行的是二进制码,面对反编译的保护有一些现成方法。但是随着神经网络技术的发展,不需要反编代码,直接通过Black-Box Attacks就可以建立和黑盒模型无限接近的等效神经网络模型。这里黑盒内如果也是神经网络模型的话,这种方法甚至能找到原模型设计者都难以发现的对抗样本,使模型在特定输入下失效。虽然在区块链上实施攻击要消耗很大的手续费并且容易暴露,但攻击者可以伪装为矿工,直接获得程序二进制码在本地进行破解测试。面对这种情况可以先通过Black box Gradient masking来降低输出的变量空间,在图像识别里特指隐藏分类置信度的数值信息。另外也可以对输出结果进行动态ID的映射保护,将映射服务放在自控中心化平台,避免被线下暴力测试。

    隐私的三元平衡

    从实用性角度讲,完美的匿名防护似乎并不经济,不论是基于同态加密还是基于安全计算芯片。有不少团队在两个方向上分别探索,追寻隐私、高效、通用性的三元平衡。2018年大量的行业应用也在这个领域爆发,从目前的技术选型上可以分为加密派和安全计算派。加密派主要基于前面介绍过的同态加密,以零知识证明应用为主,我们简称为ZKP阵营。而安全计算主要基于计算机环境,利用多方计算协议和芯片安全区,我们统称TEE阵营。在介绍具体项目前,我们先对本章节介绍过的知识点做一个简单的总结,ZKP阵营的技术对比如下表:

    Proof systemzk-SNARKszk-STARKsBulletproofs
    Proof sizeShortLargeShort
    Prover timeFFT + Elliptic CurveFFTLinear
    Verifier timeEfficientEfficientLinear
    Trusted setupRequiredNot requiredNot Required
    PracticalYesimprovingYes

    从zk-SNARKs到zk-STARKs是空间换时间的取舍,虽然都不完美,但都在持续进化。这一方案最大的优点是不挑机器,可以在任何矿工网络运行,以数学来保证隐私。但最大的缺点就是性能不足,目前大规模应用仅限在匿名交易平台,还无法支撑更加复杂的场景。所以在平衡三角里,ZKP阵营选择了隐私+通用性。站在这一阵营的首先有扩展智能合约匿名计算的Origo,迈出了从交易匿名到计算匿名的重要一步。为了达到这个效果,需要将智能合约代码与ZKP系统在编译层进行整合。通过Arithmetic Circuits计算门电路的抽象,将复杂的代码还原到基础计算流程,并在流程里生成对应的同态证明和验证。为此他们对EVM也进行了改造,可以兼容一般代码的执行,和加密执行与验证。这个概念2016年Hawk的论文就以剪刀石头布等为例进行了推演。游戏双方的“出招”作为合约输入,分别同态加密起来防止作弊。智能合约执行的时候,分多次循环匹配可能的结果。通过验证后进行裁决,保证参与多方的匿名性和结果的有效性。

    把这个模式进一步推广就是通用数据流的安全计算,热门项目covalent.ai就是2018年成立在这个方向的探索。其中除了尝试完全同态加密(FHE)和零知识证明(zk-STARK版本)外,也包含了可信执行环境(TEE)。一方面他链上第一个应用是医疗数据交易平台medata,利用同态加密来保护交易,用IPFS实现分布式存储,最终想定义去中心化数据交易的标准。另一方面他又有AI的野心,涉及智能算力(运行Caffe RNN这样的深度学习模型),所以基于TEE的沙盒必不可少。这里就会发现,真正大规模算力的应用,是TEE阵营的专长,他们选择了隐私+高效。这个方案的优点不言而喻,在安全环境内,不存在共识和加解密验证的负担,可以最大效率转化芯片的算力。但缺点也很明显,参与贡献的矿工必须使用TEE技术的芯片,而芯片的缓存大小直接限制了安全区的使用效能。

    ZKP基于数学基础,大厦建的牢固,暂时没有发现严重漏洞。但TEE作为软硬件结合的芯片环境,构成更为复杂,最近走红以后更是受到大量计算机安全专家的高度关注。后来也确实爆出漏洞,能够通过Spectre Attack盗取SGX enclave安全区的数据。漏洞虽然能够修复,但市场信心遭遇打击。例如PlatON项目团队就不认为TEE足够安全,他们选择聚焦在其他技术的整合。使用基于非交互证明的Verifiable Computing,加上MPC和同态加密,再通过逻辑门电路做并行化和链下执行以提升效率。经过两年研发,他们推出的这套庞大解决方案,也在等待市场的验证。在多元平衡中没有唯一答案,总是有不同解针对不同场景。从大量该类项目看来,传统计算机专业的团队,似乎更加青睐TEE硬件保护或者编译过程保护的方案。除了智能算力章节介绍的Golem平台外,2018年还有多家热门项目发布。其中软硬结合的Oasislabs由UC Berkeley 和 MIT的明星团队打造,初期就融到$45M。为了弥补TEE可能存在的漏洞,他们开源了Keystone安全计算区软件,开放给领域“守门人”检验。同期上海交通大学软件学院夏教授带队的项目TEEX也获得了红杉资本的青睐,在这一领域展开角逐。一个私密又高效的区块链网络,值得期待。

    我们在重构谁

    当我们掌握了所有区块链的秘密,似乎可以重构一切世间的事物。然而在没有区块链之前,大部分系统都还运行正常。为什么区块链技术会在这个时期兴起?人类历史上经过了很多的制度变革,从奴隶制到封建社会,到现在的资本主义和社会主义多元生态。似乎每一次变革都和生产力的发展密切相关。就像区块链的公平机制一样,每次新力量的诞生,都催生了一次社会领导力的重新分配。工业革命推翻了封建皇朝,因为资本和技术阶级获得了思想解放,摆脱了贵族和宗教宿命的束缚。农民和劳工也同时获得生产力解放,可以投身到大范围的社会运动里。最终宗族的固化统治,被资本和技术打破。所以难怪中国清代皇帝看到自动机械的时候,第一反应是担心农民懒惰,社会难以管理。法家学派的《商君书》对封建中国的统治阶级影响深远。对比同一时期日本明治维新的成功,当时清朝洋务运动“中学为体,西学为用”的口号就显得自省性不够。仁义、谦虚,平和的儒家思想,深植于官本位的隐形社会关系中,与资本主义的透明竞争规则相抵触。最后中国跳过了资本化,直接进入到社会主义时期。但这种冲突仍然常见于民营企业和国营企业的效率对比中。

    区块链在不同国家的发展也因为社会基础的不同而千差万变。很多人想不到,北欧的丹麦、瑞典、芬兰有着对数字货币最友好的社会环境。早在上世纪,北欧的福利体系就已经非常接近社会主义的定义。这些资源大国通过资本化和市场化的经营机制,维持着非常高的国家资源使用和升值效率。加上人口较小,国家支出就可以保证全民高质量的生活。在这些被评为生活最幸福的国家里,自行车、电动车和去纸币化都是幸福生活里的追求。除此之外,美国和加拿大也是毫无争议的新技术大国。除了数字货币交易,他们对区块链技术的使用更深,对其生态发展的影响更大。芝加哥的Chicago Board Options Exchange (Cboe)有着最早的比特币期货交易所,还有大量比特币ETF基金在蠢蠢欲动。亚洲各国里“中、日、韩、印”最初对数字货币也没有限制,但随着炒币的恶性发展,中国和韩国率先封禁了数字货币交易。但日本和印度继续追随英美的技术潮流,如今日本和新加坡已经成为亚洲数字货币的枢纽。中国在抛弃数字货币的同时,却积极拥抱区块链技术。为了不再犯“洋务运动”的错误,需要我们对区块链更加深刻的理解。

    在地球扁平化,信息化的新世界里,国家的边界已经被打破。数字货币间的交易是无法完全禁止的,国家干预的都是本国法币和数字货币的兑换,以此来控制和监管资本外流。在这个新的世界,权力和资本也被重新分配。Facebook的创始人马克,利用社群的力量战胜了传统的资本。在历史性的IPO首个交易日,马克本人都没有到交易现场,资本在全球社群的力量面前,只能屈居次席。现在区块链交易所和交易个人虽然还需注册在具体国家内,但区块链早已在建立跨越国界的新社区。只要足够的持币者从现有主权国家内购买土地,就可以实际意义上建国。全体海外持币者可以同时获得国民身份,就像犹太人天然拥有以色列国籍一样。这批数字时代的技术国民,有机会在全球范围内创造新的权力平衡。和创立公司,政治竞选相比,重构国家可以说是人类历史上最伟大的创业。

    修复完了地球的社会性缺陷,想象一下外星人会如何使用这项技术?科幻小说里的三体人,他们不知道欺骗,思想完全透明,造就了极高的文明成就。在他们那里,区块链似乎没有用武之地。所以区块链并不是绝对理性的基础技术,只是地球文明缺陷催生出来的一种信息技术应用。在未来机械化和智能化的世界里,区块链也使不上力。只有真正进入《未来简史》描述的,机器控制人类的世界,区块链才重新作为重要的管理智能机械的手段。当智能机器的生产力飞跃,人类作用减弱,一方面会带来生活水平的提高,就像现在的北欧一样;另外一方面也会导致产能过剩。收入分配的严重分化使大部分人无法购买过剩的商品,就像美国大萧条时期那样,这是资本主义无法克服的内生矛盾。所以在现有体制下,在到达机器人世界之前,大萧条就会提前阻止我们。只有在区块链技术的支持下,我们才可以创建一种新的社会关系,链接人和人,人和机器的多元关系。这种关系随着智能机器的发展,可以维持生产力和人类文明的相互促进。最后创建一个幸福最大化,资源最优化的社会,才是我们要追求的真正未来。

    阶段性商业改良

    最终的全球性重构没有那么快到来,但针对现有经济体的阶段性改良,早已开始。金融科技领域是最活跃的区块链社区,站在传统金融机构的角度,显然不可能全盘接受比特币这样全新的货币体系,但又不愿意错过潜在的新市场。所以催生出了大量在商业机构间运行的去中心化账本项目,在国际贸易和跨进结算这种缺乏中心化约束的领域建立多方信任。比如Linux基金会支持的Hyperledger就是这样的分布式账本技术,其本质上是对现有商业IT系统的兼容型升级。他通过多方共识保证了信任机制,但还是要对接大量的中心化商业系统,所以仍然存在外部依赖,并不如真正的区块链项目纯粹。但是其功能完整性和商业友好性使其很快受到国际大公司的关注。比如Hyperledger就内置了成员管理、状态数据库、账本存储、多链支持等便于使用和提高效率的模块。

    类似运行在中心化商业系统间的区块链平台,可以统称为联盟链。当商人们用区块链去重构他们的商业时,必然隐藏着自身利益的设计。就像中心化平台通过收取增值服务费或者营销费用来弥补免费平台的建设成本,区块链本身也需要通过挖矿和交易手续费以激励平台矿工的加入,维持运行系统的算力。同样联盟链虽然无需发币,但是支持该平台运行的商业机构都有不小的成本投入,未来弥补这一成本的收入来源,就是联盟区块链的商业模式。而这一商业模式本身源于中心化平台,并不以区块链而带来根本性改变。比如做商品加工溯源的联盟链,其商业模式就是标准的电子商务,区块链起到了质检认证的作用。再比如基于车辆区块链数据做二手车定价的,其背后是二手车估值业务,区块链起到了信息收集的作用。这些模式本身不因为区块链而成立,企业自身能力还是第一位的,区块链只是提供了信用辅助,甚至一些传播上的助力。那些本来电子商业就做不好,二手车估值也做不好的企业,用了区块链以后,还是一样会失败。

    另外联盟链在商业信息上链过程中,也有中心化的信用风险。比如加工溯源,第一个零件的检查和标注,就是由中心化企业完成的,这里如果出错,之后整个链条都不可信。曾经红火的无人货架也有类似瑕疵,就算在办公室众目睽睽之下消费者不会作弊,但将商品上架的供货员是无人监管的一大漏洞。所以也有一些商业希望进一步将区块链使用的更加彻底,比如Ripple区块链跨境支付结算平台。他作为国际支付中间商,使用XRP代币进行快速结算。技术上通过分布式账本建立了企业和传统汇兑中心的新式链接,提供了一套更高效,更低成本的方案。但因为和汇兑中心的链接是中心化的,为了确保安全,矿工加入有门槛,所以本质上还是一种半中心化的可控网络。其初始化的1000亿枚XRP币是预设分配的:200亿会给予3个创始人,550亿目前还在托管账户,合作伙伴会瓜分一些,Ripple公司(以前叫Opencoin)高管和团队持有不少,过了锁定期可抛售以获得利润。这里建造者延续了区块链自身的盈利模式,就是出售代币以套现。

    随着联盟链种种缺陷的暴露,以及各参与企业思想的差异,使得最基本的3方联盟都难以推进。那些看似推进成功的,往往有一个相对较大的中心企业牵头。可见推区块链联盟链的难度和交易撮合平台拉动供需双方的难度一样大,也难怪大量区块链企业但凡有些小合作都要大肆旗鼓的宣传。反观一些强势企业,索性直接选择了内部的私链。比如游戏宠物:百度“莱茨狗”、网易“招财猫”、360“区块猫”、小米“加密兔”等等。每个企业也从自身的业务特点出发,抓流通和用户端的强势企业反而更加容易切入,因为不管是哪个链,最终交易者(设备)都需要有一个管理资产的钱包。比如腾讯与联通合作发布的新产品—TUSI SIM卡,就是面向物联网行业的身份认证新标准,未来很可能成为区块链钱包和身份系统的基石。

    组织与社群

    社群是注定很快要被重构的,但新组织里人们如何分工,在协作期间如何保证去中心化?这也许和区块链技术无关,但是可以应用区块链共识机制和经济规则。在车轮社区的区块链改造期间,我们就设计了一种机制,分为积分,车轮币,兑换商城(交易市场)三个层级。用户通过社区的浏览,发帖,回复等贡献行为获得基础积分。这里的积分规则相对固定,每年由管委会修订。用积分可以兑换车轮币,每天的发币量由社区经营主体来决定,按照当天的兑换积分数,计算单个积分的币值数量。这里每个用户可以自由选择兑换时机,一般在积分总量最低的时候兑换会最有利,也可以持有积分等待流量低估进行抄底。积分永不过期,所以平台需要使用通货管理的手段来约束开销,比如约定每天的发币量以年10%的增速缓慢扩大。这样如果社区活跃度的增长超过这个速度,积分会面临通货膨胀,反之意味着车轮币的升值。假定车轮币可以1比1等值提现或者兑换加油卡等硬通货,那么早期参与的用户积累车轮币更快,也就可以兑换更多油卡。

    在保证初期用户激励的基础上,需要持续吸引后进会员。最直接的方法就是开放兑换交易市场,当天的可兑换资源和社区收益挂钩,并映射到当天的新发车轮币总量,保证两者可以完全兑换。比如按照50%的社区收入投入到兑换商城里,随着社区扩大,每天的广告和订单佣金增加,可供兑换的现金和油卡增加。但这时车轮币的发放量还是相对稳定的,所以只能让商品贬值,也就是进一步使车轮币升值,以保证当天的油卡可以被当天的车轮币完全兑换。所以这里出现了两个汇率:从固定积分到车轮币的汇率,以及使用车轮币采购商品的汇率。早期用户可以同时享受这两种汇率的升值,而中期用户主要享受采购汇率的升值。

    这样的运营闭环,实际上是用收入补贴市场营销和拉活成本。传统商业逻辑里,本身也要从销售收入中分离部分来作为市场营销的开销,但传统运作方式的摩擦太大,浪费严重。市场部门要进行消费者研究,制定传播计划,设计创意,采购媒介资源...所有这些步骤都有可能出错,而且有庞大的组织开销和隐形成本。通过去中心化的激励和经济规则,我们把这个闭环简化,直接作用到用户本身,使用户成为合伙人,实实在在享受到自己在平台里的贡献。这样在用户使用和消费的同时,也会有动力帮助平台的推广。这种动力固然来自于一部分经济因素,但是更深远的,我们重构了社群经济体的运作方式,通过去中心化的手段,把消费者的力量集中起来,获得和服务提供方平等的议价权。

    以前很多人玩团购和众筹,但那是基于具体商品的微社群。把众筹的模式在整个平台打通,把拼团的激励,商品的选择,议价的过程整合在一起,我们甚至可以让这个社区有自我管理的权利。比如每个商品组合或者类目可以竞选出管理员,这个管理员负责对接外部商品供应。竞选过程以持有的车轮币为权重来投票,这样选举出的管理员既是采购员又是客户,保证利益的一致性。管理员可以每月轮换,实现自动化的轮替和分工。年度可以进行大平台管委会的选举,类似EOS这样设置21个席位,由每个平台的管理员为代表来竞选。平台的通过规则设计,比如获得积分的行为准则,商场的购物服务规则等等,均可交由平台管委会投票决定。满足2/3绝对多数票的决议,由平台运营主体实施开发和落实。

    这里到目前为止都没有使用区块链的加密和防篡改机制,因为即使是中心化平台,在这里的经济利益也和用户高度绑定,没有作恶动机。如果想确保万无一失,可以先通过ICO筹集平台的开发费用,然后直接竞选管委会,由管委会来选定开发商和交易服务商。但如同所有ICO一样,仅仅依靠某个设计方案和团队,是否能够票选出合适的执行者?在EOS选举过程中存在的代理人杠杆攻击最适合攻击这样的早期项目。好比买期房还是买现房的问题,等看到房子了再付钱,开发商就没有作恶的机会。如果房子还没造好就提前付款,那就很难保证施工质量。类似这种社区区块链的筹备形式,可以采用预测市场的渐进式押注。多个团队同时起步,社区的潜在用户在不同项目押注,类似扶持多个分叉版本。最终通过开发能力和资源整合能力的考核,将多个项目逐渐合并。主链的押注获得升值,分叉版本可以按一定折扣汇入主链,这样避免对抗性的利益分配导致分叉无法融合。这就是在荒岛上建立一个去中心化社区的雏形。

    双重网络效应

    上述试验的背后,是对传统“网络效应”的颠覆。Nathaniel Whittemore整理了一个去中心化网络发展的阅读列表,其中有对未来通证生态系统的预测,还有Double Network Effect 双重网络效应对社交分享的分析。这种双重效应的来源在于双重身份,作为用户的你和作为权益方的你。早在2000年,PayPal就通过给每个邀请注册支付$20 换来其疯狂的日均10%增长率。区块链的数字货币,把这个$20变得更加灵活,甚至具有升值预期。当然在应用到中国市场前还要解决羊毛党的问题,但这种双重效应已经被市场充分的验证过。

    网络效应的加速增长是对供需双方都有利的,但承载网络效应的平台如果是中心化的,那其逐利的本质将不可避免的牺牲一定的用户利益。以传统的平台商业模式为例,建设期平台补贴大量推广费用,突破交易撮合的临界点;成长期补贴减少,网络效应促使供需双方共同增长;收割期网络效应成为护城河,用户的迁移成本巨大,平台费用提高,成为平台模式的高额利润来源,也是网络用户付出的成本。去中心化的区块链技术有效降低了这种网络成本,这里的成本除了成熟期的维护成本外,还有组建网络的成本。原来中心化平台初期的恶性竞争会带来额外开销,最后在成熟期由用户买单。这种成本在区块链社区也存在,要通过规则或者社区运营去降低。比如冷启动以后进入成长期,定期的回购和注销早期低成本的币,或者可控的增发来平衡后进者的利益等等。最终的公平是关键,其实互联网的兴起,也是因为这个互联标准的开放性和公平性。但现在互联网的数据流和资金流逐渐被巨头垄断,能再次挑战他们的,只有区块链经济。网络空间,云端算力,如能再一次公平的开放,那网络效应将带来又一次生产力的腾飞。

    加密经济与新金融

    基于区块链数字币细分的话有两种类型:公链的流通和挖矿coin叫做加密币,而基于以太这类链上增发的合约token叫做数字通证,两者合起来组成的经济体我们叫“加密经济”,其中又衍生出了全新的金融体系。万向区块链的肖风博士来源于传统金融领域,但是对“加密经济”看的非常透彻。我们知道传统的微观经济学和博弈论都一直在发展,运用到现在区块链的“分布式商业”、自组织等领域多少都是相通的。这些研究不只是技术层面的推动,更多是资金层面在压迫。整个加密币的盘子按陈天的统计是 $450B(和俄罗斯,巴西,新加坡等国的 stock market 一个体量),每日成交量大概 $20B - $25B;如果我们对比世界上第二大经济体,我国的 A股(上证 + 深圳),大概是 $8,000B 的盘子,每天 $80B - $100B 的成交量。所以加密经济的渗透率粗略估计恐怕在逼近5%,而且交易活跃度更高。回顾互联网对传统经济的渗透,在2007年数字广告约占广告市场的5%~10%,10年后的如今已接近一半份额,超过电视成为最大营销平台。移动互联网的渗透更快,2009年就覆盖超过1半网民达到60.8%,2015年达到90%。现如今的加密经济,可以说在第一轮测试的尾声,不久后将迎来更大规模的发展。

    加密经济中的coin加密币以比特币为典型,我们在理解比特币的章节中分6个层次进行了解析。加密币的背后代表了区块链经济的“国力”,他的去中心化由矿工社区保证。作为无发行方,完全由代码执行,通过挖矿过程释放的coin,可以类比为传统金融里的commodity商品。而基于商品可以产生货币,就是商品货币(Commodity Money)。黄金、白银、布雷顿森林体系下的美元,包括现在的比特币,都是商品货币。正是商品的物理属性保证了其发行量受到约束,比特币满足这个约束条件,成为了新金融市场的基石。如果打破这个商品的物理极限,完全基于发行者自己的承诺,将没有内在价值的记录载体作为流通凭证的话,就是法定货币(Fiat Money)。正是因为这种法币的超发和分配体制的不均,导致其备受质疑。其实数字通证的token也是类似的概念,直接通过以太的ERC20协议,就可以几乎0成本的发币,这种token大部分只是无内在价值的数字记录。这和你在美国其实可以自己发行属于自己的法币一样,并不因为区块链的技术而有什么不同。但基于法币的金融体系,有其存在的意义,其中最重要的就是打破货币和资产在时间上的错配问题。当未来的资产和收益可以提前兑换成当下的货币,那整个经济的运行会被极大的加速。如果说资产证券化是金融市场的过去和现在,那么资产通证化(token)也许就是未来。比如在公链项目上线之前,coin还没有发布,但是社区和开发团队需要融资以支持项目完成。这时基于token的ICO就是一个提前流通的代币,当项目上线后,token被注销同时替换成真正公链的coin。

    敏锐的人会发现,这种token并不受区块链去中心化信任的保证,通证的分配完全由发行这个token的账户来决定。而承诺的分配机制,实际上是现实世界里的契约,这就需要现实世界的信任工具来保证。所以各国的证监会在仔细审视这些项目,延用以往的金融证券管理框架,将token分为3大类别:

    • 证券类,要满足豪威测试(Howey test)
    • 功能类,基于场景,不拥有产权,作为运行燃料类似gas
    • 单位信托,具有投资价值

    但是考虑到token和coin之间是可以互换的,那原来属于证券的token,在公链上线兑换以后,就变成商品货币了吗?显然这不是一厢情愿的,币圈很多不论是加密币还是数字通证都想挑战法币,刻意避免通过豪威测试,害怕被证监会监管。甚至在区块链设计时,大家有意识的避免将数字token和实体经济的市值收益挂钩,称之为限制币值的“软顶”。其实这两方的观点都片面了,区块链的加密经济体系目前正在进行分化。有足够矿工和持币社区支持的数字币coin将实行其商品货币的功能。这样的货币不需要多,流通性和共识性是最重要的。甚至为了流通可以牺牲多样性,就像欧元加速欧盟内部经济流动的作用一样。区块链项目ICO发token融资,投资者使用的就是商品数字币(比如比特币,以太币等等),而他们投资的对象其实大多是资产token。现在再想发行商品数字币已经很难,因为当下流通性足够,矿工社区稳定,要想达到足够规模的社区共识依赖天时、地利、人和。下一轮通用数字币的机会在第三代智能算力带来的流通性膨胀里。

    新金融市场

    商品数字币加上资产币,加密经济重新定义了一、二级金融市场。币圈真正吸金的数字币都是商品货币,如果说投资商品币是“新一级市场”,那么商品币投资新项目的资产token就是“新二级市场”。区块链应用项目在新二级市场融资,获得的资本用来进行项目开发。最终项目收益和市场价值体现在币值上,就完成了币圈和实体经济的对接。如此币圈的吸金导管深深插入到传统金融的融资渠道和资金循环里。我们知道传统的一、二级证券市场是相互依存的,二级市场的上市公司大股东将个人股份抵押融资,配合LP基金交接到GP基金,最终回流到一级市场进行投资。一级市场的成功项目,通过IPO进入二级市场加速融资循环。但现在股市低迷,流动性又被币圈吸收,在币圈成功收割的大股东正回流到一级市场完成逆袭。如此循环下去,币圈的新一、二级市场将对传统证券市场造成沉重的打击。

    当然币圈也有自己的问题,现在还有很多项目只是拷贝了开源代码跑在自己机器上,或者改些小规则,优化一些小功能。这些项目俗称为“山寨币”,其实就是无内在价值的token,购买山寨币可以理解为信托。信托最大的风险就是投资以后不可控,目前又缺乏监管,所以投这类项目完全看团队。投资者要有心理准备,这些token项目即使发布了主链coin,也不可能取代现有的主流通用币,大多数只是短期炒作。最后哪怕做了些自己的技术也会逐渐被主流公链吸收,导致通用数字币极其严重的马太效应。真正鼓励的做法是探索区块链在实体经济的应用,放弃“割韭菜”的思维,真正为社会创造价值。目前通用公链上的实用项目其实很少,就好像二级市场的资金很多但是企业少,正是融资的最佳机会。当大多数人还在纸上谈兵的时候,一个关于小米“借壳”俄罗斯区块链公司Blackmoon发行与股票表现锚定代币的假新闻不胫而走。虽然小米并没有真正授权,但是这个设计打开了币圈的脑洞,在区块链的“新二级市场”进行融资成为一种可能。这里比较遗憾的是小米本身业务和区块链关联不大,所以这个脑洞相当勉强。未来如果能够跳出阶段性商业改良陷阱,将区块链技术实际应用到经济社会的改良上,加密经济的价值才会真正释放。

    通过和实体经济的关联,约束token滥发的同时,也是在重建信用。学习传统金融市场的监管,限制关联交易、内幕交易和恶意操纵市场,强制信息公开以保护脆弱的“韭菜”。但监管者这个角色难以落实,抛开繁重的成本,有人的地方还是会有江湖,无法保证去中心化。为了彻底解决这个问题,需要回到余额可以为负的比特非平衡账本,思考金融的信用本质。coin作为商品货币,被认可的关键就是商品流通量有极限,当然流通量只是必要非充分条件。token打破了这个限制,本质上是无限放大的信用。山寨币token不被认可,因为实际上信用并不是无限的,未来资产的收益和透支也不是无限的。在区块链的新金融市场里,token这种无约束的证券化,缺乏信用评级,不是最佳的金融模式。整合了征信,债券,利息的非平衡账本才是最有潜力的模式,但是这套新技术,新规则的成型和社区共识需要相当长时间去探索和建立。

    新货币市场

    从金融角度清晰定义了coin 和 token,作为证券的token是理所应当有波动起伏的,但是作为通用货币的coin,需要稳定以便持续的衡量商品和服务的价值。token投资是投项目,coin投资相当于外汇买卖,是投生态。首先生态要稳定,这就应运而生了稳定货币这个门类。其中维持稳定的手段几乎都可以概括为缓冲池,就像水坝一样,通过储水和放水来控制下游流量。但缓冲储量是有限的,也就是说长时间的单向波动,没有人能够永久维护。我们能做的只是把长周期的相对稳定,平衡到每一个短周期里。有旱季,有雨季,才能实现调配,持续的旱季会把储备掏空。这种缓冲池的做法有很多种,其一是中央储备,运用这个手段的典型数字币有Tether,其通过基于美元的中央储备来控制其数字货币USDT的价格。这个做法成本高,但好在其储备深度并不对外公布,预防了不必要的试探性攻击。bitUSD 也同样使用中央储备bitShares,但是把他放到了一个分布式区块链上。当bitUSD低于$1时,用bitShares购买bitUSD以维护其价格。

    还有一种缓冲池叫做发行量,NuBits 就是直接通过调控货币供应来控制升值,通过“加息”来控制抛售跌价,同时也用NuShares中央储备配合对冲。实践中NuBits在2016年5月首次遇到严重价格失衡,6月跌破0.5美元。虽然后来2017年重新回稳,但是2018年初遭遇巨大抛售,缓冲池坚持了数月,终于在5月失手。缓冲被击穿,价格暴跌到0.1美元以下,基本宣告失败。对比中央储备做缓冲的bitUSD和Tether面临年初的冲击都成功维持住了价格。

    除了简单的缓冲池,还有通过市场力量做跷跷板平衡的机制,其中Dai 就是更加市场化的债务抵押翘板。通过抵押市场和货币市场的双向对接来平衡Dai对美元的币值。和现货市场利用期货市场来对冲的概念一样,两个市场来进行双向负反馈。目前以ETH为抵押物,用户通过抵押自己的ETH换来Dai进行流通,同时Dai的价值也和抵押的ETH总量对应。以美元为挂钩目标举例:当我预计ETH会涨价,我就抛售Dai赎回ETH,Dai相对ETH降价。ETH的升值和Dai对ETH的相对贬值,最终维持Dai对美元的稳定。这里ETH抵押物实际上也是缓冲池,如果ETH持续贬值不值钱了,以他为抵押的Dai会存在系统性风险,导致Dai在美元市场遭遇非理性抛售。另外如果ETH异常波动,抵押物投资方判断错误,刚完成抵押ETH就升值了,这时只有持有Dai等待。而买ETH升值的人现在应该直接跳过Dai,兑换美元套现。Dai跌停,抵押方资产缩水,面临爆仓风险。所以说不论用什么技术手段,稳定都是相对的。

    新经济秩序

    经济体系的建立,需要成熟稳定的金融和货币。但不论何种市场,何种缓冲池,和美元对标其实也就失去了加密货币的自主流通功能,美元的失信会导致这类对标加密币的崩盘。我们需要学习欧元区,建立区块链币圈自己的货币体系。货币体系的货币管理,基于宏观经济的数据指标和模型,经典货币理论有这样的数量公式:$$M \times V = P \times Y$$。这里M为货币总量,V为流通速度,P是物价水平,Y是经济产量。区块链世界的MV容易观测,但是Y不易获得。这就意味着当MV异常波动时,我们无法基于实际经济体的情况进行定量调节。当面对巨量资金的外汇市场时,加密经济在明处,传统经济在暗处,传统经济调控者通过央行的政策,配合对冲基金池,非常容易攻击加密经济。加密经济因为去中心化,而且没有任何宏观调控的手段,只能坐以待毙,任币值波动。看似在“新二级市场”里,资产token的发行方持币坐庄,可以轻易操纵价格。但是当遇到2018年8月的全面币值危机时,毫无抵抗能力,大部分主流加密币都跌回了一年前的价格。脱离经济体系的币值管理,都是空谈。

    但要仔细区分链上的虚拟经济和链下的生产力并不容易,在实际经济产量不可知的时候,我们只能回到所有加密币的交易记录里,去试图分离出真实的经济流量。星云链Nebulas就在尝试计算这种经济指标,并以此来标定不同账户对经济总量的贡献度。他们的星云指数公式是账户资产余额中值和账户交易出入度的乘积。经济体要交易,也要稳定。回顾常见的Coin age加权,在一定时间内将交易次数乘以距离上次交易的时间再累加,会导致一定时间内交易10次和交易1次的效用无差异。这种coin age的经济指标只和资产总量相关,并没有鼓励交易。但同样过快的交易也有刷单嫌疑,所以交易的综合效用函数应该是两头低,中间高的。这种效果正是通过余额和交易的混合激励来实现:账户指数 = 余额中值 x 交易总金额。账户余额中值即统计时间内持有时间过半以上的余额,以此防止同一笔钱在两个账户互倒获得翻倍效果。结合交易的流出和流入额,在持有和交易间让用户自己平衡。以合计为10的余额为例,相乘结果最大的情况是对半 $$5*5$$,就是保留一半,交易一半,也就实现了中间高,两头低的效果。

    以此效用函数为基础,加上限制资产分拆的叠加收益($$f(x_1 +x_2)>f(x_1)+f(x_2)$$ ),再剔除一些循环交易,就是该账户最终的星云指数。所有账户星云指数的合计就反映了这个加密币的经济规模。以2017年 5月 1日至 2017年 6月 30日(3629091区块至3955158区块)的所有交易记录和日均ETH对美元价格为基础,发现以太坊的星云指数和其对美元市值高度关联。
    nebulas

    星云指数可以说是一种兼顾宏观和微观的经济体指标,他不局限在某一特定加密币,而是加密经济的一种通用指标模型。之后随着经济领域玩家的加入,相信会产生更多描述加密经济体的宏观和微观理论。基于这样的理论,加密经济终将拥有自己独立的经济地位。通过特有的去中心化信用体系,丰富的一、二级金融市场,以及成熟的货币管理,与全球其他主权经济体进行经济合作。

    新秩序新角色

    我们已经在现有社会体系里取得了不小的进展,通区块链Oracle链接实体数据,通过数字信用链接个人,通过区块链账本和传统银行系统互动,以及基于发币规则的社区激励。最终统一的数字身份可谓大势所趋,国内的微信和支付宝均与部分地方政府合作推出数字身份证,在公民身份信息库中存入生物信息非常普遍;国外有英国为中央政府推出在线身份认证服务GOV.UK.Verify、爱沙尼亚利用e-Residents项目为居民建立合法数字身份、新西兰推出RealMe、印度则有Aadhaar-Unique Identity Card (Uidai)、加拿大区块链数字身份认证系统也将于2018年上线。

    机器与物权也在重构,房屋登记、车辆登记都可以非常容易的上链。EVM上二进制代码也可以有自己的权利,可以扩展,可以转移,甚至有权移除自己。睡莲网络建立了机器世界的协作,社会关系彻底重构。好似鲜花通过花粉吸引蜜蜂,蜜蜂采蜜取食,也帮助了传粉授精。当生产力由机器自主完成后,人的生产关系受到冲击,按照生产关系的酬劳体系被打破。为了避免资本主义内在矛盾带来的供需失衡,最终导致大萧条,我们可以通过Universal Basic Income (UBI) 来重建资源分配体系。澳门在2008年由时任行政长官何厚铧提出的现金分享计划,如今已连续10年。每年向永住居民发钱,每人9000澳元。传统的资源型高福利国家也有类似尝试,北欧的芬兰从2017年尝试给部分无工作居民每月发放560欧元,即使该居民重新开始工作,补助也不会停止。这次实验的结果会影响后续针对更多人群的发放规则。2020年的美国大选也有持该理念的参选者Yang在普及和推广这一理念。

    新的身份,新的平台,带来区块链钱包和交易所的巨大机会。再一次,控制入口和控制流通成为了商业模型的锚点。但区块链的进一步分化,带来多入口,多平台,多链的兼容,最后所有的控制都化为虚无。唯有运行在区块链上的Dapp,通过产品的体验和独特的服务,来换取公平的商业收入。经济文明的新秩序,会渐渐传递到政府的社会治理秩序中。爱沙尼亚1991年从苏联独立出来,最早开始重新思考政府的角色。如今爱沙尼亚被视为数字政府的世界领导者,总统托马斯·亨德里克·伊尔维斯为此感到自豪。爱沙尼亚人甚至使用数字身份来投票,截止2014年普及率达到90%。但2017年11月这张居民ID卡也因为生产过程导致的安全漏洞紧急升级。对新技术的使用,我们要时刻保持警惕。美国西弗吉尼亚州(West Virginia)与2018年5月成为第一个使用区块链进行正式选举的美国州。但对于其机制的成熟性和隐私问题的考虑遭遇了包括Vitalik在内的很多质疑。

    经济激励的预测市场

    现有选举流程经过了时间的验证,操作手段上基本安全,但在机制上也有探索的空间。学术界有非常多的选举方法变种,比如Majority judgment的独立“好、中、差”评分,取中位数总分排名决定胜者。进一步优化到Quadratic Voting(QV),提供了购票功能,以放大对该问题真正关心的人的意见。同时购票成本随着已购票数的平方次幂增加,以限制过度的资金使用。Science曾刊登文章The Promise of Prediction Markets,论证加入经济激励的预测结果会比匿名投票更准确,并敦促政府开发这个市场,只做基础的合规约束。

    投票完全的经济化以后,也会衍生出金融属性。以前投票市场限制了每个投票者的影响力,以票数分配来展示结果。资金化以后类似博彩,大家可以在认同的选项上自由下注,胜者分钱,投票结果以资金赔率来展示。进一步金融化后,除了购买博彩票据,还可以抛售,做空,加杠杆。这时投票结果以票据价格展示,不论输赢,每一张票都有收益预期。当价格高于卖家的预期,低于买家的预期,就可以成交。这样如果赌两种可能的结果,就有两个票据,两个价格,价格比例和两种结果的下注比例关联。如果非理性市场导致价格失衡,就存在同时买卖的套利空间,最终依赖市场去修复。初期价格会波动很大,因为信息充分,纠正力量大。每个人除了买自己的票,还可以反悔把票出售,甚至通过杠杆撬动市场。最终稳定后的价格,就是大家普遍认同的胜率预期。当然在结果确定以前,有很多短期操作的空间,以及提前套利规避后续风险的操作,这些都给了不同信息持有者将信息套现的手段,也是市场修正的机会。

    信用押注的仲裁市场

    从QV一致性投票,到分歧对抗性投票,可以再进一步把购票改为押注。以太坊的POS机制就有类似要求,参与验证区块的人必须抵押自己的数字币来对抗恶意节点的进攻。押注形式也更加多样,当我们对某件事物判断错误的时候,损失的除了收益,还有信用。所以押注信用的预测市场可以用在商业仲裁上,因为商业信用本身就有很强的隐含经济价值。将信用和收益分离,避免了寡头使用经济杠杆操纵结果,又免去了押注大额资金带来的破产风险,可以更好的起到去中心化裁决的效果。笔者创立的“集信家”区块链信用平台,就通过这样的押注方式,来验证差评和退换货。整个仲裁过程和德州扑克一样分四轮:

    if 和解 then deal
    else (Pre flop 双边仲裁) {
        评价者押注,提出评价证据
        loop 商家加注,提出新证据
        	 评价者加注,提出新证据
        直到无新证据,最后一方跟注,最终双方押注金额一致
        if deal then {
        	认输一方的抵押只需支付一半给获胜方,鼓励双方提前解决
        	return
        } else (Flop 开放仲裁) {
            证据广播到矿工网络,矿工根据当前证据来判断二次下注
            满足一定加注金额和时间后开盘,以获得累计押注2/3多数方获胜
            if (deal>=2/3) then {
                获胜方包括当事人和押注矿工,可以按照下注量均分对方的押注
                return
            } else (Turn 升级仲裁) {
                邀请更多矿工加入,并有官方节点进一步采集外部证据
                满足累计加注要求,并保证总金额为奇数
                最终超过1/2累计票数的获胜,瓜分对方押注
                return
            }
        }
    } 
    

    在新的社会秩序下,每个人都是经济体的参与者,也是政治决策的参与者。中心化的决策过程进化为公平开放的去中心化过程。通过信用来背书每个参与者的可信度,再通过押注和购票来背书每个参与者的意愿和态度强烈,最终达到新秩序下,人与人,人与机器的新平衡。

    基础设施重构

    200年前为了将棉花产区和主要港口相连,加速农产品物流,美国南部开始了铁路修建。随着中部玉米带的发展,和贯穿中西部大铁路的建成,铁路成为运送农产品和居民出行的主要方式。至19世纪末,美国已拥有20家全国性大型铁路公司,以及不可胜数的地区性小型铁路公司。第一波的繁荣期从1869年横贯大陆铁路建成开始,到1910年的巅峰持续了近50年。其路网长度达到254,251英里,居世界之冠,巅峰约有210万名铁路员工。之后随着汽车和航空业的发展,以及社会经济发展水平的提高,铁路业在客运市场份额急速下降。二战以后,大量铁路公司破产,线路废弃,至1980年只剩下几家大型铁路公司。这一轮调整也持续了近50年。基础设施就像古代兵法所说:“兵马未动,粮草先行” 里的粮草,有着超长的建设和回收周期。

    这种建设投资一方面基于经济需求,另一方面也依赖技术发展,往往要跨越几个技术和经济周期。电报是最早的通讯网络,通过莫尔斯码将文字进行远程传输。电报发明30年后,出现了电话。同时为了满足跨洲的通信需求,从1858年开始工业界不遗余力的铺设更多,更快的海底电缆、光缆。截至2005年时,除南极洲之外,海底电缆已经覆盖联通地球上所有洲。本来只是发发电码,现在这些电缆升级为光缆,和陆地基站一起成为全球互联网的基石。当时铺设第一条大西洋电缆的工人,一定想象不到在这些通信网络上会承载如今庞大的移动互联网经济体。基础设施服务反过来,也促成了百花齐放的应用。

    当然基础设施不一定是单纯的硬件工程,同样的硬盘和芯片,在云平台就虚拟化为动态的存储和计算资源。高效的整合与服务能力,是数字时代的基础设施。云平台本来很多人只是拿来做网盘,后来封装了虚拟机租售给小企业开发者。当数据库成为所有服务的通用组件时,自动镜像和备份的云数据库诞生了。接着大数据兴起,分布式存储和流式计算需求增加,领先的云平台就抢先推出这类服务。现在进入人工智能时代,在线翻译,图像识别等标准服务也顺理成章的整合了进来。但云平台始终是中心化服务,在去中心的变革中,会如何应对?其实类似IPFS的分布式存储,利用民用磁盘的效率恐怕比不上机房里的云盘。但需要解决单一云平台的风险,让云平台成为矿工,建立跨平台的分布式系统,是一个合适的方向。

    区块链技术本来只是安全可信的账本,没想到打通了跨境支付的痛点,现在扩展到数据安全领域,之后可能逐渐成为类似“云”的基础服务。虽然现在评判还太早,但是连接了货币角色、人的角色、算力的角色以后,必定会产生全新的经济体。为了长期稳定的支持这种进化,我们的基础设施也要随之重构。莲花网络替代中心化网络服务,物联网形成DAG自组织传播等,终将这种重构带到硬件通讯层。就像铁路要升级到高铁,GSM蜂窝网络要升级到4G,5G,云平台技术要升级支持AI计算一样。区块链的云平台化,向上也会孵化出全新的数字服务基础设施。比如去中心化的云和网盘,安全匿名的数据流服务(去中心化的统计工具)等等。

    技术从发明到成熟需要10年,区块链在这个周期的中段偏后。新兴经济体系从边缘到主流也需要10年,区块链在这个周期的开头。基础设施在技术成熟的基础上,随着经济体的发展有第一波的建设。但随着经济体调整和成熟,会面临第二次重构。区块链经济的基础设施,还有很长的路要走,希望走得好,走得稳。

    展开全文
  • 如果未来由政府和大型机构支持,创造一个足够大的、完全基于加密数字货币的巨型市场或全球市场,各国央行也加入其中,完全用加密数字货币作为通行货币是可能的。已经有一些国家在这方面的尝试了,开始使用比特币来...
  • 区块链之初识区块链

    2018-04-16 11:42:37
    最近公司在做区块链的项目,但是由于一些原因还没有上线,碰巧昨天网易推出了首款区块链产品-星球,刷爆朋友圈,所以今天在这边班门弄斧,普及一下,不到之处,欢迎指正,共同学习。 首先得明白几个概念:区块链,...
  • 区块链介绍

    2018-02-26 20:00:16
    在人工智能的热潮过去之后,18年伊始,区块链也火了!(以前只是听说过比特币等网络加密货币使用的是区块链技术)物联网 + 区块链 + 大数据? 到底什么是区块链呢?下边是知乎的一篇介绍文章...
  • 点击上方“蓝色字”可关注我们!暴走时评:据AdWeek于3月26日报道,美国领先的巧克力生产公司好时公司已经加入基于区块链的联盟AdLedger。AdLedger由IBM...
  • 区块链光谱

    2018-09-27 20:21:09
    本文根据Taylor Pearson所著区块链光谱图,从密码学、分布式系统、政治学和经济学的角度对区块链做出的全方面分析: 想象你是一位大学院长,学院正要新增一门关于区块链的课程,那么这门区块链的课程该属于哪个学科...
  • 区块链科普

    2018-05-18 13:23:22
    区块链开发入门书籍和文档 知乎某科普区块链链接:https://www.zhihu.com/question/37290469 (感觉说的挺生动) 1. 区块链基础 定义:区块链是一种新型去中心化协议,能安全地存储比特币交易或其它数据,信息...
  • 区块链简介

    千次阅读 2018-09-15 15:35:25
    一、区块链是什么 区块链不是一门具体技术,而是一个系统框架的设计,通过一系列技术组合从而实现的一个去中心化存储数据库。区块链是加密货币底层的技术,无需中心服务器,可实现各类存储数据公开、透明、可追溯。...
  • 很多区块链小白们可能费时费力学了半天区块链,创建了钱包,从各种渠道到了数字货币,开始在钱包中参与各种各样五花八门的 DeFi 应用。那么,钱花出去了有没有被骗?是否根据正常流程参与了应用?这些都是普通非...
  • 亚马逊网络服务(AWS)已加入已包含IBM,HP,Microsoft,Oracle和SAP的区块链即服务(BaaS)提供商列表。 随着...
  • 区块链概述

    2020-01-10 22:58:50
    区块链中的三权分立: 区块链的分类: 关于炒币: 什么是区块链/比特币? ②区块链分类 ③区块链安全保障 ④利益共同体 ⑤钱包 比特币(BTC)总量 搬砖: 引言: 中本聪, 中本聪于2008年发表了一篇名...
  • 扫盲:区块链

    2019-12-05 17:53:16
    扫盲区块链,大概了解区块链
  • 认识区块链

    2018-03-23 09:05:16
    区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人们的生产力,电力解决了人们基本的生活需求,互联网彻底改变了信息传递的方式,那么区块链作为构造信任的机器,将可能...
  • 区块链全景课

    千次阅读 2018-07-03 02:45:09
    区块链和数字货币的浪潮已经席卷全球,其火爆程度无需多言。越来越多人渴望跟上时代趋势,快速学习区块链,以指导自己的投资和创业。在频繁的演讲中,我能深切感受到各行各业的朋友对区块链的热情,包括 IT 圈、证券...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,285
精华内容 3,714
关键字:

区块链如何加入购买