一般人对区块链的了解来自比特币,这是一种基于区块链的去中心化密码货币。它产生于2009年,创造者是自称“中本聪”的匿名人士,目前我们对他的了解还是非常有限,只知道他是一个密码朋克(Cypherpunk),即密码技术的爱好者和专家。
所有的密码货币基本上都采用了最原始的比特币的设计,其核心即所谓的区块链。现在大家一般将区块链技术划分为区块链1.0、2.0和3.0。以比特币底层技术为代表的区块链技术属于1.0,它的基本特点是去中心、不可篡改、公开透明、高容错,但功能极为有限,只能进行点对点转账,并在此基础上实现简单扩展。以太坊则是区块链2.0技术的代表,它在比特币的基础上实现了智能合约(smart contract),即可自动执行的合约。相对于比特币有限的转账功能,以太坊的智能合约是图灵完备的,可以实现任何计算机所能完成的计算任务及任何复杂合约。
尽管以太坊在比特币的基础上实现了令人惊喜的创造,但是它和比特币一样存在处理能力低下的问题。比特币每秒能处理7笔转账交易,而以太坊每秒最多也只能处理25笔,这种交易处理能力远低于MasterCard、Visa等信用卡支付系统的处理能力(约每秒7 000笔交易),更不用说淘宝天猫“双11”期间每秒数十万笔的交易处理能力。因此区块链3.0的概念应运而生,它需要具有远超比特币的处理能力,并具备智能合约功能。区块链3.0将可应用于金融、教育、工业制造、社会管理、慈善公益等广泛领域。
怎么理解区块链?为了解释区块链,不少科普文章都给出过通俗的比喻,其中最为形象的莫过于微信接龙报名。微信接龙报名在日常生活中经常可以用到,为了统计参与某个活动的人员,大家轮流添加自己的信息,然后发送到微信群中。微信接龙报名的过程,与区块链运行的过程非常相似。
首先,微信接龙报名记录不可篡改,信息只能添加、不能删除,这一特点与区块链一致。其次,微信接龙报名过程是去中心化的,报名信息会广播到所有人手机上,每个人都有一份报名名单的副本,任何人都无法操纵报名过程。再次,微信接龙报名公开透明,每个人都能看到报名信息,这也是显而易见的。最后,微信接龙报名过程也是高容错的,任何人掉线都不影响接龙报名的进行,只是掉线者自己无法正常报名。此外,微信报名过程中可能出现“分叉”,这与区块链中的分叉也是极为相似的。在微信接龙报名时,可能出现两个人同时报名的情况,这将造成信息不一致。后续报名者会选择其中一个报名记录继续报名,最终可能是大家选择分支长度最长的继续报名,这种解决分叉的机制与比特币完全一致。
设想一下,微信中每个人都有一笔初始资金,他们通过微信接龙进行点对点资金转账。每个人需要对上一个人的转账进行验证,参与转账的人都可以获得一定的奖励,那么这套系统实际上就实现了比特币的转账功能。当然,上述微信接龙转账的过程与区块链的运行机制还有本质上的区别。微信本质上还是中心化的运行模式,由腾讯公司控制,而区块链系统则是彻底的无中心。如果微信仅仅作为接龙转账记录的“邮递员”,每个用户在自己的手机上维护和处理报名信息,那么微信接龙转账跟区块链就几乎是一模一样的了。
区块链是以密码算法为基础的分布式系统,为保证转账过程的安全性,区块链采用密码学技术作为保障,主要使用的有数字签名和哈希算法。数字签名是手写签名在数字世界中对应的技术,比如一张支票需要有手写签名才能生效,区块链上的转账交易也必须有合法的数字签名才能生效。与手写签名类似,每一个数字签名都具有唯一性,这也是目前大部分密码货币交易可以被追溯的原因。区块链中的第二个密码学技术是哈希算法,它是一个单向函数,只能从输入计算出结果,不能从结果反推输入。因为这个有趣的性质,哈希算法被用来设定“工作量证明”,即成功挖矿所需的工作量,也就是共识机制。
共识机制的主要目的是达成一致、建立互信。所有参与者通过共识机制对转账信息验证并记录下来,形成分布式总账。在完全分布式、互不信任的环境中,所有参与者达成共识是极其困难的。目前我们熟知的共识机制有“一人一票”投票制和股份制公司的股权投票制,但前提是所有参与者都是经过认证的、可信的。在比特币这样的区块链系统中,任何人都可以作为参与者,无法对其身份进行认证,因此它采用了“工作量证明”共识机制,即参与者必须做出足够的“工作”以证明自己“可信”,其提案才能被接受。除了工作量证明机制外,区块链中还可使用权益证明、拜占庭容错等共识机制。