加密世界的故事(The Crypto Story)全文中译——第一章:账本、比特币和区块链

以下是关于本章内容的一些摘要:

现代生活在很大程度上由数据库中的条目组成。

我们大多数时候信任数据库管理者,而数据库管理者大多数时候也是值得信任的。但是,我们不总是信任他们,他们也不总是值得信任。

从某种意义上说,谁来管理世界? 我们能信任谁来做这件事?

比特币是一个基于密码学证明而不是基于信任的电子支付系统,允许任何两个交易方直接交易,而无需信任第三方。

在过去的14年中,加密货币从头开始建立了一套金融系统。加密货币不断地重新发明或重新发现金融行业已经做了几个世纪的事情。

加密货币是有趣的,它对一些老问题提出了一些新的见解,即使有些是错误的,这种错误的方式也很有启发。

金融系统实际上就是一系列数据库。它是一种在有形的物品之间,来回移动权利声明的方法,它是实体世界的附加物。

和以前不同的是,你并不需要信任银行来维护你的账本,而是信任数以千计的匿名陌生人。

加密系统试图利用经济激励措施使人们诚实行事,而不是信任他们会诚实行事。

你不必证明你是一个好人,甚至不需要证明自己是一个人。


加密世界的故事(The Crypto Story),是2022年10月31日发布在彭博商业周刊的一篇专栏文章,作者是金融作家Matt Levine。全文超过8万字,内容丰富到必须专门为此发行一期专刊——这是彭博商业周刊历史上的第二次。

正像原文副标题所说的:要了解加密世界,只需读这一篇文章就够了。毫无疑问,这是我近期看过最好的关于区块链、比特币及加密世界的文章。无论你对此了解多少,是门外汉还是熟练的交易者,都强烈建议读一读,一定会有所启发。因为没有发现完整的中文版,所以我花时间做了全文中译,帮助大家减少阅读门槛。

文章分四个章节,本文是第一章。如果想看其他三章,请移步我的专栏:https://www.zhihu.com/column/c_1639901496249569280

I 账本、比特币、区块链

A.数据库中的生活

现代生活在很大程度上由数据库中的条目组成。

你所拥有的钱,就是银行数据库中记录你有多少钱的条目。你拥有的股票,通常是由该公司或某个中间商维护的股票拥有者名单上的条目。

你拥有的房产,情况略有不同:你对该房产的所有权,可能记录在某个数据库中,在美国,这通常意味着某个县书记员办公室地下室的某个文件柜(这并不是一个很好的数据库)。在很多时候,最重要的是房子本身:你有大门钥匙、你的东西都在房子里、你的邻居习惯于每天早上看到你离开,但会对其他人的到访感到惊讶。而在某些情况下,重要的是数据库中的条目。一家银行在发放抵押贷款之前,会确保你具备房产的所有权;买方在付款给你之前,会通过适当的程序来处理这些记录。仅仅有大门钥匙是不够的。

还有很多类似的事情:现代生活的大部分都发生在网上,你的社交生活、职业生涯和声誉,完全由Meta平台、谷歌和微软的数据库组成。

其中一些与计算机有关:将金钱视为计算机条目,比视为装金币的袋子或甚至纸币更加方便,但其中有更深层次的含义。拥有一栋房子可以意味着什么?一种可能性是自然状态,这意味着:1)你住在房子里;2)如果其他人试图搬进去,你可以把他们赶走。但如果他们更强壮,就能夺走这栋房子。

另一种可能性是类似社区的概念:拥有一栋房子,意味着你居住在那里,你的邻居都认识你,如果其他人试图搬进去,那么你和邻居团结在一起,足够强大,能够保卫自己的房子。房屋所有权问题是由一个高度信任的点对点网络解决的。

图:在社区里,每个人都知道你的名字。

第三种可能性是政府。政府认可您拥有房子,如果其他人试图搬进来,政府将把他们赶出去。社会中的房屋所有权由政府调节。数据库是政府跟踪房产的一种方式。您不需要信任任何特定的人,只需要信任法治。

金钱也有点类似。装金币的袋子是很直接的形式,但它们太重了。您信任的银行家帮您持有金袋,并为您书写信用凭证,您可以在银行家的表兄弟经营的银行分行上提款——这非常棒,但它依赖于您和银行家,以及银行家和他们的表兄弟之间的信任。在非个人化的银行系统中,柜员对于你而言是陌生人,你可能使用ATM来取钱,这些都需要信任,而信任是来源于政府的监管或声誉、市场力量的约束,来确保他们不会犯错。

我们说现代生活离不开数据库,最重要的是,现代生活涉及很多信任。

图:我们信任数据库的管理者。

