比特币和区块链
标题是区块链Blockchain,一开始我们只讨论过比特币。我故意描述它的目的是区分比特币和区块链,可以区分如下:
区块链是比特币所依据的“系统”。
比特币是将区块链应用于“钱”的结果。
区块链是基于,比特币是在区块链上实施的服务或产品。因此区块链可以是其他硬币和比特币的基础,事实上也是如此。区块链也可以作为其他服务或产品以及硬币的基础。
有趣的是,虽然区块链是比特币所依据的系统,但是区块链被创建并且没有创建比特币,但区块链技术在尝试制造比特币时诞生了。
现在让我们看看区块链如何成为比特币货币的基础。首先,让我们快速看看钱是什么。
金钱就是信仰
现代社会的钱是什么?这似乎太模糊了,所以让我们改变这个问题。现代社会中货币的“现实”是什么?
在过去,像金银这样的真实物品起到了金钱的作用,但逐渐将交换证书变成了金钱的角色。它成为一种不变的法定货币,在2008年金融危机之后,它以量化宽松的名义印刷了大量资金。尽管如此,我们仍然没有钱的主要问题。为什么这可能?
金钱是'信仰'。
事实上,我们相信钱。金钱的现实就是信仰。黄金交易的保证已经消失,但每个人都认为钱仍然可以吃鸡肉和喝啤酒。金钱是所有人的“信任”。比特币使用术语货币,如虚拟货币,数字货币或加密货币,也可以“信任”。随着信心的来源右块链接它。
让我们来看看区块链如何成为信任的来源。
分布式公共分类帐
考虑A向10,000发送10,000韩元的情况。A访问银行的站点后,登录,检查余额,输入B的帐户信息,输入认证证书或OTP等密码,然后按OK按钮,A从B的余额中扣除。余额中加入10,000韩元。
这种与个人财产相关的汇款流程非常重要。因此,汇款交易所需的所有验证都在银行进行,并且记录存储在银行并且不向外部披露。
这就是我们相信汇款作为银行的原因。汇款过程中的所有内容都集中在一家银行。换句话说,银行是单点故障。换句话说,如果银行的服务器不能正常运行或银行记录消失,我们就会失去财产。
解决计算中这一单点故障的常用方法是高可用性处理或多路复用。该策略是通过复制或分发两到三次来消除单点故障。银行系统也是一个多元化的过程,上面提到的荒谬的佛陀不容易发生。不仅软件而且安全人员的部署和安全设备的引入进一步降低了风险。但是,这些措施很昂贵。
区块链从一个完全不同的角度看待这个问题(脚注:为了简单起见,只有公共区块链已被覆盖)。也就是说,交易信息是在没有隐藏的情况下向所有人公开的,任何人都可以创建交易信息,将交易信息复制到每个人,保存副本并同步副本。换句话说,它并没有从根本上阻止记录通过处理数千,中和或数万而不是双倍或三倍而消失。所以区块链有时被称为庞大的分布式公共分类账。
区块链是一个庞大的分布式公共分类账。
这些数千个分散的过程可以防止记录丢失,但仅凭这一点并不能防止伪造和更改记录像损失一样危险。Blockchain在密码学的帮助下解决了这个问题。
数字签名
如果你是一名开发人员,你可能会对数字签名有所了解,但让我们谈谈这一点,因为它是讨论区块链的一个重要部分。
数字签名使用非对称密钥和散列函数以下列方式验证数据的真实性:
包含在块链中的所有交易信息包含数字签名,因此在信心的信息是真实的交易就可以了。
什么是街区?
现在是时候进入真正的区块链了。什么是块,组成链的元素?
块是一组有效的事务信息。
诸如“A向100发送100韩元”的事务是一个事务,并且一个块包含多个事务。为了更详细地理解块,查看实际实现是有效的。因此,我们将基于比特币(块链的第一个实现)来查看块和区块链。每个实现可能有不同的细节,但大的茎几乎相同。
一个比特币块可以包含平均约1,800个事务,一个块的平均物理大小为0.98兆字节(来源:https://blockchain.info/charts)。块由块头,事务信息和其他信息组成。
- 甲块头version,previousblockhash,merklehash,time,bits,nonce这包括六个信息。
- 交易信息具有与存款和取款相关的各种信息。
- 其他信息是指与块中的信息中的块头和事务信息不对应的信息,并且不用于块哈希计算。
理解区块链机制的关键是块头。
块头
块头包含以下六条信息。
- 版本:软件/协议版本
- previousblockhash:块区块之前的块的块哈希
- merklehash:以二进制树形式组成各个事务信息的事务哈希时,位于树根的哈希值。
- time:创建块的时间
- bits:调整难度的数字
- nonce:从0开始并递增1的计算次数,直到找到满足条件的哈希值。
块头是重要的原因是使用块头的六条信息作为输入值来获得用作块的标识符的块哈希。
块哈希
通过将六种类型的块头信息应用为输入值并将SHA256散列函数应用于其来计算用作块的标识符的块散列。它是32字节的数值。名称是块哈希,但其值是块头的哈希值,而不是整个块的哈希值。
到目前为止,基于内容获得块散列的过程如下。
最终merklehash将单独的交易信息聚合成作为Merkle树的哈希值的值。从六块在块中的报头信息version,previousblockhash,merklehash,time,bits因此该值恒定已经在使块5具有散列值的时间建立的。但是,最后一个nonce值不是固定的,需要重新获得。正是nonce这种工作证明(通常称为挖掘)产生了这个值,最后产生了块散列值,并产生了一个有效块,并将该块散列作为标识符。
在我们得到工作证明之前,我们已经获得了块的技术级别,所以让我们从块的区块链的技术视图开始。
什么是区块链?
区块链之前被称为一个巨大的分布式公共分类账,但从技术上讲,可以说它是由连接块组成的区块集合。
块是如何连接的?上面讨论的块头中的六条信息之一previousblockhash是刚刚在当前块之前创建的块的块哈希值。该块以前一个块哈希值的方式连接到前一个块。
您看到的数据结构在哪里很多?是。区块链实际上是一个链表。
区块链是块的链接列表。
现在我们已经从技术上看了区块链,让我们深入研究它。
区块链的第一个核心 - 工作证明
从数据结构的角度来看,区块链(它只是一个链表)可以成为信任源的第一个关键元素就是工作证明。
前nonce获得的值,以获得最终块的散列值,该块是,它是验证的工作,以产生具有所述散列值作为标识符的有效块。毕竟nonce,获得价值是证明工作的关键。nonce在我们弄清楚如何获得nonce价值之前,我们需要知道它意味着什么。
nonce该值指的是nonce这样的值,使得通过使该值成为输入值之一而计算的块散列值变得小于特定数量。
nonce我们怎样才能获得这个价值?如果从上面的说明中删除最后一部分,则会将其称为使哈希值小于某个数字的值。由于哈希函数的性质,如果要查找导致哈希值的输入(如果为A),则无法通过在A中反转它来找到它,并随机更改输入直到结果为A.在计算哈希值时,您必须找到它。
然后,为了使块散列值小于某个数,我们必须重复将通过改变块散列的输入值而获得的散列值比较低于某个数的任务。
块散列的输入值是块头,块头包含六种类型的信息。这些值中的五个是固定的,不能nonce更改。
也就是说,如果nonce在改变该值的同时计算的散列值小于特定数量,则将此时的nonce值nonce确定为新创建的块的值,并且创建新生成的小于特定数量的散列值的块。哈希值最终确定,工作证明结束。
让我们用图片来看这个过程。下图显示了查找使块散列000000a84...小于指定值的值的过程nonce。
如前所述,nonce已定义所有其他项的值。
nonce如果你得到一个0的哈希值,你得到的000000a84...值大于,fa8cbaeed...并且工作证明失败了。
返回nonce的时候我节省一天的哈希932d16e2e...再来失败。nonce这两个散列的时候,而未能获得一个散列一遍又一遍,当三天nonce的日子,当我保存的82764351哈希终于000000a84...较小000000a83...这出来并证明是成功的。
如果是这样,000000a84...决定工作证明成功 的价值如何确定?价值取决于任务的难度,但这不是重点,所以让我们看看更重要的奖励。
赔偿金
该nonce值挖掘操作需要大量的哈希计算,这使得矿工执行这样的计算以及可以运行矿工的大量电力成本。因此,如果没有这些费用的补偿,没有人会开采。
在比特币补偿的交易都包含在比特币和其新发行的块中的交易费用之和为。比特币的新发行是通过添加一个交易来完成的,当矿工首先将块作为生成交易构建时,将一定数量的比特币存入矿工的钱包。
新发布的比特币将从50BTC开始,然后每当210,000块添加到区块链时减半。 。
可以在贸易伙伴之间自主设置交易费用,并且可以将交易费用作输入以确定将交易添加到该块的优先级。
奖励nonce找到值,结果为区块链添加了一个新块,
确认块中包含的所有交易的价格是有效交易。
区块链 - 碰撞分辨率的第二个核心
区块链的第一个关键是工作证明,它是逐块处理的。区块链的第二个核心是冲突解决,它在区块链级别处理,而不是在块级别处理。为了找出冲突意味着什么以及解决它们的原因,我们需要查看分布式环境中的区块链。
交易信息的传播
早些时候,区块链被称为庞大的分布式公共分类账。此分布式公共分类帐被复制到多个节点,这些节点通过p2p连接以形成区块链网络。并且当发生一个交易信息时,该交易信息必须传播到分布在区块链网络中的许多节点。
如下图所示,当用户F在费用为0.001BTC的钱包应用程序中将1.6BTC发送到C时,钱包应用程序将交易信息发送到区块链网络上的节点A.
接收到交易信息,节点A首先验证交易,将交易添加到尚未开始块生成的候选块,并将交易信息传播到其他相邻节点。
已经接收到交易信息的节点B还将交易信息传播到区块链网络上的其他节点,其最终传播到整个区块链网络中的节点。
块的生成和传播
当块填充了事务信息时,节点会创建一个块。此时,加拿大的节点和澳大利亚的节点相距很远,因此每个块中的事务内容和顺序可能不同。
新创建的块位于蓝色块(P块)旁边,这是当前最后一个块,如下图所示(来源:掌握比特币-http://chimera.labs.oreilly.com/books/1234000001802/ch08.html#forks )将被添加。
此时,加拿大的节点和澳大利亚的节点几乎同时nonce发现了该值并成功创建了该块。如果加拿大节点创建的块被称为红色块(A块),而澳大利亚节点创建的块称为绿色块(B块),则创建后的传播过程如下图所示。
加拿大节点的相邻节点重新计算接收到的红色块的块散列,并验证该值确实是小于某个数字的正确值,然后将红色块添加到其蓝色块。
类似地,绿色节点被添加到与澳大利亚节点相邻的节点中的现有蓝色节点。随着这种方法的继续,红色和绿色块传播到分布在世界各地的节点。
块链的分支
在葡萄牙的节点中,首先传播红色块,然后是绿色块。葡萄牙节点将忽略延迟到达的绿色块。
俄罗斯的节点试图nonce找到自己的价值,但不幸的是,他们首先收到了绿色块,验证了绿色块,并在蓝色块后添加了绿色块。我们nonce开始获得新块的值,然后是绿色块,过了一会儿我们收到了红色块。俄罗斯节点忽略迟到的红色块。
这次,俄罗斯节点首先nonce获得该值,创建一个新的粉红色块(X块),在绿色块后添加粉红色块,然后查看下图。
葡萄牙的节点在蓝色块之后添加了一个红色块,并在蓝色块和绿色块后面接收到一个新的粉红色块。葡萄牙的节点在区块链中有分支如下:
红色和绿色块的内容不同。我们说区块链是一个信任来源的系统。
您信任哪种区块链?
在区块链中,存在一个标准,当发生这样的分支并发生碰撞时,区块链将信任该区块链。否则,分配的书籍内容的同步被破坏。标准如下。
当区块链中发生分支和碰撞时,将执行更多工作证明以选择更长的块。
因此,当具有较长区块链的粉红色块传播到葡萄牙节点时,红色块与蓝色块断开连接并成为孤立的。
块创建是计算上昂贵的操作,平均需要10分钟,因此发生分支的可能性是因为A和B块是在先前发生的同时生成的。而且即使块链这种冲突的长度来合并冲突的时刻,由于块链dalrajyeoseo的分支长度不会很快得到解决。
下图显示了长区块链孤立的区块数量,这表明区块链分支引起的碰撞在过去一年内在2或更少,最多3个范围内得到解决。
但是,由于这种分支情况可能会暂时发生,因此在实际交易情况下,只有在自包含交易的块以来已添加3-5个块之后,才会最终确定事务。这是因为即使临时发生分支,在添加3-5个块之后也会解析分支状态,并且仅剩下一个块链。
在孤立区块A中不会丢失交易吗?
红色块中可能存在未包含在绿色块中的事务T. 如果红色块变成孤立,那么问题是事务T最终是否会丢失。
但不会发生任何损失。事务T最终包含在粉红色块之后的粉红色块或块中,即使它不包含在绿色块中。因为粉色块是以绿色块作为父块创建的,并且事务T不包括在绿色块中,所以在绿色块之后或粉红色块之后创建的粉色块块中,事务T还不包括在区块链中。它像处理事务一样处理它们并将它们添加到块中。
双重付款问题
数字可以被复制,因此双重付款的问题始终存在。区块链也不例外。这不是一个例外,而是一种复制到大量节点的方法。
您无法在同一设备的钱包上进行双重付款。例如,当一台设备上安装的钱包余额为50,000韩元时,当钱包支付50,000韩元时,余额变为0,并且不可能再次支付50,000韩元。
因此,双重支付通常是在两个物理上分开的点上思考的问题。由于这些书是重复的,我在加拿大的余额是50,000韩元,我在澳大利亚的余额是50,000韩元。那么,如果你在加拿大发送A到50,000韩元,而在澳大利亚发送A到50,000,还没有达成这笔交易怎么办?
开始时,在两个远程位置进行双重支付,但这两个交易通过区块链网络传播,并且必须在某个地方相遇。那时,两个交易之间必定存在良好和旧的关系。首先到达该点的交易被视为有效交易,但迟到的交易将作为无效交易被丢弃,因为它将发送50,000韩元,余额已经为零。
因此,双重支付问题以这样的方式解决,即双重支付交易之一最终无效。
区块链的第三个核心 - 无法更改已完成的交易信息
事务信息的散列值merklehash用作用于计算包含事务的块merklehash的输入值,并且用作用于计算块散列的输入值。块散列被previousblockhash存储为下一个块(M)的值,并且previousblockhash被用作输入值以计算M块的块散列作为M块的块头信息。
因此,如果任何交易信息被改变,则包含交易信息的Merkle树merklehash被改变,并且如果merklehash被改变,则块哈希被改变。
然后,由下图中的红色下划线表示的改变的块#1的块散列和previousblockhash存储在下一个块的块头中的值(块#2)将不同。因此,为了保持链,previousblockhash在更新块#2的值之后,nonce再次获得块#2的值以获得新的块散列,并且重新计算块#3和#4的块散列。
另外,nonce可以通过找到工作量证明的答案来获得块散列,因此有必要在已经改变了交易信息的块之后对所有块进行重新校正。
挖掘块需要平均10分钟,因此在恶意节点修改并挖掘前一个块的事务信息的10分钟期间,其他幸福节点继续阻止原始区块链,事务信息不变。它会继续下去。因此,在10分钟之后,恶意节点的区块链的长度比由其他幸福节点保持的区块链的长度短,并且当两个区块链相遇时丢弃较短的区块链。
要更改已完成的交易信息:
为了通过在包含要按顺序改变的交易信息的块之后提醒所有块来创建新的区块链(A),
与此同时,由于原始区块链尚未更改,其他节点将继续添加块并将比A长。
A被丢弃,完成的交易信息的更改失败。
但我们假设恶意节点的计算量远远超过其他节点。
如果是这样,则将块添加到恶意节点处的区块链的速度将快于将块添加到其他区块链的速度,并且在某些时候,恶意节点的区块链的长度将是最长的。此时,恶意节点改变的交易信息作为有效交易信息分布在整个区块链网络上,过去交易信息的变化成功。这被称为51%的攻击。
但从经济角度来看,这几乎不太可能。一旦知道了交易信息可以改变的事实,就会破坏区块链的信任。
如果恶意节点长时间具有最大的计算能力,则恶意节点将创建许多块并进行大量补偿。在这种情况下,如果区块链的信任崩溃,遭受最大损害的是恶意节点本身,因此没有经济动机来改变交易信息。
即使恶意节点突然具有大量的计算能力,但由于区块链信任的崩溃,其价值丧失的采矿区也没有经济利益。因此,实际上不会发生经济上不盈利的交易信息的变化。
成品
到目前为止,我们已经研究了区块链如何成为加密货币信任来源的问题的答案,称为比特币。总之,如下。
块链
- 它是一个巨大的,分散的分类账,其中包含的每笔交易都经过数字签名,确保它在没有银行或其他第三方参与的情况下是真实的。
- 分布在数千和数万个节点上,即使在任何时候发生故障或攻击点,整个区块链网络也可以继续运行而不会出现问题。
- 从经济角度来看,数学计算工作,例如工作证明和逻辑,使得伪造和伪造几乎不可能,因此记录在其中的交易可以被确认为没有中央保证的可靠交易,例如银行。
- 分支可能在分布式环境中的传播过程中出现,但最长的区块链被选为有效的区块链。
区块链也存在许多挑战,其中最重要的是区块链可扩展性。我们无法在这里涵盖所有这些内容,但我希望到目前为止我们讨论的故事将成为扩大我们对区块链的理解的垫脚石。
区块链是第一个实现分权的软件技术,不需要中央机构来确保贸易伙伴之间的信任。
比特币仅限于货币,但以太网,最近开发的EOS,IOTA和国内开发的BlockchainOS旨在建立一个分散的平台,可以在区块链上以编程方式执行各方之间的合同。 。
区块链被认为是一种可以改变世界的技术,是因为它是这种分散平台的基础。
为更美好的世界做出贡献的机会之门正在缓慢但肯定地开放。
区块链用FAQ总结
只有一名成功创造一个区块的矿工会获得奖励吗?
是。因此,从理论上讲,一生中运行一个矿工可能不会产生一个块。因此,在实践中nonce,通过创建采矿池并共享查找值的计算任务来操作采矿市场,并且当在池中创建块时,参与池的矿工根据他们自己的分配标准接收补偿。是的。
难度等级是多少?
nonce工作证明是在块哈希低于某个数字时找到值。任务nonce的难度表明计算该值的难度。难度级别bits由块头信息中的值控制。
我们之前提到过块哈希为32字节数。为简单起见,假设块哈希是无符号的1字节数。散列函数产生一个字节的块散列,然后产生0到255之间的值。
如果散列块应该通过将散列函数小于128和0到255的概率是小于块的哈希值128是用于计算的值128보다 작은 수(0~127)의 개수 = 128/ 해쉬 함수가 산출할 수 있는 모든 값(0~255)의 개수 = 256,即,128/256因为它是一个50%的机会。
如果块散列应小于64,则存在64/256或25%概率nonce值。如果块散列应小于32,则概率降低到12.5%。这里,特定数量128,64,32是块头信息bits。
在实践中,bits不以这种方式存储值,但是存在使用指数和系数的单独表示。
如果比平均时间21,600分钟(10分钟/块* 2,160块)需要更长时间,则难度降低,如果需要的时间少于2,160块,则增加难度。难度等级适用于整体。因此,当矿工增加并且生成块所需的时间减少时,难度根据预定周期增加,并且最终平均需要10分钟。
块头的bits是一个nonce示出了特定数目的作为基准来计算值,
这是一个在整个区块链中统一应用的数字。
所有比特币钱包都存储区块链上的所有交易信息吗?
比特币钱包是支持汇款交易的客户端软件,也是区块链网络的一个节点,因为它需要将交易信息传播到区块链网络。但是,由于钱包不计算工作证明,因此不需要存储区块链的所有交易信息,也不存储它。有许多类型的节点参与区块链网络,钱包不存储区块链的整个交易信息。
如果采矿奖励减少,采矿区块链能否持续下去?
以比特币为例,矿业奖励以比特币支付,支付金额以比特币为基础减少,但如果比特币价值增加则不会。即使几年前采矿奖励为50比特币,目前的奖励减少到四分之一到12.5比特币,实际奖励的价值也增加了,因为比特币本身的价值增加了四倍以上。
因此,比特币的通缩货币特征是提高比特币价格的重要因素。但是,当新发行的比特币达到零(约2100年之后)时,它会是什么样子?毕竟,剩下的唯一奖励是佣金,因此它们将流向最大化费用或降低成本。
本文链接地址:https://www.wwsww.cn/qkl/1035.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。