banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.

P2P网络

P2P ( Peer-to-Peer )网络即点对点网络,是无中心服务器、依靠用户群(Peers)交换信息的互联网体系(图 2-1),是分布式网络的一种。通常而言,该网络中各个节点之间的地位是对等的。与有中心服务器的中央网络 C/S 系统(Client-Server)(图 2-1)不同,点对点网络的每个节点既是客户端,也是服务器。节点之间依靠相互间的连接进行信息交流,各节点共享它们所拥有的资源(如磁盘存储空间、网络带宽、处理器使用率等)来提供服务和内容。因此,当新节点加入网络时,整个系统的容量也相应增大

image

与 C/S 网络模式相比,P2P 网络尤其适用于共享文件:在 C/S 结构中,资源存储在一个中心服务器里,在固定的带宽下,请求下载的用户越多,平均下来每个用户的数据传输越慢。而对 P2P 网络而言,许多节点存储着同一份文件的副本,当有人需要下载它时,可以同时从多个节点进行下载,而自己已下载的文件,也可同时上传给其他正在下载的节点,因此网络越大,速度越快。P2P 网络充分利用了网络中其他对等节点的带宽,而不只是利用文件来源节点的带宽。

在共享文件方面的成功,使 P2P 网络广受欢迎,但是由于大部分共享的文件是流行音乐和电影,侵权的问题也使 P2P 网络饱受诟病。** 在一个典型的 P2P 网络中,数据可以随意复制,副本可以任意保存。但是资产显然是不可以随意复制、存在多个副本的。** 中本聪创建的比特币项目,保留了 P2P 网络的 “分布式” 特征,也解决了资产在 P2P 网络中转移的问题:资产在不同的地址之间流动,而不是简单 “复制”;矿工在交易信息的过程中,将核实资产的去向。以下将对比特币的 P2P 网络进行具体说明,这一模式或可对使用区块链技术解决版权保护等问题提供启发。

比特币中的 P2P 网络#

在比特币网络中,每个节点可随机连接到其他节点,节点也可随时加入网络或离开网络。整个网络的节点总数是不确定的。各个节点在进行信息更新时,它们并不是实时一致的,而是只需在一定时间内达到一致。也就是说,部分节点的退出或崩溃,并不会带来整个网络的瘫痪;用户的加入和退出并不会对整体网络产生太大影响。

节点与节点之间的信息交换,主要以交易广播的方式体现。交易广播通过泛洪(flooding)的方式来实现。具体来说,节点发起一个交易的时候,会将这笔交易的信息告知所有相邻节点,相邻节点将根据存储的历史交易信息校验这笔交易是否可以进行,如果校验通过,这一交易信息会继续接力传播给下一批相邻节点。交易信息会像涟漪一样在节点群里扩散、传播开来。当节点接收到的交易信息与该节点交易池的信息重合,即表明这一信息已经传播一次,这才终止广播。由于每个交易有独一无二的哈希值,通过哈希值查询交易信息是否重复非常方便。

需注意的是,在 P2P 网络中,由于带带宽等原因,信息的传递往往是有延迟的。因此不同节点的交易池内容略有不同。如果有人发起双重支付攻击,并且两笔支付到达了同一个节点,诚实的节点将会仅保留一个交易,另一个不再广播,最终网络中不同的节点可能在短时间内存在记录不同交易的分歧,但是没关系,随着时间的推移,共识机制保证了最终只会记录一笔交易,使得双重支付攻击无法成立。

简要而言,比特币项目在 P2P 网络中建立起一个现金支付系统,主要依靠以下因素:节点之间地位对等;交易信息在节点间以泛洪的方式传播;节点检查交易是否成立;由共识机制确定合法的交易信息。

P2P 网络的局限性与权衡#

P2P 网络的优势如容错、可扩展的传输速度、数据安全性等,但在区块链项目中,这是以低交易处理能力为代价的。目前如火如荼的公链竞争中,许多项目都在交易处理能力上大显身手(例如宣称 “每秒可处理过万笔交易” 等),也从侧面表明了这是现有区块链技术尚待解决的问题。事实上,随着越来越多的节点被添加到其网络中,信息在节点间的传输延迟逐渐积累,信息传播至全网络所需的时间越来越长。因此,P2P 网络项目均需在低交易吞吐量和中心化之间进行权衡。当设置少部分 “超级节点” 进行交易信息的校核时,可提高交易信息的处理效率,但同时也使得网络变得中心化。在一个所有节点的地位都相同的网络中,所有节点都进行了交易的校验,将造成一定程度的重复劳动与资源浪费。

区块链技术令人兴奋,与其去中心化的特点有很大关联,而去中心化很大程度上是由 P2P 网络作为基础的。P2P 网络是一个非常均衡的构想,然而也需要付出一定的资源作为代价。在均衡的网络与提高工作效率之间,尚需进行取舍。建立一个高效率的点对点网络,还需要我们共同在通信技术上继续进步。

区块链技术则提出一种分布式账本的架构,把第三方机构从系统中剔除,让人与人之间可以直接进行交易。区块链的解决思路是让所有用户都拥有一个账本,所有用户都参与到记账的过程中。然而这样也带来一个问题:如何确保所有用户拥有的是同一个账本?如何保证账本信息的一致性?

在区块链中,交易信息是向全网络广播的,每个节点都能接收到交易信息。由此,** 账本信息的一致性问题,实际上变成一种 “唯一性” 问题,** 只要设计一种规则,确保只有唯一一种交易信息能通过筛选保留下来,即可保证各个用户记录下来的是同一种信息。

而 “区块” 和 “链” 就是实现这种唯一性的数据结构。区块存储的是一段时间内的交易信息,实际上是对交易信息的一种封装;在比特币里,一个区块可存储约 3000 笔交易信息。一旦这个区块被确认,3000 笔交易就一同被确认了。如果不对交易信息进行封装,每次确认一笔交易,则需要高频的确认操作,效率较低。

每个区块包含指向上个区块的地址信息,如此环环相扣,形成从最新区块到创世区块的一条 “链”。不同的共识机制,提供不同的方案来产生新的区块;有时候,同一时段内有可能产生 2 个(或更多)内容不同的区块,这就是 “分叉”。不同的区块之后,各自又会产生新的区块,而使各个链条有所延长。但一般而言,链条延长的速度是不同的。绝大部分区块链项目都遵循 “选最长链作为主链” 的规则,这一规则可保证即便出现分叉,在一定时间后,总能有一条链条是公认的 “主链”

image

由于最长链是唯一的,所有用户都将把同一链条记录在本地数据库上,这就保证了账本的唯一性,也就解决了账本一致性的问题。

此外,链式结构还带来一个好处。所有的区块都通过 “链” 连接在一起,形成了一个紧密的整体。如果黑客想要篡改历史上的某笔交易内容,则需要篡改交易所在的区块;黑客无法创造一个新的区块并直接进行替换,而需要把从这一区块直至最新区块的整个链条都重新替换(在比特币中,也就是从需要修改的区块开始重新挖矿,连续挖出此后的所有区块,并在进度上最终超过其他所有矿工,创造一条新的最长链),代价高昂。由此可避免篡改交易等攻击。

** 然而这种数据结构仍然存在问题:数据处理能力较低。在区块链中,为了避免存在冲突的交易信息(不允许持续分叉),也为了保证账本的一致性(需选出唯一的链),区块链采用的是最长单链结构。由于每次只能新增一个区块,在 P2P 网络中,区块信息的传播、确认需要时间,而区块的容量有限,这就使得一段时间内,能记录的交易信息存在上限。可见,“数据处理能力低” 实际上是满足一致性要求而付出的代价。** 目前比特币区块链平均一秒只能处理约 7 笔交易,与中心化的电子支付系统存在较大差距。

为解决数据处理能力低(交易吞吐量小)的问题,一个重要的思路是让多笔交易同时并行处理。侧链技术通过对主链上的款项进行锁定、解锁的操作,可把不同的区块链进行连接,扩充了交易处理的空间。而分片的思路则是把用户划分为不同的片区,每个片区里的交易可以独立验证、并行进行,而跨片区之间的交易则需进行额外处理。在侧链、分片技术中仍存在主链,两者均是通过限制交易的灵活性(如款项被冻结、交易的对象受限等),在保障安全的前提下,满足账本的一致性。

image

image

而另一方面,DAGDirected Acyclic Graph有向无环图)则是对另一种数据结构形式的探索。在一般的区块链项目中,所有节点保存的信息都是相同的;而采用 DAG 技术的项目,则允许各个节点保存不同的信息。在 DAG 中,区块可以随时产生,而一个区块与多个父区块进行连接。这样一来,所有人可以随时记账,交易信息的记录速度大为提高

image

然而由于多个区块同时产生,且均有效,DAG 无法以 “唯一最长链” 来保证一致性。在这方面,有的项目以 “历时性” 来保证 DAG 上账本的一致性。具体而言,在 DAG 中一个新区块将随机选择两个次新的区块进行连接,同时对与之相连的所有区块进行交易信息的验证。经历了多次验证的区块,其交易内容存在冲突的可能性很低,可被认为是已确认的交易信息。这一方案里,一致性的验证依赖于区块网络的延伸和增长。

其他项目则以 “全连接” 来保证账本一致,即每个新的区块都与之前所有区块相连,并验证此前的所有交易信息。还有的项目以 “次序” 来保证一致性,由区块递归投票来确认新的区块等。

DAG 带来吞吐量的提高,然而 “一致性” 始终是个有待解决的复杂问题,目前问题的解决都需要付出一些代价:可能是交易信息的确切验证时间有所延误;也可能是节点与节点之间需要进行大量的网络通信,使得实际交易速度仍有待观察。

归根到底,** 分布式账本的 “一致性” 问题,是一个平衡的问题。** 不妨说 “一致性” 是一个系统目标,而达成这一目标需要付出相应的资源,因此或牺牲交易速度,或限制交易的灵活性,或延后确认时间,或提高对全网的传输要求,都是不同系统条件下进行的适应性选择。相信上述提及的不同技术,将在不同的应用场景下,得到进一步的探索和验证。

在 P2P 网络中,各个节点地位相同,节点之间进行信息传输;在一个分布式账本中,需要保证各个节点之间存储的内容相同。而 “共识机制” 则是使各个节点内容相同的一种解决方案。在 P2P 网络里,有可能存在节点性能下降、网络拥塞等情况,使得系统中传播了错误的信息。因此在设计共识机制时,要默认系统中存在不可靠的节点。从算法的角度,这些机制的设计本质上是基于经济利益的博弈,使得诚实记账所获的收益,大于进行恶意破坏的收益,这样一来即可保证绝大部分人的合作。

技术的边界#

人们在设计一款新产品时,都必须了解当下技术的边界:哪些技术已经可以完全使用了,哪些技术还要等待一段时间。对于需要等待的技术,人们不得不在之后再进行考虑。当然,科学和技术有一些不同,科学研究可以给出理论上的极限边界,而从工程设计的角度更多考虑的是如何在大概率情况会出现的大致边界内,整体上做到最好。这类似于一种优化问题,需要知道给定的约束条件,才能正确地求解。

就共识机制而言,前人的研究已经给出了两个重要的边界:

● Fischer-Lynch-Paterson 定理:它证明了在一个多进程的异步系统中,只要有一个进程不可靠,那么就不存在一个协议,此协议能保证有限时间内使所有进程达成一致;

● CAP 原理:分布式计算系统不可能同时确保一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance),设计中往往需要弱化对某个特性的保证。

其中一致性是指系统中服务节点对于处理结果达成的一致;可用性是指在有限时间内,任何非失败节点都能应答请求;分区容忍性是指网络可能发生分区,使得节点之间的通信得不到保障。

在分布式场景下达成完全一致性是不可能的,但是工程上的许多问题的解决,都在于如何进行合理地取舍,可以牺牲一部分代价来换取分布式场景的一致性。目前,基于区块链设计的各种共识机制的不同主要来源于以下两个方面:

第一、算法假设的条件不同。如 Paxos、Raft 等算法假设节点不会故意发送错误的消息,这是一个比较强的条件。在比特币使用的 PoW 共识机制的前提条件是并不预先知道系统内有多少记账的节点,而联盟链里常使用的 PBFT 等协议则假设节点需要许可。

第二、付出一些代价以换取一定程度的一致性。例如根据 CAP 原理,弱化可用性,在系统故障时拒绝服务,Paxos、Raft 等算法就是弱化了可用性来保证结果的一致性。再如比特币牺牲了一部分容错性(有可能出现分叉),但是保证了整个区块链系统在一定时限后的一致性。

算法当然不是万能的,它的边界决定了必须要引入一些其他的激励和约束机制来使得整个系统正常工作

在基于 PoS(Proof of Stake,权益证明)的区块链项目中,创建新的区块并不需要消耗算力,而节点作恶也并没有什么惩罚;对于一个节点来说,利益最大化的选择是在多条链上同时挖矿,这会造成严重的分叉现象,一般需要针对这些情况引入额外的规则,如加入惩罚的协议等。

公有链的常用共识机制#

公有链里的共识机制设计主要围绕去中心化和增强激励,目前的许多新型区块链体系,支持可插拔的共识机制模块,可以根据应用场景和需求,切换使用不同的共识机制。

保持主链的 “唯一性”,对公有链来说至关重要,因为这是解决 “双重支付” 问题的关键:为了避免双重支付的出现,就应当获悉所有历史交易信息,以确保这笔交易与此前的历史不发生冲突。如何在双方信息不对称、不确定的环境下,使得交易仍可顺利进行,这就是 “拜占庭将军问题”。

比特币的 PoW(Proof of Work,工作量证明)机制通过以下途径来解决拜占庭将军问题:

● ** 维持周期循环,保证节点步调一致:** 调整难度来保证网络一直需要花费 10 分钟找到一个数学难题的解,并产生一个新区块。在这 10 分钟内,网络上的参与者发送交易信息并完成交易,最后才会广播区块信息,这样就杜绝了节点无限制、无规律地发送命令的状态。

● ** 通过算力竞赛,确保新区块由单个节点生成:** 比特币通过时间戳和电子签名,确保在某一个时间段内只有一个(或少数几个,这时属于分叉现象)节点可挖出新区块。

● ** 通过区块链,使用一个共同账本:** 比特币网络中的各个节点,在每个循环周期内是信息同步的。

事实上,无论采取什么样的方式,只要保证时间统一、步调一致、单点广播、一个链条就能解决加密货币这种分布式系统的拜占庭将军问题。

PoS 作为另一种共识机制,矿工掌握的加密货币数量占比等于其挖出新区块的概率。这会导致首富账户的权力更大,有可能支配记账权,也会造成权益越来越中心化,但是 PoS 确实大大减少了挖矿的能源成本。长远来看,可能会有更多的币种向 PoS 方向发展。