有时,这是因为我们认识他们,并相信他们值得信任。更多的时候,这意味着我们对更广泛的系统有一种抽象的信任感,也就是法律体系、数据库和信任体系本身。我们假设自己可以信任所使用的系统,因为信任使生活更加轻松,而不信任则让生活更加困难,这种假设大多数时候都是有效的。这是现代社会一个巨大且未被充分认识的成就——我们大多数时候信任数据库管理者,而数据库管理者大多数时候也是值得信任的。

B. 如果你不喜欢这样,怎么办?

i. 不信任

但是,我们不总是信任他们,他们也不总是值得信任。

有时候他们就是不值得信任。有些银行不值得你信任,在有些地方,你不能信任法律能监管他们;有些政府不值得你信任,他们可能会没收你的银行存款、伪造选举结果,或改变产权登记册从而占领你的房子;有些社交媒体公司不值得你信任,他们会随意冻结你的账户。多数美国人大多数时候生活在一个高度信任的世界,信任这些中介机构是很容易且合理的。但不是每个人都生活在这样的环境中。

即使在美国,信任也可能很脆弱。2008年的金融危机对银行体系的信任造成了巨大且持久的损害。人们信任银行做体面、安全、对社会有益的事情,但结果证明他们在做有很大风险的事情,导致了经济危机。在那之后,许多人更难信任银行来保管他们的储蓄。

此外,你可能会有另一种反对意见:即使银行有完全无可挑剔的记录,那对你来说也可能不够好。对你来说,银行是一个黑箱。“我怎么知道你会把我的钱还给我?”你可以问银行,银行会这样回复:“这是我们经审计的财务报表”、“我们受联邦储备委员会和联邦存款保险公司的监管”、“我们从未不还任何人的钱”。你会说:“是的,是的,这些都很好,但是我怎么知道呢?”你不知道。信任是系统内建立的,是一个先决条件。而你可能想要证据。

图:你能说出这家银行的名字吗?这不重要,它仍然是一个黑箱!

ii. 可组成性

即使你信任现代数据库的管理者,也可能对技术现状并不满意。这些数据库并不总是非常理想:许多银行系统都是使用非常老的计算机语言Cobol编写的;在美国,人们仍然经常用写支票并邮寄的方式来进行电子资金转账——数据库之间的电子资金转账;美国股票交易需要两天的营业时间才能完成结算:如果我周一从你那里买股票,你将在周三交付股票。这并不是因为你的经纪人必须把股票证书放在袋子里,然后带到我的经纪人办公室,我的经纪人再把一袋现金带到你的经纪人办公室,但实际过程确实是这一过程的衍生。它速度很慢,手工处理较多,有时会出错,许多股票交易会“失败”。

更不要提房地产登记了。如果你要买一栋房子,需要参加一场仪式——“结算”——在那里,许多有着“房地产公司律师”等职位的人会发出“咒语”,帮助你拥有房子。这可能需要几个小时。

如果你了解现代计算机,几个小时的咒语似乎是疯狂的。你可能会想:“应该有一个应用编程接口(API)”,允许每个数据库与其他数据库互动。如果银行正在考虑给你发放抵押贷款,它应该能够自动查询财产数据库,发现你拥有自己的房产,而不需要派律师去县政府办公室查询。它应该能够自动查询运输部车辆登记数据库,获取你的驾驶执照用于身份验证,并自动查询你的经纪人账户,确认你的资产状况。

图:现代生活由数据库中的条目组成。

如果我们要更新这一切怎么办?

如果我们从头开始,用现代计算机语言和现代软件工程原理重写所有的数据库,目标是使它们无缝地相互作用,那会怎么样?

如果这样做,则意味着有一个庞大的、有生命的数据库:我可以向你发送金钱以换取你的房产,你可以向我发送社会声誉以换取我参与某个在线课程,或者其他任何事情,所有这些都处于同一个计算机系统中。

这会很方便和强大,但也会很可怕。这会给信任带来更大的压力:谁来运营那个数据库?从某种意义上说,谁来管理世界? 我们能信任谁来做这件事?

图:如果有一个数据库,每个人都在运行它,那会怎样?

C. 数字现金

2008年,Satoshi Nakamoto(中本聪)发布了一种让每个人都能运行数据库的方法,从而发明了“加密货币”

简单来说,他发明了《比特币:一种点对点的电子现金系统》,这就是他著名的比特币白皮书的标题。

图:中本聪的白皮书。

中本聪这样描述他发明的用于互联网交易的现金:“一个基于密码学证明而不是基于信任的电子支付系统,允许任何两个交易方直接交易,而无需信任第三方。”如果我想使用数字现金(比特币)购物,我只需要向你发送比特币,你就会把物品给我,没有像银行这样的“受信任的第三方”参与其中。

这听起来就像他发明了一种“我可以向你发送比特币,而没有其他人参与的”系统。而实际上,他发明的是一个有许多其他人参与的系统。

i. 题外话:你正在阅读什么?为什么你要读这些?为什么我要写这些?

