2022加密行业故事(一):账本,比特币与区块链
来源:Bloomberg
编译:比推BitpushNews Derrick Chen
它来自哪里,这一切意味着什么,以及为什么它仍然很重要。
–彭博商业周刊最优秀的财经作家马特·莱文
目录
一:账本、比特币、区块链
a. 数据库中的生命
b. 如果你不喜欢它怎么办?
c. 数字现金
二:这是什么意思?
a. 价值储存
b. 分布式计算机
c. 缓慢的数据库
d. Web3
e. 不可审查的分类账本
f. 数字稀缺性
三:加密金融系统
a. 你的钥匙、你的代币、你在垃圾场的硬盘
b. CeFi
c. 稳定币
d. 去中心化金融
e. 重塑 2008
四:信任、金钱、社区
a. 信任
b. 金钱
c. 社区
d. 金融
不久前,我在想,“如果我把加密货币整件事都理解错了怎么办?”我是一个经常怀疑的人,老实说,我并不总是了解这个已经渗透和扩展了十多年的平行宇宙。如果你是信徒,这个新空间就是未来。如果你是一个怀疑论者,这个颠倒的世界只是一个现代庞氏骗局,结局会很糟糕——而最近的“加密货币冬天”就是它早该结束的证据。但是加密已经深入到金融、技术和我们的头脑中。如果加密货币没有消失,我们最好尝试理解它,这就是为什么我们请最优秀的财经作家、彭博观点的马特·莱文为彭博商业周刊撰写本系列。在本杂志 93 年的历史中,只有一位作者做过一次(“什么是代码?”,Paul Ford)。接下来是他对这种令人发狂、常常荒谬且总是令人着迷的技术的意义以及它可能走向何方的精彩解释。
一 账本、比特币、区块链
A. 数据库中的生命
现代生活包括数据库中的大部分条目。
如果你有钱,你所拥有的是银行数据库中的一个条目,说明你有多少钱。如果你持有股票,那么你所拥有的通常是一份清单上的条目——由公司保存,或者更有可能是一些中央中介机构1——谁拥有股票。
注1:
这些中介机构包括Depository Trust & Clearing Corp.,它代表其他所有人拥有大多数美国公司的大部分股份。如果您拥有股票,您所拥有的是 DTCC 名单上的条目,使您有权获得 DTCC 持有的一些股份,并且它在公司的名单上拥有它拥有多少股份的条目。
如果你拥有一所房子,情况会略有不同。您对那所房子的所有权可能会记录在某个数据库中;在美国,这通常意味着在某个县文员办公室地下室的文件柜中,有一份你买房子的记录——你的头衔。(这不是一个很好的数据库。)在很多方面,这里最重要的是房子:你有前门的钥匙;你的东西在那里;你的邻居早上看到你离开家不会感到惊讶,看到其他人回来也会感到惊讶。但在许多其他方面,重要的是数据库中的条目。银行在给您抵押贷款之前会希望确保您拥有所有权;在向您支付房屋费用之前,买家会希望对该记录执行适当的程序。仅仅拥有钥匙是不够用的。
很多其他的东西也有例子。现代生活的大部分发生在网上。“你的社交生活、你的职业和你的声誉包含在 Meta以及谷歌和微软的数据库中”这一理论并不完全正确,但这也不是完全错误的。
其中一些与计算机有关。将钱放入计算机条目比一袋袋黄金甚至纸币要方便得多。不过,其中一些拥有比这更深的意义。拥有房子意味着什么?一种可能性是自然状态:拥有房子意味着 1)你在房子里,以及 2)如果其他人试图搬进来,你比他们块头大,所以你可以把他们踢出去。但如果他们比你块头大,现在他们则拥有房子了。
另一种可能性是您可能认为的村庄。拥有房子意味着你住在那里,你的邻居都知道你住在那里,如果其他人试图搬进来,那么你和你的邻居加起来比他们块头大。房屋所有权由高度信任的同行网络在社会上进行调解。
郊区的照片。在这种社区里,每个人都知道你的名字。
第三种可能性是你可能认为的政府。拥有房子意味着政府认为你拥有房子,如果其他人试图搬进来,那么政府就会把他们赶出去。2 房屋所有权是由政府在社会上进行调解的。该数据库是政府跟踪的一种方式。您不必信任任何特定的人;你必须相信法治。
注2:
你不需要住在那里,因为政府的知识就足够了。您可以出租房子:其他人可以在您允许的情况下搬进来。如果你撤销许可,你可以去政府,它会——根据房东-租户法等——把这个人赶出去。
钱也有点像这种形式。一袋金子是一种相当简单的形式,但它们很重。一个系统,你信任的银行家为你保管你的麻袋,给你写信用证,你可以在你的银行家的堂兄经营的银行分行利用这些信函——这很好,尽管它依赖于你们之间的信任和银行家,以及银行家和银行家的表弟。一个非个人的银行系统,其中出纳员是陌生人并且您可能无论如何都使用自动取款机,需要对系统的信任,相信银行受到政府监管或声誉或市场力量的限制,因此会正常运作。
说现代人生活在数据库中意味着,最重要的是,现代生活涉及很多信任。
我们信任数据库的维护者。
有时这是因为我们了解他们并认为他们值得信赖。更多时候,这意味着我们对更广泛的系统、法律和数据库系统以及信任本身有一种抽象的信任感。我们假设我们可以信任我们使用的系统,因为这样做比不信任它们更容易生活,而且这种假设大多是可行的。这是我们最信任的数据库管理员的一项伟大而被低估的成就,并且他们大多是值得信赖的。
马克·扎克伯格、桑达尔·皮查伊、克里斯蒂娜·拉加德、凯茜·伍德
伯尼·麦道夫
B.如果你不喜欢它怎么办?
i. 不信任
但我们并不总是信任他们,他们也不总是值得信赖的。
有时他们不是。你不能信任有些银行为你保管你的钱,有些地方你不能信任法治来监管它们。有些政府会从银行没收你的钱,或者伪造选举结果,或者改变财产登记处并拿走你的房子。有些社交媒体公司会任意冻结您的帐户,您不能信任。大多数时候,美国的大多数人都生活在一个高度信任的世界中,在这个世界中,很容易和合理地相信运行影响我们生活的数据库的中间人会表现得很好。但并不是每个地方的每个人都这样生活。
即使在美国,信任也很脆弱。 2008 年的金融危机对许多人对银行系统的信任造成了巨大而持久的损害。人们相信银行会做一些好的、安全的、对社会有益的事情,结果证明他们做的是疯狂的、有风险的事情,导致了经济危机。在那之后,许多人越来越难以信任银行持有他们的储蓄。
此外,尽管如此,您可能对信任有哲学上的反对意见。即使您的银行在跟踪您的资金方面有绝对完美的记录,这对您来说可能还不够好。你的银行对你来说是一个黑匣子。 “我怎么知道你会把我的钱还给我?”你可以问银行。银行会说“这是我们经审计的财务报表”和“我们受美联储监管,受联邦存款保险公司保险”之类的话。 “我们从来没有不退还任何人的钱。”你会说,“是的,是的,没关系,但我怎么知道?”你并不知道。信任是建立在系统中的,这是一个先决条件。你可能需要证据。3
注3:
这可能是现代的欲望,或者至少是现代更强烈、更容易满足的欲望。在一个没有互联网、没有维基百科、没有链接、没有开源软件等的世界里,你每天必须相信一百万个事实;你打算怎么做,把它们都查一遍?
ii.可组合性
即使您通常信任现代数据库的维护者,您也可能会有更多技术性的反对意见。这些数据库并不总是很好。很多银行系统都是用一种非常古老的计算机语言 Cobol 编写的。在美国,人们仍然经常通过写纸质支票并将其放入邮件中进行支付——电子货币数据库之间的电子转账。美国股票交易需要两个工作日才能结算:如果我在星期一从你那里购买股票,你在星期三交付股票(我付钱给你)。这不是因为你的经纪人必须把股票放在一个袋子里然后带到我的经纪人办公室,而我的经纪人把美元钞票放在一个袋子里然后把它们带到你的经纪人办公室,而是因为实际过程比那个还要落后。它缓慢且手动,有时会搞砸;许多股票交易会“失败”。
不要让我开始讲财产登记的事情。如果你买房子,你必须参加一个仪式——一个“闭幕式”——一群像“产权公司律师”这样的工作的人喃喃咒语让你拥有房子。这可能需要几个小时。
如果你的数据库应该如何工作的模型来自现代计算机,那么咒语的时间似乎很疯狂。 “应该有一个 API,”你可能会想:应该有一个应用程序编程接口,允许这些数据库中的每一个与其他数据库交互。如果您的银行正在考虑为您提供抵押贷款,它应该能够自动查询财产数据库并找出您拥有您的房子,而不是派律师到县书记办公室。它应该能够自动查询机动车登记处并获得您的驾驶执照以进行身份识别,并自动查询您的经纪账户并检查您的资产。
如果我们使用现代软件工程原理以现代计算机语言从头开始重写所有数据库,目标是让它们彼此无缝交互会怎样?
如果你这样做了,那几乎就像拥有一个数据库,生活数据库:我可以给你钱来换取你的房子,或者你可以给我社会声誉来换取我参加在线课程,或者其他什么,都在同一个计算机系统中。
这将是方便和强大的,但它也将是可怕的。这会给信任带来更大的压力。从某种意义上说,无论谁运行那个数据库,都将运行整个世界。你能相信谁来做到这一点?
如果有一个数据库,每个人都运行它呢?
C.数字现金
2008 年,中本聪发布了一种让所有人都可以运行数据库的方法,从而发明了“加密货币”。
好吧,我不确定中本聪认为他在做什么。他最直接地发明了比特币:点对点电子现金系统,这是他著名的白皮书的标题。
比特币:点对点电子现金系统:中本聪白皮书
中本聪的白皮书。
中本聪说他发明的是一种用于互联网交易的现金,“一种基于加密证明而非信任的电子支付系统,允许任何两个自愿方直接相互交易,而无需信任的第三方。”如果我想用数字现金从你那里买东西——比特币——我只是把比特币发给你,你把东西发给我;不涉及银行等“受信任的第三方”。
当我这样说的时候,听起来好像是中本聪发明了一个系统,我可以在这个系统中向你发送比特币,而没有其他人参与。他实际上发明的是一个涉及很多其他人的系统。
i. 题外话:你到底在读什么?你为什么要读它?我为什么要写它?
你好!我是马特。我是一名前律师和投资银行家。现在我是 Bloomberg Opinion 的专栏作家。在我的日常工作中,我写的是金融。我喜欢金融。写起来很有趣。这是一种看待世界的独特方式,一系列的谜题,一套人们强加于经济现实的结构。通常,这些结构是神秘而令人反感的,了解它们在做什么是令人满意的。金融领域的一切都建立在金融领域的许多其他事物之上。一切都是奇怪和违反直觉的,你经常需要了解金融历史和市场实践,才能理解为什么有人会做他们正在做的任何事情。
在过去的几年里,金融界最两极分化的事情是加密货币。加密是从比特币白皮书中衍生出来的一系列想法、产品和技术。但是,让我们清楚一点,图表上的一组线也在上升。中本聪发明比特币时,一个比特币的价值为零:这只是他编造的一个想法。在去年 11 月的巅峰时期,一个比特币价值超过 67,000 美元,流通中的所有加密货币的总价值约为 3 万亿美元。许多早期进入加密货币的人很快就变得非常富有并且对此非常恼火。他们购买了兰博基尼和岛屿。他们对自己很满意:他们认为加密货币是未来,他们正在建设未来,并因此而获得适当和充足的回报。他们对不拥有加密货币的人说“享受贫穷”和“NGMI”(“不会成功”)之类的话。他们是正确的和富有的,希望你知道。
许多其他人不喜欢加密货币。 他们得到了一种并非完全不合理的印象,即它主要用于犯罪或庞氏骗局。 他们问了诸如“这是干什么用的?”之类的问题。 或“这些钱是从哪里来的?” 或“如果你正在建设未来,你正在做的实际工作是什么?” 或“如果你正在建设未来,为什么它看起来如此严峻和可怕?” 加密货币人士经常回答说:希望你在贫穷过得开心。”
然后,今年,图表上的那些线下降了。一枚比特币的价格跌破 20,000 美元;加密货币的总价值从 3 万亿美元下降到 1 万亿美元;一些大型加密货币公司崩盘了。如果您是加密货币怀疑论者,这非常令人满意,不仅是幸灾乐祸,还因为也许现在每个人都会对加密货币闭嘴,而您可以回到不关注它的状态。对于加密爱好者来说,这只是一个加倍努力的理由:这次崩盘将撼动普通粉丝,让真正的信徒共同建设未来。
从某种意义上说,现在谈论加密货币是一个愚蠢的时刻,因为那些线下降了。但实际上现在是谈论加密货币的好时机。有一个停顿;有一些休息。加密货币中剩下的不仅仅是投机和快速致富计划。我们可以考虑加密意味着什么——与其他无关的,一点点,从上升的线开始。
无论哪种方式,我对加密货币的价值都没有强烈的感觉。我喜欢金融。我认为这很有趣。如果你喜欢金融——如果你喜欢理解人们为组织经济现实而建立的结构——加密货币是惊人的。这是金融直觉的实验室。在过去的 14 年里,加密从零开始构建了一个完整的金融体系。加密货币不断重塑或重新发现金融业几个世纪以来一直在做的事情。有时它会找到新的更好的做事方式。
马特·达蒙在《心灵捕手》中的黑板前
它经常会找到更糟糕的方法,走上传统金融几十年前尝试过的死胡同,结果令人捧腹。
马特达蒙
它通常会找到或多或少与传统金融想出的解决方案相同的解决方案,但有新的名称和新的解释。您可以查看一些加密货币并找出它复制了哪些传统金融事物。如果你这样做,你可以了解一些关于加密金融系统的知识——例如,你可以对加密货币可能出现的问题做出明智的猜测——但你也可以了解一些关于传统金融系统的知识:加密复制品会让你对金融原创有了新的认识。
另外,我不得不说,作为一个写金融的人,我对欺诈和市场操纵的故事情有独钟,聪明的人对稍微不聪明的人大加赞赏。这些故事通常很有趣,很有启发性,尤其是有趣。加密行业有很多这样的故事。
所以,现在,我写了很多关于加密的文章。包括很多就在这里。
我需要给你一些警告。首先,我不会作为一个深度的加密专家来写。我不是一个真正的信徒。在我开始写这篇文章之前,我没有任何加密货币;现在我拥有大约 100 美元的加密货币。我把加密写成一个享受人类聪明才智和人类愚蠢的人,并且在加密中发现了很多两者。
相反,我没有坐下来写 40,000 字来告诉你加密货币是愚蠢且毫无价值的,而且将消失得无影无踪。那将是一个奇怪的使用时间的方法。我的目标不是让你相信加密正在建设未来,如果你不加入,你就会一直贫穷。我的目标是让你相信加密是有趣的,它发现了一些关于一些老问题的新东西,即使这些东西是错误的,它们错的也很有启发性。
另外,我是财务人员。在我看来,14 年过去了,加密货币拥有一个相当发达的金融体系,我将稍微谈谈它,因为它相当发达,而且我喜欢金融。
2022 年 4 月在迈阿密举行的比特币会议上的人群
金融系统是一系列数据库。这是一种对有形物品的索赔进行洗牌的方法;它是现实世界的附属品。如果一个金融系统能让农民更容易种植食物,让家庭更容易拥有房屋和企业来制作出色的电脑游戏,如果它有助于在现实生活中创造和分配财富。如果一个金融系统交易抽象的债权以致富于交易者但不帮助其他任何人,那么它就是糟糕的。
在过去的 14 年里,加密领域的一个突出问题是:它有什么用?如果您询问实际使用加密货币的企业的示例,您将得到的答案主要是金融业务:“嗯,我们为交易加密货币建立了一个非常棒的交易所。”酷,好的。有时,这些答案似乎是关于创造或分配财富的:“加密货币让移民可以廉价而快速地汇款。”那挺好的。他们通常是关于有效赌博的。赌博是令人上瘾的,但是一个纯粹与赌博有关的金融体系会受到限制。
与此同时,加密货币最热心的支持者表示,加密货币是关于构建真实、有用的东西。加密将重新定义社会关系、游戏和计算机。它将构建元宇宙。加密是互联网下一次飞跃的重要组成部分;加密行业将构建“web3”来取代我们当前的“web2”。也许?如果你问一个实际使用加密的企业的例子,你会得到大量真实的、有利可图的金融业务,然后是一些模糊的理论思考,比如“好吧,也许我们可以在 web3 上建立一个社交媒体网络?”
现在还早。也许有人会在 web3 上建立一个非常好的社交媒体网络。也许在 10 年内,加密、区块链和代币将成为互联网上所做的一切的核心,而互联网将(甚至比现在更)成为人类生活中所做的一切的核心,而加密的早期采用者都将保持正确和富有,而我们其他人将享受保持贫穷的乐趣,学童会说,“我不敢相信有人怀疑过狗狗币的重要性。”
我不想贬低这种可能性,我确实想稍微推测一下,也许可以勾勒出这可能意味着什么。我不会给你一张关于我们如何到达那里的路线图。我不是技术人员,也不是真正的信徒。但值得尝试了解加密对互联网的未来意味着什么,因为其含义有时是乌托邦式的,有时是反乌托邦式的,有时只是你所做的事情的适度更有效的基础层。再加上金融很酷,现在也很酷。
ii.题外话:名字和人
在我们继续之前,让我说一些关于一些名字的事情。首先,“加密货币”。我在这里写的这件事:它没有一个好名字。我会经常使用的标准名称是 crypto,我猜它是“cryptocurrency”的缩写。这不是一个好名字,因为 1)它强调货币,而且很多加密并不是特别关于货币,2)它强调密码学,虽然密码学在某种深层意义上是关于密码学的,但大多数人在加密行业中并没有这样做大量的密码学。你可以成为加密专家、加密亿万富翁或加密领域的领军人物,但对密码学了解不多,而作为密码学专家的人有时会对加密货币人窃取他们的前缀感到有点糟糕。
加密货币中的各种主题还有其他名称-
“区块链” “DeFi” “web3” “代币” “元宇宙”
——它们有时被广泛用来指代加密货币中发生的很多事情,但它们也不是很好。因此,我将主要坚持使用“加密”作为通用术语。
第二,“中本聪”。那是一个化名,从那以后,无论谁写了他的白皮书,他都在保持自己、她自己或他们自己的化名方面做得相当不错。 (有很多关于作者可能是谁的猜测。一些更有趣的建议包括 Elon Musk 和一个随机的计算机工程师,名叫,呃,中本聪。我将称中本聪为“中本聪”并使用他/他的代词,因为大多数人都这样做。)
一个相关的点。除了(也许?)中本聪,基本上每个参与加密货币的人都是一个非常有趣的人物。可以肯定的是,如果您阅读有关加密的文章,它将包含很“野性”的人物。 (彭博商业周刊去年的一篇报道提到“向 Inspector Gadget 联合创始人的巴哈马银行发送数十亿美元,以换取由 Mighty Ducks 这个家伙召唤并由美国刑事调查目标的高管经营的数字代币。 ”)除了这个!在整个故事中不会有一个令人兴奋的人。我在这里的目标是解释加密,这样当你读到一个鸭子在做加密时,你就可以理解他在做什么。
iii. 题外话:加密中的“密码学”
密码学是对秘密信息、编码和解码的研究。我在本文中谈论的大部分内容都不是关于密码学的。它将是关于,你知道的,庞氏骗局。但是加密的基础层确实是关于密码学的,所以了解它会有所帮助。
密码学中发生的基本事情是你有一个输入(一个数字、一个单词、一个文本字符串),然后你在它上面运行一些函数,它会产生一个不同的数字或单词或其他任何东西作为输出。该功能可能是凯撒密码(将单词的每个字母在字母表中移动一个或多个位置,因此“Caesar”变为“Dbftbs”)或猪拉丁语(将单词的第一个辅音移到末尾并添加“ -ay,所以“Caesar”变成了“Aesar-say”),或者更复杂的东西。
密码函数的一个有用特性是它是“单向的”。4 这意味着很容易将输入字符串转换为输出字符串,但很难反向执行;在一个方向上计算函数很容易,但在另一个方向上是不可能的。 (经典的例子是两个大素数相乘非常简单;将一个大数分解为两个大素数很困难。)凯撒密码很容易应用,也很容易反转,但某些形式的编码很容易应用,而且很多更难逆转。这使它们更适合密码。
注4:
这比我在这里使用的更具技术意义。我在文中所说的单向函数,更严格地说,是我们希望基于当前对计算机技术、数学和密码学的理解的单向函数。
这方面的一个例子是“散列”函数,它接受一些输入文本并将其转换为固定大小的长数字。所以我可以在这篇文章中运行一个散列函数——一个流行的叫做 SHA-256,它是由国家安全局发明的5——并从中生成一个长而难以理解的数字。 (为了更难以理解,习惯上用十六进制写这个数字,这样它的数字就可以从 0 到 9,还有“a”到“f”。)我可以把这个数字发给你,然后说,“我写了一个文章并通过 SHA-256 哈希算法运行它,结果就是这个数字。”你有这个号码,但你无法判断它的正面或反面。特别是,您无法将其放入计算机程序中并对其进行解码,从而将哈希值转回本文。
注5:
如果你想自己尝试一下,网上有各种 SHA-256 计算器;一个在 Xorbin.com。或者,如果您想自己编程,或者用铅笔和纸做一些散列,有一份美国政府出版物 (FIPS PUB 180-4) 详细说明了该算法。 (或者它在维基百科上。)
散列函数是单向的;即使您知道散列函数,散列也不会告诉您有关文章的任何信息。散列函数基本上是对文章中的数据进行打乱:它获取文章的每个字母,表示为二进制数(一系列位,0 和 1),然后在 0 和 1 周围打乱很多次,将它们混合在一起直到它们都乱成一团,无法辨认。散列函数提供了如何将位混在一起的清晰分步说明,但它们不能反向工作。6 这就像将奶油搅拌到咖啡中:容易做,很难撤消。
注6:
一个简单的例子:将数据混合在一起的一种方法称为 XOR 函数,用于“异或”。如果对两个位(1 或 0)应用 XOR,则如果其中一个位为 1,则返回 1,如果两者都为 1,则返回 0。假设您对数字 1100 和 0101 运行 XOR,首先将其应用于每个数字的第一个位置(1 和 0)的数字,然后应用于第二个位置的数字(1 和 1),依此类推。它将返回 1001。知道输入,很容易计算输出。但是如果你知道输出是 1001,你就不知道输入:它们可能是 1100 和 0101,或者 0011 和 1010,或者 1001 和 0000,或者 1111 和 0110,等等。如果你把这篇文章的一半和 XOR与另一半一起,您将遇到一些难以回到文章中的混乱。如果你这样做几十次,你就有了密码学。
应用 SHA-256 算法将为您可以想象的任何大小的数据创建一个 64 位数字。这是詹姆斯·乔伊斯 730 页的小说《尤利西斯》全文的散列:
3f120ea0d42bb6af2c3b858a08be9f737dd422f5e92c04f82cb9c40f06865d0e
它与“嗨!我是马特”占用一样的空间:
86d5e02e7e3d0a012df389f727373b1f0b1828e07eb757a2269fe73870bbd044
但是如果我用逗号写“嗨,我是马特”怎么办?然后:
9f53386fc98a51b78135ff88d19f1ced2aa153846aa492851db84dc6946f558b
“嗨!”的数字之间没有明显的关系。我是马特”和“嗨,我是马特”。两个原始输入几乎完全相同;哈希输出完全不同。这是单向散列函数的关键部分:如果相似的输入映射到相似的输出,那么反转函数和破译消息就太容易了。但出于实际目的,每个输入映射到一个随机输出。 7
注7:
由于散列会输出固定数量的数字,因此两个不同的输入可能会映射到同一个散列。这称为碰撞。但是一个 64 位的十六进制数允许有很多不同的哈希值——16 ^ 64,或者大约 10 ^ 77 个,或者是地球上原子数量的数十亿倍。
无法解码的密码有什么意义?一方面,这是一种验证方式。如果我给你发了这篇文章的散列,它不会给你重新创建文章所需的信息。8 但是如果我然后给你发这篇文章,你可以将它放入计算机程序(SHA-256算法)并生成哈希。您生成的哈希值将与我发送给您的数字完全匹配。你会说,“啊哈,是的,你对那篇文章进行了哈希处理。”你不可能解码散列,但你很容易检查我是否已经对其进行了正确的编码。
注8:
给读者的练习:我在这篇文章中包含了一些文本的一些哈希,并且我已经谈到了这篇文章的哈希,但是我没有在文章中包含这篇文章的哈希。为什么不? (相信我,我想这样做。)
这对这篇文章来说是愚蠢的,但这个原理是有用的。一个简单的日常密码是密码。如果我有一个计算机系统,而您有登录系统的密码,我需要能够检查您的密码是否正确。一种方法是让我的系统存储您的密码并检查您输入的内容与我存储的内容:我有一个包含所有密码的小文本文件,并且在您的用户名旁边写有“Password123”,而您在登录屏幕上输入“Password123”,我的系统会检查您输入的内容与文件是否匹配,然后让您登录。但这是一个危险的系统:如果有人窃取了文件,他们将拥有每个人的密码。我最好对密码进行哈希处理。您在设置帐户时输入“Password123”作为您的密码,我通过哈希函数运行它并返回
008c70392e3abfbd0fa47bbc2ed96aa99bd49e159727fcba0f2e6abeb3a9d601
我把它存储在我的清单上。当您尝试登录时,输入您的密码,然后我再次对其进行哈希处理,如果它与我列表中的哈希匹配,我让您进入。如果有人窃取列表,他们无法从哈希中解码您的密码,所以他们无法登录到系统。9
注9:
这超出了这里的范围,但还有更多的密码学乐趣——“彩虹表”、“盐”等——涉及打败或加强这种安全性。
散列还有其他更多的加密用途。一种是时间戳。假设您预测了一些未来的事件,并且您希望在它发生时获得信任。但是你不想现在就在推特上说,“我预测喷气机队将在 2024 年赢得超级碗,”以避免尴尬或影响结果或其他任何事情。您可以做的一件事是在一张纸上写下“喷气机队将在 2024 年赢得超级碗”,将其放入信封中,密封信封,并要求我将其保留到 2024 年超级碗,之后您我会告诉我要么打开信封,要么烧掉它。但这需要你和其他人相信我。
你可以做的另一件无需信任的事情是在加密哈希生成器中输入“喷气机队将在 2024 年赢得超级碗”,它会输出:
64b70b0494580b278d7f1f551d482a3fb952a4b018b43090ffeb87b662d34847
然后你可以发推文,
Matt Levine 的推文“这是我正在做的预测的 SHA-256 哈希:64b70b0494580b278d7f1f551d482a3fb952a4b018b43090ffeb87b662d34847。”
这不是真正的推文!但你可以在 Twitter 上关注我@matt_levine。
每个人都会说,“好吧,你不烦人吗”,但他们无法破译你的预测。再过一段时间,当喷气机队赢得超级碗时,你可以说,“看,我早就说了!”您转发哈希推文和预测的纯文本。如果有人愿意,他们可以去散列计算器检查散列是否真的符合你的预测。那么所有的荣耀都会归于你。
除了散列,另一个重要的单向函数是公钥加密。我有两个数字,分别称为“公钥”和“私钥”。这些数字很长而且看起来很随机,但它们彼此相关:使用公开可用的算法,一个数字可以用来锁定一条消息,另一个可以解锁它。双密钥系统解决了一个经典的密码问题:如果我用来加密消息的密钥与您需要对其进行解码的密钥相同,那么在某些时候我必须将那个密钥发送给您。任何在运输途中偷走钥匙的人都可以阅读我们的信息。
使用公钥加密,没有人需要共享密钥。公钥是公开的:我可以将其发送给所有人,将其发布在我的 Twitter 提要上,等等。私钥是私人的,我不给任何人。你想给我发一个秘密信息。您编写消息并通过加密算法运行它,该算法使用 1) 消息和 2) 我的公钥(您拥有)来生成您发送给我的加密消息。然后我通过一个解密程序运行该消息,该程序使用 1)加密消息和 2)我的私钥(只有我拥有)来生成我可以阅读的原始消息。您可以使用我的公钥加密消息,但没有人可以使用公钥解密它。只有我可以使用我的私钥解密它。 (就您而言,该功能是单向的,但我可以用我的私钥将其反转。)
一个相关的想法是“数字签名”。同样,我有一个公钥和一个私钥。我的公钥发布在我的 Twitter 简历中。我想给你发消息,我想让你知道我写的。我通过一个加密程序运行消息,该程序使用 1)消息和 2)我的私钥。然后我向您发送 1) 原始消息和 2) 加密消息。
您使用的解密程序使用 1) t他加密了消息,2)我的公钥解密消息。解密的消息与原始消息匹配。这向你证明我加密了消息。所以你知道是我写的。我本来可以直接给你发 Twitter 消息,但这更加密。
想象一个简单的银行系统,其中银行账户是公开的:有一个公开的账户列表,每个账户都有一个(公共)余额和公钥。我对你说:“我控制着 00123456789 号账户,里面有 250 美元,我要寄给你 50 美元。”我向您发送了一条经过数字签名的消息,上面写着“这是 50 美元”,然后您使用该帐户的公钥对该消息进行解码,然后您就知道我确实控制了该帐户,并且所有内容都已结帐。这是比特币核心的基本理念,尽管还有更复杂的理念。
iv.比特币如何运作
比特币的简单形式是这样的。有一个很大的公开地址列表,每个地址都有一个独特的标签,看起来像随机数字和字母,其中还有一些比特币余额。一个地址可能有标签“1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa”10,余额为 68.6 比特币。该地址充当公钥。11 如果我“拥有”这些比特币,这意味着我拥有与该地址对应的私钥,即访问帐户的有效密码。
注10:
这在加密传说中很有名,这是接收第一个比特币的地址。据推测,它属于中本聪。
注11:
地址实际上是公钥的散列。但“实际上,将公钥哈希称为公钥本身是完全合法的加密术语,”另一个主要区块链以太坊的创建者 Vitalik Buterin 在 2014 年解释该项目的白皮书中写道。对 Vitalik 来说已经足够好了,对我来说已经足够好了。
因为我有私钥,所以我可以通过用我的私钥给你签名一条消息来向你发送比特币。您可以对照我的公钥以及地址和比特币余额的公共列表检查该签名。这些信息足以让你确认我控制着我发送给你的比特币,但不足以让你找出我的私钥并窃取我剩余的比特币。
这意味着我可以在你不信任我、我不信任你、或者我们中的任何一个人信任银行来验证我是否有钱的情况下向你发送比特币。 “我们将电子硬币定义为数字签名链,”中本聪写道。公共地址和私钥的组合足以定义一个硬币。加密货币之所以被称为加密货币,是因为它是一种源自密码学的货币。
中本聪说比特币本质上是一个签名链。
你会注意到我们在这里所做的只是交换一条消息,并以某种方式将其结果称为货币。传统的金融体系并没有太大的不同:银行不会在成袋的黄金甚至很多纸币周围移动。他们是数据库的守护者。大致上,当我向你支付 100 美元时,我的银行会向你的银行发送一条消息,告诉它更新其分类帐本。
同样,在比特币中,消息会改变谁持有什么的(公共)分类账。但谁维护呢?粗略的答案是,比特币网络——成千上万使用比特币并在他们的计算机上运行其软件的人——以协作和冗余的方式保存着账本。账本有数千份;网络上的每个节点都有自己的每个地址中有多少比特币的列表。
然后,当我们进行交易时——当我向你发送比特币时——我们不只是私下进行;我们将其广播到整个网络,以便每个人都可以更新他们的列表。如果我从我的地址向你发送一个比特币,并且我在交易上的签名是有效的,那么每个人都会更新他们的分类账,将一个比特币添加到你的地址并从我的地址中减去一个。
账本实际上不仅仅是地址及其余额的列表;它实际上是每笔交易的记录。12 账本由网络上的每个人维护,为自己跟踪每笔交易。13
注12:
实际上只是这样,根本不是地址及其余额的列表。为了方便起见,我在正文中这样描述它,你可以从所有交易的记录中重建地址和余额列表,人们也会这样做,但从技术上讲,这不是比特币的账本。
注13:
比特币白皮书中有一个名为“回收磁盘空间”的部分,关于网络如何有效地压缩它使用 Merkle 树保存的有关旧交易的一些数据,所有这些都超出了本文的范围,但是人们在加密货币经常说“默克尔树”。
那很好!但是现在,您不再信任银行来保存您的资金账本,而是信任成千上万的匿名陌生人。
我们取得了什么成就?
好吧,它并没有那么糟糕。每笔交易都可以证明是正确的:如果我从我的地址向你的地址发送比特币并用我的私钥对其进行签名,则网络将包括交易;如果我试图从别人的地址向你的地址发送比特币,但没有私钥,网络上的每个人都可以看到它是假的,并且不会包含交易。每个人都运行开源软件来更新可验证交易的账本。每个人都保存账本,但你可以证明账本中的每一笔交易都是有效的,所以你不必太相信他们。
顺便说一句,我是说“每个人”都保存着账本,这在比特币诞生的早期可能大致如此,但现在不再如此。有成千上万的人在运行“全节点”,他们使用开源的官方比特币软件自行下载、维护和验证整个比特币账本。但是还有数以百万计的人没有这样做,只是拥有一些比特币并相信其他人会正确维护系统。但是,他们建立这种信任的基础与您信任银行的基础略有不同。原则上,他们可以验证每个验证交易的人都在正确地验证它们。
还要注意,每个人都诚实有经济激励:如果每个人都是诚实的,那么这是一个可能有价值的有效支付系统。如果很多人不诚实并在他们的分类账中放入虚假交易,那么没有人会信任比特币,它就会一文不值。如果比特币的价值为零,那么窃取比特币有什么意义?
这是加密货币的标准方法:加密货币系统试图使用经济激励来使人们诚实行事,而不是相信他们会诚实行事。
这是故事的大部分内容,但它留下了一些小问题。所有的比特币是从哪里来的?可以说,网络上的每个人都为曾经发生的每一笔比特币交易保留了一个账本,你的比特币可以通过一系列以前的交易来追溯。但追溯到什么?你如何启动分类帐本?
另一个问题是交易的顺序很重要:如果我的账户中有一个比特币,然后我将它发送给你,然后我将它发送给其他人,谁实际上拥有比特币?这看起来几乎是微不足道的,但它很棘手。比特币是一个去中心化的网络,它通过向数千个节点广播交易来工作,并且不能保证它们在任何地方都会以相同的顺序到达。如果每个人都不能就订单达成一致,那么糟糕的事情——“Double Spending”,或者人们将同一个比特币发送到两个不同的地方——就会发生。 “交易必须公开宣布,”中本聪写道,“我们需要一个系统让参与者就收到交易的单一历史记录达成一致。”
那个系统就是区块链。
v. 哦,区块链
每笔比特币交易都会广播到网络。网络上的一些计算机——它们被称为“矿工”——在交易到达时将它们编译成一个称为“块”的组。在某些时候,一个区块的版本就像是官方的:该区块中的交易列表,按照它们列出的顺序,成为规范的,成为官方比特币记录的一部分。我们说这个区块已经“开采”了。14 在比特币中,大约每 10 分钟开采一个新区块。
注14:
实际上,当一个区块有“五次确认”时,它就变得非常规范:当它已经被挖出,然后又挖出另一个引用它的区块,然后又挖出另一个引用那个区块的区块,等等,五个次,这样链在有问题的区块之后已经持续了五个区块。
注15:
您可以在任何“区块浏览器”网站上在线查看已完成的区块。例如,9 月 27 日开采的区块 755965 基本上是不同地址之间 2,466 笔交易的列表。以 bc1qns 开头的地址向以 16qZC7 开头的地址发送了 0.0052 个比特币; 39VgGL 在 14NrDK 和 37o1E3 之间拆分 0.012 比特币;等等。
然后矿工开始编译一个新区块,该区块最终也将被开采并成为官方区块。这就是哈希变得重要的地方。新块将通过包含该块的哈希来引用它之前的块——这证实了它之前的块 1) 是正确的并被网络接受,并且 2) 及时到达它之前的块。每个区块都将引用链中的前一个区块——哦,是的,一个区块链。区块链创建了网络已同意哪些交易以及以何种顺序进行的正式记录。哈希是时间戳;他们创建了一个商定的交易顺序。
您可以想象一个简单的系统来执行此操作。矿工每 10 分钟提出一份交易清单,比特币网络上的所有计算机都会对其进行投票。如果它获得多数,它将成为官方并进入区块链。
不幸的是,这有点太简单了。关于谁可以加入比特币网络没有任何规定:任何连接计算机并运行开源比特币软件的人都可以加入。你不必证明你是一个好人,甚至是一个人。你可以勾搭一千个电脑,如果你想。
俄罗斯 Nadvoitsy 的采矿业是什么样子。
这造成了有时被称为“女巫攻击”的风险,这种攻击不是以古希腊女先知的名字命名的,而是以 1973 年关于一位声称拥有多重人格的女性的书命名的。女巫攻击的想法是,在一个账本由群组共同维护的系统中,任何人都可以在未经许可的情况下加入群组,你可以启动一堆计算机节点,让你看起来像成千上万的人。然后你向自己验证不良交易,每个人都会说,“啊,好吧,看看所有这些人都在验证交易”,他们接受你的交易作为多数共识,要么你设法偷了一些钱,要么你在至少让整个系统陷入混乱。
解决这个问题的方法是让验证交易变得昂贵。
为了开采一个区块,比特币矿工做了一件荒谬而昂贵的事情。同样,它涉及散列。每个矿工都会获取区块中交易列表的摘要,以及前一个区块的哈希值。然后矿工将另一个任意数字——称为“nonce”——放在列表的末尾。矿工通过 SHA-256 散列算法运行整个事情(列表加随机数)。这会生成一个 64 位的十六进制数。如果该数字足够小,则矿工已经开采了该区块。如果不是,矿工使用不同的随机数再次尝试。
“足够小”的含义是由比特币软件设置的,并且可以进行调整以使挖掘区块变得更容易或更难。 (目标是平均每 10 分钟一个区块;矿工越多,他们的计算机越快,就越难。)现在,“足够小”意味着哈希必须以 19 个零开头。最近成功的一个看起来像这样:
00000000000000000006c9f1194ce7ff75c5f265d5520878e9e9392c3c8ff203
这就像一个有 20 个问题的游戏,你不断地猜测一个可行的数字。除非你没有任何线索,而且它是 20 多次猜测的很多很多倍。任何特定的输入——任何交易列表加上一个随机数——将散列到一个以 19 个零开头的数字是非常非常不可能的。赔率大约是 16^19 比 1。因此,矿工们一遍又一遍地运行哈希算法,数万亿次,每次都猜测不同的随机数,直到他们得到一个具有正确数量的零的哈希值。16 比特币网络的总哈希率超过 2 亿每秒 terahashes – 即每秒 200 quintillion 哈希计算,这是 1)很多但 2)比 16^19 少得多。以每秒 200 个 quintillion 哈希的速度,平均需要 600 秒来猜测正确的 nonce 并挖掘一个块。
注16:
Vitalik 再次说道:“因为 SHA256 被设计成一个完全不可预测的伪随机函数,所以创建有效区块的唯一方法就是反复试验,反复增加随机数并查看新哈希是否匹配。”
这是一场比赛。只有一名矿工可以开采一个区块,而该矿工将获得比特币奖励。开采一个区块也就是“开采”新硬币——经过大量计算工作后将它们从系统中撬出,就像在岩石中捡到一块金子一样。于是有了比喻。
一个老式的探矿者,大约 1860 年。
当矿工找到正确数量的零时,他们会将区块及其散列发布到比特币网络。其他所有人都审查该块并决定它是否有效。 (“有效”意味着列表中的所有交易都是有效的,哈希是正确的,它有正确数量的零,等等。)如果他们这样做,那么他们开始在下一个区块上工作:他们获取前一个区块的哈希块,加上从那以后进入的交易,加上一个新的随机数,并尝试找到一个新的哈希。每个块都建立在前一个块的基础上。
六、矿业
所有这些都非常昂贵:矿工需要特殊的硬件来一遍又一遍地进行所有这些散列计算,而这些天运行着巨大的永远在线计算机农场。开采比特币所消耗的电力与各个中等国家一样多。这对环境不利。归因于 Twitter 海报的比特币最著名的描述可能是:
“想象一下,如果让你的汽车 24/7 空转解决了数独问题,而你可以用答案去买东西。”
从某种意义上说,这纯粹是浪费。人们有时会说比特币矿工正在解决困难的数学问题以进行挖矿,但实际上并非如此。他们每秒暴力猜测数以十亿计的数字,以尝试获得正确的哈希值。没有数学问题被解决,也没有任何东西被这些猜测添加到世界的知识中。
但矿工们正在解决比特币的一个重要问题,即保持其网络和交易账本安全的问题。确认比特币交易的成本显然很高,因此很难伪造,很难运行 Sybil 攻击。这就是为什么中本聪和其他所有人都将这种确认交易的方法称为“工作量证明”。如果你为一个区块产生了正确的哈希值,它证明你做了很多昂贵的计算机工作。你不会轻易这样做的。
工作量证明挖矿是一种在系统中拥有经济利益的人之间建立共识的机制,而无需了解他们的任何其他信息。如果你不希望比特币有价值,你就永远不会开采比特币。如果你是比特币矿工,你会以某种方式投资比特币;你已经购买了电脑并支付了电费,并且在比特币上进行了昂贵且令人筋疲力尽的赌注。你已经证明你在乎,所以你在验证比特币账本方面有发言权。你得到报酬。你获得了比特币,这让你在系统中获得了更多的股份。
这些比特币无处不在;它们是由这种挖矿、核心比特币软件生成的。事实上,所有的比特币都是通过挖矿产生的;从来没有将比特币初始分配给中本聪或早期投资者或其他任何人。这就是比特币从何而来的问题的答案:它们都是被开采的。
最初由软件设置的挖矿奖励是每块 50 比特币;目前是 6.25 比特币。关于这些挖矿奖励的一个重要点是它们花费了比特币用户的钱。每个区块(大约每 10 分钟一次)凭空产生 6.25 个新比特币,并支付给矿工以提供网络安全性。这相当于每年超过 60 亿美元。17 这种成本是间接的:它是一种通货膨胀形式,随着比特币供应量的增长,18 在其他条件相同的情况下,理论上每枚硬币的价值都会降低。目前,比特币网络每年向矿工支付约 1.5% 的价值。
注17:
也就是每10分钟6.25比特币,或者每小时37.5,或者每天900,乘以365(一年天数),再乘以比特币的价格。
注18:
然而,众所周知,比特币永远只有 2100 万个。它被写入代码中。那么当达到这个限制时会发生什么?矿工有什么激励措施来保持比特币网络的运行?交易费用。比特币代码还允许矿工收集每笔交易的一部分,这将成为最后一枚硬币被开采后奖励他们的唯一方法。 (目前估计这要到 2140 年才会发生。)
这低于美元的通货膨胀率。不过,值得注意的是。每年,维护比特币系统安全的矿工都会在比特币总价值中占据一小部分但意义重大。比特币用户从这 60 亿美元中得到一些东西:19
如果你可以通过挖比特币赚很多钱,那么很多人都会想挖比特币。这将使一个人更难在比特币中积累大部分挖矿算力。如果一个人或一个团体获得了大部分的采矿权,他们可能会做坏事:他们可能会挖掘一个坏块——Double Spending、逆转最近的交易等(这被称为“51% 攻击”)。有数十亿美元可供矿工争夺,人们将在挖矿上投入大量资金,与他们竞争会很昂贵。如果你投入数十亿美元来积累比特币的大部分挖矿算力,你可能会非常关心比特币的价值,因此你不太可能将你的权力用于作恶。
注19:
2021 年,Vitalik 写了一篇关于此的帖子,开头写道:“比特币和以太坊区块链生态系统在网络安全(工作量证明挖矿的目标)上的花费远远超过其他所有方面的总和。自今年年初以来,比特币区块链平均每天向矿工支付约 3800 万美元的区块奖励,外加每天约 500 万美元的交易费用。以太坊区块链位居第二,每天 1950 万美元的区块奖励加上每天 1800 万美元的交易费用。”