除了以上两种比较常见的基本的主流共识机制,目前的公有链共识机制的创新点在于两者之间的混合,从而在保留去中心化特征的同时提高数据处理的效率

例如以 Decred 为代表的 PoW/PoS 混合共识:

  • 挖矿的过程和比特币类似,也需要完成一定量的工作量证明,但是在达成共识的环节有所区别,不同于比特币需要全网节点来验证区块,最终以最长的链为主链,混合机制引入 PoS 投票来决定刚挖出的区块是否有效,大大提高了验证的速度。除此以外还有以 Hcash 为代表的 PoW/PoS 混合共识,结合双层链结构。将 PoW 难度分成两级,分别发布在两条链上,使得 PoW 矿工和 PoS 矿工都能参与系统共识并发挥作用。

联盟链的常用共识机制#

联盟链更注重隐私、安全和监管,因此会加入更多的管控元素,采用类似于传统的拜占庭家族共识机制

联盟链相对于公有链而言,弱化了对于去中心化的强调,同时由于节点准入制,相当于已经赋予了节点一定的信任。

DPoS(Delegated Proof-of-Stake,股份授权证明)机制里有股票权的人是通过选举产生和更换的,而不是像 PoS 这样根据币的数量来产生的。它通过不同的策略,不定时地选中一小群节点,由这一小群节点做新区块的创建、验证,签名和互相监督,大幅减少了区块创建和确认所需要消耗的时间和算力成本。DPoS 不需要太多的信任,所选的这些委托人不能改变交易的细节,如果节点存在试图作恶、提供的算力不稳定、计算机宕机等行为,公开的社区可以快速将他投票驱逐。

如果说 PoW 和 PoS 都是以经济模型为主解决共识问题,那么 PBFT (**Practical Byzantine Fault Tolerance,实用拜占庭容错算法)就是以算法模型来解决共识,** 它不存在代币分发机制,能耗很低。过程可以简述为大家先投票选出领导者,领导者记账后,其他人投票通过。在 PBFT 算法中,可证明只要会出错的拜占庭节点小于系统全部数量的 1/3,那么整个系统就可以正常工作。目前的改进算法方向大致包括使用 P2P 网络、动态调整节点的数量,减少协议使用的消息数量等。

联盟链的共识机制算法的创新也包括了例如 DPoS 和 PBFT 的混合,将 DPoS 的授权机制应用于 PBFT 中实现动态授权,已有研究证明这样的算法在最佳出块为 20 秒的时间间隔下,TPS 可以达到 10000-12000,时延控制在 100-200ms 之间。正是由于联盟链保留了部分的 “中心化”,从而得到了交易速度增快,交易成本大幅降低的回报。

共识的经济成本#

共识是需要成本的,公有链如 PoW 付出了大量的算力成本、硬件损耗时间和自然资源,以进行运算,求解一个不具实际意义的难题,来竞争记账权;而在联盟链上要达成共识,则如民主投票一样,需要经过一轮又一轮的磋商,交换意见,最后达成一致。如何降低民主的成本,如何用最少的磋商次数、最小的沟通成本达成共识是算法追求的目标,也是决定区块链这台机器是否跑得足够快的重要因素。

归根到底,我们应关注的是共识机制在代价与效果之间的平衡。区块链技术毕竟最终都需落地。对于企业而言,企业当然应该仔细思量自己的投入产出比,以决定是应该使用区块链技术,还是说存在成本更低的替代性方案。

例如使用分布式数据库来解决企业之间的信息不对称性,对数据设置查看权限和加密等级来实现不可篡改,并配合一系列的管理办法,加上大部分场景里可能龙头企业并无太大的动机去实现数据篡改,并且有足够的动力去维护数据库,在这种情况下,设计得再复杂的共识机制也许并不如一个好的商业模式来的有效。

哈希函数的特性#

哈希函数是指一类数学运算过程,它接受任意大小的输入值,经过运算后可以给出一个确定的固定长度的输出值,这个输出值可以作为这个输入值的数字指纹。正如对于双胞胎而言,他们各自的指纹也是独一无二的,哈希函数的设计使得它也具有同样的特性:即使是非常微小的输入值差别,哈希函数的运算结果也会有非常巨大的差异。除此以外,哈希函数没有任何启发式算法,输入和输出的关系看起来是完全随机的,例如给一个确定的输出结果,要求对应的输入值应该是多少,或者是要求输出结果小于某个值,问一个符合条件的输入值应该是多少,这些问题的求解没有什么技巧和方法可循,只能通过不断地进行尝试,尝试的次数越多,越有可能找到答案。

人们可以利用哈希函数的这些特性实现很多功能。例如数据保护:将数据的内容和数据的哈希值一起发送,接收者对接收到的数据进行哈希运算,对比即可知道数据是否被篡改。再比如,网站在进行用户登录时,可以在数据库里存储用户密码的哈希值,与用户输入的密码的哈希值进行比对来验证身份,好处是如果数据库泄露,黑客也不能通过这些哈希值来反推出用户的密码,相对来说比较安全。

值得注意的是,哈希函数的输入集合是无限的,而由于输出长度固定,输出的所有可能的集合是有限的,根据鸽笼原理:n+1 个元素放到 n 个集合中去,其中必定有一个集合里至少有两个元素。所以两个不同的输入值有相同的哈希值理论上是一定存在的,但这样的事情发生的概率非常小,而且哈希函数也在不断改进的过程中,SHA1 函数就曾经被密码分析人员发现了有效的攻击方法,此后如比特币在内的系统采用了更先进的 SHA2 系列算法,比特币多年的良好运行,表明 SHA256 算法经受了时间的检验。此外,连续多次使用哈希函数也是一种更加安全的选择。

哈希函数在比特币中有多处运用,可以说扮演了非常关键的角色。

  • 用途一:交易信息的压缩和验证

由于区块链要处理的交易信息内容庞大,将每个块内的所有数据直接以序列的方式存储将会非常低效且耗时,但是利用哈希函数可以对信息进行压缩和验证。在 Merkle 树(一种二叉树结构,可理解为存储数据的一种拓扑结构)结构中,结合哈希函数技术,可以快速验证某笔交易是否属于某个区块。对于打包到一个区块的所有交易,首先将它们划分为交易信息 1、交易信息 2 等部分,并计算出对应的哈希值 1、哈希值 2,之后两两结合进行哈希运算,最终得到这个 Merkle 树的根哈希值。如果某一笔交易信息记录的数据有变化,那么最终算出来的 Merkle 根哈希值也会不一样。

image

那么为什么要使用这样的算法,而不是直接将所有的交易信息串成一个大块并且算出它的哈希值呢?原因在于这样的二叉树结构可以允许仅仅进行少量数据的验证,同时如果交易的数据信息有误,也可以快速定位至出错的位置。

  • 用途二:工作量证明

什么都说区块链是不可篡改的呢?首先考虑一个简单的哈希链:每次打包时包含上一个区块的哈希值和这个区块的相关信息,如果某一个块的信息被篡改了,往后所有块的哈希值都会有变化,其他人也会注意到这个变化。但是这样设计的问题在于任何人都可以修改某一个区块上的信息,重新计算剩余链条的所有信息,并且声称这才是正确的链条。

比特币设计的精妙之处在于,它使得要实现这样的过程需要付出昂贵的成本。它采用工作量证明的共识机制,大家争相证明自己完成了一定的工作量,最先完成的获得记账权。而工作量指的就是要求找到一个随机数,使得它加上一个给定的字符串后,计算得到的哈希值小于某个值。在比特币中,这个给定的字符串包含了版本号、上一个区块的哈希值、以 Merkle 根哈希值存放的交易信息、时间戳、难度值的信息。** 矿工找到符合要求的随机数,既 “合法” 宣告了自己的记账权,也通过哈希函数完成了对交易信息的编码,并以一种不可篡改的方式存储。** 如果有人试图想更改交易信息,他必须运气特别好,能够快速且成功地找到往后链条的每个区块正确的随机数,使得他篡改信息后的链条成为当前最长的链条,这样的情况理论上的确可能发生,但是在算力有限的情况下,概率比较小。

  • 用途三:比特币钱包地址

在比特币的交易中,大家都能看到的信息如图 5-2 所示,左上角是交易号码,箭头连接的两个字母和数字组成的字符串是比特币地址,表明比特币在两个地址之间有了转移。而这个地址的生成是由钱包的公钥经过哈希函数转换而成的。其中公钥是由随机数字构成的私钥通过非对称加密形成的。交易时公钥和比特币地址都需要公开发布,来使区块链系统验证付款交易的有效性。

在这里哈希函数扮演的角色相当巧妙:量子计算机可以很容易地从公钥反推出私钥,但是量子计算机在面对哈希算法时,则难以找出拥有同一个哈希值的两个不同输入值,可以说中本聪的这个设计使得通过一些操作可以让比特币有可能抵御量子计算机的威胁:比如每枚比特币地址都只用一次,每次付款转账到别人的地址和自己的找零地址中。

中本聪通过巧妙的设计很好地利用了哈希函数的特性,并最终形成了一个良好运转的系统,这当中牵扯到了多种交叉学科,也提示人们在技术创新时需要抽象出事物的本质,注意与其他领域相互融合。随着技术的进步,新的哈希函数也在不断地被设计出来,并接受着大家的检验。

零知识证明#

零知识证明是一种基于概率的验证方式,验证内容包括 “事实类陈述” 和 “关于个人知识的陈述”。验证者基于一定的随机性向证明者提出问题,如果都能给出正确回答,则说明证明者大概率拥有他所声称的 “知识”。Zerocoin(零币协议)将零知识验证用于铸造零币和赎回零币的过程中,以隐藏一笔交易对应的发送方和接收方信息。Zerocash(零钞协议)采用更新颖的 zkSNARKs 技术,将需要验证的交易内容转换成证明两个多项式乘积相等,结合同态加密等技术在保护隐藏交易金额的同时进行交易验证。

缺点在于若网络受到攻击,在网络上出现超发的零钞,人们无法发现这一情况或采取措施;Zerocoin 和 Zerocash 均需要进行预先的 “信任设置”,没有达到真正的 “去信任”。英特尔 SGX、zkSTARKs 等新技术有可能解决上述问题,但仍需实践的检验。

零知识证明是一种加密方案,最初在 20 世纪 80 年代由 MIT 研究人员在论文中提出:“零知识协议是一方(证明方)可以向另一方(验证方)证明某事是真实的方法,除了这一具体陈述是真实的事实以外,不透露任何额外的信息。例如对于登录网站而言,在 Web 服务器上存储了客户密码的哈希值,为了验证客户实际上知道密码,目前大部分网站采用的方式是服务器对客户输入的密码进行哈希计算,并与已存结果对比,但是这种方式的弊病在于服务器在计算时就可以知道客户的原始密码,一旦服务器被攻击,用户的密码也就泄露了。如果能够实现零知识证明,那么就可以在不知道客户密码的前提下,进行客户登录的验证,即使服务器被攻击,由于并未存储客户明文密码,用户的账户还是安全的”。

基本的零知识证明协议是交互式的,需要验证方向证明方不断询问一系列有关其所掌握的 “知识” 问题,如果均能够给出正确回答,那么从概率上来讲,证明方的确很有可能知道其所声称的 “知识”。

例如某人声称知道一个数独难题的答案,一种零知识证明的方式是验证方随机指定这一次按列、按行还是按九宫格来检测,每次检测不需要看到数字摆的具体位置,只需要检测出来是否包含了 1~9 个数字即可,只要验证的次数足够多,那么可以大概率相信证明方是知道数独题目的解的。但是这样简单的方式还不能让人相信证明方和验证方均没有造假,在数独的案例中,两者有可能事先串通好,从而使得证明方在不知道答案的前提下通过验证。

如果他们想让第三方信服,验证方必须也要证明自己每次的检测方案是随机的且自己没有和证明方串通。

由于第三方观察者难以验证交互式零知识证明的结果,因此当向多人证明某些内容时,需要付出额外的努力和成本。而非交互式的零知识证明顾名思义,不需要互动过程,避免了串通的可能性,但是可能会额外需要一些机器和程序来决定试验的序列:例如在数独的例子中,通过程序的方式来决定哪一次按行、哪一次按列来检测,但是这个试验序列必须保密,否则验证方预先知道了试验的序列就有可能利用这个信息提前准备,在并不知道真实 “知识” 的情况下通过验证。

零知识证明的内容可以概括为两类:“事实” 类陈述:

  • 例如证明 “一个特定的图可以进行三着色”,或者 “一个数 N 是合数”;

  • 关于个人知识的陈述:例如 “我知道这个特定图的染色方案” 或者 “我知道 N 的因式分解”。

但并不是所有的问题都有零知识证明的加密方案, Goldreich、Micali 和 Wigderson 给出了理论上存在零知识证明解的有效范围。他们发现对于复杂度为多项式级的决策问题(问题的答案仅为是 / 否),存在已知的零知识证明方案。只需要在这样的 NP 问题中找到想要证明的论述,并转化为三色问题的一个实例,那么就可以利用已有的协议实现零知识证明。由于三色问题属于 NPC 问题,任何其他的 NP 问题都可以转化为这个问题的实例

在区块链上的交易中,如比特币和以太坊网络,除了使用地址来替换交易双方的真实身份,使得交易具有部分匿名性以外,发送、接收地址和金额都是已知的,别人有可能通过网络上的各种信息和现实世界发生的交互记录等,将比特币地址和真实身份对应起来,也因此具有隐私暴露的隐患。Zerocoin 设计了一种全新的思路,无法通过交易历史分析来获得用户真实身份。Zerocoin 里需要消耗一定价值的要交易的货币,以生成具有独特序列号的一枚零币。零知识证明可以在不透露花费了具体哪个货币的基础上,验证出你的确花了这笔钱。为了将这笔钱转给他人,逻辑上需要使这枚零币不能再被别人花费,零币的办法是大家共同维护一个作废列表,存着所有已经花费的零币的序列号。矿工在验证这笔花费交易时,运用零知识证明的方法,不需要知道具体花掉哪一个零币,也可以验证零币的序列号是否在作废列表里。由于花费交易并没有输入地址和签名的信息,在整个交易过程中,矿工也并不知道这个零币的来源,因此也就难以对交易历史进行分析而获取用户身份。

在零币里,交易的金额是可以知道的,而采用 zkSNARKs 技术的 Zerocash 连交易金额都可以隐匿,账本唯一公开记录的内容就是交易的存在性。可以证明对于 NP 中的所有问题存在 zkSNARKs。它引入了多项创新技术,使它们可以在区块链中使用。最重要的是,zkSNARKs 减少了证明的大小和验证它们所需的计算量。它的过程可以简述如下。

(1)将要验证的程序拆解成一个个逻辑上的验证步骤,将这些逻辑上的步骤拆解成由加减乘除构成的算数电路。

(2)通过一系列的变换,将需要验证的程序转换成验证多项式乘积是相等的,如证明txhx)=wxvx)。

