章节
Blockchain
何为区块链?
Bitcoin
何为比特币?
Pirate Chain
何为海盗链?
Blockchain - The Backbone of Digital Currencies
何为区块链?
从字面上看,区块链只是“由一些区块组成的链”,但实际上不能按照传统意义去理解。 在这种情况下,当我们说起“区块”和“链”时,实际上是在谈论存储在公共数据库(“链”)中的数字信息(“区块”)。
区块链上的“区块”由数字信息组成。 具体来说,它们包括三个部分:
- 区块存储有关交易的信息,例如你最近一次购物的日期、时间和金额,向他人转账的记录等。
- 区块存储有参与交易者的信息。 在你转账时,区块会记录你的名字以及你发送对象的名字。 你不用使用真实姓名,而是使用特殊的“数字签名”(有点类似用户名)记录此次转账,但又不用记录任何身份信息。
- 区块存储将其与其他区块分开的信息。就像你和我的名字可以把双方区分开来一样,每个区块都存储一个称为“哈希”的特殊代码,此代码使我们可以将该区块与其它区块区分。 假设你向朋友发送了100美元,一个小时后,你又向他们发送了100美元。 即使你的第二次新交易的详细信息看上去与第一次交易几乎相同,但由于它们的独特代码,我们仍然可以将两者区分开。
上面示例是区块存储单次转账记录的情况,但实际情况略有不同。区块链的单个区块实际上可以存储多达1 MB的数据。根据交易的大小,这意味着一个区块可以在“同一屋檐下”容纳数千笔交易。
区块链的运行方式
当一个区块存储新数据时,它将被添加到区块链中。 顾名思义,区块链是由多个串在一起的区块组成。为了将一个区块添加到区块链中,必须满足以下四个条件:
- 必须发生交易。 让我们继续以向你的朋友转账为例。转账一次后,你决定向他再汇出更多钱。
- 该交易必须经过验证。 转账后,必须验证你的交易。有了其他公共信息记录,例如证券交易委员会、维基百科或你所在当地的图书馆,就有人负责审核新数据条目。但是,有了区块链,这项工作就留给了计算机网络。 这些网络通常由遍布全球的数千台计算机组成(对于比特币而言,则为数百万台)。 当你发送交易时,计算机网络会抓紧检查交易是否按照你所说的方式进行。 也就是说,它们会确认交易的详细信息,包括交易的时间、金额和参与者。
- 该交易必须存储在一个区块中。 在确认你的交易正确无误后,交易会得到批准。 交易的金额、你的数字签名和你朋友的数字签名都存储在一个区块中。 在此区块中,该交易可能会加入成百上千的类似交易。
- 该区块必须被赋予哈希值。一旦验证了一个区块的所有交易,就必须为其赋予唯一的识别码,称为哈希值。还为该区块提供添加到区块链的最新区块的哈希值。散列后,可以将其添加到区块链中。
当将该新区块添加到区块链时,该区块将公开给任何人,包括你也可以查看。如果你看一下比特币的区块链,能看到你可以访问交易数据,以及有关区块何时何地(“时间”),何处(“高度”)以及谁(“中继者”)的信息,被添加到区块链。
区块链安全吗?
区块链技术以多种方式解决了安全性和信任问题。首先,新区块始终按时间顺序线性存储。也就是说,它们总是被添加到区块链的“末端”。如果您看一下比特币的区块链,您会发现每个区块在链上都有一个位置,称为“高度”。截至2019年8月31日,比特币区块的高度已超过592,517。
在将区块添加到区块链的末尾之后,很难返回并更改区块的内容。这是因为每个块都包含自己的哈希值,以及之前区块的哈希值。哈希码由数学函数创建,该数学函数将数字信息转换为数字和字母的字符串。无论以任何方式编辑该信息,哈希码也将更改。
这就是为什么上述特性对安全是那么重要。假设某位黑客试图从你的朋友处修改你的交易信息,因此必须把你的交易信息修改成你支付了更多钱。一旦他们编辑了你的交易金额,该区块的哈希值就会改变。链中的下一个区块仍将包含上一个区块的哈希值,黑客将需要更新该区块以覆盖其踪迹。但是,这样做会更改该区块的哈希值。依此类推。
为了更改单个区块,黑客需要在区块链上更改每个区块。重新计算所有这些哈希值将需要巨大且不可能的计算能力。换句话说,一旦将一个区块添加到区块链中,它将变得非常难以编辑且无法删除。
为了解决信任问题,区块链网络已对要加入链并向链中添加块的计算机实施了测试。这些被称为“共识模型”的测试要求用户在参与区块链网络之前先“证明”自己。比特币采用的最常见的例子之一就是“工作量证明”。
在工作量证明系统中,计算机必须通过解决复杂的计算数学问题来“证明”他们已经完成了“工作”。如果计算机解决了这些问题之一,则它们就有资格向区块链添加一个块。但是将区块添加到区块链的过程(加密货币世界称之为“挖矿”)并不容易。实际上,根据区块链新闻网站BlockExplorer的说法,2019年2月解决比特币网络中这些问题之一的几率约为5.8万亿分之一。要解决这些复杂的数学问题,计算机必须运行使它们付出巨大代价的程序电力和能源的数量。
工作量证明不会使黑客无法进行攻击,但确实会使它们的攻击无效。如果黑客想组织发动对区块链的攻击,他们将需要像其他所有人一样以5.8万亿分之一的几率解决复杂的计算数学问题。组织此类攻击的成本几乎肯定会超过收益。
区块链 vs. 比特币
区块链的目标是允许记录和分发数字信息,但不能对其进行编辑。如果不了解该技术的实际作用,那么很难构思出这个概念,因此让我们来看看最早的区块链技术应用是如何工作的。
1991年,两名研究人员Stuart Haber和W. Scott Stornetta首次概述了区块链技术,他们希望实现一个不会篡改文档时间戳的系统。但是直到大约二十年后的2009年1月比特币的发布,区块链才有了它的第一个实际应用。
比特币协议建立在区块链上。在介绍数字货币的研究论文中,比特币的匿名创建者中本聪(Satoshi Nakamoto)将其称为“一种完全对等的,没有可信赖的第三方的新型电子现金系统。”
运作方式如下:
世界各地的人们都有比特币。根据剑桥另类金融中心(Cambridge Centre for Alternative Finance)2017年的一项研究,多达590万人拥有比特币。假设这590万人中有一人想要用比特币来购买食品杂货。这就是区块链发挥作用的地方。
印刷货币一般是由中央机构(通常是银行或政府)进行监管和验证,但比特币不受任何人控制。取而代之的是,用计算机网络验证以比特币进行的交易。
当一个人使用比特币向他人支付商品费用时,比特币网络上的计算机会争相验证交易。为此,用户在计算机上运行程序并尝试解决一个复杂的数学问题,称为“哈希”。当计算机通过“哈希”一个区块解决问题时,其算法工作也将验证该块的交易。已完成的交易被公开记录并作为区块存储在区块链上,这时它变得不可更改。就比特币和大多数其他区块链而言,成功验证区块的计算机会因使用加密货币而获得回报。(有关验证的更详细说明,请参阅:什么是比特币挖矿?)
尽管交易已公开记录在区块链上,但用户数据却不是或至少不是完整的。为了在比特币网络上进行交易,参与者必须运行一个称为“钱包”的程序。每个钱包都包含两个唯一且不同的加密密钥:公共密钥和私有密钥。公用密钥是交易存入和提现的位置。这也是作为用户的数字签名出现在区块链分类账上的密钥。
即使用户收到以公钥为单位的比特币付款,他们也将无法与私人对应方撤回。用户的公钥是通过复杂的数学算法创建的其私钥的简化版本。但是,由于此等式的复杂性,几乎不可能逆转该过程并从公共密钥生成私有密钥。因此,区块链技术被认为是机密的。
Public & Private Keys
这是ELI5(“像我5岁时一样解释它”)版本。你可以将公钥视为学校储物柜,将私钥视为储物柜组合。老师,学生,甚至你的迷恋者都可以在储物柜的开口处插入信件和笔记。但是,唯一可以检索储物柜的人是具有唯一密钥的人。但是,应该注意的是,尽管学校储物柜组合保存在校长办公室中,但是没有中央数据库可以跟踪区块链网络的私钥。如果用户放错自己的私钥,他们将无法访问他们的比特币钱包。
在比特币网络中,区块链不仅由用户的公共网络共享和维护,而且也已达成共识。当用户加入网络时,他们所连接的计算机会收到区块链的副本,每当添加新的交易块时,区块链的副本就会更新。但是,如果通过人为错误或黑客的努力,一个用户的区块链副本被操纵为不同于其他所有区块链副本,该怎么办?
区块链协议通过称为“共识”的过程来阻止多个区块链的存在。在存在多个不同的区块链副本的情况下,共识协议将采用可用的最长链。区块链上更多的用户意味着可以更快地将区块添加到链的末端。按照这种逻辑,记录区块链将永远是大多数用户信任的区块链。共识协议是区块链技术的最大优点之一,但也允许其最大的缺点之一。
从理论上讲,黑客有可能在所谓的51%攻击中利用多数规则。这是怎么回事。比方说,比特币网络上有500万台计算机,这肯定是轻描淡写的,但是很容易划分。为了在网络上获得多数,黑客将需要控制至少250万台计算机和其中一台计算机。这样,一个攻击者或一组攻击者可能会干扰记录新交易的过程。他们可以发送交易-然后将其撤消,使其看起来好像仍然拥有刚刚花费比特币。此漏洞,称为“双花攻击”,就算是完美的伪造品,也可以使用户将自己的比特币花费两次。
对于比特币规模的区块链而言,这种攻击极其困难,因为这将要求攻击者控制数百万台计算机。当比特币于2009年首次成立并且其用户数量达到数十个时,攻击者更容易控制网络中的大多数计算能力。区块链的这一定义特征已被标记为新兴加密货币的一个弱点。用户担心51%攻击实际上可以限制在区块链上形成垄断,同时实现区块链的去中心化特性。