比特币是2009年创建的一种电子支付系统,它使您可以向世界上任何人汇款,而无需中央机构来开设帐户或处理付款。
它是作为现代金融系统的一种解决方案而创建的,现代金融系统是由少数大型银行控制帐户的发行和交易处理的,这集中了对金钱的控制,并迫使用户信任银行以负责任的态度行事。
必须信任银行来持有我们的钱并以电子方式进行转移,但它们会在信贷泡沫浪潮中将其借出,而储备金却很少。——中本聪
这种信任的滥用和随之而来的2008年金融危机激发了比特币的发展,比特币作为一种没有中央控制点的支付系统运行,由化名中本聪匿名设计,并于2009年1月发布。
以下是其比特币工作原理的简单说明。
比特币是什么?
比特币只是一个计算机程序,您可以下载它并在计算机上运行它。
当您运行该程序时,它将连接到同时也在运行此程序的其他计算机,并且它们将开始与您共享文件,该文件称为区块链,基本上是一大笔交易的集合列表。
最简单易懂的比特币工作原理说明
当新交易进入比特币网络时,它将在计算机之间不断传播,直到每个计算机节点都拥有该交易的副本为止,每隔大约10分钟,网络上的随机计算机(节点)会将收到的最新交易添加到区块链上,并与网络上的其他所有人共享更新内容。
最简单易懂的比特币工作原理说明
最终达到的效果就是,比特币程序创建了一个大型计算机网络,这些计算机相互通信以共享文件并不断更新最新交易。
比特币要解决的是什么问题?
在比特币出现之前,通过计算机网络也可以传播交易,但是,问题是有可能会在网络中插入冲突的交易。例如,您可以创建两个使用相同比特币的独立交易,然后将这两个交易同时发送到网络。比如,你只有一个比特币,但同时将这一个比特币分别发送给小明和小红。一笔钱花了两次。
这就是所谓的“双重支付问题”,也叫“双花”。
最简单易懂的比特币工作原理说明
您需要弄清楚其中哪些交易是“第一”的问题,而当您拥有很多且全部独立运行的计算机网络时,这是一件困难的事情。某些计算机将首先接收绿色交易,而某些计算机将首先接收红色交易,谁来决定哪一个是“正确的”交易并且应该写入文件中呢?
比特币通过强制节点将它们接收到的所有交易记录先将其保留在内存中,然后再记录到文件中来解决此问题。每隔10分钟,由网络上的一个随机节点(涉及工作量证明)会将交易从其内存添加到文件中。
最简单易懂的比特币工作原理说明
然后,此更新的文件与网络共享,并且所有节点将接受更新文件中的交易为“正确”,从而从其内存中删除所有冲突的交易。结果,永远不会将双花交易记录写入文件,并且所有节点都可以彼此一致地更新其文件。
最简单易懂的比特币工作原理说明
将交易添加到文件的过程称为“挖矿”,它基本上是整个网络范围的节点竞争,无法由网络上的单个节点控制。
比特币的挖矿原理
首先,每个节点都将它们收到的最新交易存储在其内存池中,这只是计算机上的临时内存。然后,任何节点都可以尝试将其内存池中的交易挖掘到文件(区块链)上。
为此,节点将把交易从其内存池中收集到一个称为区块的容器中,然后使用处理能力尝试将该交易块添加到区块链上。
最简单易懂的比特币工作原理说明
那么,这种处理能力从何而来呢?好了,要将这个区块添加到区块链中,您必须将交易区块输入一个称为哈希函数的东西中。哈希函数基本上是一个微型计算机程序,它将接收任意数量的数据,对其进行加密后并输出一个完全随机(但唯一)的数字。
最简单易懂的比特币工作原理说明
为了将您的区块成功添加到区块链上,此数字(区块哈希值)必须低于目标值,这是网络上每个节点都必须同意的阈值数字。
最简单易懂的比特币工作原理说明
如果生成的区块哈希值不低于目标值,则可以对区块内的数据进行少量调整,然后再次通过哈希函数进行处理。这将产生另一个完全不同的数字,希望该数字会低于目标。但如果不是,还得调整区块数据并重试。
最简单易懂的比特币工作原理说明
因此,总而言之,挖矿过程将利用处理能力来尽快执行哈希值计算,并尝试成为网络上第一台将区块哈希值降至目标以下的计算机。如果成功,则可以将交易区块添加到区块链上,并与网络的其余部分共享。
注:尽管任何人仍然可以尝试挖掘区块,但在家用计算机上这样做不再具有竞争力。现在有专门设计的硬件,旨在尽可能快(且高效)地执行哈希值计算,这意味着现在的挖矿工作主要由能够使用专门硬件和廉价电力的人员执行。
比特币从哪里来?
为了鼓励使用处理能力尝试在区块链上添加新的交易区块,每个新区块都提供了一定数量的比特币奖励,这些比特币以前不存在。因此,如果您能够成功地开采一个区块,那么您就可以“发送”这些新的比特币,作为对您的努力的回报。
最简单易懂的比特币工作原理说明
新比特币的这种奖励称为“区块奖励”,这就是将该过程称为“挖矿”的原因。
为什么叫做区块链?
正如我们所见,交易并不是单独添加到文件中的,它们是一起收集成区块然后添加的,这些新区块中的每一个都是在现有区块的基础上构建的,因此文件由一系列区块组成,因此,就叫区块链。
最简单易懂的比特币工作原理说明
此外,网络上的每个节点将始终采用它们收到的最长的区块链,作为区块链的“官方”版本。这意味着矿工将始终尝试在已知的最长区块链的“尖端”上构建,因为不属于最长链的任何区块都不会被其他节点视为有效。
因此,如果有人想重写交易记录,他们将需要重建更长的区块链以创建新的最长链以供其他节点采用,但是,要实现这一点,单个矿工的算力将需要超过网络其余部分的算力总和。否则将很难。
结果,网络的共同努力使得任何人都难以重写区块链,因为他需要拥有全网至少50%的算力。
这在很大程度上保证了比特币网络的安全。
比特币转账是怎么回事?
您可以将区块链视为保险箱的存储设施,我们称其为输出,这些输出只是容纳各种数量的比特币的容器。
最简单易懂的比特币工作原理说明
进行比特币交易时,选择一些输出并对其进行解锁,然后创建新的输出并对其施加新的锁定。
最简单易懂的比特币工作原理说明
因此,当您“发送”某人比特币时,实际上是在将一定数量的比特币放入新的保险箱中,并对其进行锁定,只有“收到”比特币的人才能解锁。
例如,如果我想向您发送一些比特币,我会从区块链中选择一些可以解锁的输出,并从中创建一个只有您才能解锁的新输出。另外,如果我不想将解锁的所有比特币发送给您,我将创建一个额外的输出作为“change”并将其锁定在我自己身上。
最简单易懂的比特币工作原理说明
如果您想将比特币发送给其他人,您将重复选择现有输出(可以解锁)并从中创建新输出的过程。结果,比特币交易形成了一种类似图形的结构,其中比特币的移动通过一系列交易进行连接。
最后,当一笔交易被挖掘到区块链上时,该交易中已用完(花费)的输出将无法用于另一笔交易中,但是新创建的输出将可以在以后的交易中继续使用。
你是如何持有比特币的?
为了能够“接收”比特币,您需要拥有自己的公私钥对,这组公私钥类似于您的帐号和密码,但比特币还不一样,它们分别称为您的公钥和私钥。
例如,如果我想向您发送一些比特币,则首先需要你给我你的公钥(地址),创建交易时,我会将您的公钥地址放在输出(保险箱)的锁内。然后,当您要将比特币发送给其他人时,可以使用你的私钥来解锁此输出。
那么,您在哪里可以获取公钥和私钥?好吧,借助加密技术,您实际上可以自己生成它们。
简而言之,您的私钥只是一个很大的随机数,而您的公钥是根据此私钥计算得出的数字。但是聪明的部分是:您可以将公钥提供给其他人,但他们不能从中得出私钥。
现在,当您想解锁分配给公钥的比特币时,可以使用私钥来创建所谓的数字签名。此数字签名证明您是公钥的所有者(因此可以解锁比特币),而不必透露您的私钥。该数字签名也仅对创建该交易的交易有效,因此不能用于解锁锁定到同一公钥的其他比特币。
该系统称为“非对称加密”,自1978年开始可用。比特币利用该系统允许任何人创建密钥以安全地发送和接收比特币,而无需中央授权来发行帐户和密码。
比特币内容整理
要开始使用比特币,您需要生成自己的私钥和公钥(地址)。您的私钥只是一个非常大的随机数,您的公钥是从中计算出来的。这些密钥可以轻松地在您的计算机上生成,甚至可以在诸如计算器之类的简单对象上生成。大多数人使用比特币钱包来帮助生成和管理密钥。
要接收比特币,您需要将公钥提供给想要发送给您的人,此人将创建一个交易,在该交易中,他们将解锁拥有的比特币,并创建一个新的比特币“保管箱”,并将您的公钥放入锁中。
然后,该交易被发送到比特币网络上的任何节点,在计算机之间进行传播,直到网络上的每个节点都拥有该交易的副本,从这里开始,每个节点都有机会尝试挖掘其已收到的最新交易到区块链。
挖矿的这个过程涉及节点将交易从其内存池中收集到一个区块中,然后通过哈希函数(每次稍作调整)将该区块数据重复放入,以尝试使区块哈希低于目标值。
第一个在目标下方找到区块哈希值的矿工将区块添加到他们的区块链中,并将该区块广播到网络上的其他节点。每个节点还将此区块添加到其区块链中(从其内存池中删除任何冲突的交易),并重新开始挖掘过程以尝试在链中的此新块之上构建。
最后,开采该区块的矿工将在区块内放置自己的特殊交易,这使他们可以收集一定数量的原先不存在的比特币,这种区块奖励可以激励节点继续构建区块链,同时在比特币网络中分配新代币。
总结
比特币是一种与世界各地其他计算机共享安全文件的计算机程序,此安全文件由交易组成,并且这些交易使用加密技术来允许人们发送和接收数字保险箱。结果,这创建了可以被任何人使用并且在没有中央控制点的情况下运行的电子支付系统。
自2009年1月发布以来,比特币网络一直不间断运行。2019年,比特币网络处理了超过1.19亿笔交易,总计转移了3,730,419,825,286.932美元。
比特币计划本身也正在积极开发中,自发行以来,已有600多人为该代码做出了贡献。这是由于该软件是“开源”这一事实,这意味着任何人都可以查看该代码并为改进它做出贡献。