(3)为了使得证明更加简洁,验证者预先随机选择几个检查点 s,检查在这几个点上的等式是否成立。

(4)通过同态编码 / 加密的方式使得验证者在计算等式时,不知道实际的输入数值,但是仍能进行验证。

(5)在等式左右两边可以同时乘上一个不为 0 的保密的数值 k,则在验证tshsk等于wsvsk时,就无法知道具体的ts)、hs)、ws)和vs) ,因此可以保护信息安全。

不同于 Zerocoin 的密码学原语 RSA 累加器,zkSNARKs 技术较新,未经广泛验证,存在风险,同时由于更强的匿名性, Zerocash 的漏洞更难发现,和 Zerocoin 相比,Zerocash 由于交易金额信息也是未知的,所以如果有攻击者无限制地发行零钞,这样的情况是无法检测的。

除此以外,Zerocoin 和 Zerocash 均需要提前内置生成参数,用户在使用这些网络的时候,必须信任这些参数没有被泄露,但是一旦这些参数被泄露,整个网络将面临毁灭性打击。复杂的信任设置使得 Zerocash 存在争议,即使他们设计了一套 “仪式”(例如录下砸坏存有密钥计算机的过程)来证明自己的安全性。

可能的解决办法包括利用像英特尔 SGX 和 ARM TrustZone 这样的现代 “可信执行环境”。就英特尔的 SGX 技术而言,即使应用程序、操作系统、BIOS 或 VMM 遭到了破坏,私钥也是安全的。除此以外,最新提出的 zkSTARKs 技术不需要进行信任设置。

根据 zkSTARKs 白皮书中所述,zkSTARKs 是首次实现可以不依赖任何信任设置来完成区块链验证,同时计算速度随着计算数据量的增加,而指数级加速的系统。它不依赖公钥密码系统,更简单的假设使得它理论上更安全,因为它唯一的加密假设是散列函数(如 SHA2)是不可预测的(这一假设也是比特币挖掘稳定性的基础),因此也使其具有抗量子性。作为一种新颖的技术,和 zkSTARKs 一样,它也需要经过时间的检验。

如果一个问题可以找到一个能在多项式的时间里解决它的算法,则称为 P 类问题。NP 问题是指可以在多项式的时间里验证一个解的问题。如果一个问题是一个 NP 问题并且所有的 NP 问题都可以约化到它,则称为 NPC 问题。

哈希时间锁协议#

哈希时间锁协议Hashed-Timelock Agreements,**HTLAs)是一项可使不同区块链项目之间进行代币交易、互换的技术。** 在传统的交易所进行代币交易时,交易者往往需要把代币提前质押给交易所,这带来了一定的交易风险,并需要较高的手续费用。而在哈希时间锁协议中,只需发送者、连接方、接收者三方,即可实现代币的交易,期间不需要任何交易所平台,且在交易失败时,代币并未发生实际转移,不需支付额外的交易费用。与交易所相比,哈希时间锁协议相当于提供了一个 “跳蚤市场”,无须托管的第三方,交易所的作用被分散至社区内的个人,人与人之间可以安全地进行代币间的交易。

哈希时间锁协议技术想法的提出,最早应源于 2013 年 BitcoinTalk 论坛里的一场讨论;而技术的实际落地,又与比特币的闪电网络有关联。在闪电网络中,为实现两个用户之间的小额支付通道,用户需提前锁定自己的部分款项,两个用户涉及该部分款项的交易在链下进行。一段时间后,款项的最终分配确定下来,该分配方案再上传至主链(图 7-1)。这样一来,即可使大量的小额交易在链下进行,提高了比特币网络的交易吞吐量。

闪电网络中用于锁定用户款项的哈希锁合同(Hashed Timelock Contracts, HTLC)技术启发了后来的开发者们。代币与代币之间的交易,需要经由中间人的转换,这其中的关键在于取得各方的信任。而对代币进行锁定的过程,正是一个可以产生信任的质押过程。

image

以一笔虚构的交易为例。假如 1 枚比特币与 10 枚以太币的价值等同,发送者(Sender)手上拥有 1.1 枚比特币,希望购买接收者(Receiver)提供的价值 10 枚以太币的服务。则发送者可以联系一个同时具有比特币地址与以太坊地址的连接方(Connector),并协商好代币转换的手续费为 0.1 枚比特币。那么交易的流程如图所示

image

在这一过程里,风险较高的是传输 1.1 枚比特币的步骤:连接方有可能在收取 1.1 枚比特币后马上退出交易,使得发送方利益受损。合理的方案是把比特币的交付延后处理。当以太币实现交付后,再进行比特币交付,交易风险即转移至连接方(方案二)。

为了同时保障连接方的利益,需解决的问题是确保接收方在获得 10 枚以太币的同时,发送方的 1.1 枚比特币也送往连接方,两个事件需要同时发生。** 这实际上是交易 “原子性” 的体现:要么款项完全实现转移,要么款项完全未转移,不存在中间的状态。** 这一问题由预共享密钥(Pre-Shared Key,PSK)技术解决。

如果把 1.1 枚比特币看作一个交易包,10 枚以太币看作另一个交易包,在 PSK 技术中,这两个交易包都由同一个密钥启动,从而实现 “两者同时发生”。

发送方预先由加密算法得到一个密钥,把密钥发送给接收者,把相关信息发给连接方。同时,发送方将自己的 1.1 枚比特币锁定在交易包 1 里,需密钥才能转移款项。

连接方通过发送方给出的信息,制作一个包含 10 枚以太币的交易包 2 并发给接收者。当接收者用密钥打开交易包 2 时,接收者获得 10 枚以太币,同时密钥也被发送给连接方,连接方可以使用该密钥获得交易包 1 里的 1.1 枚比特币。这样一来就实现了代币之间的互换。

为避免款项锁定时间过长,交易包 1、2 均需约定限制时间,超出时间后,款项即解锁、返回原地址,这就是时间锁(Timelock)功能。而上文提到的预共享密钥则使用了哈希加密(Hashed),因此该技术方案被称为哈希时间锁协议(Hashed-Timelock Agreements)。

局限性#

这一技术依然存在一定的局限性:

(1)连接方需承担一定的风险。在 PSK 技术中,连接方需向交易包 1 注入密钥才能获得比特币,也就是比特币和以太币的交付并非完全在同一时间发生。由于两个币种的交付均约定了限制时间,若交易包 2 的限制时间大于交易包 1,有可能使得接收者获取 10 个以太坊后,连接方无法收回应得的 1.1 枚比特币,而蒙受损失。这一风险可通过设定交易包 1 的限制时间总大于交易包 2 来避免

image

**(2)对于不支持哈希时间锁技术的区块链项目,只能通过另外的账本平台进行上述过程。** 额外的记账平台可保存代币之间转移的交易记录。然而由于记账平台本身不发生代币的转移,本质上记录的是赊账、借账的信息,需交易双方之间相互具备充足的信任度,交易才可进行。而通过账本平台,只要保证双方具备信任基础,非区块链的资产亦可通过这一记账方式进行交换。

** 本质上,不同资产之间的交易、流转,只需提供信任基础(产生联系),保证交易的原子性(资产交割),即可进行。** 而在哈希时间锁协议中,代币的锁定实现了资产质押,为交易提供了信任基础。而密钥的传递,则保证了交易的原子性。同时时间锁的引入,避免了交易时间过长而造成的纠纷或意外。除区块链项目外,这一模式可应用到不同资产类别的流转中。

哈希时间锁协议技术已由 Ripple Interledger 项目基本实现,在可运行智能合约的区块链项目中,币与币交易的落地或将逐渐变得普遍。** 这一技术提供了一种区块链项目生态的可能性:** 如 BTC 等主流区块链项目作为主结算系统,而其他应用项目针对性地解决用户的不同需求。当用户享受服务、进行结算时,使用代币互换技术进行支付。这样一来,主流项目传递价值;应用项目面向细分需求,同时为主流项目分摊服务压力;用户各取所需。最终将构建起一张全球共用的可信任的结算网络,在此基础上运行一切去中心化的应用,真正实现丰富的区块链应用生态。

参考:

 https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224

分片技术#

传统概念里的分片技术是将数据库分割成多个碎片并放置在不同的服务器上。在现代的云服务中,数据常常被托管在不同站点并进行分区。这一做法的原因包括使多台计算机之间的负载平衡,进而提高可扩展性;通过多站点存储数据,来提高可用性等。

而区块链分片技术则是基于数据库分片概念的一种扩容技术。

无论在区块链领域,还是数据库领域,分片时要进行的第一步工作都是提取数据的关键特征值,并将关键特征值按照一定的规则来划分给不同的碎片进行处理。关键特征值的选择非常重要,它关系着数据的唯一性保障以及分片的效果。关于特征值的选取方法,一个言简意赅的标准:“以你所认为的基本数据模式为标准”。因此在区块链项目中经常可以看到分片的依据是用户的私钥 / 账户地址等,因为这些值是唯一的且不随时间改变的,分片时逻辑比较清晰。

传统数据库的分片方式#

传统数据库的分片主要有三种方式:

**(1)哈希运算后取模:** 例如规定全网络划分为 3 个分片,则将数据经过哈希运算后用 3 求模,根据结果分配至特定的碎片,此种策略的目的是减少分片负载不均衡的发生,因为哈希函数计算出来的结果毫无规律,也就打破了因为一些关键特征值和负载的量相关的情况,因此数据更有可能均匀分散于各个分片之间。一个反例则是,如果数据的关键特征值是注册时间顺序的话,刚注册的数据更为活跃,则有可能会把它们都分到某一个分片里。但是这一方法的缺点在于如果有新的分片加入,重新平衡分片比较困难;其优点则在于不需要额外维护状态信息。

**2)一致性哈希:** 无虚拟节点的一致性哈希方式是指数据按照特征值映射到首尾相连的哈希环上,同时也将节点按照一定规则映射上去,数据顺时针找到的第一个节点为其所存储的节点。有虚拟节点的一致性哈希和此类似,不过是将虚拟节点映射到哈希环上,因此,一个实际的物理节点可以占据哈希环上的多个范围。此种方法需要维护状态信息,也就是数据具体被分到哪个节点了,但是优点在于如果碎片的数目需要增加,则重新平衡分片更为容易。但是分片状态信息的维护需要考虑一致性问题,较为复杂。

**(3)人为划分区间:** 按照关键特征值划分成不同区间,每个节点对应一个或多个区间,类似一致性哈希的方式,也需要维护状态信息。

  • 分片中的一致性挑战

在区块链技术中,需要有机制来知道哪个节点实现了哪个分片,在传统数据库系统中分片信息(即元数据,指哪些数据划分到了哪个碎片内)一般需要专门的服务器存储,有时为了减轻元数据服务器的压力,分布式系统会在其他节点缓存元数据。在区块链中的思路也大体一致,需要保证在节点之间缓存的元数据的一致性,或者引入一个类似的主服务器来保证性能,但这些方案都需面对数据一致性的挑战。

多个副本的一致性、可用性是 CAP 理论讨论的范畴,主要有两种可用的方案。

第一种是主从同步,首先选出主服务器,只有主服务器提供对外服务,主服务器将元数据的更新信息以日志的方式存至某个共享的存储空间,然后从服务器从共享存储空间读取日志并应用,达到与主服务器一致的状态,如果主服务器被检测到故障,那么会重新选出新的主服务器。

在网络分割的情况下,有可能出现大家认为原来的主服务器已经宕机了,就选举出新的主服务器,但是原来的主服务器还在继续提供服务的 “双主” 现象。为了解决这种问题,需要想办法把旧的主服务器隔离,使其不能正常对外提供服务。为了保证元数据的强一致性,在准备进行切换的时候,新的主服务器必须要在确认元数据完全同步之后,才能继续对外提供服务为了达到这个目的,一种方式是当元数据变化时,立即通知所有的缓存服务器,并锁定数据,如果系统要完成的任务需要多个碎片里同时对状态进行更新,那么在更新完成之前,访问将被拒绝。另一种在高度可扩展的 NoSQL 数据库中经常实现的复制数据之间保持高度一致性的方法是使用读写仲裁和版本控制。这种方法避免了锁定数据,代价是读取和写入数据的过程中会带来额外的复杂度。

第二种方式是通过分布式一致性协议来达到多个副本件的一致,如 Paxos 和 Raft 协议,协议可以实现所有备份均提供对外服务,并且保证强一致性。

区块链技术下的分片方式#

在区块链网络中,根据对象的不同,技术可分为状态分片、交易分片和网络分片。其中,网络分片采用较多的技术方案。

区块链的状态分片是指每个节点只存储了一部分的区块链状态信息,需要解决的一致性问题与上述类似。

而交易分片的实现更为简单。在基于账户的区块链系统中,每一笔交易将会有一个发送者的地址,然后系统可以根据发送者的地址分配一个碎片。这确保了两笔双花交易将在相同的碎片中得到验证,因此系统可以很容易地检测到双花交易,而不需要进行任何跨碎片的通信。如果节点是确定的,那么几乎不存在上述讨论的元数据的更新带来的问题。但是如果交易验证时涉及跨碎片之间的通信,通常成本很高,将影响网络的吞吐量和经济效益。

区块链的网络分片指将矿工划分成几个组,同时验证交易,提高系统并行处理交易的能力。通常可以通过定期以随机数生成来决定选取达成共识的节点,将其映射到已经编好号的分片中。但是如果有节点宕机,重新分配节点时,就需要在分片之间形成一致性共识。

值得注意的是,在区块链中采用网络分片技术,也就是将矿工分成几个子网络分别负责验证该碎片上的交易,需要保证恶意节点的数目足够小,因此在分配矿工的规则上注意保证随机性。

分片技术的关键在于由于每个片区里的数据是分开更新的,在设计应用逻辑时,必须确保在平衡效率的前提下,对信息进行成功更新,同时也需要预留出一定的鲁棒性,来应对达成最终一致性过程中可能出现的问题。在区块链中应用分片技术,还需要考虑的问题是对各种攻击如女巫攻击、DDOS 攻击、双花攻击的防御,需要在权衡效率的同时,保证每个分片内的总节点数目足够多,并且诚实的节点占大多数,分片技术对安全性要求极高,同时,区块链系统中的节点数目比传统数据库中的可能要多,并且面临带宽的限制,需要充分考虑到延迟带来的不一致性导致的性能和安全性问题,因此很少有落地的相关项目。需要在大规模的网络中进行长时间的测试验证,并结合严谨的理论方案证明,才能令人信服。

空间证明共识算法#

自 2009 年第一枚比特币被挖出以来,区块链行业逐渐拓展为一个巨大的全球市场。除 BTC 以外,LTC、ETH、EOS 等各式各样的区块链项目层出不穷。目前,仅以太坊上的 ERC20 代币项目,就超过 11 万个;而发布项目白皮书的公司更是数不胜数。

