比特币区块链如何运作
电子表格类比
想象一下区块链作为电子表格。每个人都可以访问每个单元中的数据,并将副本保存到他们的个人计算机中。电子表格中的数据在多个人之间共享。但是,没有人可以更改单个单元格或更改现有信息。在区块链世界中,我们称其为“不变的”,即无法随时间更改或修改某些内容.
现在,假设您想向电子表格添加一个新的单元格。这将需要有权访问电子表格数据的成员的批准。一旦大多数电子表格所有者批准了新的单元格,数据便会添加到主电子表格中.
回到比特币
顺便说一句,您会注意到我们使用带大写字母B的“ Bitcoin”来表示整个区块链,并使用带小写字母b的“ bitcoin”来表示比特币网络的加密货币.
接下来,让我们应用以上概念进一步了解比特币区块链的工作原理。如果爱丽丝(Alice)将一个比特币交易给了鲍勃(Bob),则该交易将记录在比特币区块链总账中。查看分类帐将显示交易发生时交换了多少比特币,以及发送和接收交易的爱丽丝和鲍勃的相应比特币地址.
比特币矿工
交易完成后,必须由称为矿工的人员进行验证。发生交易时(例如,爱丽丝(Alice)与鲍勃(Bob)的交易),它将与同一时间范围内发生的其他交易一起在数学上受保护的“区块”中分组在一起。然后,矿工使用具有令人难以置信的计算能力的计算机以数学方式解决该问题。第一批解决区块并验证交易的矿工将获得比特币奖励。这是可以创建比特币的唯一方法。最后,每个区块都连接到之前验证过的区块,从而创建了一个区块链,因此有了区块链这个名字(我们知道,超级创意).
您需要了解的关于区块链的另一件事是,它是不可变的,这意味着,一旦将数据添加到一个块中,就永远无法(就像从没有一样)对其进行更改。在实际应用中,一旦爱丽丝(Alice)交易了她的比特币并验证了交易,就无法将其取回或取消交易。它消失了。但是,值得注意的是,这使处理信用卡交易的个人和企业受益,这些交易要等到以后才能解决。恶意个人使用信用卡可以购买商品,然后取消交易,从而使个人或企业失去收入.
共识算法
当爱丽丝(Alice)将她的比特币交易给鲍勃(Bob)时,交易被表示为一个区块,该区块需要广播到区块链网络。区块链网络由验证或中继交易以传输信息的网络节点或参与者组成.
所有节点都是自愿运行的,用于验证区块链上的正确交易。节点遵循共识规则,这是社区同意的规则。共识规则的更改需要95%的社区批准,这使得一个小组更改比特币软件非常困难。其他共识算法需要较低的百分比才能更改软件协议。节点将块事务和验证中继到其他节点,以便网络保持更新。节点不挖比特币。但是,所有矿工通常都运行一个完整的节点来有效地验证和中继比特币交易。由于矿工和非矿工都通过操作节点执行验证和中继,因此他们都参与共识过程.
比特币挖矿
比特币矿工验证合法交易并创建新的比特币作为对其工作的奖励.
一旦矿工解决了密码(数学)难题,就认为交易已验证。比特币使用一种称为工作量证明的协议,该协议的广泛目标是防止来自任何单个实体或组织的网络攻击。更具体地说,比特币使用256位安全哈希算法(SHA-256)。计算机芯片可以运行SHA-256算法来生成输出,该输出称为“哈希”。散列是创建多个散列的过程,用于解决数学问题,其中最终答案是已知和预期的散列值.
一个简化的例子
- 为了解决该问题,哈希值必须以三个零开头:“ 000”
- 然后输入会改变每个数字,找到“解决方案”的匹配项
- 需要6,518次尝试才能找到前三位数为“ 000”的值.
解决方案1 ——— 088djldkh2h5h3kjhk24gd5h2h5h3kjhk24gd5kh2h5h
解决方案2 ——— 73485jfljroi5635h3kjhk24gd5we94ee356h2hkh2h5h
解决方案3 — — d89sdf8sge9nxc894opl8qjroi5635h3kjhk24gd5we94
……
解决方案6517 ——— 088djldkh2h5h3kjhk24gdjroi5635h3kjhk24gd5we
解决方案6518 ——— 00088djldkh2h5h3kjhk24gdjhk24gd5h2hk24g4f4
在输入“解决方案6518”的情况下,任何矿工都可以验证其是否无可否认地创建了一个哈希值,该哈希值的前三个数字为三个零。解决这个问题的第一个矿工将向网络广播他们的答案,并获得比特币奖励。然后将该块视为已验证,并将其添加到区块链中。这个难题代表了比特币矿工需要解决的难题类型,而不是真正的难题.
确认难度
一个标准的比特币区块需要数百万个哈希来解决这个难题。在比特币区块链中,难题的复杂性每2016个区块变化一次,以确保平均区块确认时间为10分钟。因此,如果确认持续花费的时间超过十分钟,则可能更容易解决问题。尽管通常情况下,解决这些问题变得更具挑战性,这使得确认区块非常昂贵且非常耗时.
最初,比特币可以使用消费级计算芯片进行开采。然而,由于难度的增加,比特币挖掘目前需要巨大的哈希能力,并且该行业利用专用集成电路(ASIC)芯片。 ASIC是专门为比特币挖掘而定制的,而不是针对通用功能的。这些芯片的价格也令人难以置信地昂贵,导致选定的一群矿工或矿工群体在比特币采矿活动中占据了最大份额.
逐块
另一个重要方面是,每个块都包含来自父块或上一个块的已解决哈希。每个新区块都需要父区块的哈希值,以确保按时间顺序排列区块。例如,对于块31来说,块30的哈希值是必需的。在验证了块30并将其添加到区块链之后,块31才能存在。这样可以保证每个块都一直连接到第一个块,通常称为“生成块”。要更改任何单个块,都需要同时更改每个前面的块。最后,每个块都是不可变的,这再次意味着一旦发生交易,就无法撤消交易。这进一步确保了一旦添加,区块链中的区块就无法更改.
供应
比特币的供应仅限于2100万个比特币,估计将在2140年左右发生。奖励给矿工的比特币数量每210,000个区块减少一半。因此,奖励将继续分配,直到创建了第21百万个比特币为止,此时矿工将仅收到交易费.
为什么矿工不作弊?
比特币深深扎根于密码学,计算机科学,经济学和其他各个学科。这些学科之一恰好是博弈论,它使用数学模型来预测在给定个人选择或情况时理性玩家的反应。比特币利用博弈论概念激励矿工和用户的预期行动.
Joe Lubin解释的区块链
以太坊与比特币有何不同
以太坊区块链如何工作
以太坊区块链的功能类似于比特币区块链,但有几个重要的区别.
帐户:电子钱包地址
以太坊账户有两种类型:
- 合约账户
- 外部拥有的帐户(EOA)
外部拥有的帐户类似于比特币地址,并由私钥控制。以太坊账户还具有公共和私人地址,供用户交互以转移以太币。用于与智能合约进行通信的合约账户受其合约代码控制,并通过EOA激活。网络上的每笔交易(合同帐户和EOA)都需要以太币,以防止恶意攻击,例如网络垃圾邮件.
交易次数
以太坊网络要求用户在使用区块链时支付交易费。这可以保护以太坊区块链免受琐碎或恶意的计算任务的侵害,例如用户通过大量无用事务向网络发送垃圾邮件。交易越复杂(代码行越多),费用越昂贵。这些费用以乙醚(ETH)支付,被称为“汽油价格”。
以太坊网络
像比特币一样,以太坊利用自愿运行的节点来验证区块链上的正确交易。节点保存以下信息:
- 整个以太坊交易历史
- 有关智能合约状态的最新信息
- 账户余额
- 以及更多
有两种类型的节点
- 一种 全节点 通过下载整个链来同步区块链,从创世区块(第一个区块)到当前区块.
- 一种 轻节点 不会下载整个链,但仍可以有效地验证交易.
节点不会挖掘以太坊区块链。但是,所有矿工通常都运行一个完整的节点来有效地验证和中继以太坊交易。由于矿工和非矿工都通过操作节点执行验证和中继,因此他们都参与共识过程.
以太坊虚拟机
这些可编程应用程序的基础是以太坊虚拟机(EVM),它是智能合约的可执行且不受信任的环境。 EVM按照开发人员最初编写的任何规则执行合同,例如从Alice向Bob汇款。网络由处理程序执行的数千台计算机组成。因此,以太坊网络中的每个节点实际上都在运行EVM,因此,每个节点执行相同的代码。 EVM可以通过字节码语言执行这些程序。但是,开发人员还可以使用以太坊编程语言Solidity编写智能合约和其他更高级的应用程序.
以太坊挖矿如何工作?
以太坊矿工验证合法交易并创建新的以太币作为对其工作的奖励.
一旦矿工解决了密码(数学)难题,就认为交易已验证。与比特币类似,以太坊使用工作量证明(PoW)协议,该协议的广泛目标是防止来自任何单个实体或组织的网络攻击。比特币挖矿和以太坊挖矿之间的显着区别是区块确认时间。确认一个比特币区块平均需要10分钟,而在大约14秒内确认一个以太坊区块。就像比特币一样,该算法会自动调整密码问题的难度,以使平均阻止时间为14秒.
使用比特币,矿工通常会工作在相同的区块上,有时会在非常相似的时间确认这些区块,在这种情况下,第一个是奖励并添加到现有链中,而第二个被确认的区块称为“孤儿”。
在比特币中,孤立的区块几乎没有用,不是主链的一部分。以太坊使用称为GHOST(贪婪的最重的观测子树)协议的类似概念进行操作,这实际上意味着对它进行了最多计算(不一定是最长的)的链是主要的以太坊区块链.
以太坊的快速区块时间导致孤立区块的数量增加,在以太坊区块链上被称为“叔叔”。主要区别在于,以太坊激励采矿叔叔并提供奖励,而比特币仅奖励第一个已确认的区块.
采矿叔叔有两个重大好处
- 通过激励单个矿工挖掘孤儿矿块来减少集中化,这意味着他们不必成为大型矿池的一部分,因为他们仍然可以获得奖励.
- 它提高了链的安全性,因为包括叔叔在内的所有区块都必须遵循相同的挖掘协议,这增加了主(最重)链上的工作量.
权益证明
以太坊网络目前使用工作量证明算法,并将过渡到使用称为Casper的权益证明算法.
股份证明(PoS)是一种共识算法,要求每个矿工都拥有本币(在这种情况下为以太币)的股份。值得注意的是,并不是所有的PoS协议都是相同的,但是在基本概念上却是相似的。工作证明(PoW)协议(例如比特币)通过单个比特币来奖励挖掘工作(验证)。股权证明卡斯珀算法是一种智能合约,矿工(现称为“验证人”)必须向卡斯珀合约发送定金或“股权”。验证者或涉众现在轮流对下一个区块进行提议和投票,每个区块每个区块都有一票。投票也由投注量加权,因此,投注100 ETH的验证者比投注40 ETH的验证者具有更有意义的投票。如果这些验证者产生了Casper协议认为无效的任何内容,那么验证者将失去赌注,这会激励验证者遵循共识。.
什么是醚?
假设您要购买以太坊区块链固有的加密货币以太币。最简单的方法是在许多广泛使用的加密货币交易所之一(例如Coinbase或Kraken)上建立一个帐户。这些交易所允许您建立一个以太坊钱包,以便您可以从也有可以发送和接收以太坊的区块链钱包的任何其他人那里购买,出售,发送和接收以太坊.
当您购买以太币时,您的交易将成为以太坊区块链中一个区块的一部分。该区块包含了运行以太坊协议的任何人在世界任何地方进行的最新以太坊交易的记录。它还包括以太坊区块链上最近经过验证的区块的加密哈希(数学算法)记录.
直到您运行以太坊网络的众多计算机之一解决或发现与绑定到该区块的唯一哈希匹配的密码哈希之后,带有交易记录的该区块才会成为以太坊区块链的一部分。此解决过程通常称为“采矿”。解决或发现哈希后,带有您交易记录的区块会立即添加到由这些计算机中的每一个维护的区块链的末尾,您的交易将成为以太坊区块链永久记录的一部分.
值得注意的是,“ ether”和“ Ethereum”通常可以互换使用,指代在以太坊区块链上运行的加密货币。这在技术上是不正确的,因为以太坊是在以太坊区块链平台上使用的加密货币令牌的术语。如果我们要用计算机软件(即它)来表示这种关系,则以太坊将是操作系统,而以太坊将是应用程序。在非计算机软件的比喻中,以太坊可与车辆媲美,而以太坊则是为汽车提供动力并使其高效运行的燃料.
了解有关区块链技术的更多信息
- 知识库什么是以太坊?
- 企业以太坊区块链用例及行业应用
- ConsenSys Academy针对初学者,开发人员和企业的区块链和以太坊培训