我是Matt,一名前律师和投资银行家。现在我是彭博观点(Bloomberg Opinion)的专栏作家。我的日常工作是写关于金融的文章,我喜欢金融,写金融文章是有趣的。这是一种看待世界的奇怪方式,关于一系列的难题,关于人们对经济现实施加的一套结构。通常这些结构是神秘和令人讨厌的,人们希望理解金融专家们在做什么。金融中的一切都是层层叠加的,所有东西都很奇怪并违反直觉,你通常需要了解一定的金融历史,具备一些市场实践,才能理解他们为什么在做这些事。

在过去的几年中,金融界最具争议的就是加密货币。加密货币是一组想法、产品和技术,源自比特币白皮书。但它同时也代表着一路上涨的走势线。当中本聪发明比特币时,1个比特币价值0美元:它只是一个凭空想象。在2021年11月的最高点,1个比特币价值超过67,000美元,而所有流通的加密货币的总市值约为3万亿美元。许多早期进入加密货币行业的人都很快地变得非常富有,这很令人恼火。有些人买了兰博基尼和私人岛屿,他们对自己感到很满意:他们认为加密货币是未来,他们正在建设未来,并得到适当和充分的回报。他们经常对那些不拥有加密货币的人说一些类似“Have fun staying poor”(贫穷快乐)和“NGMI”(你不会成功)之类的话。他们是正确的和富有的,他们想让你知道这一点。

也有许多人对加密货币不感兴趣,他们认为它主要用于犯罪或庞氏骗局,这个印象并非完全不合理。他们提出的问题包括“这有什么用?”或“这些钱都来自哪里?”或“如果你正在建设未来,你正在做什么实际的工作?”或“如果你正在建设未来,为什么它看起来如此可怕?”加密货币人士通常回答说:“Have fun staying poor。”

2022年,加密市场开始崩溃。比特币的价格下跌至20,000美元以下,加密货币的总市值从3万亿美元下降到1万亿美元,一些大型加密货币公司接连倒闭。如果你是加密货币怀疑论者,这将非常令人满意,不仅仅是因为幸灾乐祸,也因为现在大家可能会停止讨论加密货币,你可以不再关注它。对于加密货币支持者来说,这些只是加倍努力的理由:崩盘将淘汰散户,留下真正的信徒,共同建设未来。

从某种意义上说,现在谈论加密货币是一个愚蠢的时机,因为市场在下行。但实际上,现在正是谈论加密货币的好时机:我们能够停下来,休息一下。加密货币不仅仅是投机和快速致富的阴谋,我们可以思考加密货币的含义——与价格走势的上升稍微脱离关系。

我并不想讨论加密货币的价值。我喜欢金融,金融是有趣的,如果你喜欢金融——如果你希望理解人们为组织经济现实建立的结构——你会发现加密货币是令人惊叹的。它是一个直观的金融实验室。在过去的14年中,加密货币从头开始建立了一套金融系统。加密货币不断地重新发明或重新发现金融行业已经做了几个世纪的事情。

有时它找到了新的和更好的方法。

时常,它也会走到错误的方向,走向传统金融几十年前尝试过的死胡同,结果非常好笑。

时常,它会得出和传统金融相同的解决方案,但带有新的名称和新的解释。您可以自己研究某些加密货币,找出它是哪个传统金融事物的复制,这样你就可以了解到有关加密金融系统的一些知识——例如对加密货币可能出错而做出明智的猜测——您也可以了解到有关传统金融体系的知识:在加密世界中的复制,可以让您对金融的起源产生新的见解。

此外,作为一名金融作者,我喜欢研究欺诈、市场操纵、以及聪明的人愚弄那些不那么聪明的人的故事。这些故事通常都是有趣和启发性的。加密货币的故事就包含了所有这些要素。

因此,我写了很多关于加密货币的文章。

我需要给你一些警告。首先,我不是加密货币的专家。我不是一个真正的信徒。在我开始写这篇文章之前,我并不拥有任何加密货币,现在我只拥有大约100美元的加密货币。我写这篇文章,是因为我喜欢人类的聪明才智和人类的愚蠢,而加密世界有很多这样的故事。

相反,我并不想告诉你,加密货币是愚蠢和无价值的,它会消失无踪。同时,我的目标也不是要说服你,加密货币正在建设未来,如果你不上车,就将永远贫穷。我只想让你知道,加密货币是有趣的,它对一些老问题提出了一些新的见解,即使有些是错误的,这种错误的方式也很有启发。

毕竟,我是一个金融人士。在我看来,历经14年,加密货币已经发展了一个相当成熟的金融体系,我将深入讨论它,因为它相当成熟,因为我喜欢金融。

但可能没有人对金融体系那么在乎。

图:2022年4月,在迈阿密的一场比特币会议上,一群人聚集在一起。