比特币实现了一种点对点的电子支付系统,而这一分布式系统的诞生,有赖于其采取的 PoW(Proof of Work,工作量证明)共识算法。目前,绝大多数具备主链的区块链项目,仍采用 PoW 或改良后的 PoW 共识算法,仅有一部分项目采用 PoS(Proof of Stake,权益证明)或 DPoS(Delegated Proof of Stake,股权代理证明)等算法。PoW 为分布式账本带来简明、有效的共识产生机制,然而也产生了一些问题:在计算哈希函数的过程中,大量能源被浪费。由于 ASIC 等芯片的产生,比特币也面临着越来越中心化的挑战。比特币的现状与中本聪最早的设计已经相去甚远。

而 PoS、DPoS 机制同样具有中心化的问题,而且投票过程往往较为烦琐,两者显然并非最佳的解决方案。值得一提的是,市面上曾出现一些采用如 “交易即挖矿”“锁仓即挖矿”“投保即挖矿”“挖矿即挖矿” 等方案的区块链项目。但本质上,这些项目所发行的还仅仅是以太坊上的 ERC20 代币。由于不具备主链,这些项目均不需要共识机制。所谓的挖矿方案,本质上属于空投方案,是一种激励手段,与区块链的核心技术无必然关联。

真正要解决 PoW 所衍生的浪费能源、中心化的问题,开发多样化的挖矿方案,至少需要解决以下一系列技术问题:

(1)如果不耗费工作量,以什么作为用户付出代价的证明?

(2)该种证明如何被校验?

(3)如何确定挖矿竞赛的优胜者?

(4)如何避免主链分叉等?

空间证明的原理#

在技术进展的过程中,PoSpace 方案做出了重要的探索。PoSpace 即 Proof of Space空间证明。PoSpace 意在取代比特币中的 PoW 机制,成为一种新型的共识机制解决方案。这一方案目前已在一些区块链项目上实施落地。它以用户支付的硬盘空间作为付出代价的证明,通过下载文件占据硬盘空间,所占的空间越大,说明用户付出越大。

PoSpace 可带来以下好处:极大地减少资源浪费;用户一次性付出硬盘空间后,后续挖矿不需额外增加付出等。根据一些团队的测算,PoSpace 里的用户行为可视作一种拓展性的博弈模型,随着时间增长,会有越来越多的用户加入进来。

为应对硬盘空间造假的问题,PoSpace 把节点分为两种角色:证明人和校验人。证明人即普通节点,需要存储较大的信息数据(如 100GB),而校验人存储数据库以及证明人的一小部分存储信息,以便验证。

当用户 / 证明人初次加入网络,他需要根据选择的存储空间大小,存储一部分具有特定序列的数据(存储的数据由用户的公钥决定,因此各位用户的数据并不相同)。这些数据以有向无环图(DAG)的结构存储,而每个数据块之间的关联关系,以 Merkle 树的形式发送给校验人。由此一来,校验人可由公钥知道证明人存储的是哪些数据、由发送的 Merkle 树知道这些数据以怎样的结构存储。

在验证环节,校验人向证明人发送一份 “挑战”。这份挑战是证明人存储数据块的某种随机组合。证明人需要根据挑战信息,生成对应组合数据的哈希值,并返还给校验人,由校验人验证该哈希值是否正确。

由于挑战是数据的一种随机组合,而略微不同的数据都将使得哈希值完全不同。因此证明人必须确实存储了 “挑战” 所指明的数据块,才能生成正确的哈希值。而校验人由于存储了完整的数据库,他也可对证明人发回的哈希值进行校验。

证明人有可能仅存储小部分数据,而仍然通过校验人的挑战(证明人所存储的小部分数据,恰好囊括挑战所包含的数据组合)。然而随着 “挑战” 的过程多次进行,证明人通过存储少量数据而生成出正确反馈的概率大幅下降。因此可通过多次验证来避免证明人的作弊行为。这就是 PoSpace 里的空间确认过程。

而有了校验用户存储空间的方法,仍需通过一些方式来确定挖矿竞赛的获胜者。比较合理的方式应是,存储空间越大的矿工,越有可能在挖矿竞赛中胜出。PoSpace 则通过设计一个 “质量函数” 来实现这个目标。

质量函数#

质量函数” 需要保持一定的随机性,而同时按照贡献空间的大小来区分各个矿工获胜的概率。因此一个简化的做法是,应对校验人的挑战,矿工反馈的哈希值(一串数字)直接作为随机量,并根据矿工所占的空间对这串数字进行增减。譬如矿工存储的空间总大小为 N,则对哈希值开 N 次平方,得到质量函数。这样一来,矿工存储的空间越大,质量函数的数值越小。我们可以规定单次挖矿竞赛中,质量函数最小的矿工获胜。

但此时仍存在问题:由于矿工在一次性付出硬盘空间后,在挖矿过程中不需有后续付出,因此参加挖矿竞赛不需要付出代价,进行主链分叉几乎没有成本。为避免矿工随意分叉造成双花等混乱情形,仍需要一种规则来确定某链是唯一链,而所有用户均只记录这个唯一链,这才是真正达成共识。

由于每个区块由具有最小 “质量函数” 的矿工挖出,一个自然的想法便是:由质量函数来确定唯一主链。设定一个数量 i,规定从最新的区块往前 i 个区块的质量函数相加,得到链的总质量函数。总质量函数最小的那条链,可判定为主链,在此基础上,为强调越早的区块所占的比重越高,可增加一个折扣函数,对早期的区块进行缩减(以提高其重要性)。

因此当主链出现分叉时,对两条(或多条)分叉链的叉链的总质量函数进行计算,即可确定唯一链,由此保证仅有一条主链,从而使各用户之间建立起一个分布式、同时又统一的账本系统。

PoSpace 使用物理硬盘空间作为付出代价的证明,解决了比特币里 PoW 持续浪费大量资源的问题,同时可建立一个与比特币作用相同的电子支付系统。PoSpace 可认为是共识机制在 PoW 基础上的一大进步。但与此同时,PoSpace 仍存在一些问题:如引入了校验人角色,增加了系统的风险;如何设计和安排校验人,仍是一个问题;以硬盘空间为证明,存在着中心化的风险,因为小部分人可以通过巨大的财力购置大量硬盘空间,持续垄断挖矿,造成类 “51% 攻击” 等。中本聪 “一枚 CPU 芯片代表一个个体,每个个体拥有平等挖矿机会” 的构想,仍然难以实现。

但不得不说,PoSpace 的思路为我们提供了许多启发,如通过随机的方式对用户付出的代价进行校验;通过设计区块质量函数确定挖矿竞赛的获胜方式;通过设计链质量函数来避免主链分叉等。沿着这一思路,完全有可能开发出适应不同使用场景的共识机制,如 “注意力证明”“时间证明” 等。此外, PoSpace 中硬盘所存储的空间,若从无意义的字节,改为有意义的内容(如影片等资料),PoSpace 或许天然地适用于建立网络资源共享社区。相信在不远的将来,共识机制将迎来更多的发展和应用。

Mimble-Wimble 技术#

在比特币中,全节点需要下载完整的约 232GB 的历史交易数据,以便对新交易进行验证。他们需要检查提交至区块链的全部交易(而交易以每日约 30 万笔的数量在增加),以得到接近 6600 万个 UTXO(Unspent Transaction Output,未花费的交易输出)。正是由于需要检查所有历史交易数据的这个步骤,使得成为比特币全节点的门槛大大提高,而降低全节点的门槛对于保证区块链的去中心化至关重要。况且历史账本随着时间的推移,还会不断增大,在较短期的未来,普通个人计算机难以支撑比特币全节点的运行。

是否存在一种方法,使得让全节点不需要下载全部的历史账本数据,但仍然能够验证交易,以保证区块链系统的安全?

同时,现有的比特币的隐私匿名性也并不如想象中的好。由于交易地址和转账金额是公开的,通过大数据分析技术,有可能根据这些转账历史分析出地址对应的交易双方身份,用户的隐私性因而受到威胁。

事实上比特币的上述问题的确存在着解决的办法,它不仅可以使得原本需要下载 232GB 的历史账本缩小为 50GB,显著减少存储空间和带宽使用,而且还可以提供更强的隐私性,这个强大的技术就是 Mimble-Wimble。

它最初的白皮书在 2016 年发布,技术名称和作者都充满了魔幻的色彩, Mimble-Wimble 是《哈利波特》中的 “无声无息之咒”。和中本聪一样,作者采用了化名 Tom Elvis Jedusor(伏地魔在《哈利波特》中的法语名称),在扔下白皮书后销声匿迹。

实现原理#

在 Mimble-Wimble 中,隐私性和可扩展性得到保证的原因来自于以下三点:

**1)区块链中没有地址,每次转账中接收方都要构建新的交易见证。**

(2)交易金额也是隐藏的。

(3)中间状态的交易可以合并。合并是指如果在要打包到区块的所有交易中,先从 A 转给 B 钱,然后 B 转给 C 一定的钱,那么不需要全部记录这两笔交易,只需要记录 A 转给 C 多少钱,合并交易的中间状态,同时附上 B 的签名,就可以在保证交易成立的同时,显著减少区块存储所需的空间。

Mimble-Wimble 依赖于 ECC(Elliptic Curve Cryptography,椭圆曲线密码学)。在 ECC 中,通常选择一个非常大的数字 k 作为私钥,如果 H 是椭圆曲线上的一个点,那么 k×H 则作为相应的公钥,椭圆曲线的性质保证了难以从公钥推导出私钥 k,因为曲线点的除法非常困难。基于这个属性,可以在交易中隐藏实际交易金额。具体方法如下:

假设交易的金额是 v,节点在验证交易的输出等于输入时等价于要验证 v1+v2=v3,该式子等价于在等式左右两边乘上椭圆曲线上的点 H,即需要验证:

v1×H+v2×H=v3×H

虽然这样已经难以反推出实际交易金额,但是由于可以尝试的集合有限,攻击者仍有可能反推出 v1 的值。因此,引入第二个椭圆曲线 G 点和私钥 r,将交易中的任意一笔输入输出值用 r×G+v×H 表示,由于椭圆曲线的性质,r 和 v 都不能推导出来,那么需要验证的等式变成了:

r1G+v1H+r2G+v2H=r3G+v3H

并且要求 r1+r2=r3,这样交易的实际金额就得到了很好的隐藏。在实际交易中,交易的金额只有双方知道,区块链的节点看到的信息是经过加密后的数字,而私钥 r 只有自己知道。为了验证交易的输入等于输出,而又要保护发送人的私钥不被接收人破解,需要发送者选择一个额外值,添加到自己的私钥上,在接收者视角只看到两者的和,而只有自己知道真正的私钥值,在验证时只需要验证,交易输出的和等于输入,且交易者知道额外值即可证明自己知道的方法就是用其来构建 ECDSA 签名)。因此,额外值的作用就相当于一笔交易的私钥,可防止双花。

在合并交易时,执行的验证过程类似,因为单笔交易需要验证的内容是输出等于输入,** 那么经过合并(包括混合以及删减中间状态)后的交易本质上要验证的也是最终的输出等于输入,中间状态的交易则只需要验证它的签名即可。** 如果出现了双花,那么和比特币一样,节点很容易验证出总的交易输出不等于输入。在 Mimble-Wimble 中,节点可以将采矿所产生的所有资金的总和与持有的总金额进行比较,以检查总货币供应的正确性。通过范围证明可以用来确保交易中没有滥发货币。

** 综上所述,Mimble-Wimble 的主要优点是在提供较强隐私性的同时,所需要的存储空间很小,可扩展性高。** 由于不需要存储整个交易历史的区块链,通过合并中间状态的交易,只需要存储某个币的来源和现在的状态,每个历史交易只需要存储约 100 字节的信息,** 相比其他区块链节省了大量空间,也使得新节点加入网络时,需要同步以及传输的信息量也非常小。** 但其删除了比特币的脚本,且加密过程中计算需要一定时间,因此其出块时间大约在 1 分钟。同时在交易验证时也需要双方进行一些信息的交互,使得某些交易功能可能有所限制。

作为一项较新的且富有前景的技术,它的安全性需要经过时间的考验,也需要大量的开发者来参与测试与验证。比特币技术经过了多年的发展,的确应该有较大的优化,Mimble-Wimble 保留了 PoW 的优点,在 UTXO 集合的优化上做文章,并且理论上的存储空间优化非常显著,带来了在保留去中心化前提下提高可扩展性的新思路,指出了新的前景。

从 2008 年的比特币开始,区块链技术的应用主要分为以下三个阶段:

(1)以可编程数字加密货币体系为主要特征的区块链 1.0 模式,代表性应用是比特币,主要解决了货币支付手段的去中心化。

(2)以可编程金融体系为主要特征的区块链 2.0 模式,这个阶段主要加入了 “智能合约” 的概念,试图把任何资产变成数字化形态进行交易,使得区块链从最初的货币体系拓展到证券交易、股权转让等金融领域。

(3)以可编程社会为主要特征的区块链 3.0 模式,该阶段的应用场景将不仅仅局限于货币、金融等领域,而是扩展到社会生活的方方面面。

从行业来看,金融、版权、医疗、公证防伪、供应链等领域都开始意识到区块链的重要性并开始尝试将技术与现实社会对接。区块链技术能成为一种全新的工具,帮助社会削减平台成本,让中介机构成为过去,可以促使公司现有业务模式重心的转移,有望加速公司的发展。与此同时,区块链的数据上链有望促进传统的数据记录、传播以及存储管理方式的转型。从社会角度来看,区块链技术有望将法律与经济融为一体,彻底颠覆原有社会的监管模式,组织形态会因其而发生改变,区块链也许最终会带领人们走向分布式自治的社会。

image

● 双方交换的产品或服务可数字化;

● 服务 / 产品标准化,评估体系清晰可查;

● 由个体提供服务,个体消费服务;

● 随着个体的逐步加入,网络价值越大。

举一个简单的例子,共享出行行业,服务的提供方主要是司机(车主),服务的消费方是乘客,司机将乘客从 A 点送到 B 点,乘客给司机一定的报酬,整个交易结束。司机将 A 点送到 B 点,可以通过 GPS 导航来计算行驶路程,时间戳来记录行驶时间,按照一个全网公示的计算方式自动生成路费,然后司机把乘客送到目的地后,确认,乘客账户自动将钱转到司机账户。随着乘客和司机加入区块链化的网络越多,司机越容易接到更多合适的订单,乘客也更容易搭到车。

还有很多其他的产业,例如 P2P 保险、信贷、博彩、预测、游戏等,满足上述特征的应用场景,都可以通过价值 “区块链化” 实现交易的 “去中心化”,解决交易信任的问题。

根据区块链的底层技术,可以发现区块链的应用需要面临 **“不可能三角” 问题 **

image

● 去中心化:每个人都有全网的账本数据,能参与验证和记录;

● 一致性:保证所有参与节点的交易记录的实时一致性;

