▌今日币价: Btc$8,877/Eth$611/Eos$11.2
现如今,网上充斥着各种各样的区块链教程。参差不齐的质量,并不统一的表述给初学者带来了很多困惑。不知你是否也被一堆专业术语绕得云里雾里的,别怕,你不是一个人。
软件开发商Neonto公司的创始人兼CTO Pauli Olavi Ojala在Medium中分享了一篇1750年的人都能读懂的区块链解释,文中用现实场景详细介绍了区块链这个技术,堪称区块链小白的最佳入门指南。如果你对区块链缺乏系统的了解,那你一定不能错过本文。
1661年的曼哈顿和华尔街,当时的纽约还叫“新阿姆斯特丹”。与此相同,今天的区块链技术也是刚刚起步。
区块链技术如何科学入门
不知道你有没有这样的感受,区块链,去中心化,分布式账本,加密哈希函数,共识算法,这些围绕在加密货币周围的术语让初学者觉得自己就像是一位从18世纪穿越而来的时空旅行者。因为你不仅要熟悉计算机科学中一些非常令人费解的概念,还要接触很多经济学上的术语。
区块链将计算机科学和经济学这两门原本看似格格不入的科学分支组合在了一起。一方面,区块链需要非常严谨的密码学理论支撑整个底层,密码学这个计算机科学中偏数学的重要分支,曾经是沉默寡言的计算机天才一展身手的舞台。另一方面,区块链还用到了当代社会科学中的新星——经济学,经济学家往往都充满激情,极具竞争力,拥有人称“攻击性”的性格。在这种情况下,两者的结合真可谓是“异性相吸”,这两个科学分支的紧密结合,带来了区块链这种独一无二的新技术,但是这也给初学者带来了挑战,很多人都是片面地理解新事物所以对区块链产生了很多误解。
为什么说区块链技术是独一无二的呢?我们都知道区块链是密码学与经济学的结合,这种结合又会给生活带来哪些改变呢?如果你想在网上找到答案,你会发现网上人们都是在谈论使用区块链带来的好处,想要充分了解区块链并不容易。
区块链的重要创新——问责制度
从根本上说,区块链中最重要的组成部分不是算法,不是挖矿节点,更不是用户界面,而是一个个人。更具体地说,就是人与人之间的问责制度。
这是一个关于信任的概念,由于信任以多种形式存在,所以适用面也很窄。
比如,婚姻中的信任往往不是建立在问责制度上的,你的妻子或丈夫并不会要求你每天提交一份所有行为的准确报告。因此婚姻中的信任似乎并不适合基于区块链的解决方案或其他的技术解决方案。(当然,如果你认为这是一个不错的区块链落地场景,不要理会我举的例子,放心大胆地去做吧,需求市场肯定是巨大的。)
问责制度曾经引发过金融革命。复式记账的现代会计制度起源于13世纪的意大利,并成为文艺复兴时期西欧经济和文艺繁荣的重要基础。当时在佛罗伦萨,一个名叫Giovanni de’ Medici的男子根据复式记账法的原则成立了一家银行(译者注:美第奇银行)。技术上的革新不仅流传至今改变了现代会计制度,还改变了整个家族的命运,他的儿子Cosimo后来成为了佛罗伦萨的统治者,三代以后Cosimo的一个曾孙成为了当时欧洲大陆的最高统治者,教皇利奥十世。
美第奇银行给后世产生了深远影响,当代企业中的信息管理系统大部分都是继承和发扬了中世纪美第奇银行的运营策略:维持数据库,记录交易,以及记录关于谁发起了什么交易,给其他人的账户带来怎样的改变这样的交易细节。从会计学的角度说,这些系统就是一个个账本。区块链与当代企业的信息管理系统有何不同?区块链如何实现人与人之间新的问责制度?
区块链的解决方案——去中心化
答案是去中心化,无论你以前考虑过什么样的信息管理系统,从美第奇银行的手写账本,今天银行使用的IBM大型服务器,甚至现在一些具有前瞻性公司使用的更先进的云服务器集群,你会发现他们的账户状态更改都只有一种来源。他们都授权用户对自己的账户进行操作,并且将用户操作后的账户状态存储在所有的副本中。但无论使用多少台云服务器,系统的输入都是中心化的,即会有一个权威机构承担“守门员”的职责,对所有数据进行审核,来源可靠的数据才会被批准记录在系统中。
区块链并不像这些传统信息管理系统通过设立权威机构来审核并批准交易。它是一个分布式的账本,你可能经常在区块链的讨论组中听到分布式账本这个术语。假如小明把一笔钱同时转给小刚和小红(双重支付问题),传统信息管理系统中的权威机构可能就不能判断出哪笔交易可以加到账本中,这就需要一个共识机制,共识机制也是你可能常听到的术语。而什么是分布式账本?什么是共识机制?
穿越回1750年寻找答案
为了更好地解释分布式账本和共识机制,让我们完全抛开计算机和数字系统的背景知识,从历史中寻找答案。想象一下你在1750年的纽约。你刚刚走下一艘船,三周前你从伦敦出发,坐船横跨大西洋。一路上波涛汹涌的海浪,糟糕的食物,和你一样三周没洗澡的路人,这一切让你在踏上陆地的时刻心潮澎湃。
18世纪的纽约街头
碰巧,你是一个有钱人。在你的口袋里有个很值钱的东西:伦敦规模最大的一家银行给你开出的一千英镑的汇票。即使在最偏远的英国殖民地,这家银行的名字也是众所周知的。你的汇票上盖有银行伦敦总行的官方印章,承诺你可以在任意的交易员处兑换现金。到了纽约,你立刻找到一个有实力的,公司与伦敦总行有业务往来的交易员来兑换这笔巨款。交易员和伦敦总行签有协议,伦敦总行给交易员在伦敦的业务提供信用额度,作为交换,交易员承诺在纽约接收伦敦总行开出的汇票并将其兑现。
尽管如此,交易员也从来没想过会有像你这样的有钱人真的拿着汇票来兑现。因为殖民地的现金十分稀少,这位交易员最多可能就在办公室里保存了50英镑的现金。兑换一千英镑这笔巨款是一项需要操作数周甚至数月的业务。这么麻烦的事,他非常希望你去找其他的交易员兑换。但是由于他与伦敦总行签订的合同约束,他必须兑现。
这该怎么办呢?交易员又该怎么证明你的汇票是真实有效的呢?尽管交易员显然不愿意给你兑换现金,你又怎么能给他证明汇票是真实有效的呢?这是一个关于人与人之间问责机制的核心问题。(顺便说一句,这也是Francis Spufford小说《金山》中的情节,想要知道文中怎样处理这个问题的,快到书里去找找吧。)
1750年的解决方案
回到我们的分析。在伦敦总行里存放的帐本可以证明你的账户里有一千英镑。然而,交易员并没有这个帐本的副本,而且要求这份横跨大西洋的证明需要数月时间。对于伦敦总行来说,除去每次由交易员寄信请求验证,银行回信证明这种途径,还能怎么样分发账本中存储的信息呢?这里有两种方法。
首先,银行可以通过多条路径发送相同的信息。事实上,银行和交易员都同意这样做。对于任何汇票,银行会通过另一艘船发送一份用来证明汇票真实性的副本,并亲自委托给船长。当第二艘船抵达后船长把这个用来证明的盖章副本交给交易员,这样交易员就会认定汇票是真实的。在这种情况下,你、银行、交易员三方达成共识。
分发账本信息的另一种方式是对汇票进行加密。这是一种可行的方案,有点像当前增值税发票的密码区,很难想象这是18世纪就被人采用了的技术。当交易员在伦敦与银行签约时,他们就会共享一本密码簿。通过这本密码簿,伦敦总行会在给你的汇票中插入一条加密信息,只有拥有相同密码簿的人才能对这条加密信息进行解码,从而验证汇票真伪。
这种方法存在一个问题。在验证汇票时,只有交易员能证明汇票的真伪,但如果他骗你说汇票是假的呢?你怎么知道伦敦总行和交易员谁在说谎呢?拿上文中这个交易员来说,如果他并不希望花很长时间来帮你处理兑换一千英镑的业务,所以即使汇票上的加密信息验证通过,怎样才能阻止他对你说谎呢?
解决方案是同时使用这两种方法。银行的密码学验证机制向交易人证明了汇票的真实性,同时多种路径发送证明副本向用户证明了汇票的真实性,在这种情况下,需要第二艘船的船长提供汇票的副本来保证用户的权益。
当下问题的演变
回到二百多年后的今天,技术的进步使这种横跨大西洋的邮件交互不再需要两个多月,但关于分发账本以及账户的信任问题并没有消失。现在,即使是跨洋消息也可以立刻到达,但问题是大量的参与者每天都在忙于各种交易。在我们1750年的场景中只有四个人,你、银行、交易员和第二艘船的船长。交易员每个月只会收到少量的汇票,所以他可以花时间来处理每笔交易。而在今天,有数十亿人每天都进行上百笔交易。谁来做这些海量交易的“守门员”?谁拥有这个总帐并决定他人是否可以在其中拥有一个账户?谁来决定说,某个国家的某些人被禁止参与到全球金融市场当中仅仅是由于这些人出生之前发生的政治事件,如果没有前面的这些假设,我们可以建立怎样的替代系统?
当下的解决方案——区块链
区块链的出现让我们可以在已有中心化系统之外探索解决这些问题。区块链结合了我们在1750年场景中看到的两个特征——共识和密码学验证,并以一种新颖的方式将它们组合在一起,创建了一个真正去中心化的系统,在这个系统中每个人都可以参与记账,最终达成共识把账目记录到“帐本”中,即一个个有唯一标识的区块中。达成共识的区块被永久加入到区块链中,由于每个区块都指向前一个区块,因此区块的顺序不会被篡改,区块一个个首尾相连,这也就是区块链这个术语的由来。
虽然迄今为止我们所有的例子都在讲转移资金,但请记住,这实际上是关于人与人之间的问责制度。分布式账本中的账户和货币并不一定表示货币的交易。他们基本上是由一方(或多方)对区块链网络上另一方的某些事实的承认组成。
区块链存储的事实
实际上,你想在区块链网络上存储的事实主要分为两类:所有权和承诺。一个特定的区块链支持存储什么取决于它的协议。
第一个广泛部署的区块链只涉及单一类型的价值(资产),账户拥有这些价值,区块链存储这些账户间的交易记录。比特币是这种“价值存储”区块链的典范。换句话说:比特币协议不允许你对账户余额除转移到另一账户外做任何操作,比特币的区块链通过存储交易记录,记录了每个比特币的所有权,就是这样。
还有很多的区块链协议与上述的第二类事实有关,我们称之为“承诺”。想象一个非常简单的非货币交换场景:我非常想喝咖啡,我向你承诺你给我买一杯咖啡,我会给你提供一次公寓清洁服务。这个承诺并不关乎所有权,你并没有得到一个洁净的公寓,只是在区块链中存储了一个承诺,根据这个承诺你可以要求我去清洁你的公寓。这些承诺通常会被通证化,即变成可在区块链上交易或者持有的资产类型。如果我以通用的形式给你这个公寓清洁服务的承诺,那这就可以通证化成为一个“公寓清洁通证”,你可以在区块链上与其他人进行交易,卖出这个通证,并且我们之间有一个不可否认的协议,即通证卖给第三人后,我会给持有通证的人提供公寓清洁服务。
智能合约入门
高级形式的承诺称为智能合约。有了智能合约,你可以提出各种各样的承诺,区块链会自动帮你执行操作。例如,我可以承诺给今天给我购买咖啡的前十个人提供公寓清洁服务,一旦我收到咖啡,我的智能合约“公寓清洁服务通证创造者”会自动执行生成多达十个通证,但不会超过十个,并且仅限今天。我做为区块链参与者可以制定任意的智能合约规则,比如我感觉十个通证太多了,我可以改成生成五个通证;公寓清洁太累,我可以发行“洗车服务通证”等等。但由于智能合约是在区块链上编写的,定义的规则对所有人都是可见的,一旦发布就无法更改。所以即使我后悔了希望摆脱这项清理十套公寓的承诺,我也无法单方面做出更改。
在区块链中共享记录
还有一种特殊的所有权可以在区块链中表现出来,即将其他类型的数字资产链接到区块链的密码学世界中。它以哈希值这个概念为中心,一个哈希值就像一个由一小段数字表示的指纹,具有唯一性,且任意的数字内容都可以进行哈希值计算。你可以对本篇文章计算哈希值,或者是整个Windows系统的安装盘,甚至是一张披头士乐队的数字专辑,所有的这些以及其他任何数字形式的内容都可以压缩成一个哈希值。计算哈希值是一个单向的操作:你不能从哈希值中恢复出数据来,也不能根据指定的哈希值创造一些数据。
哈希值的后一个特性往往是非常有用的。通过计算并发布哈希值,你可以在不暴露任何潜在细节的情况下证明某些数据的存在,根据你发布哈希值的记录可以证明在某时某刻你已经知道了某事。这个功能听起来很多余,不过在某些方面很有用。专利是一个很好的例子,因为专利经常牵扯到谁首先发明出某些东西的法律纠纷,所以当你准备申请专利时,你可以保存一份专利申请书的备份,并将它的哈希值发布到区块链上。以后如果产生争议,你可以通过发布这份专利申请书并展示它的哈希值与存储在区块链中的哈希值相匹配来证明你的发明时间。因为你不可能伪造一个与区块链中哈希值相匹配的文档,所以这能证明你在发布哈希值之前就完成了这个发明。哈希值在区块链的一些方面是非常重要的,所以作为初学者你可能会在很多情况下碰到哈希值这个术语。
回想一下,我们刚才提到比特币区块链中记录了网络中所产生的每个比特币的所有权,严格地说比特币协议中存在一个“漏洞”,这让你可以在每笔交易中加入一些其他数据,而这个漏洞刚好足够你放入一个哈希值。所以,你甚至可以使用比特币区块链来保存你数字化所有权指纹。值得注意的是,你每次进行一笔这样交易时都需要支付交易费,按目前的比特币价格约等于1美元。
在共享记录时最好使用不同的区块链协议,特别是设计一个基于区块链的便宜且高效的存储系统时。尽管如此,这个比特币交易漏洞还是一个区块链如何共享记录的很具有说服力的例子,这里的记录可以是区块链协议允许你存储和访问的任何事物。
共识机制
有两个通常与区块链相关联的特性,它们都是实际设计中的选择,而不是概念所固有的要求。它们就是挖矿与匿名性。也许你已经从各种媒体上看到比特币挖矿比丹麦整个国家消耗的能源还要多的报道,或者看到关于以太坊挖矿强力推动了高端显卡的需求,以至于出现游戏玩家组装电脑时买不到高端显卡的情况。这些都是比特币和以太坊底层协议设计者所做的选择带来的可见的严重副作用。区块链通常都是通过挖矿达成共识,这意味着区块链的参与者将要使用自己的计算机执行复杂的计算,这些计算实质上是无用的,仅仅是为了提高区块链的安全性。第一个算出答案的矿工有权把自己统计的交易加入到区块链中,从而获得区块链中的货币作为奖励。
这种建立共识的方法叫做工作量证明(Proof of Work,POW)。这是一个非常聪明的方式,可以确保在任意数量的互不了解的节点中建立共识。只要没有出现一方采矿算力超过50%的情况,这种方法就能确保公平。但它的不足在于能源上的消耗,因为这些工作本身毫无用处,这些计算除了验证交易外毫无意义。所以说,使用工作量证明是一把双刃剑,不过现在出现了很多全新的共识机制,其中最受欢迎的就是权益证明(Proof of Stake,POS)。
为了更好地理解共识机制这个问题,让我们快速回顾一下1750年的场景:在那里使用了什么样的共识机制?第二艘船的船长提供一份汇票的副本,并以自己的荣誉保证汇票的真实性,所以我们可以将这种方法称为权威证明(Proof of Authority)。这是一个在“旧世界”中解决相同问题的一个很具说服力的例子,但区块链设计的初衷就是要独立于中心化的权威机构,因此区块链通常不会使用权威证明作为共识机制。
匿名性
上面还提到了这样一个特性,也是区块链的一个优势,但并非固有的要求——匿名性。人与人之间的问责制度与这些人是否认同彼此无关。一些区块链被明确设计用来隐藏参与者在真实世界中的身份,这给一些例如参与销售非法药物等犯罪行为的人提供了保护伞,因为区块链可以帮他们躲避政府的监管。一些区块链则明确设计要求参与者提供个人的身份信息,例如用于存储房地产交易的区块链。然而,区块链也并不是能完全匿名的。例如比特币似乎在表面上是匿名的,但从交易中追溯交易者的真实身份也并不是不可能的,换句话说,你不该指望国税局或地方税务局对你持有的比特币一无所知。(译者注:有些国家会对比特币等加密货币征税)
写在最后
这里对区块链的介绍就结束了。不能否认的是,如果你来自1750年,一些当时还没有出现的术语例如“电脑”可能会让你感觉困惑。如果你不是时光旅行者但仍觉得自己在阅读过程中存在很多困惑,你可以参考我们其它的文章,从多方面系统地了解区块链。