金融系统实际上就是一系列数据库。它是一种在有形的物品之间,来回移动权利声明的方法,它是实体世界的附加物。如果金融系统能够让农民更容易种植食物,让家庭更容易拥有房屋,让企业更容易制作精彩的电脑游戏,如果它能在日常生活中帮助创造和分发,那么它就是好的。如果金融系统只是在交易抽象的权利声明,只让参与交易的人受益而不帮助其他人,那么它就是不好的。

在过去的14年里,加密货币的一个重要问题是:它有什么用?要问真正的用例,大多数答案都是金融业务:“嗯,我们建立了一个伟大的加密货币交易所。”好的,OK。有时答案可能是关于创造和分发的:“加密货币让移民以低廉的价格快速发送汇款。”这些都是很好的,但通常,它们和高效的赌博相关。赌博很有趣,这没什么问题,但是一个完全专注于赌博的金融系统会有点局限。

同时,最热心的支持者说,加密领域建立了一些真正的、有用的东西。加密世界将重新定义社会关系、游戏和计算机,它将建立元宇宙。加密产品是下一代互联网的关键组成部分,加密世界将建立“web3”以取代我们当前的“web2”。是这样吗?如果你问他们真正使用加密货币的例子,你会得到大量的真实的、有利可图的金融业务,以及一些模糊的理论遐想,比如“嗯,也许我们可以在web3上建立一个社交网络?”

现在仍然是早期。也许有人会在web3上建立一个很棒的社交媒体网络。也许10年后,加密货币、区块链和代币将成为互联网上一切的核心,互联网将成为(比现在更多)人类生活中一切的核心,加密货币的早期采用者将被证明是正确的并变得富有,而我们其余的人将继续贫穷,孩子们将说:“我不相信任何人曾经怀疑狗狗币的重要性。”

我不想低估这种可能性,我确实想对此进行一点点猜测,也许描绘一下这可能意味着什么。我不是技术人员,也不是真正的信徒。但是,试图理解加密货币对互联网未来的影响是值得的,因为其影响有时是乌托邦的,有时是反乌托邦的,有时只是让现有的体系变得更有效。此外,金融是很酷的,现在也很酷。

ii. 题外话:一些代称和一些人

在我们继续之前,让我说一些惯用的代称。

首先,“加密世界”。我在这里写的东西,没有一个很好的名称来描述它。我会称之为Crypto,我想这是“加密货币”的简称。这并不是一个好名字,因为1)它强调货币,而加密货币的很大一部分其实与货币无关,2)它强调加密,而尽管加密货币在某种深层意义上与加密有关,但大多数从事加密领域的人并没有做太多的加密工作。你可以成为加密货币专家、加密货币亿万富翁或加密领域的领先人物,而无需了解太多关于加密的知识,有时从事加密的专家会因为加密货币人士窃取他们的前缀而感到有点恼火。

还有其他一些名称,用于描述加密货币中的各种主题——”区块链“、”代币“、”“Web3”、“DeFI”、“元宇宙”——它们有时被广泛用于描述加密世界中的很多事情,但它们同样未必准确。所以我主要会使用“加密世界”作为通用术语。

第二,“中本聪Satoshi Nakamoto”。这只是一个假名,无论是谁写了比特币白皮书,他、她或他们都非常擅长保持自己的匿名状态。(关于作者可能的身份,有很多猜测,一些有趣的猜测包括Elon Musk和一个名叫中本聪的计算机工程师。我会称呼他为“中本聪”,并使用他/他的代词,因为大多数人是这样做的。)

有一种观点:除了(也许?)中本聪,基本上每个参与加密货币的人,都有一种可笑的、夸张的性格。如果你读过相关的文章,很可能会知道一些疯狂的人物。除了这篇文章!在本文中,不会描写任何标志性人物。我的目标是解释加密世界,这样当你读到一些奇怪的人在从事加密领域时,你就可以理解他在做什么。

图:“有人见过Tether的数十亿美元吗?” 作者是Zeke Faux

iii. 题外话:“加密”在加密货币中的含义

密码学是研究秘密消息的学科,涉及编码和解码。本文大部分内容和密码学无关,但加密货币的底层涉及密码学,所以了解一点密码学会很有帮助。

密码学最基础的原理:基于一个输入(一个数字,一个单词,一串文本),对其运行某些函数,它会产生不同的数字、单词或其他输出。该函数可能是凯撒密码(每个字母向字母表中一个或多个位置移位,因此“凯撒”变为“Dbftbs”),或者是pig Latin(将单词的第一个辅音移至末尾并添加“-ay”,因此“凯撒”变为“Aesar-say”),或者更复杂的东西。

密码学函数的实用性来自于它是“单向的”。这意味着将输入字符串转换为输出字符串很容易,但在反方向上很难执行:很容易在一个方向上计算该函数,但在另一个方向上几乎不可能。(经典示例是两个大素数的乘法非常简单,而将一个巨大的数字分解为两个大素数则很困难。)凯撒密码既易于应用也易于逆转,但某些编码形式易于应用但更难逆转,这使它们更适合于秘密编码。