● 规模性能:提高交易的吞吐量、规模,同时降低交易的延时性。

现有的区块链应用,例如比特币区块链保证了去中心化、一致性,然而规模性能较弱,大约每秒 7 笔的交易量;例如 POS\DPoS 验证,牺牲一定程度的去中心化,不需要每个人都参与验证,从而提高规模性能几个数量级,来维护账本的一致性。

区块链的应用,最先想到的便是比特币等数字货币领域。但是随着 ICO 的爆发,数字货币的投机性被疯狂放大,甚至部分沦为诈骗工具。** 区块链应用仍在初级阶段,还没有找到真实的具体落地场景,目前应用较多的是金融、版权维护、供应链等方面。** 但是技术规则还不是非常适应现有的商业化结构,比如目前的区块链在改造金融基础设施中存在的不足,包括事后不可追索、无法以净头寸结算、无法融券、交易令牌与实物资产匹配不足、智能合约自动执行可能形成自我加强的反馈环,导致金融不稳定。

除此之外,** 区块链的应用在与真实物理世界交互的过程中,既需要控制好输入数据的准确性,也需要保证输出数据与物理设备得到准确交互。** 例如资产上链的价格评估可能依旧需要多方协商达成共识,以保证原始数据的真实性、准确性和完备性。在区块链与物联网联合的应用场景中,也需要考虑到真实物理世界的混乱性,即可能有很多不确定的人为或意外的干扰因素。例如 Juicero 问题:可以建立一个计算机生态系统并将其与袋装水果联系起来,用其来挤压水果袋,但不是水果袋中发生的一切都能由计算机控制,人可以用手挤压袋子。如何才能保障输入区块链的数据是真实世界的准确映射,以及区块链的输出得到正确的实施和操作,对于区块链的成功应用来说是一个非常关键的问题。所以产业落地缓慢也属正常,这由多方面原因造成,底层技术有待进一步成熟,智能合约公链平台缺乏,各类 Token 生态兼容不足,政策监管不明等。

金融是通过资金的运作从而创造价值。美国哈佛大学著名金融学教授罗伯特・默顿认为,金融体系具有 6 大基本功能:

**(1)清结算和支付功能:** 金融体系为商品、劳务的交易提供了清结算以及支付手段。互联网金融兴起的一大亮点就是支付方式的巨大变化。

**(2)融资和股权细化功能:** 金融体系可以通过合法的手段融合资金,使得资金从一方流转到另一方,在资金流转的过程中实现了资金的整合,即融资。融资对于大型项目的建设,以及有发展潜力的企业而言是至关重要的。股权融资就是将大型投资项目划分为小额股份,以便中小投资者进行投资参与,这样的分配实现了股权的细化。

**3)资源配置功能:** 单个投资者往往很难对市场投资环境以及公司投资预期做出合理判断。金融中介机构承担了帮助投资者做投资决策的功能,分散了投资风险,优化了社会资本投资配置。

**(4)风险管理功能:** 由于金融市场上交易成本和信息的不对称性,金融投资存在高低不同的风险。金融体系可以对风险进行定价、交易、分散及转移。使得金融市场风险得到合理分配。

**(5)激励功能:** 这里的激励主要指的是股权问题。对于企业而言,如果其员工拥有企业一定的股票或股票期权,就能实现对员工的激励。

**(6)信息功能:** 在金融市场上,筹资者可以获取各种不同融资方式的成本信息,投资者可以从中获取投资品的价格以及价格影响因素的信息。

** 金融的本质是信用,因为有了信用,才能够在不同的时间、地点,以及不同的参与者之间进行资金的流通和配置。** 因此,金融业有着大量这样的中介机构存在,包括银行、第三方支付、资产管理机构等。但是这种中心化的模式存在很多问题,中心化意味着各中心之间的互通成本高,沟通费时费力,运作效率低,并且中心化的节点容易遭到攻击和篡改,数据不安全。

金融体系发展至今,已经形成了稳定的规模和结构,在实际运作过程中,依旧存在一些有待改进的问题。

● ** 跨境支付周期长、费用高:** 金融行业承担着支付的功能。在进行商品及劳务交易的双方,根据情况的不同,可能有多种不同的支付方式。根据交易的主体方可以归结为直接和间接两类,直接支付即支付和收取行为同时发生,不需要第三方的担保或周转。间接支付即交易双方需要以第三方支付公司为中心,经过第三方公司的记账核算,才能最终完成支付。跨境支付由于双方地理位置问题、信任问题,都需要第三方公司的周转。而实际跨境支付到账周期基本都在一周左右,并且费用较高。如 PayPal,普通跨境支付交易手续费为 4.4%+0.3 美元。

● ** 融资周期长、费用高:** 对于中小企业的融资而言,第三方征信机构需要花费大量的时间去审核企业的各种凭证以及账款记录,并且给出的融资费用都较高。

● ** 票据市场中心化风险较大:** 票据市场依赖于中心的商业银行,一旦中心服务器出现故障,票据市场随之瘫痪,并且市场上一票多卖以及虚假商业汇票的问题也时有出现。

● ** 底层资产真假难辨:** 基金、资产证券化以及各种理财产品,都是对底层资产的包装,以便投资者直接购买。底层资产的来源较为多样,可能是标准化的债券、股票、公募基金,也可能是非标准化的应收账款及收益权等。从底层资产变为直接供投资者购买的产品,需要经过多方主体的参与,交易环节存在信息不对称的问题,各方交易机构对底层资产的真实性和准确性也难以把握。

** 金融是一种信用交易,信用是金融的基础,** 而金融最能体现信用的原则与特性。目前,为了解决交易中的信用问题,基本都是采取第三方信用中介,比如银行、政府等。某种程度上,** 这样的机构是有存在的价值的,可以为我们降低交易的信用成本,保障交易正常进行,但是我们需要为此付出一些成本,常见的就是各类手续费。** 而区块链作为一种分布式账本技术,其账本信息公开透明、不可篡改,可作为一种征信、授信的手段,降低信任成本,将传统的对中心化信用机构的信任转变为对区块链账本的数据信任。

image

其次,区块链技术可作为货币提供价值流通的功能,更好地融入金融行业体系。因此区块链技术与泛金融行业具备强适配性。

最后,在技术层面,现代泛金融行业的业务活动本身具有数据的性质,如账户管理、交易操作等本身就是数据的修改、传输,属于区块链技术易于产生应用的行业。

区块链作为一项新的技术,虽然其底层支撑技术还处于一个不断被探索和发展的阶段,尚不十分成熟,但由于其天然的优势 — 去中心化,信息不可篡改,匿名性、智能合约、开放透明性、结合金融领域本身就具备的高度数字化的特征,区块链在金融领域的应用探索已经极为火热。泛金融行业包含的细分领域非常多,但是区块链技术的应用点极为相似,主要集中在联盟链以及智能合约方面。

与传统支付体系相比,区块链支付可以为交易双方直接进行端到端支付,不涉及中介机构,在提高速度和降低成本方面能得到大幅的改善。比如 A 和 B 两家银行分别上链,作为链条中的两个节点,A 向 B 发送 10 枚比特币,当这条信息被广播到全网时,每个收到这条消息的节点就会记录下来,参与的各个节点都可作为相应的认证方。

image

尤其是跨境支付方面,如果基于区块链技术构建一套通用的分布式银行间金融交易系统,可为用户提供全球范围的跨境、任意币种的实时支付清算服务,跨境支付将会变得便捷和低廉。** 区块链技术的解决方案改变了各银行系统之间独立运作的现状,各家金融机构可以联合起来成立一个联盟链,** 基于区块链技术可以生成一个分布式的账本系统,每个参与的金融机构都是该联盟链中的节点,参与一致性算法。各银行之间的数据库就不需要相互对账,并且支付交易也不需要第三方清算机构来进行结算,真正做到减少中间成本,提高整个行业的效率。

● ** 降低操作成本:** 区块链为点对点支付提供了可能性。应用区块链技术,金融市场的每一个个体都可以链接在链上,并建立自己的账户。无论是商品、劳务交易引起的支付行为,还是链上进行的已经数字化的资产交易行为,都直接在交易双方进行,完全去掉了第三方清算机构的参与,提高信息传递效率,降低信息传输以及错误频率,提高了交易速度,降低了交易成本。

● ** 提高交易速度:** 区块链往往使用点对点的网络结构进行布置,有助于简化流程、提高结算效率,并可以实现全天候、24 小时转账支付业务,减少资金闲置时间。同时,在泛金融系统中传递的大量票据、凭证等,通过上文所述的信用系统,客户、机构可快速获得资质证明,避免烦琐的票据流程。

票据是交易过程中债权债务的表现,是一个信用工具。票据的承兑可以满足企业的支付结算,促进资金周转和商品流通,并且也是企业短期融资的渠道之一,票据作为信用背书,可以为企业方便快捷地获得部分低成本的资金。票据主要是纸质票据和电子票据两种,电子票据相比于纸质票据非常便捷,但是我国票据的电子化程度有待提高,目前市场上主要还是以纸质票据为主,** 其中人工操作的环节很多,在业务处理中有大量的审阅、验证各种交易单据以及纸质文件的环节,不仅花费大量的时间及人力,并且容易出现操作失误的可能。票据业务中间有着很高的流动性,从而滋生了很多违规操作,存在管控漏洞。** 从票据交易场景来看,整个流程分成出票、流转和承兑三个阶段。

● ** 在出票环节,最容易出现问题的是如何保证数据的真实性。** 利用区块链技术,可以将所有的背景数据上链,将开票的信息进行全网广播,再加上区块链的不可篡改性和可追溯性,各节点都可以查看和验证开票信息的真伪,确保票据没有被滥用。

● ** 在流转环节,往往会因为信息不对称,** 企业间难以找到合适的交易对手,造成贴现成本高、风险大等问题。如果采用区块链技术,可以在全网广播融资需求,或者利用智能合约的形式自动匹配对口出资机构,信息透明化后,融资成本及风险大大降低,效率也大幅度提高。

● ** 在承兑环节,主要是把之前的票据换成资金,票据的到期日在出票阶段则已全部确定,可以直接写入智能合约。** 在到期日时,持票人可以自动发出承兑申请,并在收到账款后,将信息自动打包记录在区块中。这可以有效解决逾期的问题,并且可以确保账单前后一致。

区块链技术的应用,可以有效地解决整个交易过程中的相关问题,主要可以带来以下几个改进:

● ** 实现票据价值传递的去中心化:** 在传统票据交易中,往往需要由票据交易中心进行交易信息的转发和管理;而借助区块链技术,则可实现点对点交易,有效去除票据交易中心角色。

** 能够有效防范票据市场风险:** 区块链由于具有不可篡改的时间戳和全网公开的特性,一旦交易完成,将不会存在赖账现象,从而避免了纸票 “一票多卖”、电票打款背书不同步的问题。

● ** 系统的搭建、维护及数据存储可以大大降低成本:** 采用区块链技术框架不需要中心服务器,可以节省系统开发、接入及后期维护的成本,并且大大减少了系统中心化带来的运营风险和操作风险。

4. 证券交易

** 证券发行与交易的流程手续烦琐且效率低下,并且底层资产真假无法保证,出现参与主体多、操作环节多、交易透明度低、信息不对称等问题,造成风险难以把控。** 除此之外,各参与方之间流转效率不高、各方交易系统间资金清算和对账往往需要大量人力物力、资产回款方式有线上线下多种渠道,无法监控资产的真实情况,还存在资产包形成后,交易链条里各方机构对底层资产数据真实性和准确性的信任问题。

从用户角度来看,投资者需要委托证券经纪人下单买卖股票,股票在接受委托后,按照投资者的价格进行申报,然后在交易所自动匹配价格与需求,完成交易。当交易完成后,证券登记结算公司需要对买卖双方进行结算和交割,然后委托银行进行相关款项的发放。整个流程涉及的参与方多,过程冗余。目前证券交易采用的是 “T+3” 的结算日期,实际资金需要 3 天才能到账

image

区块链技术,可以替代中间机构,买卖双方可以通过智能合约的形式自动配对,然后自动完成交易结算,不需要第三方机构的参与。这大大提高了交易速度,节约了交易费用,并且整个数据进行打包放在链上,可以有效避免一些争议。

区块链是一种 “分布式账本”,即区块链上的信息(“账本”)由各个参与者同时记录、共享。在供应链管理中使用区块链技术,可使信息在上、下游企业之间公开。由此,需求变动等信息可实时反映给链上的各个主体,各企业可以及时了解物流的最新进展,以采取相应的措施。与 VMI(供应商管理库存)策略类似,这一做法增强了多方协作的可能,实现信息可视化、流程优化和需求管理,提高系统的整体效率。

此外,随着信息共享程度的提高,不仅是供应链上、下游的主体可以获得更多收益,** 处于同一层级的竞争企业之间也可取得更高的总体盈利。** 在成本、市场信息不透明的情况下,具有竞争关系的企业之间会在物料或产品价格上进行博弈,该博弈关系可简单用如下的古诺博弈模型来表示:市场中两个企业生产同一种产品并进行竞争,产品的逆需求函数为 PQ)=a-Q,其中 Q=q1+q2,q1 及q2 分别为企业 1 和企业 2 的产量,两个企业的生产技术一样均为ciqi)=cqi。但产品需求具有不确定性,产品需求为高(a=aH)的概率为 θ,产品需求为低(a=aL)的概率为 1-θ。企业 1 知道需求高低的情况,而企业 2 不知道。两个企业根据以上信息选择各自的产量。令企业 1 的收益为 π1,产量为 q1,企业 2 的收益为 π2,产量为 q2。企业 1 知道需求的高低情况,即在两种情况下均需达到最优。

在需求高时:maxq1π1=q1(aH -q1*-q2-c*);

在需求低时:maxq1π1=q1(aL-q1*-q2-c*);

