有专家预言,2017 年“区块链”将成为“互联网+”之后的又一热词,并且区块链已经成为全球互联网金融最为火热的概念,截至到截止到 2016 年 9 月中旬,2016 年行业的融资总额已经达到 4.2 亿美元。

1. 区块链定义

概念:区块链 (Blockchain) 是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。

通俗解释:通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。那么谁来记这个账本就变得很重要。目前就是谁的系统谁来记账,微信的账本就是腾讯在记,淘宝的账本就是阿里在记。但现在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有任何数据变化,系统中每个人都可以来进行记账,系统会评判这段时间内记账最快最好的人,把他记录的内容写到账本,并将这段时间内账本内容发给系统内所有的其他人进行备份。这样系统中的每个人都了一本完整的账本。这种方式,我们就称它为区块链技术。

这里是区块链的定义,因此要逐步了解区块链,我们需要一步步了解如下东西。

2. 去中心化

先来考虑一个中心化集中式处理的过程。你要在某宝上买一部手机,交易流程是:

你将钱打给支付宝→支付宝收款后通知卖家发货→卖家发货→你确认收货→支付宝把钱打给卖家。

中心化集中式交易模式

在这个过程中,虽然你是在和卖家交易,但是这笔交易还牵扯到了除了你和卖家的第三方,即支付宝,你和卖家的交易都是围绕支付宝展开。因此, 如果支付宝系统出了问题便会造成这笔交易的失败。并且虽然你只是简单的买了一个手机,但是你和卖家都要向第三方提供多余的信息 。因此考虑极端情况,如果支付宝跑路了或者是拿了钱不却不承认你的交易或者是支付宝所在的城市因为开 G20 把所有人都赶走了,那么你就悲剧了。

而去中心化的处理方式就要显得简单很多,你只需要和卖家交换钱和手机,然后双方都声称完成了这笔交易,就 OK 了。

可以看出在某些特定情况下,去中心化的处理方式会更便捷,同时也无须担心自己的与交易无关的信息泄漏。

其实如果只考虑两个人的交易并不能把去中心化的好处完全展示出来,设想如果有成千上万笔交易在进行,去中心化的处理方式会节约很多资源,使得整个交易自主化、简单化,并且排除了被中心化代理控制的风险。

去中心化是区块链技术的颠覆性特点,它无需中心化代理,实现了一种点对点的直接交互,使得高效率、大规模、无中心化代理的信息交互方式成为了现实。

当然,上述的例子有一个很大的潜在问题: 没有了权威的中心化代理,怎样保证每笔交易的准确性和有效性呢 ? 比如:如果没有了权威的中心化代理,张三某一天借了我 100 块钱,但是不还钱还不承认怎么办? 这里就引出了区块链的其它特性。

3. 两个基础难题

在去中心化以后,整个系统中没有了权威的中心化代理,信息的可信度和准确性便会面临问题。

问题 1:类两军问题

大致说的是有两个相距很远的军队要传递信息,红军派遣一个信使去跟蓝军说:“你他娘的把意大利炮拿出来!”。蓝军收到信息后又派了一个信使去红军说:“收到指令!”。然后红军又派一个信使去蓝军说:“知道你收到指令了!”。然后蓝军又派一个信使去红军说:“知道你知道我收到指令了!”。然后红军又派一个信使去蓝军说:“知道你知道我知道你收到指令了!”……然后就没完没了了。

162K54629-4

在分布式计算中在异步系统和不可靠的通道上达到一致性是不可能的

在这种情况下,因为是点对点的通信,双方不可能在这种情况下达到信息的一致性。严谨一点,就是“在分布式计算上,试图在异步系统和不可靠的通道上达到一致性是不可能的”。

问题 2:拜占庭将军问题

拜占庭罗马帝国在军事行动中,采取将军投票的策略来决定是进攻还是撤退,也就是说如果多数人决定进攻,就上去干。但是军队中如果有奸细 (比如将军已经反水故意乱投票,或者传令官叛变擅自修改军令),那怎么保证最后投票的结果真正反映了忠诚的将军的意愿呢?

拜占庭将军问题反映到信息交换领域中来,可以理解为在一个去中心的系统中,有一些节点是坏掉的,它们可能向外界广播错误的信息或者不广播信息,在这种情况下如何验证数据传输的准确性。