一个例子是“散列”函数(即哈希函数,译者注),它将某些输入文本转换为固定大小的长数字。我可以运行散列函数,对本文进行散列——一个流行的散列函数是称为SHA-256的算法,它是由美国国家安全局发明的——并从中生成一长串无法理解的数字。(为了使其更加无法理解,通常将这个数字写成十六进制,因此它将包含0到9的数字以及“a”到“f”的字母。)我可以将这个数字发送给你,并说:“我写了一篇文章,使用SHA-256散列算法对其进行了散列,这个数字就是结果。”你会看到这个数字,但你无法理解它。尤其是,你无法将它输入计算机程序来解码它,将散列数字转换回这篇文章。

散列函数是单向的:散列值对你阅读文章没有任何意义,即使你知道这个散列函数。散列函数基本上只是打乱文章的数据:它把文章中每个字母变成二进制表示(一系列0和1),然后大量打乱这些0和1,直到它们全部混乱且无法识别。散列函数提供了清晰的逐步说明,如何将二进制位混合在一起,但它们在反方向上不起作用。这就像在咖啡中搅拌奶油:容易做,但难以撤消。

使用SHA-256算法,可以为您能想到的任何大小的数据创建一个64位数字。例如,这是詹姆斯·乔伊斯730页小说《尤利西斯》的散列值:

3f120ea0d42bb6af2c3b858a08be9f737dd422f5e92c04f82cb9c40f06865d0e

它占用的空间与“嗨!我是马特”的散列值相同:

86d5e02e7e3d0a012df389f727373b1f0b1828e07eb757a2269fe73870bbd044

但是如果我写“嗨,我是马特”用逗号替换感叹号呢?那么会变成这样:

9f53386fc98a51b78135ff88d19f1ced2aa153846aa492851db84dc6946f558b

“嗨!我是马特”和“嗨,我是马特”的数字之间没有明显的关系。两个原始输入几乎完全相同;散列输出完全不同。这是散列函数之所以为单向的关键:如果相似的输入映射到相似的输出,那么它将太容易被逆转并解密消息。所以在实操中,每个输入会映射到一个随机输出。

一个无法解密的密码有什么用?其中一个用途是验证。如果我向您发送本文的散列值,它不会帮助你创建整篇文章。但之后如果我给您发送了整篇文章,您可以将它放入计算机程序(SHA-256算法)并生成散列,生成的散列将完全匹配我发送给您的数字。您会说:“啊,是的,你散列了那篇文章。”您无法解码散列,但您可以很容易地验证这篇文章的正确性。

这个例子确实有点傻,但其原理其实有很多应用场景,一个简单的日常场景是密码。如果我有一个计算机系统,您通过密码登录系统,我需要能够检查您的密码是否正确。一种方法是系统存储您的密码,并检查您输入的内容,与存储的内容进行比较:比如我有一个文本文件,其中包含所有密码,其中“Password123”写在您的用户名旁边,您在登录屏幕上输入“Password123”,系统将您输入的内容与文件进行比较,确认它们匹配,就允许您登录。这样做是危险的:如果有人窃取了文件,他们会拥有每个人的密码。最佳的做法是散列密码:在设置帐户时,您输入“Password123”作为密码,系统通过散列函数运行它,并获得

008c70392e3abfbd0fa47bbc2ed96aa99bd49e159727fcba0f2e6abeb3a9d601

然后存储在列表里。当您尝试登录时,您输入密码,我再次散列它,如果它与我列表上的散列值匹配,我会让您进入。如果有人窃取了列表,他们无法从散列值中解码您的密码,所以他们无法登录系统。

散列还有其他和加密世界相关的用途,其中一种是时间戳。例如,你预测了某个未来事件,并且想在它真的发生时获得认可,但你不想现在就去Twitter上说:“我预测喷气机队将在2024年赢得超级碗赛”,以避免让人尴尬、担心影响结果等等。你可以这样做:在一张纸上写下“喷气机队将在2024年赢得超级碗赛”,将其放入信封中,密封这个信封,然后让我保存信封。在2024年超级碗赛后,你会告诉我要么打开信封,要么烧掉信封,但这需要你和所有其他人信任我。

另一种无需信任的做法是,在密码散列生成器中输入“喷气机队将在2024年赢得超级碗赛”,它会输出:

64b70b0494580b278d7f1f551d482a3fb952a4b018b43090ffeb87b662d34847

然后你可以发推文,

每个人都会说:“嗯,你真讨厌”,但他们无法解码你的预测。当喷气机队赢得超级碗赛时,你可以说:“看,我提前预言到了!”你可以重新发布加密推文和你的预测原文。如果有人愿意的话,他们可以通过散列计算器查到散列值真的与你的预测匹配,预测成功的荣誉将属于你。