企业 2 不知道需求的高低情况:maxq2π2=θq2(aH -q1(aH-q2*-c*)+(1*-θ*)q2(aL-q1(aL-q2*-c*)。

联立以上,求导解得:。此为信息不透明的博弈结果。

当信息完全透明时,由于两个企业对称,解得:

为阐述说明信息透明与否这两种情况下企业的总收益,可代入简单的数值进行分析。

aH=10, aL=6, c=2,θ=0.5 ,代入计算可得:

信息透明时:π总 =π1+π2=10;信息不透明时:π总 =π1+π2=14.22。可以看出,信息透明情况比不透明情况企业总体效益提升了近 50%

2. 多主体参与监控、审计,有效防止交易不公、交易欺诈等问题

在传统的交易中,通常使用单一的中心机构实现交易行为的认证(图 13-2)。认证中心需要较高的运营、维护成本,获取的数据受限,并存在数据被不法分子篡改、盗窃、破坏的可能,对企业进行数据共享有一定阻碍。

与传统的独立中心认证相比,基于区块链的供应链多中心协同认证体系不需要委托第三方作为独立的认证中心,由各方交易主体作为不同认证中心共同来认证供应链交易行为(图 13-3)。供应链上、下游企业共同建立一个 “联盟链”,仅限供应链内企业主体参与,由联盟链共同确认成员管理、认证、授权等行为。通过把物料、物流、交易等信息记录上链,供应链上、下游的信息在各企业之间公开,由此监控、审计等功能可由各交易主体共同进

image

image

应用区块链技术,供应链上、下游的信息可写入区块中(如某年 3 月 25 日供应链上的交易信息写入一个区块,3 月 26 日的交易信息写入下一个区块),而区块与区块之间由 “链” 连接。而区块的内容与区块之间的 “链” 信息均通过 Hash 算法等方式加密,可确保区块内容不可篡改、区块之间的连接安全可靠。而由于采用分布式的结构,供应链上的各参与方均存有链上的全部信息,这进一步确保了数据的真实和可靠性。以上技术可保证因谋取私利而操控、损毁数据的情况几乎不可能出现

image

技术尤其适用于稀缺性商品领域,通过把生产、物流、销售等数据上链,可确保产品的唯一性,保障消费者权益,杜绝假货流通的可能。此外,当交易纠纷发生时,可快速根据链上信息进行取证、明确责任主体,提高付款、交收、理赔的处理效率。

image

区块链技术可以帮助上、下游企业建立一个安全的分布式账本,账本上的信息对各交易方均是公开的;另一方面,通过 “智能合约” 技术,可以把企业间的协议内容以代码的形式记录在账本上,一旦协议条件生效,代码自动执行。譬如采购方与供应商进行交易时,即可在链上创建一条合约,** 合约内容是物流数据表明货物已经抵达地点时,货款发送给供应商;这样一来只要物流抵达的信息发出,货款将自动转出。** 由于区块链数据是安全不可变的,智能合约上代码的强制执行性,使得赖账和毁约不可能发生。利用智能合约能够高效实时更新和较少人为干预的特点,企业可实现对供应商队伍的动态管理,以及对供应链效率的提升。

** 企业直接找到合适的生产厂商,甚至利用智能合约自动下单采购,从而达到准确执行生产计划的目的。** 这些小型企业可以跳过中间商环节,从而节省成本;同时,这也有助于激活生产厂商的空置产能

image

区块链的落地应用场景探索发现。大致可以分为三个阶段:

信息 “区块链化”;

价值 “区块链化”;

场景 “区块链化”。

区块链技术能维护验证一个公共的交易账本。一般而言,每个技术的应用,一般会从最能改善绩效、提高效率的节点开始。平时大家也有自己的支付宝、银行卡的交易账本。

一般情况下,支付宝之间的转账、同行转账基本能即时到账,只需要支付宝公司、某家银行验证记录即可;而跨行转账、甚至跨境转账支付,需要很长一段时间来确认交易,主要原因是各个银行、出入境登记机关,需要反复验证和核对,耗费大量人力、物力。而据 IBM 全球企业咨询服务部、区块链化的公共账本,对每个用户而言,能简化开户流程,便捷服务,对各个银行而言,对各个用户的信用数据能有全面了解,降低业务风险,提供精准信贷服务等。

除了银行体系里的票据、支付等环节能够运用区块链技术很好地改善。在其他实际生活中的场景,由于信息割裂而导致的各种各样的社会问题,都可以通过信息 “区块链化” 来解决。

价值 “区块链化” 主要是源于区块链的分布式结构而衍生出的 “去中介化”。第一阶段主要实现一些基本信息的上链,以联盟链的形态为主。在第二阶段,开始出现一些点对点的交易,基于对机器(随机算法)的信任,实现交易的 “去中介化”。

比较容易理解的是,在传统意义上,任何一个交易的达成,都需要第三方(媒介)的参与,才能保证高频且稳定的机制。“互通有无、等价交换” 形成了最原始的经济模型,随着贸易的日益频繁,逐步出现一般等价物 —— 货币。货币的发源从天然的贝壳、铜币、银锭、黄金等稀有性实物到宋代 “交子”“钱引” 等纸质印刷品。不可避免的是,作为货币的发行方,从博弈的角度,若发行货币的成本低于货币本身的面值,发行方是有强烈的动机去大量超发;若发行货币的成本高于货币面值,则发行方不会发行,转而发行面值更高的货币。这也就是为什么现实生活中不存在面值特别低的货币(0.0000001 元)的原因。

同样,我们的课题组曾面对一个这样的问题。有个第三方营利性绿色果蔬认证公司,主要是对市面上的新鲜果蔬评级,业绩一直做不好,整个评级体系大众的认可度也不高。后来通过分析发现,不是他们业务能力不行、评级不专业等其他原因,而是博弈本身的原因导致营利性评级机构一般很难存在。举个例子,他们对某家果蔬农场进行绿色评级,是需要收取一定费用的,而该农场交付一笔支出后,同样质量的果蔬,售价需要高出一个档次,或者对果蔬产品偷工减料,久而久之,农场很难继续花钱去找营利性机构评级,而导致营利性机构业绩不佳,市场不认可。

还原到交易过程本身,若只是甲和乙的交易关系,只要引入第三方丙,丙的出现一定是付出成本,可能是时间,或者是人力物力,那么丙一定会以超发货币、双边手续费、保证金等形式来拿回收益,并且丙在交易过程中处于比较高的地位,甲和乙作为交换的主体,会受丙的影响。这样需要第三方来保障交易的流程,在一定程度上会伤害甲和乙的交易过程,导致价值转移的低效、高成本、难一致等问题。

而目前比特币、以太坊等相对成功的区块链应用,通过分布式的结构实现交易的自动执行、不可篡改等良好的机制,无须任何第三方中介机构的参与,极大地还原交易的本质。基于以太坊的智能合约,甚至能承载更多的数字内容,实现价值与资产的自由流通。

可以预见的价值 “区块链化” 的应用场景有很多,一般需要具备以下几个特征:

● 双方交换的产品或服务可数字化;

● 服务 \ 产品标准化,评估体系清晰可查;

● 由个体提供服务,个体消费服务;

● 随着个体的逐步加入,网络价值越大。

举一个简单的例子,共享出行行业,服务的提供方主要是司机(车主),服务的消费方是乘客,司机将乘客从 A 点送到 B 点,乘客给司机一定的报酬,整个交易结束。司机将 A 点送到 B 点,可以通过 GPS 地理导航来计算行驶路程,时间戳来记录行驶时间,按照一个全网公示的计算方式自动生成路费,然后司机把乘客送到目的地后,确认,乘客账户自动将钱转到司机账户。随着乘客和司机加入区块链化的网络越多,司机越容易接到更多合适的订单,乘客也更容易搭到车。

本阶段的主要创业机会在于 “去中介化” 的应用场景,比如区块链化的滴滴、美团、淘宝等。由于这些中心化的公司并不存在太大的技术壁垒,例如滴滴和美团的订单分配算法并不复杂且容易复制重现,需要克服的问题在于用户的获取,以及解决链上交易吞吐量的问题,问题的解决有赖于大众区块链知识的教育以及技术的发展,还有其他具有类似特征的产业,例如 P2P 保险行业、信贷行业、博彩、预测、游戏等,满足上述四个特征的应用场景,都可以通过价值 “区块链化”,实现交易的 “去中介化”,解决交易信任的问题。

基于第一个阶段,将一些基本信息的 “区块链化” 后,形成一套完整的身份认证体系,作为区块链世界的基础设施。在此基础上,第二阶段的价值 “区块链化” 可以与身份认证系统链接,同时开发一些零知识证明等方法来保障用户的隐私需求。第三个阶段定义为场景 “区块链化”,主要是包含各种各样的应用场景,通过信息上链,价值交换来形成的良性循环,持续不断地发展到第三个阶段。

在现实的复杂应用场景中,经常会出现信息不对称的情况,例如二手车质量到底多好或多坏、设计作品的优或劣、供应商生产成本的高或低。在这样的情形下,容易导致低质量、低效率的产品一直出现在市场中,而高质量的产品由于用户不能很好地识别而逐渐退出市场,从而呈现出 “劣币驱逐良币” 的经济学现象 —— 柠檬市场。而区块链有望通过分布式的存储验证记录,将不对称的信息对称化,将柠檬市场引导到正循环系统中来,激励创造优质的产品和服务。

从生产运作管理的角度来讲,将不对称的信息对称化,意味着信息的完备性,能够极大地增加整个市场的绩效,降低生产运作管理成本,从而达到降低整个系统熵的目的。

举一个简单的例子,有很多软文讲到共享经济,讲到 Airbnb,讲到去中心化的众包服务平台。然而在实际场景的操作过程中,民宿住宿环境的满意程度、是否出现破损、logo 设计的好或坏,很难有一个标准化的评价体系,或者说需要更多的图片、文字、评判等信息的上链来确认交易的完成情况。在这样一个复杂的线下场景中,仅有区块链技术还不够,还需要衍生出更多的标准化、数字化的方法和手段,同时保证全网的共识和激励效果,还有很长的一段路要探索。

创业机会在于解决现实社会资产的上链以及链上输出信息的准确执行方面。有望对现实世界进行标准化、数字化的准确映射,例如房地产价格、房屋租赁服务的评定、供应链溯源中商品的生产过程、信息过程的准确反映、内容版权相关领域的链上映射,以及对链上信息进行信任评级等。而对于链上信息的准确输出,可能需要结合物联网、人工智能、机器人等自动化的技术来实现。

无论哪一类资产,都具备以下三个特点。首先最重要的是 ** 资产本身存在的价值定义,** 这个不好去定义,不同的个体或者组织对资产本身的价值定义是不一样的。

其次,** 资产最重要的是确权,即保证该资产的所有权是你的。** 自古以来,资产确权是社会组织中最重要的问题之一。

随着社会的发展,人群组织去给用户的资产进行相关的确权。** 最后,资产的另一个重要的属性是流通,** 从使用的角度来看,资产做到确权这一步就足够了,只需要确定该资产属于本人所有。但是社会组织结构的变化,带来最多的是资产的流通。比如二手房交易市场,二手物品交易市场,个人或者组织的资产可以进行交易买卖,在社会网络中进行频繁流通。

这三方面是人类发展历史上一直会涉及的问题,虽然已经有很多地方得到了很大的改进,比如权利的确定有政府背书的单位进行认证,确保资产权利的合法有效性,也有像闲鱼这样的二手物品交易平台,阿里巴巴提供有效的信任背书,让用户在平台中可以进行友好交易。从三个要素来看,目前还普遍存在以下几个问题。

1. 资产价值定义不明确

社会的不断发展,每一种资产所带的属性已经不是一种。一般情况下,一种资产都有着多种属性,比如房屋,它的基本功能是居住,但是对于不同的人而言,房子的功能不仅仅是居住,而且还是一个投资的资产,所以对资产价值的定义存在很多的偏差。由于其属性的多样性,以及信息的不透明性,就会有人利用信息不对称的优势,去故意抬高或者降低资产的价值,这就导致了整个市场的资产价值定义不明确。

2. 资产权利确定模糊

从古至今,资产权利的纠纷一直存在,大到大家族的产权划分,小到农村土地的一棵树,每时每刻都在发生着这样的资产权益纠纷。这里最大的一个问题是,对资产权利的确定没有明确的法律法规,或者实施过程中,有一定的疏忽和遗漏,并且社会的快速发展,导致法律法规的制定无法满足现实场景的需求,比如目前讨论最多的平台用户个人数据的所有权问题,这些数据产生于用户和平台的交互中,由于缺乏明确的确权定义,包括用户的个人信息、创意创作等数据资产都被平台有意侵占,并且以此作为盈利的手段,个人数据权益无法得到根本的保护。

3. 资产确权过程烦琐

目前现有的实体资产或者数字资产的确权,一般都需要国家政府部门来提供专门的服务。由于政府部门的性质所致,其工作流程烦琐低效,并且落后的系统及设备进一步增加了整个过程的时间成本。烦琐低效的确权过程,导致了在资产登记以及流通的过程中出现一些风险,比如数据被盗取、数据伪造、违反条约等安全隐患。不合理的社会运转系统一方面浪费了大量的人力物力成本,另一方面也严重加大了资产确权的风险。

4. 资产流通效率低下

资产的流通主要分成两个方面,一方面是资产信息的传播,另一方面是资产权利的转移。信息传播方面,某种层面上随着互联网的发展已经越来越快,用户可以通过互联网查询到任何想知道的跟资产相关的信息,这个过程中可能存在着某些不透明性,这就导致资产信息在传播过程中存在信息量太少或者造假的现象,从而导致资产流通效率降低。资产权利转移主要还是跟政府办事效率直接相关。

区块链的发展,使得资产的价值定义合理、权利明确以及流通更高效有了全新的解决方案。区块链技术可以使得整个资产确权以及流通过程被记录在一个永远无法被篡改的可信任的区块链账本中,资产确权、流转的效率将得到大幅度提升,给资产价值流通以及社会生产关系带来全新的改变。

从长远的角度来看,技术的发展总会提供一些切实可行的方案来保证资产上链这一过程,比如现在有很多正在做的项目,通过用物联网、二维码、RFID 或者材料定位等方法去确保资产上链的唯一性等基本要求。区块链周期性技术的不断早期到成熟期,如果它可以对社会带来更高的价值或者效率,政府层面一定会出具相应的法律法规去把资产上链的过程进行规范化,维护社会的稳定。资产上链本身不是一个技术问题,而是一个共识转移的问题,即完成共识从链下到链上的转变。

因此,当下需要搞清楚的是什么资产适合上链,或者说什么资产是需要上链的,这是资产上链这件事情的初衷和价值体现。

区块链时代,资产上链有可行性也有约束性,下面从资产上链优先级进行相关的解释。

区块链最突出的特点 —— 去中心化、点对点网络、分布式账本、时间戳、信息透明且不可篡改等,资产上链将会有以下几个优势:

  1. 消除信任问题,降低沟通成本

区块链的本质是去信任,通过技术来解决两者之间的信任问题。信任问题一旦解决,陌生人之间的交易就会变得更为容易,整个资产流通系统的效率随之增加,不需要周边熟人介绍或者第三方中介平台进行 “牵线搭桥”。区块链上的每个节点都保存了数据副本,单个节点试图修改链上资产信息的情况可被有效防范,可以确保链上资产信息的真实有效性,降低信任风险。

  1. 去中介,降低交易成本

传统的资产交易过程中,涉及的环节非常复杂。除了需要政府等权威部门进行资产认证或背书外,还需要结算系统来进行结算,需要银行来处理资金转账,政府相关部门进行资产交割转让等,用户在这个过程中付出了较大的成本。通过区块链的方法,整个交易流程完全在链上完成,所有数据都同步在全网各个节点上,实时更新交换数据,使得整个过程更加清晰透明,无须外部第三方机构的介入,不仅成本大幅度降低,效率也显著提高。

  1. 提高资产流通效率

传统资产交易流通平台相互孤立,各自为营,这就导致了整体的用户规模受限,从而导致资产流通的效率低。在区块链领域也会出现同样的问题,目前各主链之间也相互独立,但是可以通过跨链技术,实现各链之间相互连通的状态,各链用户和流通资产相互共享,从而促进了整体的资产流通效率。

对资产价值高低的判断,可以从资产内容、资产稀缺性以及社会对资产的认知综合考虑。一般来说,资产的内容越丰富、稀缺性越高,社会对资产的投资预期越高,那么资产的价值越大,也反映为资产的价格越高

image

2. 资产流通

资产流通,或者说资产流通率,指在某一时间段内,某一资产倒买倒卖的次数,它反映该资产流通性的强弱。流通率高,说明资产在市场上活跃的程度就越高。资产流通率有时也称换手率。资产的流通率与资产的种类是密切相关的。比如房屋等固定资产的交易,当买卖双方达成交易时,在很长一段时间内不流通,说明这一类资产的流通率低;而股票、期货等金融资产的交易,某一股票在一段时间内会反复被购入抛售,说明这一类资产的流通率高。

资产在区块链上的活动包括登记确权、流通以及结算等。其中,资产在链上交易最大的难点在于如何确权,即确定资产的所有权,只要资产确权能有效完成,后续的流通结算也会水到渠成。确权的难易程度取决于当前资产管理的信息化水平。一般来说,资产的信息化水平越高,或者资产的可信息化难度越低,资产上链的准备工作就越容易,上链的难度也就越低。例如,原生区块链上的资产,如数字货币和互联网资产本身就在线上进行,这一类资产上链的难度要比实体资产简单得多。链上确权登记的难易还取决于资产本身的可区分性。所谓可区分性是与标准化对应的,资产可区分性高,那么该资产就更容易设置数字化标识,以区分其他资产,上链之后不容易造成太多的误解。对于标准化产品而言,其登记确权的难度相对较低,由于资产都是标准化的,所以无须区分。因此对于完全标准化或者可区分度很高的产品,其上链难度相对较少,介于两者之间的资产上链难度较大。

链下交割是指当区块链上完成交割时,现实世界实现实体资产交接的过程。其难度主要来自于链上、链下交易是否能达成同步。一旦链上流通与链下交易脱离,那就很有可能出现交易数据伪造等情况。链上、链下交易信息同步的快慢,取决于资产转移过程的难度和过程监督的难度。资产转移过程的难度是指资产在交易过程中,所有权或使用权的线上、线下对接转移的程,比如低频率的资产交接,如大型的实体资产的搬运和远距离资产的空间转移,线上、线下的信息对接往往相对容易,而高频率的资产交接,如生鲜产品等大批量高频次消耗品要实现线上、线下信息同步更新会相对较难。过程监督是指在资产交接过程中,由谁来监督转移过程的发生。只有买卖双方对监督执行主体的选择达成共识,才能使得区块链具备现实基础。如果监督过程不透明,或者由资产卖方自己执行,去信任的实现就成为空谈。一旦买方意识到被欺骗,资产交易可能就会彻底中断

image

需求层,即指资产对区块链技术的需求,也就是对去信任的需求(图 27-3)。** 具体表现为:** 一是区块链通过技术手段解决陌生人交易时存在的信任冲突,使得双方的交易更容易达成。二是通过点对点网络去除中心权威担保机构,降低交易成本,同时也能降低中心权威机构对交易数据泄露、篡改的风险。但是如果在整个资产交易链条中,中心机构不存在动机进行 “暗箱” 操作,而且以中心机构的信用背书一样可以使得买卖双方之间交易很容易实现,那么区块链技术的优势并不明显。

实际上,去信任的需求这一指标是一个相对的概念,与当前市场对某一资产的经营特点相关。以电商平台如天猫和京东商城为例,其商品交易是基于平台的信用担保进行的。买方在平台上交易,不需要担心产品的来源与真实性的问题,卖方不用担心诈骗购买的情况,此时,区块链技术对于资产交易的效率提升很有限,反而会因为应用区块链技术造成额外的成本负担。而对于药品、生鲜产品在实体店交易的情况,买方会关注其产地、流通加工过程等,对于卖方来说,为吸引顾客消费,有动机做虚假宣传,以次充好等,区块链技术公开透明、无法篡改的特点就能体现出其价值来

资产的形态可以分为实体资产(即有形资产)、无形资产、金融资产和其他

image

image

实体资产是指一切具有实物形态且预期会带来收益的非货币性资产,根据会计学的划分可分为固定资产、存货和贵重物品三类。其中,固定资产是指企业为生产产品、提供劳务、出租或者经营管理而持有的、使用时间超过 12 个月的,价值达到一定标准的非货币性资产,如土地、房屋及建筑物、一般办公设备、专用设备、文物与陈列物、图书、运输设备以及机械设备。存货是指企业在日常活动中持有待出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料或物料等,包括各类材料、在产品、半成品、产成品或库存商品,以及包装物、低值易耗品、委托加工物资等;贵重物品是指单件货物价格比较昂贵的物品,如贵重金属、珠宝、能源矿产等。

无形资产是相对实体资产而言的,是指企业拥有或者控制的没有实物形态的可辨认非货币性资产。会计学上对于无形资产主要是指品牌权和商标权,而随着互联网技术的发展,无形资产的内容得到极大拓展,如音乐、图片、视频与原创文章等数字资产,医疗健康、用户习惯等数据资产,以及社交、社区、娱乐平台的虚拟财产,都可以被视为无形资产。

金融资产是指企业或个人所拥有的以价值形态存在的资产。根据金融资产的经济性质可以将金融资产分为库存现金(包括银行存款)、应收账款、应收票据、其他应收款项、股权投资、债券投资以及衍生金融资产等。

本质上来讲,资产上链的内容是指对应资产的相关权益,包括所有权、使用权以及收益权。资产的所有权是指在法律规定的范围内,对资产全面支配的权利。所有权可分解为占有、使用、收益和处分四项基本内容 [[6]](javascript(0))。其中,占有权是对资产的控制权,使用权是不改变资产的本质而依法加以利用的权利。资产的占有权和使用权可以由所有人行使,也可以依据法律、政策或所有人意愿而转移给他人。例如房屋出租是按照出租合同将房屋的占有、使用权转让给非所有权来行使。资产的收益权是指获得基于所拥有的资产产生经济利益的可能性,收益权是所有权在经济上的实现形式。处分权是所有人对其资产在法律规定的范围内最终处理的权利,包括资产的转让、消费、出售、封存处理等方面的权利。资产的处理权只能由所有人来行使。

在讨论资产上链时,如果上链的内容是资产的所有权,区块链上记录的是所有权的转让;如果上链的内容是资产的使用权 (javascript(0)),区块链上记录的是资产的租赁信息;如果上链的内容是收益权,区块链上记录的是资产预期收益的归属权。

image

image

区块链技术作为一种分布式记账的技术,能有效地实现资产流通过程中公开透明、去中心化、隐私保护等需求。随着区块链技术 “热潮” 的掀起,一些人出于推广或炒作、融资等目的,对区块链技术盲目 “吹捧”,认为一切资产都需要上链。实际上,不是所有资产都适合上链。要判断资产是否适合上链,需要清楚两个方面的问题:

(1)上链的内容是资产的使用权、所有权还是收益权。同一资产上链的内容不同,优先级会有所差异,资产的收益权上链优先级相对较高,而资产的所有权上链优先级相对较低。

(2)在判断资产上链的优先级时,需要综合供给层、操作层和需求层三个层次的因素。本文列举了去信任的需求、资产价值和资产流通以及可操作性四个可量化的指标,作为 “区块链技术 + 资产管理” 可行性判断的标准。其中:

去信任的需求是资产上链的原动力。不是所有资产都需要上链。区块链技术是必须能解决当前资产经营过程的 “痛点”。

买、卖方信任关系可以得到保证,资产能实现快速流通,那么这类资产就不需要应用区块链技术了。

● ** 资产价值和资产流通是资产上链的基础。** 首先,资产上链对资产价值和流通性是有要求的。如果对于低价值的或者顾客对其价格敏感的资产,交易频率较低的或者一次性交易的资产,应用区块链技术的可行性较低。

可操作性是资产上链的催化剂。可操作性不是资产上链的决定因素,但是它会影响资产上链的快与慢。

通证项目的类别来看,根据 Token Insight 的划分标准,通证项目分为 21 类,包括支付货币类,如比特币 BTC、达世币 DASH 和瑞波币 XRP,通用平台类如以太坊 ETH、柚子币 EOS 和艾达币 ADA,以及内容、娱乐及广告类,如 STEEM,物联网类,如 ETC、IOTA,通证交易所类,如 BNB、BTS 和 ZRX 等。其中支付货币类通证的总市值占比最高(为 63%),通用平台类通证次之( 27%)。实际上,无论是内容、娱乐、广告类、物联网类,还是通证交易所等,都是通证经济的具体应用,因此,本文将其归为一类,称为应用类。

自 2008 年中本聪提出比特币后,以区块链技术为基础的通证经济正式诞生。该技术去中心化的设计为买卖双方之间的交易关系带来了新的变革。它打破了当前以物资所有权为基础、以中心化机构信用背书为基础的经济关系。随着区块链技术的进步以及项目应用逐步落地,通证经济的技术复杂度、内容深度和广度都有极大提升。但比特币在通证经济体系设计的奠基作用是毋庸置疑的。目前,通证经济体系依然保持着发行 “代币” 的形式,比特币的框架如共识机制(POW,工作证明)、发行方式(挖矿、区块设计)、分配方式(挖矿奖励与交易费用)已成为设计通证经济体系的范式。

为深入分析当前通证经济体系的特点,本文选取以市值排名前 50 的通证为样本,探讨目前通证经济发展的现状,并进一步从通证经济的发展脉络来总结其演变逻辑。

从面向对象、代币结构、发行方式、分配方式四个维度探讨。其中,面向对象即为通证所属的类别,这里的类别如上所述包括三个:支付货币,以推动区块链底层技术实际应用为目的标准化和通用化的公共开发平台,如分布式开发平台(DAPP)和智能合约,以及服务特定行业的应用类通证,如服务票据金融交易的通证 PPT (Populous Token)、服务内容娱乐体系的 TRX(波场币)等;代币结构即通证体系代币层次,例如以 BTC(比特币)为代表的一层代币结构,以 NEO(小蚁)为代表的两层代币结构 NEO 和 NeoGas,以及以斯蒂姆币(STEEM)为代表的三层代币结构 STEEM、SteemPower 和 SteemDollar;发行方式的内容包括共识机制、代币的发行总量、初始发行方式,如代币发放的形式,以及各参与者所占比例和代币释放的规则;分配方式具体指激励方式和收入的分红方式。

本文总结了市值前 50 的通证经济体系,通证经济体系的发展现状具有以下几个特点:

从数量上来看,不同的通证经济体系分类会有差异。支付货币类通证最多(数量为 21),通用平台类和应用类的通证数量差别不大,分别为 14 和 15。其中,应用类通证以通证交易所、金融交易、物联网等为主。但整体来看,三类通证经济数量未出现相差极多的情况(在以太坊出现以前,支付货币类通证在数量上占据绝对的优势),分布相对平衡

image

一层代币为主,多层代币并行

从代币结构上看,当前通证经济体系以一层代币为主,多层代币并行发展。其中,支付货币类通证均为一层代币,二层代币包括五种代币,即 MKR (Maker)、NEO(小蚁)、VeChain(唯链)、ONT(本体)和 SNT(Status)。三层代币有一种,即 STEEM(斯蒂姆币)。其中,STEEM 和 SNT 是内容社交代币, ONT 和 VeChain 为通用平台类代币,NEO 为数字资产管理代币,MKR 属于金融股票代币

image

灵活的共识机制和发行方式助力通证经济的发展

比特币作为一种基于密码学的虚拟货币,颠覆了传统的经济交易模式。但由于是开创性应用,在去中心化、技术推广、交易效率、隐私保护等方面不可避免地存在不足。而随着区块链技术的成熟,通证经济的发展在发行方式上也愈发灵活。

在共识机制上,从比特币最早采用的工作证明机制 POW 逐渐发展到权益证明机制 POS 和拜占庭容错机制 BFT,到委托权利证明机制 DPoS 和委托拜占庭容错机制 DBFT,到将各共识机制组合的混合共识机制,如 EOS(柚子)采用的共识机制是 BFT(DPoS)。为满足具体通证项目应用的需要,也出现很多个性化的共识机制,如为提升交易匿名程度的零知识证明机制,内容社交代币 STEEM(斯蒂姆币)采用的共识机制为 Aligned Proof-of-Brain,云存储代币 SC(云储币)采用的代币是存储证明机制 Proof of Storage 等。

在初始发行方式上,通证经济体系根据项目特点、社区经营和技术推广的需要,除了经典的挖矿释放外,更加灵活的手段被引入到推动通证经济体系初期的发展上,包括预挖矿、ICO 众筹、风投、空投、打赏等。从整体上来看,挖矿释放和 ICO 众筹为主要的通证发行方式。ICO 资金一般会按比例分发给创始团队、社区基金会、投资机构和合作伙伴、早期贡献者、社区建设等。另外,代币发行总量也从 2100 万增加至百亿不等,如 ZIL(Zilliqa)币发行总量为 210 亿,XVG(Verge)币发行总量约为 166 亿等。

多元化的激励方式提升通证体系活力

在激励方式上,挖矿奖励和交易费用节点奖励依然在当前通证经济体系中扮演重要的角色,特别是支付货币类通证,如比特币、门罗币、比特现金等,以及通用平台类通证,如艾达币、量子链等。其中,挖矿奖励的内容也有一些变化,如以太坊引入固定奖励和叔块奖励,而以太经典引入固定奖励、叔块奖励和 Gas 奖励。

对于应用类平台通证,在激励方式上一般会根据通证项目的内容做个性化的调整。如比原链 - BTM(服务于资产上链)的激励内容包括交易费用和(对 BTM 币的持有进行)平台利润分红,云储币 - SC 利用 PC 存储空间赚取 SC 币等。

社区治理融入通证经济体系的建设

以比特币和以太坊为代表的支付货币类和通用平台类通证是不存在社区治理机制的。目前,越来越多的通证经济体系意识到社区治理机制在推动通证经济可持续发展的作用,特别是对于通用平台类和应用类通证,社区治理机制通过二次分配,如回购和回馈用户等方式,保证代币价值和用户活跃度,作为治理结构,既可以扮演仲裁机构解决争议,也可作为管理层制定社区发展战略。

比较有代表性社区治理机制的通证有量子链、艾达币和柚子币等。其中,量子链通过 DGP 智能合约对区块链社区进行控制,以投票的方式完成对区块链网络参数修改或通过投票对管理和治理席位进行增加或删除;艾达币设计了一套国库系统,由部分新生产的通证以及转账费用捐赠,通证持有者可通过投票决定如何使用;柚子币社区机构拥有账号冻结、改变代码和宪法修改等权利。

证经济体系无论是代币结构、通证分类,还是运营方式(共识机制、发行方式、激励方式和社区治理)相比于最早的通证 — 比特币都有了显提升。绝大多数的通证是以比特币为参考基点发展起来的。每一个通证经济体系的产生都旨在解决比特币在投入运行过程中(可能)存在的 “痛点”,如交易信息和用户信息隐匿性不足,交易确认时间长、区块小且不可扩容、价格波动、消耗能源大等。这里将重点分析,从比特币到当前通证经济体系的发展脉络和机理,即通证经济的发展模式:

发展模式 1:以完善底层技术为目标

比特币旨在打造一个去中心化点对点的货币支付系统,它的特点如下:采用工作量证明 POW 作为区块生成的共识机制,每秒只能进行大约 7 笔交易(即 TPS=7),区块大小为 1M,采用的核心加密算法为 SHA-256。从技术层面来说,比特币在运行过程中,会存在一些局限性。

首先,比特币并不是完全匿名的,无法提供和现金一样的隐私程度。使用比特币会留下许多公共记录,也因此存在身份信息泄露的风险。因此,有多种机制被设计用来保护用户的隐私,如基于 CryptoNote 技术:字节币和门罗币,基于零知识证明机制的大零币。

其次,由于矿机和矿池等专业挖矿设施的出现,使得在比特币挖矿过程中,普通用户相比于矿机持有者处于绝对的劣势,最终导致新生成的比特币集中在少数人手中,形成所谓的 “伪中心化”。因此,有许多算法被应用到通证,以尽可能减少 ASIC 矿机相对于 CPU 挖矿的优势,如比特黄金采用的 Equihash 算法、DCR 采用的 Blake-256 散列算法、云尊币采用的 SCRYPT 算法,都是为了减少挖矿专用设备的算力 “垄断”。

再次,比特币每笔交易的发生都是要产生交易费用的,而且交易的确认时间很长,对于高频率、低价值的交易,所需要的交易费用会很高,因此,纳诺币采用一项名为有向无环图的数据结构(DAG 技术),支持无限次的交易,免费并且即时到账。

最后,工作量证明 POW 会造成网络资源和电力资源的浪费。比特币挖矿从原理上就是计算数学题的过程,这一过程需要投入网络资源和电力资源,而随着挖矿难度的增加,所需资源的投入会极大地提高。当前,支付货币币类通证仍然以 POW 为主,但很多通用平台类和应用类通证逐渐选择 POS、BFT 以及一些混合共识机制等。

2. 发展路径 2:以拓展应用场景为目标

由于对比特币的支付货币属性先入为主,在其出现后的五年内,通证经济体系几乎等同于支付货币类通证。这一局面在以太坊推出 ERC20 智能合约平台时被打破。自此,基于底层区块链技术应用的公共开发平台逐步成长起来,通证经济的理念也逐渐为产业界所熟知和认同。比较有代表性的通用平台类通证有以太坊、柚子币、艾达币和量子链等,它们采用的共识机制以权益证明机制 POS 为主。

随着通证经济逐渐落地以及通证种类的增多,诞生了一系列应用类通证,具体可分为两种:一种是与实际项目结合的通证经济体系,侧重于物联网应用的埃欧塔和以太经典,主打内容社交平台的波场,服务于金融交易的 PPT (Populous Token)、比原链平台。另一种是专注从事通证交易的平台,即通证交易所,如币安币和火币积分。

3. 发展路径 3:以社区可持续经营为目标

从市场交易的层面,以比特币为代表的支付货币类通证普遍存在的问题是非常容易受到市场的冲击。相对较小的交易或业务活动都可以显著影响其价格。特别是当由于大量投机者介入,会导致支付货币类通证的价格如过山车一般起伏。

为最大程度降低市场因素的干扰,特别是通证价格波动对区块链网络的冲击,多层代币结构应运而生。从本质上来说,多层代币是将通证的价值属性和管理属性剥离,从而使得通证的价值波动不会影响区块链网络的正常运作。例如通用平台类通证本体两层代币:ONT 和 ONG,ONT 抵押参与共识,即为管理代币,ONG 为激励交易的手段,即为价值代币;数字资产管理通证小蚁币包含两层代币:NEO 和 NeoGas(GAS),其中,NEO 是管理代币,用于对 NEO 网络的管理权,GAS 是燃料代币,用于对 NEO 网络使用时的资源控制,是一种价值代币;金融股票通证 MKR 包括两层代币 Dai 稳定币,即为价值代币, MKR 是管理型代币和效用代币,参与管理系统。而内容社交媒体通证斯蒂姆币采用更为复杂的三层代币结构:STEEM、SteemPower ( SP )和 SteemDollar (SMD)。其中,STEEM 是 Steem 区块链上账户的基本单位,进入或退出 Steem 平台的人必须出售 STEEM,可转化为 SP 或 SMD;SP 是一种权限通证,反映持有者的影响力,由 Steem 平台固定向 SP 利益相关者配置 STEEM,SP 转换回 STEEM 必须在 13 周后,SMD 可兑换货币,能够与 STEEM 交换,锚定美元,因此,从属性上划分,STEEM 和 SP 是管理代币,SMD 是价值代币。

4. 通证经济的发展趋势

总体而言,从技术完善角度设计的通证,旨在解决信息隐匿性、技术推广、交易效率、能耗大等问题,这一类通证专注于解决区块链网络的技术难点,强调技术创新和应用场景的普适性,因此,这类通证往往会选择一层代币结构,如支付货币和以太坊为代表的底层技术开发平台等。而由于目前区块链技术的发展还不成熟,已有的共识机制、加密算法、激励方式存在局限性,未来通证发展的重要内容之一依然会是完善底层技术,因此,一层代币结构的通证仍会作为未来通证经济体系的重要组成部分。

对于服务于应用场景的通证,旨在通证经济在具体场景的落地,需要将具体应用的需求和通证经济的特点有机结合,这一类通证追求区块链技术的应用能力,因而会根据场景内容的不同做个性化的调整,因此,这类通证既可能选择一层代币结构,也可能选择多层代币结构。

当通证经济体系要求区块链社区稳定,减少市场投机行为、价格波动等影响时,一般会选择多层代币结构。多层代币结构包括两部分内容:管理代币和价值代币。管理代币对应为对区块链社区的管理权,价值代币是社区正常运行的 “货币” 基础。通证的价值属性和管理属性的分离目的在于减弱了通证(市场)交易对社区管理运营的影响,因此,以社区经营为场景的通证经济体系都适用多层代币结构,目前,多层代币结构的应用场景还比较少,但可以预期其在未来通证经济体系设计中的巨大潜力。

从 2008 年比特币的推出,到 2018 年正式提出 “通证经济” 的概念,通证经济经历多年的发展,在通证经济的底层区块链技术、应用领域、社会认可度以及外部投资环境等都有极大地提升和改善:从支付货币类通证 “一家独大” 到多种类通证 “百花齐放”,从对区块链技术 “糊里糊涂”,到如今 “人人都在谈区块链”。但是通证经济在发展和应用过程中还存在许多难题。

区块链技术重要的应用领域,其发展也受到区块链技术发展的限制,具体体现在两个方面。一方面,区块链底层技术尚不完善,还没有出现在去中心化、加强隐私保护、减少浪费、提高交易效率等方面都较为突出的技术体系和评价标准,前三者实际上被称为 “区块链” 技术的 “不可能三角”。而拥有巨大算力的专用挖矿设备的投入对区块链技术去中心化的要求进一步提高。

另一方面,区块链技术的运营管理模式处于探索阶段。作为一种新兴的技术手段,改变了以往以信任背书的经济关系,因此,照搬一些成熟的运营管理模式会存在较大的风险。以社区治理为例,社区治理的本质是协调区块链网络人与人之间的关系,包括协调利益分配和成本分担。治理的工具包括链上治理工具如共识机制、硬分叉和软分叉,以及链下治理工具如社交媒体、线下会议和市值管理等。

社区治理的难点在于面向众多参与者时,如何就协议内容(无论是链上还是链下)快速达成一致,特别是存在分歧和利益不一致的时候。

从数量上看,支付货币类、通用平台类和应用类通证呈现 “三足鼎立” 的态势,但是从市值上比较,三类通证的差距是非常明显的。如图 28-3 所示,全球通证经济总市值 2,518.20 亿美元,支付货币类通证的总市值占比 63%,通用平台类占比 27%,而应用类通证占比不到 10%。通证经济以支付服务和去中心化的开发平台为主,以实际项目为应用场景的通证项目非常少,除内容、娱乐及广告和物联网技术以外,非金融类的通证仅为 1%,通证项目落地进程艰难

区块链市场环境混乱。通证经济对降低交易成本、加速价值实现有着非常美好的远景,加上对通证项目的监管缺失,很大一批创造者仅把通证经济作为筹集资金的手段,而不会沉下心思考虑通证经济的落地问题,也造就了所谓的 “割韭菜” 风波。

其次,通证经济落地不确定性大。通证经济体系的设计是一个多维度的问题,不仅涉及区块链技术,还涉及金融、制度设计、博弈论等各个方面。但是当前通证经济无论是基础设施,还是理论指导都不成熟,通证经济能否落地以及多久能落地,都存在很多不确定性,这无疑会使得投资人的信心不足,投资人对通证经济项目的态度越发保守。

区块链技术防篡改、可追溯以及分布式记账等特点,实现通证在区块链网络上资质可验证、流通可追溯、个人隐私和交易数据安全可保证。其优势非常明显,一方面它扩大了产品或服务的供给渠道;另一方面,它可通过去中心化等手段加速价值的落地。围绕这一类通证,本文选取市值排名前 50 的通证,分别就其发展现状和发展模式展开讨论。

首先,本文从面向对象、代币结构、共识机制与发行方式、分配方式几个维度探讨通证的发展现状,得到以下结论:

(1)从数量上来看,** 支付货币类、通用平台类和行业应用类分布相对均衡,** 呈现 “三足鼎立” 的态势。

(2)从代币结构上看,以一层代币为主,多层代币并行发展。其中,支付货币类通证均为一层代币,二层代币包括五种代币,三层代币有一种。

**(3)共识机制和发行方式更加灵活。** 在共识机制上,从比特币最早采用的工作证明机制 POW 逐渐发展到权益证明机制 POS 和拜占庭容错机制 BFT,到委托权利证明机制 DPoS 和委托拜占庭容错机制 DBFT,到将各共识机制组合的混合共识机制。在初始发行方式上,根据项目特点、社区经营和技术推广的需要,除了经典的挖矿释放外,其他手段被引入到推动通证初期的发展,包括预挖矿、ICO 众筹、风投、空投、打赏等。

(4)** 激励方式多元化。** 挖矿奖励和交易费用节点奖励依然在当前通证经济体系中扮演重要的角色,特别是支付货币类通证以及通用平台类通证。对于应用类平台通证,在激励方式上一般会根据通证项目的内容做个性化的调整。

(5)** 社区治理融入通证经济体系的建设。** 特别是对于通用平台类和应用类通证,社区治理机制在推动通证经济可持续发展中扮演着重要角色。

对以比特币为代表的通证经济体系的发展路径分为三类:一是从技术角度出发,解决信息隐匿性、交易效率、能耗大等问题;二是从拓展应用场景出发,将通证经济落实到更多的项目中;三是从减少市场扰动角度出发,即减少市场因素(如价格波动)对区块链社区的影响。具体来说,由一层代币结构发展为多层代币,将通证的价值属性和管理属性剥离,从而使得通证的价值波动不会影响区块链网络的正常运作。

同时,讨论了通证经济体系的未来发展方向:

(1)对于从技术完善角度设计的通证,专注于解决区块链网络的技术难点,强调技术创新和应用场景的普适性,因此,** 这类通证往往会选择一层代币结构,** 并且以一层代币结构为特点的支付货币类和底层技术开发平台类通证仍会作为主流发展的通证经济体系。

**(2)对于服务于应用场景的通证,旨在追求区块链技术的应用能力,** 因而会根据场景内容的不同做个性化的调整,这类通证既可能选择一层代币结构,也可能选择多层代币结构。

(3)当通证经济体系要求区块链社区稳定,减少市场投机行为、价格波动等影响时,一般会选择多层代币结构。多层代币结构包括两部分内容:管理代币和价值代币。以社区经营为场景的通证经济体系都适用多层代币结构,目前,多层代币结构的应用场景还比较少,但可以预期其在未来通证经济体系设计中的巨大潜力。

最后,本文指出通证经济在发展和应用过程中的 “痛点”:

**(1)区块链技术的发展尚不成熟,** 表现为区块链底层技术尚不完善和区块链技术的运营管理模式不成熟。

**(2)通证项目落地进程艰难。** 从市值上比较,支付货币类通证的总市值占比 63%,通用平台类占比 27%,而应用类通证占比不到 10%。除内容、娱乐及广告和物联网技术以外,非金融类的通证仅为 1%。

**(3)通证经济发展环境混乱,落地不确定性大。表现(3)通证经济发展环境混乱,落地不确定性大。** 表现为两个方面,1)通证创始人仅把通证经济作为筹集资金的手段,而不思考虑通证经济的落地问题。2)通证经济能否落地以及多久能落地都存在很多不确定性。


