原文作者 Yaz Khoury 共7千字 大约需要7分钟,建议先mark
Mass Effect 3 Mars Dreamscene by droot1986
11月的一个雨天,在伦敦苏豪区(Soho),约翰斯诺酒吧(John Snow Pub)可以说是最值得一去的酒吧之一。在与好友Alex的谈话中,让我印象最深刻的是火星的技术挑战,由于地球和火星之间的光速延迟,火星应有自己的区块链。它带着我踏上了一段小旅程,去确定火星上的区块链会是什么样子,光速和其他因素带来的挑战是什么,以及如何推进殖民这颗红色星球的努力。
过去几年,尤其是2017年,加密货币已经成为主流。可以看到,每个人和他们的祖母都在四处询问“如何购买比特币?”和“你会买Ripple吗?”还有其他问题。每天,有人拿着一份编辑得很糟糕的白皮书(一份概述这项技术如何运作的论文),将通过首次公开发行硬币(IPO)或ICO(股票市场IPO的加密货币版本)筹集数百万美元。到目前为止,人们可以看到,虽然99%的比特币可能会因为糟糕的计划、过度承诺的营销或由于它们的欺骗性而失败,但毫无疑问,加密货币市场的未来是光明的,有很大的增长空间。
通往火星的竞赛正在进行。在允许人类在这颗红色星球定居方面,SpaceX仍处于领先地位。最近,该公司两枚重型猎鹰火箭同时着陆。
Falcon Heavy dual rocket landings
我觉得我永远不会厌倦看这张动图。
这两个行业的结合似乎是一个有趣的思想实验,这迫使我写这篇文章。
现在,对于所有不知道区块链是什么或者它是如何工作的火星爱好者,不要担心,前三节区块链:一个概述,一个数学难题和确定共识将以最简单的方式,尽我最大的努力来研究这项技术。
如果你完全熟悉区块链相关的所有事情,并且想要跳过火星部分,那么火星的最后部分挑战将是开始的地方。
Blockchain: An Overview 区块链:概述
Symphony of Blockchains, By IOHK
谈到加密货币,目前的世界观似乎分为两类。一方面,有一面告诉你“哦,加密货币没有价值,没有任何支持,它毫无价值”。另一方面,有一个密码无政府主义和自由主义阵营,他们认为加密货币,特别是比特币,将破坏我们整个金融系统,摧毁银行、政府和风险资本公司。
两个极端都不能使我信服。我感兴趣的是中间立场,加密货币可以充当区块链的资产、价值储存手段和世界货币。在我看来,最中立的解释是Chain的博客文章“给Jamie Dimon的一封信”。这篇博文认为,加密货币是一种服务于分散化应用的资产,就像抵押贷款是服务于房屋所有者的资产,债券是服务于政府的资产一样。
现在我们已经有了加密货币的正式定义,让我们来看看什么是分散式应用程序。
分散式应用程序,简称dApp,是在分散式网络上运行的应用程序,或不受单个实体控制的网络。相反,分散的网络是由点对点网络运行的。点对点网络,或称P2P,目前存在于bt这样的torrent应用程序中,或存在于现已不存在的Napster这样的音乐共享应用程序中。
为了更好地理解这样一个应用程序的结构,我们来看一个简单的例子。
当您访问“https://www.google.com”时,您正在访问谷歌的web服务器,它在确认您的浏览器发出的ping信号后,将返回到您的文件和数据,这些文件和数据将显示谷歌著名的搜索页面。谷歌为他们的web服务器提供资金,允许每秒进行数万次搜索。谷歌是我们所说的集中式应用程序,因为所有使用应用程序的入口都必须经过谷歌公司。另一方面,bitTorrent是在使用它的人之间分发的,因此共享的文件不是由bitTorrent本身拥有,而是由上传和下载它们的用户拥有。
下面的图表说明了集中式(A)和分散式(B)应用程序的一般结构。
Centralized vs. Decentralized Networks
请注意,在集中式网络中,外部的点称为节点,它们连接到一个中心节点,从而实现集中化。在分散的网络中,节点形成小的池或集群,彼此连接并分布。
既然我们遵循的是用于去中心化应用程序的加密货币的定义,那就留给我们去定义什么是比特币。在《致杰米•戴蒙(Jamie Dimon)的一封信》(A Letter to Jamie Dimon)中,一个很好的定义是,比特币是“一种分散的支付应用”。比特币就像贝宝(Paypal),是在没有贝宝的情况下进行货币支付的,贝宝是运营网络的公司,由许多参与者运营。
使用分散的支付应用程序的最大挑战之一是事务的时间戳交易问题。所以,在一个集中的系统中,比如银行,当你使用信用卡去商店购物时,刷卡与银行交流你想要支付给商家的钱。因此,银行所做的是在批准交易后在交易上加盖时间戳,然后在您、购物者和向您出售商品的商家之间进行资金转移。
分散应用程序的设计提出,不存在能够对事务进行时间戳的第三方。如果Elon想在一个分散的网络中给Mark发送 $10 ,那么让第三方验证它集中的系统,因为我们仍然依赖时间戳权威,如银行,批准和授权的交易。
我们怎么解决重复消费的问题呢?这样一来,只有10美元的Elon就不能给Mark发10美元,然后再给Satoshi发10美元?当没有实体可以核实Elon没有足够的资金进行第二笔交易时,我们能做什么?中央银行系统会立即阻止Elon的第二笔交易,因为它会看到Elon在把10美元转给Mark后得到了0美元。
那么,如何解决分散网络中的时间戳问题呢?
嗯,对于比特币,这个提议是让人们竞争成为时间戳。他们加入了一个点对点网络,就像Bittorrent 和Napster那样。
Image courtesy of Preshing
然后,时间戳可以参与比特币网络,并通过解决一个数学难题,在一个块中竞争时间戳交易。第一个在网络中解决数学难题的timestamper竞争者有权成为timestamper并对该块中发生的事务进行时间戳,该块每10分钟生成一次。
现在,你可能想知道为什么有人想成为比特币网络交易的时间戳?有什么意义?如果没有人确认Elon将价值10美元的比特币转移给Mark,谁在乎呢?
比特币很酷也很重要的一点是,谁先解决了数学难题,然后在网络上宣布,谁就能获得新的比特币奖励,这些比特币就会进入流通环节。因此,经济上的奖励会刺激一个人成为时间戳。
这就是我们所说的在加密货币领域的“挖矿”。timestamper是一个简化的单词,表示矿工。从现在起,我们就叫他们矿工。一旦一个采矿者解决了数据块的数学难题,它就会被通知给网络,数据块就会被添加到分类账中,采矿者网络就会转移到下一个数据块。
A Mathematical Puzzle 一个数学难题
Cryptocurrency Mining Image by Typeboard
我们之前已经讨论过block这个术语,但是block到底是什么呢?一个块可以被认为是一个“篮子”,它可以容纳一些事务10分钟。每个矿工都有一个篮子,他们试图解开这个数学难题。
每个篮子或块都包含该时期的交易。如果Elon给Mark发了10美元,这笔交易就会被加到篮子里,篮子会发给网络中的所有矿商。1个小时后,如果Mark决定把他的10美元还给Elon,这笔交易就会被加到一个新篮子里,在这段时间里,这笔交易和其他交易一起发放给矿商。
现在,复习一下数学难题和它的基本功能。
解决数学难题背后的全部思想是人为地计算一个很难在块中找到的数字。这样做使相互竞争的矿商之间的竞争更加公平。随后,矿商将联合起来形成一个池,池中的计算能力使他们比同行更有优势找到这个困难的数字。
解决采矿难题的方法叫做工作证明。每个矿工都试图生成一个工作证明,或一个数学难题的数字,以便对该块中发生的所有事务进行时间戳。
让我们看一下工作证明的特征。
工作证明是一种很难生成但很容易被其他人验证的数据。当矿工们在矿区发现这个秘密号码时,他们每次开矿都要付出一定的经济代价(昂贵的计算机硬件耗电)。这证明是必要的,因为在块上的任何挖掘都可能导致坏人使用这种能力来修改分类帐。采矿的经济成本证明,矿商在这场游戏中有利益,他们试图保持网络的诚实。这要归功于它们从block generation新发行的比特币中获得的利润,这些比特币赋予了它们的货币价值,因为矿商在市场上出售这些比特币是为了支付账单。
我们已经说过,工作的证明很容易核实,但很难产生。这是因为部分工作算法的证明依赖于一种非常棒的现代密码工具,称为散列函数,它可以将任意大小的数据映射到固定大小的数据输出。
如果我们将哈希函数表示为:
y = H (x)
其中H是哈希函数,x是输入,y是哈希函数的输出,如果我们知道x,哈希函数很容易计算。
然而,如果我们不知道x,但只知道y,输出,超级难逆,发现x与y。这是因为蛮力攻击找到x x(主要是尝试各种可能的条目,直到我们得到y)是2 ^ k,在比特币的情况下,这是256年,所以2²⁵⁶试图猜测x,或者:
Image by Learn Cryptography
因此,为了让一个人反向工程一个事务并找到可能的输入,超过115个quattuorvigintillion(一个78位数字)中有1个机会找到它。这个数字比可感知宇宙中的所有原子都要大,而且大得多!
现在,每个块都包含前一个块的散列输出,从而创建一个链。这就是它被称为区块链的原因:
Blockchain diagram designed by yours truly
一旦矿工发现了证据,就会向整个网络公布。然后,在网络确认之后,块被添加到链中。
任何试图篡改区块链在一个特定的块在时间将不得不使用bruteforce所有其他模块连接到它,因为修改一个值在一块让整个区块链假,由于每一块被连接到前面的块的散列值。不变性是区块链在这里如此强大的原因,因为它是超级难以篡改的账本。
Achieving Consensus 达成共识
既然我们已经讨论了什么是区块链和什么是工作证明,我们将详细介绍区块时间。按照设计,比特币的预期封锁时间为10分钟。这意味着,对于同时向矿商网络发出的每个新块,矿商从矿商网络中生成工作数据文件证明的预期时间不应超过10分钟。如果在10分钟内,没有矿工能够解决块,工作算法证明的难度相应调整。
这允许灵活性,因为一个矿工无法控制时间戳的竞争与更多的计算能力,以解决工作的证明。例如,如果一个采矿者可以在一个块发出后的几秒钟内对它进行挖掘,那么工作算法的证明就会过于简单,并且会调整难度,使其更难立即找到工作数据的证明。因此,如果矿商在计算能力上投入了大量资金,这让他在游戏中占据了优势,那么难度的增加将使他们在为其他人创造公平竞争环境的同时,大大降低他们的难度。
我们之前说过,当一个矿工解决了数据块并获得工作数据的证明时,他们会立即向整个网络宣布,然后整个网络会更新分类账并转移到下一个数据块。一些想要篡改区块链的外力需要对矿工的工作证明进行反向工程才能到达前一个区块。从那里开始,他们需要反向工程那个块的键以到达下一个块,直到他们最终到达他们想要篡改的事务。这是昂贵的,几乎不可能做到不损失更多的钱比你开采的货币。
在讨论如何达成共识或为什么需要在区块链中达成共识之前,让我们看看导致连锁分裂的场景。
比如说,Elon和Mark都在同时挖掘比特币。由于某种运气或随机性,Elon和Mark都解决了这个难题,并向比特币网络公布了他们的工作证明。在这个场景中,网络的一部分将首先接收Elon的证明,另一部分将接收Mark的证明。这导致了这样一种情况:一些网络参与者有一个以Elon的区块为头块的链,而另一个以Mark的区块为头块。
这就是我们所说的连锁分裂!区块链被分成两条链,分别是Elon队和Mark队。
Office Cat Vote cartoon by Mark Anderson
现在,让我们后退一步。如何在比特币中建立共识来决定谁是正确的链?根据比特币的设计,在两条链的情况下,较长的链是赢家,因为假设它是使用最多的一条。
这很有道理,因为我们宁愿遵循现有长链的游戏规则,因为它的历史在某种程度上似乎更合理。
现在,这如何转化为Elon队和Mark队长度相等的两条链呢?在这个场景中,两个团队将竞争挖掘下一个块,首先挖掘块的团队将它添加到链中,从而成为两个链中较长的一个,所有节点都将遵循它。Longest chain wins #TeamElon always
现在,我们已经基本理解了区块链的内部机制,更确切地说,理解了比特币。比特币是由一位化名中本聪(Satoshi Nakamoto)的匿名人士提出的。2009年,他在Cypherpunk社区发布了一份名为《比特币:一个点对点电子现金系统》(Bitcoin: a Peer-to-Peer Electronic Cash System)的白皮书。剩下的我们可以说,都是历史了。我强烈建议你们读读这篇论文,它只有9页长。
我们已经讨论了挖掘和加密货币的功能,以及工作证明和达成共识的机制。
如果火星上的矿工想要开采比特币,因为地球上有大部分的矿工,那么由于光速而导致的通讯延迟将最终导致连锁分裂。
比如,火星矿工解决了一个关于比特币的工作算法证明,然后他向网络宣布了PoW。由于光速限制地球和火星之间的通信时间13分钟,时间需要传播到地球上每个人都将会花很长时间,他们接到通知的时候,地球上某个人可能已经解决了上一个区块的区块大小和所有地球矿工都遵循的链长于火星上的链。
因此,其结果是地球和火星之间的连锁分裂,产生了比特币地球和比特币火星。这不是我们想要达到的情景,因为连锁分裂分裂了社区,导致了两种货币,却不知道如何解决这种情况。
我们或许可以将比特币块的大小增加到20-30分钟,但那样做会适得其反,因为确认交易需要更长的时间。想象一下,你必须在商店等待30分钟,等待信用卡交易被批准。是的,不,谢谢。
那么,如何让区块链在火星上工作呢?
一种解决办法是把每一个行星采矿作业当作边链作业,并让一个主链作业作为边链交易的最后结算。有几个不同的区块链在一边运行并被用于特定的目的(比如昂贵的计算不会减慢主链)的想法在加密货币社区变得越来越流行。
我与ETCDev的Cody Burns的一次谈话帮助我们了解了13分钟延迟的问题。他提出了一个主链,比方说,叫做星际区块链,它的块时间为3小时,将会接收涌向它的边链交易。因此,在这里,比特币地球和比特币火星就像以前一样,充当着正常区块时间的旁路,但财富在链条之间的转移是通过在行星间的区块链上移动来实现的。我强烈建议阅读更多关于sidechains和Cody关于星际之门的提议。
侧链现在有很多创新。例如,来自Ethereum Classic的SputnikVM是一个独立的Ethereum虚拟机,它可以在物联网设备上独立运行。它可以用在卫星上,还有其他用途,从采矿的角度来看,这确实很有趣。由于卫星太阳能板日夜接近太阳,所以可以以更高的效率开采,大约40%的效率。
事实上,像彼得·托德(Peter Todd)这样的密码学家已经讨论过这个想法,我们可以通过在太空中挖掘比特币来产生更多的电力。
怎么做呢?嗯,我们知道从太空发射电能已经被提出作为一个解决方案,在不受云层干扰的情况下从太空获得更多的电能(这会降低效率),就像地球上的太阳能那样。现在,我们的新主张是,与其使用所有这些花哨的技术将电能从太空传输到地球,为什么不使用比特币呢?从太空到地球的比特币转账代表了电能背后的钱。
NASA’s MAVEN mission on Mars
一颗加密货币卫星将挖掘出相当于比特币所需要的瓦数,然后将这些瓦数转回地球,用于从电网购买实际所需的电力。因此,电力变得更便宜,价值被送回电力公司在等值的比特币价值。
让我们更进一步。假设我们在火星一垒的殖民者的卫星和太阳能电池板有多余的能量。当有盈余时,他们可以使用剩余的能量在火星上开采加密货币,可以通过行星际区块链将其转换回基于地球的加密货币,同时通过保证更多的钱用于向火星支持殖民地。
事实上,让我们从更高的层次来考虑。
如果我们要把人类送到火星上的某个基地定居,那么很有可能是一家私人太空公司,而不是国家航天局(抱歉,是NASA,但SLS不会为我们纳税人削减开支)。这意味着,在某种程度上,由于没有一个国家成为殖民者,私人太空公司将扮演的角色将是从零开始,同时尽可能节约成本和可持续发展。
任何一家称职的私人太空公司都不可能把黄金和纸币带到火星上,让殖民者作为信用。它只是增加了额外的重量,是一种非常低效的货币价值传递方式。
那么,私人太空公司会怎么做呢?为什么,为火星货币基础发行加密货币。一种加密货币,矿工们今天尝试着去开采,但是每一块的奖励是按百分比分配的。矿业公司将保留每座矿山80%的新硬币,20%的新硬币将被投入国库,用于建设火星殖民地。
在第一次火星任务建立殖民地之前,美国财政部可以负责在地球上积累所需的资源,然后用这些资金来计划这次任务。目前有关于分散国库的研究,如IOHK(世界领先的区块链工程公司)所做的伟大工作,形成了密码学与经济学和政治学的完美结合。在政治方面,流动性强的民主国家提供了非常有趣的加密形式的代表投票,人们可以将自己的选票分配给代表,而不是代表。代表是你信任的可以代表你利益投票的人,但是作为代表需要更少的麻烦,因为他们不需要竞选就可以投票。我们可以让这些代表就火星未来的变化进行投票。这样的模型目前正在Cardano网络中实现,用于Ouroboros证明股权一致算法。
通过说服太空探索技术公司(SpaceX)、美国国家航空航天局(NASA)等大型太空公司参与创建一种火星加密货币,我们可以在未来的火星探索努力中取得进展。投资者将能够购买火星加密货币作为一种证券,以换取对火星殖民地和经济的长期感知价值。
火星货币将是超级有价值的,不仅是因为前面提到的卫星太阳能采矿的例子,而且还有其他方面。
设想一下,现在我们可以允许企业家在火星加密货币的基础上为未来的企业发行安全令牌。这些都是推测性的,但思考起来很有趣。想象一下,一家公司为在火星上开采贵金属发行代币,另一家为太阳能发行代币,另一家为火星美食发行代币,还有一家为在火星上种植的大麻发行代币(那将是件了不起的事)。
火星互联网呢?光速限制我们谈论之前使其成为火星人缓慢Earth-fueled冲浪网络,数据传输和延迟将成为企业家的商业机会快速找出方法来发送所有数据(超级理论,比如量子纠缠,在这一点上)。
火星的商业可能性清单无穷无尽,但似乎像一种加密货币来推动我们的火星事业可能是一个不错的选择。火星经济可以提前发展,以便在殖民地建立并在市场上交易时能够确保自己的未来。是时候让加密货币社区问问自己:“什么时候去火星?”
推荐阅读:
添加火星喵!一键登陆火星!