除了散列之外,另一个重要的单向函数是公钥加密,关键是两个数字,称为“公钥”和“私钥”。这些数字很长,看起来是随机的,但它们之间是有关联的:使用公开可用的算法,其中一个数字可以用于锁定消息,另一个可以解锁它。双密钥系统解决了密码学的一个经典问题:如果我用来加密消息的密钥与你用来解码它的密钥相同,那么我必须提前把密钥发送给你。任何在传输途中窃取到密钥的人,都可以读取我们的消息。

使用公钥加密的方法,我们无需共享私钥。公钥是公开的:我可以发送给每个人,甚至发布在Twitter上。私钥是私密的,我不会给任何人。如果你要向我发送一条秘密消息,你可以写下消息,并将其通过加密算法运算,该算法使用1)这条消息和2)我的公钥(是公开的)来生成加密消息,然后你将其发送给我。然后,我将消息通过解密程序运行,该程序使用1)加密后的消息和2)我的私钥(只有我有)来生成原始消息,这样就可以阅读了。你可以使用我的公钥加密消息,但没有人可以使用公钥解密它。只有我可以使用我的私钥解密它。(对你来说,该函数是单向的,但我可以使用私钥将其反转。)

另一个例子是“数字签名”。同样,我有一个公钥和一个私钥,我的公钥公开发布在Twitter上。我想向你发送一条消息,我想让你知道我写了它。我将其通过加密程序运算,该程序使用1)这条消息和2)我的私钥。然后,我会向你发送1)原始消息和2)加密消息。

你可以使用解密程序,该程序使用1)加密消息和2)我的公钥来解密消息。解密后的消息与原始消息相匹配,这证明了是我加密了消息。所以你会知道,确实是我写了它。我本可以只发送Twitter短信给你,但这样做更加隐秘。

想象一个简单的银行系统,其中银行账户是公开的:有一份公开的账户列表,每个账户都有(公开的)余额和公钥。我对你说:“我控制账号No. 00123456789,它有250美元,我将向你发送50美元。”我向你发送一条数字签名消息,说“这里有50美元”,你使用该账户的公钥解码该消息后,就会知道我确实是账户的控制人,一切都符合要求。这就是比特币背后的基本思想,尽管还有很多更复杂的想法。

iv. 比特币的简单形式如下

有一个庞大的公共地址列表,每个地址都有一个看起来像随机数字和字母的唯一标签,以及一定数量的比特币余额。例如,某个地址可能有标签“1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa”和余额68.6比特币,这个地址就是公钥。如果我“拥有”这些比特币,那意味着我拥有对应于该地址的私钥,实际上就是访问该账户的密码。

因为我有私钥,所以我可以使用私钥对消息进行签名,从而向你发送比特币。你可以检查该签名与公钥、公共地址列表以及比特币余额的相关信息,这些信息足以确认,发送给你的比特币由我控制,但你不会得到我的私钥,窃取我剩余的比特币。

这种方式意味着,我可以向你发送比特币,而无需你信任我,或我信任你,或我们两个都信任某家银行,来验证我拥有这些钱。“我们将这种电子币定义为由数字签名组成的链,”中本聪写道。公共地址和私钥的组合足以定义一枚货币。加密货币之所以被称为加密货币,正因为它是基于密码学派生出来的货币。

图:中本聪说,比特币本质上是一个签名链

你会注意到,我们所做的只是交换一条消息,然后我们将其结果称为货币。传统的金融系统本质上也差不多:银行不会移动金袋或很多纸币,他们是数据库的管理者。大致上,当我向你支付100美元时,我的银行会向你的银行发送一条消息,让它更新账本就可以了。

同样,在比特币中,消息会更改(公共的)账本,账本表明了谁拥有什么。但是谁来维护账本?答案是比特币网络——数以千计使用比特币并在其计算机上运行其软件的人——共同和有冗余地维护账本。有成千上万的账本副本——网络上的每个节点都存在一份列表,保存着每个地址中有多少比特币的信息。

然后,当我们交易时——当我向你发送一枚比特币时——不仅仅是在我们之间进行,它实际上广播给了整个网络,以便每个人都可以更新他们的列表。如果我从我的地址向你发送一枚比特币,并且我对此交易的签名被验证有效,每个人都会更新他们的账本,向你的地址添加一枚比特币,并从我的地址减去一枚比特币。

账本不仅仅是一个关于地址及其余额的列表,它实际上是每一笔交易的记录。账本由网络上的每个人来维护,每个人都跟踪着自己的每一笔交易。

这很棒!和以前不同的是,你并不需要信任银行来维护你的账本,而是信任数以千计的匿名陌生人。

我们实现了什么?

事情并没有看上去那么糟糕。每笔交易都能被证实:如果我从我的地址向您发送一枚比特币,并使用我的私钥签名,整个网络将计入该交易;如果我试图从其他人的地址向您发送一枚比特币,但没有私钥,网络上的每个人都可以看到交易是假的,并不会把它计入。每个人都运行着开源软件,基于可被验证的交易来更新账本。每个人都保留着一套账本,但您自己可以证明账本中的每笔交易都是有效的,所以您不必对他们信任。