[1] 以元道和孟岩为代表。

[2] 通证经济学派将通证划分为证明性通证、功能性通证、权益性通证和加密数字货币四类。笔者认为在本质上,证明性通证属于功能性通证的一种。

[3] 通证经济学派称之为通证经济 “看不见的手”。

[4] 这也是 Token 很长时间被翻译为代币的原因。

[5] 以太坊最初采用的是 POW,当前正在转为 POS。

[6] 2018 年被通证经济学派称为通证经济正式亮相的元年。

[7] 关于社区治理的内容有参考https://www.jinse.com/bitcoin/232685.html。

自中本聪在 2008 年发表《比特币:一种点对点的电子现金系统》以来,区块链技术发展至今不过短短十年时间。然而在这十年间,无数的区块链项目如雨后春笋般陆续出现,市场、舆论也经历了沉寂和喧哗的多次周期。有人热烈拥护区块链技术,并将之视为信仰;亦有人对此不屑一顾,认为再过一段时间,所有项目都将归零。

对技术细节的执着、对应用的思考,或许都可暂时放下。中本聪留给人们最大的财富,未必是比特币本身,或许应是想象一种可能性的勇气。我们真诚希望读者对区块链技术有一个总体把握之后,能够秉持这种勇气,继续向历史的空白处、向科技的肯綮继续探索、大步迈进。归根到底,区块链的浪潮连接技术与应用,更连接今天与未来

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.