4. 区块链技术的诞生

162K52553-5

现在让我们来一步一步在去中心化的系统中解决这些问题,见证区块链技术雏形的诞生。

Part 1

我们先来建立一个去中心化的系统,为了方便理解,我们来看一个简单的去中心化借贷模型:如果 A 借了 B 100 块钱,这个时候,A 在人群中大喊“我是 A,我借给了 B 100 块钱!”,B 也在人群中大喊“我是 B,A 借给了我 100 块钱!”,此时路人甲乙丙丁都听到了这些消息,因此所有人都在心中默默记下了“A 借给了 B100 块钱”。你看,这个时候一个去中心化的系统就建立起来了,这个系统中不需要银行,也不需要借贷协议和收据,严格来说,甚至不需要人与人长久的信任关系 (比如 B 突然又改口说“我不欠 A 钱!”,这个时候人民群众就会站出来说“不对,我的小本本上记录了你某天借了 A100 钱!”)。

162K56457-6

图:去中心化借贷模型

Part 2

可能你已经发现了,在上述的模型中,所谓的“100 块钱”已经不重要了。换句话说,任何东西都可以在这个模型中交换,甚至你可以凭空杜撰一个东西,只要大家承认,你就可以让你杜撰的东西流通。比如:我在人群中高喊一声“我创造了 10 个查克拉!”,我甚至不需要知道查克拉是什么,也不需要关心世界上是不是真的有查克拉,只要大家都听到,然后在自己的小本本上记下“LaiW3n 有 10 个查克拉”,于是我就真的有 100 个查克拉了。从此以后,我便可以声称我给了某人 1 个查克拉,只要路人甲乙丙丁都收到并且承认了这一信息,那我就算完成了这次交易,哪怕世界上没有查克拉。

你现在脑海中是不是浮现出了三个字——“比特币”? 由于真正的区块链和比特币比我上述的模型复杂太多,细节也丰富太多,因此以下还是以查克拉举例,毕竟本文是 Blockchain for Babies.(笑)

Part 3

假设过了很长一段时间,我凭空创造的查克拉已经在这个系统中流通了起来,大家都开始认可了查克拉。但是这个系统中一共就只有 10 个查克拉,于是有人动了坏心思,他在人群中高呼“我有 10 个查克拉!”怎么办? 大家是直接在本本上记下他有 10 个查克拉么,这样不是人人都可以伪造查克拉了么?

为了防止这种现象发生,我决定在我创造查克拉的时候给我的查克拉打上标记 (更准确地说,我是给我喊的那句“我创造了 10 个查克拉”打上标记,比如标记为 001),这样以后在每一笔交易的时候,我在高喊“我给了某某 1 个查克拉!”的时候,会附加上额外的一句话:“这 1 个查克拉的来源是记为 001 的那条记录,我的这句话标记为 002!”。我们再抽象一点,某人喊话的内容的格式就变成了:“这句话编号 xxx,上一句话的编号是 yyy,我给了某某 1 个查克拉!”,这样就解决了伪造的问题。其实上述模型就变成一个简化的中本聪第一版比特币区块链协议:

图:查克拉模型和中本聪第一版区块链协议对比图

5. 区块链技术基础:分布式账本

账本的作用

在如今的互联一体化世界中,经济活动都是在跨越国家、地理和司法边界的商业网络中进行的。商业网络通常汇聚在生产者、消费者、供应商、合作伙伴、市场创造者/推动者和其他项目干系人云集的市场中,这些项目干系人能够拥有、控制并行使他们在价值对象(也称为资产)上的权力、特权和权利。

资产可以是有形的物理资产,比如汽车和住房,也可以是无形的虚拟资产,比如证券和专利。资产的拥有和转移会在商业网络中创造价值,这个过程被称为交易(transaction)。

交易通常涉及不同参与方,比如买家、卖家和中介(比如银行、审计员或司法人员),他们的商业协议和合同记录在账本(ledger)中。一个企业通常使用多个账本来跟踪资产的所有权,以及在其各种业务中的参与者之间的资产转移。账本是企业的经济活动和利益的记录系统(System of Record,SOR)。

典型的商业账本类似于下图:

 

当前商业账本存在的问题