顺便说一下,我说“每个人”都保留着账本,这在比特币的早期可能大致正确,但现在不再是这样。有数千人运行着“全节点”,这些全节点下载、维护并验证整个比特币账本,使用开源的官方比特币软件。但是其他数百万人没有这样做,他们只持有一些比特币,并信任其他人会正确地维护该系统。然而,他们对这种信任的基础,略微不同于您对银行的信任基础。原则上,他们完全可以自己去验证,每个参与验证的人做的验证都是正确的。

请注意,每个人都有财务上的诚实动机:如果每个人都诚实,那么这就是一个有价值的、可用的支付系统。如果很多人都不诚实,在其账本中放入虚假交易,那么没有人会信任比特币,比特币的价值将变为零。如果比特币价值为零,窃取比特币又有什么意义?

这就是加密世界里的标准方式:加密系统试图利用经济激励措施使人们诚实行事,而不是信任他们会诚实行事。

这就是故事的大部分内容,但还有一些遗留的小问题:比特币是从哪里来的?每个网络参与者都保留着比特币历史上发生过的每笔交易的账本,你的比特币可以追溯到一系列以前的交易。但是追溯到什么地方呢?账本是怎么开始的?

另一个问题是关于交易顺序的:如果我的账户里有一枚比特币,我先把它转给你,然后我再把它转给别人,谁真正拥有比特币?这似乎是微不足道的问题,但它很棘手。比特币是一个去中心化的网络,它通过向成千上万个节点广播交易来运作,无法保证它们在每个地方都会以相同的顺序到达。如果大家对顺序不能达成一致,会发生坏事——“双重支付”,即将同一比特币发送到两个不同的地方。“交易必须公开宣布,”中本聪写道,“我们需要一个系统,让参与者就接收交易的顺序达成一致。”

这个系统就是区块链。

v. 哦,区块链

每笔比特币交易都会广播到网络上,网络上的一些计算机——称为“矿工”——会将交易打包成称为“区块”的组。在某个时候,某一个版本的区块会被认可:该区块中交易的列表以及交易的顺序,会成为规范,成为比特币正式记录的一部分,我们说该区块已经被“挖掘”。在比特币系统中,大约每 10 分钟会有一个新区块被挖掘出来。

然后矿工们开始打包一个新的区块,这个区块也将被挖掘、被正式认可。这就是散列发挥作用的时候:新的区块将通过包含前一个区块的散列值来引用前一个区块——能够确认前一个区块 1)是正确的、被整个网络接受的,并且 2)在时间上先于它。每个区块都将引用链中的前一个区块——是的,这就是“区块的链”。区块链创建出被网络一致认可的交易顺序的正式记录。散列值就是时间戳,它们创建了被一致认可的顺序。

你可以想象一个简单的系统:每 10 分钟,某个矿工提议一组交易,网络上的所有计算机都对此投票。如果获得多数票,它们就会成为正式交易,进入区块链。

不幸的是,这太简单了。参与比特币网络没有任何限制,任何运行开源比特币软件的人都可以参与。你不必证明你是一个好人,甚至不需要证明自己是一个人。如果你愿意,可以连接一千台计算机来参与。

图:在俄罗斯纳德沃依采矿场的采矿场景。

这会产生所谓的“女巫攻击”风险,这个名字不是来自古希腊的预言者,而是来自1973年的一本书,讲述一个女人有多重人格的故事。女巫攻击的思路是,如果在一个群体共同维护的账本系统中,任何人都可以加入该群体而无需许可,你就可以操纵大量计算机节点,使其看起来像成千上万的人。然后你可以提交虚假的交易,所有人都会说:“啊,这么多人都验证了这笔交易,”他们会接受你的交易作为多数共识,结果是你偷走了钱,至少也会扰乱整个系统。

图:《女巫》(1973)。

解决这个问题的方法,是让验证交易变得昂贵。

要挖掘一个区块,比特币矿工需要做一件荒谬且代价高昂的事情,这同样涉及到散列:每个矿工都会记录当前区块内交易列表的摘要以及前一个区块的散列值,然后在列表末尾添加另一个任意数字——称为“随机数”。矿工会将添加随机数后的整个列表输入SHA-256散列算法,结果会生成一个64位十六进制数字。如果数字足够小,那么矿工就成功挖到了这个区块。如果不行,矿工会使用不同的随机数再尝试一次。

这个数字“足够小”的定义,由比特币系统设置,并可以调整,能够使挖矿变得更容易或更难。(目标是保持每10分钟挖出1个区块:矿工越多,计算机越快,挖矿就越难。)目前,“足够小”的意思是散列值必须以19个0开头,最近一个成功的例子看起来像这样:

00000000000000000006c9f1194ce7ff75c5f265d5520878e9e9392c3c8ff203

这就像猜数字的游戏,你需要不断猜测一个数字,通常可以问20次。不同之处是,你没有任何线索,而且要猜的次数远远超过20次。任何特定的输入——交易列表加随机数——都极其、极其不太可能散列为一个以19个0开头的数字,概率大约是750万亿亿分之一。所以矿工会反复运行散列算法上百万亿次,每次猜测一个不同的随机数,直到得到一个符合要求的散列值。比特币网络的总算力超过每秒2亿次Terahash——也就是每秒2万亿亿次散列计算,这确实很多,但远少于750万亿亿。以每秒2万亿亿次散列计算的速度,平均需要600秒才能猜测出合适的随机数,从而挖到一个区块。

这是一场竞赛。只要一个矿工能挖到一个区块,这个矿工会就被奖励比特币。挖到一个区块也意味着“开采”新的币——通过大量的计算工作挖掘出它们,就像在岩石中找到一条黄金矿脉。因此有采矿的隐喻。

图:一位古老的探矿者,约1860年。

当矿工找到满足要求的数字时,他们会向比特币网络发布该区块及其散列值。其他人会查看该区块,并决定其是否有效。( “有效”意味着列表上的所有交易都是有效的,散列值正确,其开头零的数量满足要求等。)如果是这样,那么他们将开始挖掘下一个区块:他们将上一个区块的散列值加上自那时以来发生的交易,并试图找到一个新的散列值。每个区块都建立在之前的一个区块上。

vi. 挖矿

所有这些都极其昂贵:矿工需要特殊的硬件来不断进行散列计算。如今有很多矿场,运行着大量永不关闭的计算机。挖掘比特币使用的电力与一些中等规模的国家相当,这对环境不利。最流行的对于比特币的描述来自于Twitter:

在某种意义上,这纯粹是浪费。人们有时会说,比特币矿工实际上正在解决困难的数学问题来进行挖矿,但事实并非如此。他们每秒在进行数以千万计的猜数字游戏,以尝试获得正确的散列值。在这些巨量的猜测中,没有数学问题被解决,世界的知识也没有增加。

矿工们确实在解决比特币网络的一个重要问题,即其交易记录的安全问题。确认比特币交易的成本是可以被证明的,所以它很难伪造,很难进行女巫攻击。这就是为什么中本聪以及其他人都称这种确认交易的方法为“工作量证明”。如果你为一个区块产出了正确的散列值,就证明你做了大量的、昂贵的计算机工作。你无法轻易地做到这件事。

经济系统中的工作量证明机制,是一种在不了解其他情况的时候,能够在人群中达成共识的机制。如果你不希望比特币有价值,则永远不会去挖掘比特币。如果你是一名比特币矿工,一定在某些方面对比特币有投入:你购买了计算机,支付了电费,并对比特币进行了一笔昂贵的、令人疲惫的投注。你已经证明了你的付出,所以你能够验证比特币账本并得到报酬。你会得到比特币,这会带来更多的收益。

这些比特币凭空出现,它们是基于这种挖矿行为产生的,由比特币的核心软件控制。事实上,所有比特币都是通过挖矿产生的——最初,比特币从未分配给中本聪、早期投资者或任何其他人。这就是关于比特币来源的答案:它们都是通过挖矿产生的。

最初,由软件设置的挖矿奖励是每个区块50个比特币,目前则是6.25个比特币。关于挖矿奖励的一个重要之处在于,它们会给比特币用户造成损失。每隔10分钟左右,每个新的区块都会凭空产生6.25个新的比特币,并支付给相应的矿工,每年总计超过60亿美元。这种成本是间接的:它是通货膨胀的一种形式,假设其他条件保持不变,随着比特币供应量的增加,理论上每个比特币的价值会略有下降。目前,比特币网络每年总价值的约1.5%都支付给了矿工。

这比美元的通货膨胀率要低。尽管如此,它仍然值得我们关注。每年,矿工们都会捕获比特币总价值的一小部分,这一小部分已经足够可观。比特币用户会得到这60亿美元带来的回报:安全的比特币网络和交易记录。

如果可以通过比特币挖矿赚到很多钱,那么很多人都会想来挖矿,这将使任何一个人很难积累挖矿的大部分算力。如果一个人或一个群体获得了大多数的算力,他们可以做坏事:他们可以挖出一个虚假的区块——双重支付、撤销最近发生的交易等。(这被称为“51%攻击”。)当矿工通过挖矿能获得数十亿美元的奖励时,人们会投入大量资金来投入挖矿,你需要花费很多钱来与他们竞争。而如果你真的投入了数十亿美元,积累了比特币挖矿的大多数算力,你显然会非常希望维持比特币的价值,所以你不太可能将权力用于恶意目的。

https://zhuanlan.zhihu.com/p/624083553

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