想真正了解比特币的工作原理吗? 这是一个温柔的底漆

黑客帝国/奥里希

更新,12/26/20:这是年终假期,Ars员工一直在享受一些急需的停机时间。 发生这种情况时,我们在您想了解的有关比特币的所有内容上都重现了一些经典的Ars故事,例如2017年的解释器,但可能不敢问。 (由于加密货币的价值 甚至在两周前达到了新的纪录高点,则需要基本的intel是完全合理的。)该文章于2017年12月15日首次发布,在下面未更改。

近几周来,比特币的飞涨价格(一种虚拟货币现在价值超过2500亿美元)受到了广泛关注。 但是,比特币的真正意义不仅在于其价值的上升。 正是技术突破使网络得以存在。

笔名中本聪(Satoshi Nakamoto)成为比特币的仍然是匿名的发明家,他为去中心化网络找到了关于共享交易账本达成共识的全新方法。 这项创新使完全分散的电子支付系统成为可能, 密码朋克 梦了几十年。

作为我们为揭示流行加密货币的机制所做的最新努力的一部分,今天,我们将从基础知识开始,对比特币的工作原理进行深入的解释:数字签名如何使数字现金成为可能? 中本聪的区块链发明如何解决了限制早期数字现金工作的双重支出问题?

我们还将探索更近期的事件,例如将区块链社区划分为两个交战阵营的区块大小辩论。 最后,我们将展望未来,并讨论为什么比特币的设计可以使其成为未来几年创新的独特沃土平台。 正如您将要看到的, 很多 覆盖。

非对称加密使数字现金成为可能

惠特菲尔德·迪菲(Whitfield Diffie)是1970年代开发公钥加密和数字签名的关键人物。
放大 / 惠特菲尔德·迪菲(Whitfield Diffie)是1970年代开发公钥加密和数字签名的关键人物。

直到1970年代,所有公知的加密方案都是对称的:加密消息的接收者将使用相同的密钥来解密发件人曾经对其进行加密的消息。 但这一切都随着非对称加密方案的发明而改变。 在这些方案中,解密消息的密钥(称为私钥)与加密消息所需的密钥(称为公钥)不同,并且对于只有公钥的人而言,没有实际的方法可以解密消息。找出私钥。

这意味着您可以广泛地发布您的公钥,允许任何人使用它来加密一条消息,只有您(作为私钥的持有者)才能解密该消息。 这一突破改变了密码学的领域,因为任何两个人都可以通过不安全的通道进行安全通信而无需先建立共享机密。

非对称加密还有另一个突破性的应用:数字签名。 在普通的公共密钥密码学中,发送者使用接收者的公共密钥加密消息,然后接收者使用她的私有密钥解密消息。 但是您也可以翻转一下:让发件人使用自己的消息加密消息 私人的 密钥,接收者使用发送者的公钥对其解密。

因为任何人都可以获取公共密钥,所以这并不能保护消息的保密性。 相反,它提供密码证明消息是由私钥的所有者创建的。 拥有公钥的任何人都可以在不知道私钥的情况下验证证据。

人们很快意识到,这些数字签名可以使加密安全的数字现金成为可能。 使用经典的示例场景,让我们假设爱丽丝拥有一枚硬币并将其转移给鲍勃。

她将写一条消息,说:“我,爱丽丝,将我的硬币转移给鲍勃,”然后通过使用她的私钥加密消息来对其签名。 现在,鲍勃(或其他任何人)可以使用爱丽丝的公钥解密签名。 由于只有爱丽丝可以创建加密的消息,因此鲍勃可以使用它来证明他现在是硬币的合法所有者。

如果Bob想要将硬币转移到Carol,他将遵循相同的过程,声明他正在将硬币转移到Carol并使用他的私钥加密消息。 然后,Carol可以使用这一系列签名(Alice的签名将硬币转移到Bob,Bob的签名将硬币转移到Carol)来证明她现在拥有硬币。

请注意,这些都不要求官方第三方授权或认证交易。 爱丽丝(Alice),鲍勃(Bob)和卡罗尔(Carol)可以在没有第三方帮助的情况下生成自己的公钥-私钥对。 知道爱丽丝和鲍勃的公钥的任何人都可以独立地验证签名链在密码上是有效的。 数字签名与我们稍后将讨论的一些创新相结合,使人们无需银行即可从事银行业务。

比特币交易如何运作

我在上一节中描述的通用数字现金方案非常接近真实比特币付款的工作方式。 这是真实比特币交易的简化图:

比特币交易包含输入和输出列表。 每个输出都有一个与之关联的公共密钥。 为了以后的交易花费这些硬币,它需要一个带有匹配数字签名的输入。 比特币用途 椭圆曲线密码学 用于数字签名。

例如,假设您拥有上图中与公钥D对应的私钥。 有人想向您发送2.5比特币。 该人员将创建一个类似于交易3的交易,其中有2.5个比特币归您所有-公钥D的所有者。

当您准备花掉那些比特币时,就可以创建一个新的交易,如交易4。将交易3的输出1列出为资金的来源(输出为零索引,因此输出1为第二输出)。 您可以使用私钥生成签名D,该签名可以用公钥D进行验证。然后将这2.5个比特币分配给两个新输出:公钥E的2个比特币和公钥F的0.5个比特币。现在,他们可以仅由相应私钥的所有者使用。

一个交易可以有多个输入,并且它必须花费早先交易的相应输出中的所有比特币。 如果一笔交易输出的比特币少于收进的比特币,则差额被视为处理该交易的比特币矿工收取的交易费(稍后会对此进行详细说明)。

在比特币网络上,人们用来互相发送比特币的地址是从诸如公钥D之类的公钥派生的。比特币地址格式的确切详细信息如下: 复杂 并且随着时间的推移而发生了变化,但是您可以将比特币地址视为公钥的哈希值(一个短的,看似随机的比特串,用作加密指纹)。 比特币地址以一种称为 Base58检查 从而最大程度地减少了误涂的风险。 典型的比特币地址是“ 18ZqxfuymzK98G7nj6C6YSx3NJ1MaWj6oN”。

一种 真实交易 看起来像这样:

该交易从一个输入地址获取了6.07比特币,并将其分配到两个输出地址之间。 一个输出地址得到的比特币略多于5个比特币,而另一个输出地址得到的比特币略少于1个比特币。 这些输出地址中的一个很可能属于发件人,将“更改”发回给自己,而另一个则属于第三方收件人。

当然,实际的比特币交易可能比我到目前为止展示的简单示例更为复杂。 上面未说明的最重要的功能可能是,在输出中,可以用公共脚本代替公共密钥来编写验证脚本。 简单的特定于比特币的脚本语言。 要花费该输出,后续事务必须具有允许脚本评估为true的参数。

这使比特币网络可以强制执行任意复杂的条件,以控制如何使用金钱。 例如,一个脚本可能需要由不同的人持有的三个不同的签名,并且还要求钱不要在某个将来的日期之前花掉。 与以太坊不同,比特币的脚本语言不支持循环,因此可以确保脚本在短时间内完成。


阅读更多

关于 crypto

Check Also

政府会监管加密吗? SEC 主席 Gary Gensler 谈比特币和监管

它已成为华盛顿、华尔街和硅谷的 …

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注