当前使用的商业账本存在许多不足之处。它们效率低下、成本高、不透明且容易发生欺诈和滥用。这些问题源于集中化的、基于信任的第三方系统,比如金融机构、票据交换所,以及现有制度安排下的其他中介。

这些集中化的、基于信任的账本系统会给交易结算带来瓶颈和障碍。缺乏透明性,而且很容易发生腐败和欺诈,并导致争议。解决争议、逆转交易或提供交易保险的成本很高。这些风险和不确定性导致了错失商机。

此外,每个网络参与者自己系统上的商业账本副本都是不同步的,这会导致因为临时的、错误的数据而制定错误的商业决策。在最好的情况下,能够解决账本不同副本之间差异,但却延误了制定明智决策的时机。

区块链到底是什么?

区块链是一种防篡改的、共享的数字化账本,用于记录公有或私有对等网络中的交易。账本分发给网络中的所有成员节点,在 区块 中永久记录网络中的对等节点之间发生的资产交易的历史记录。

所有经过确认和证明的交易都从链的开头一直链接到最新的区块, 因此得名区块链 。区块链可以充当单一事实来源,而且区块链网络中的成员只能查看与他们相关的交易。

区块链网络的工作原理

区块链网络中的成员节点不依赖于第三方(比如金融机构)来仲裁交易,它们使用一致性协议来来协商账本内容,使用密码哈希算法和数字签名来确保交易的完整性。

一致性 能确保共享账本是精确副本,并降低了发生交易欺诈的风险,因为篡改需要同时在许多地方同时执行。 密码哈希算法(比如 SHA256 计算算法)能确保对交易输入的任何改动 — 甚至是最细微的改动 — 都会计算出一个不同的哈希值,表明交易输入可能被损坏。 数字签名 确保交易源自发送方(已使用私钥签名)而不是冒名顶替者。

去中心化对等区块链网络可阻止任何单个或一组参与者控制底层基础架构或破坏整个系统。网络中的参与者是平等的,都遵守相同的协议。它们可以是个人、国家代表、企业或所有这三种参与者的组合。

在其核心,该系统会记录交易的时间顺序,而且所有节点都赞同使用选定的一致性模型的交易的有效性。这会使交易不可逆并被网络中的所有成员接受。

区块链技术的商业优势

在传统商业网络中,所有参与者都在维护自己的账本,账本交易之间的重复和差异会导致争议、更长的结算时间,而且因为需要中介,还会导致相关的间接管理成本。但是,通过使用基于区块链的共享账本,交易在通过一致性验证并写入账本后,就不能再更改,这样企业就能节省时间和成本,同时减少风险。区块链技术可以提高自愿参与者之间的透明性、自动化、账本定制化,以及记录的可信度。

区块链一致性机制提供了经过整合的、一致的数据集的优势,减少了错误,拥有近实时的引用数据,而且参与者能够灵活更改其拥有的资产的描述。

因为没有参与成员拥有共享账本中所含信息的来源,所以区块链技术会提高参与成员之间的交易信息流中的可信度和完整性。

区块链技术的不变性机制降低了审计和合规性成本,增加了透明性。而且因为使用区块链技术在商业网络上执行的合同是智能的、自动化的和最终的合同,所以企业会获得更高的执行速度、更低的成本和更少的风险,并能及时结算合同。

如何才算是好的区块链用例?

要确定您的用例是否适合使用区块链,请询问自己以下问题:

1 是否涉及商业网络?

2 是否使用一致性来验证交易

3 是否需要审计线索或来源?

4 交易记录是否必须不可变或防篡改?

5 争议的解决是否会是最终决定?

如果问题中的至少一个问题的答案为“是”,那么您的用例就会从区块链技术受益。要成为合适的解决方案,区块链必须涉及一个网络,但该网络可以具有多种形式。该网络可位于企业之间,比如供应链,或者该网络可以在一个企业内。例如:在企业内,可以使用区块链网络在部门之间共享参考数据,或者创建审计或合规性网络。该网络也可存在于个人之间,比如需要在区块链上存储数据、数字资产或合同的人。

分布式账本的分类

文章转采编译自如下文章:

  • http://www.ibm.com/developerworks/cn/cloud/library/cl-blockchain-basics-intro-bluemix-trs/index.html
  • http://www.wanbizu.com/blockchain/201702109058.html