首页 快讯 正文

比特币是共识产物么(比特币的共识机制是pow基于工作量证明)

wx头像 wx 2024-03-30 04:00:13 6
...

  整理与推荐:程超@小程故事多

1. 背景

  对于当下流?的电?货币-?特币系统比特币是共识产物么,朋友圈?有很多介绍性的?章,也有?试图通过漫画来?动的解释?特币的特性,但是始终不得要领,总是有些问题想不清楚,为比特币是共识产物么了弄清楚这些问题,最近深?的研读了?本?特币的书籍以及中本聪本?发表的?特币论?,感觉茅塞顿开,迫不及待的与?家分享比特币是共识产物么我的理解,希望与?家共同探讨、共同进步。

  2. 比特币

  ?特币是?种利?点对点技术实现的电?现?系统,它允许?个组织直接与另外?个组织进?在线?付,?不需要中间的权威的清算机构。

  在?特币的世界?,如果你想拥有?特币,你需要申请?个?特币地址,就像你到银?存款,需要开??个账户,然后,你就拥有这个账号,有了??的账号,你可以向你的账号存款,别?也可以给你的账号转账,当你需要提款的时候或者给别?转账的时候,你需要出示?个能够打开这个地址的钥匙,也就是你的私钥,就像你在ATM上取款的时候需要提供密码?样。

  与银?发?的法定货币不同,法定货币的发?是由各国央?来统?管理的,?家都相信央?是靠谱的,不会记错账,也不会被?攻击。然?,?特币的发?并不需要央?这样的权威机构,它允许?笔交易从?个组织直接结算给另外?个组织,省去了权威机构结算的环节,提?了交易和结算的效率,节省了交易的成本,尤其是跨境交易的成本。

  ?个点对点的在线交易系统如何保证交易的匿名性、正确性、不可篡改性??是如何防?双重?付和防?作弊和攻击的呢?

  下?的章节将为?家通过最通俗的语?解开?特币的神秘?纱,让你从逻辑上理解?特币是如何?作的,让学习?特币不留死?,让?特币的????清晰的呈现在你的脑海?。

  3. 区块链 3.1区块链是如何存储的?

  对于?个现?账户系统,?先要解决的是如何记账,把账记在哪?,账户如何存储等。例如,你在中国银?存款,中国银?为你开?账户,你的账户就存储在中国银?的服务器上,?你在建设银?存款,建设银?为你开?账户,你的账户就存储在建设银?的服务器上。如果你需要转账给同?个银?的其他?的账户,你需要通过这个银?为你转账和结算,如果你需要转账给其他银?的其他?的账户,你需要通过银联为你转账和结算,尽管?个普通?户感知不到如此多的过程,不过这些步骤确实是存在的,从这个过程中我们看到记账系统是专?的,是中?化的,归某?个组织所有并维护,通常这个组织是权威的、可信赖的。

  ??特币并没有中?化的记账系统,?是通过分布式的区块链来记载?特币的拥有权和交易信息。每个?特币的参与者都拥有?份相同的区块链副本,区块链包含着多个随着时间排序的块,后?个块通过哈希指针指向前?个块,形成?个链,从链的顶端通过这个指针,可以?直找到底端第?个块,第?个块成为创世纪块。每个区块记录着前?个区块的哈希散列值,实际上是前?个节点头的哈希散列值,如果想改变?个区块包含的交易,必须改变这个区块之后所有的交易,由于每个区块的产?是需要条件和时间的,并且条件相当苛刻(后续会在共识机制相关的?章中详细说明),因此,?个区块?旦产?,并且被区块链的节点所接受,并且在这个节点之后?产?了?定数量的区块,那么这个区块基本是不可篡改的。

  区块链示意图如下:

  

  从上图可?,区块链是由多个区块组成,每个区块是由区块头和区块体组成的,每?个区块头包含着区块的元信息,同时也包含?个指向前?个区块头哈希值的指针,这个指针是防?区块链被篡改的关键信息。区块体包含?特币的交易信息,第?个交易是特殊交易,是奖励给挖矿节点的酬劳,这也是唯??种可以产??特币的?式,也就是发??特币的?式,其余的交易都是转账交易,?特币从?个地址?付给另外?个地址,这也是实现?特币价值转移的唯??式。总结来看,?特币只有发?和转账两种交易,?特币产?以后只能从?个?转账给另外?个?,?不能凭空消失,?特币发?的总量是有限的,?共2100万,因此是?种通缩性货币,后续我们会在相关的?章中详细介绍?特并的通缩特性。

  3.2 比特币的拥有者如何证明自己拥有比特币?

  上?节介绍了区块链的存储,区块链实际上是?特币的账本,记录着谁拥有多少?特币,只不过这个账本是保存在互联?上的、分布式的,并不是由?个中?机构或者服务器来存储。有了账本,剩下的问题就是?特币的拥有者如何证明??拥有?特币?就像你在银?开?了?个账户,等你想给其他?转账的时候,你需要在ATM上插?卡,然后输?密码。卡就相当于?特币的地址,密码就相当于?特币的秘钥,有了正确的地址和秘钥,就可以对外宣称??对?特币的拥有权,就可以把?特币转账给其他?来做?笔转账交易。

  在ATM上提取?笔现?,输?密码解锁账户,我们相信ATM机不会泄露密码。那么在?特币的世界?,我们如何通过私钥来校验?个地址上的?特币的归属权呢?

  ?特币的归属权是通过加密领域技术来实现的,我们先来了解下加密领域的原理,加密领域?体上经过了3个阶段,第?个阶段拼算法,把加密逻辑写在?个?常?深的代码?,后来发现?论把多么复杂的逻辑写在代码?,总有??可以破解。于是产?了对称秘钥加密,对称秘钥加密通过?个对称的秘钥进?加密数据,然后传输或者保存,需要的时候再通过同?个秘钥进?解密还原原来数据,缺点是秘钥是共享的,?法安全的保存秘钥,尤其是跨组织的场景。后来,聪明的安全科学家们发明了?对称加密算法,例如: RSA,?对称算法拥有?对秘钥,?个公钥和?个私钥,私钥可以推导出公钥,但是公钥不能推导出私钥,公钥加密的数据私钥可以解密,私钥加密的数据公钥可以解密,如果组织A向组织B传递数据,那么组织A使?公钥进?加密,组织B使?私钥进?解密,因此,组织B需要??的保存好私钥,?公钥是公开的,这是典型的?对称加密场景,能够有效的防?数据被偷窥、被篡改。?对称加密还有另外?个场景,就是签名,签名是加密场景的逆向场景,商户B通过??的私钥加密数据,然后把加密的数据传递给商户A,商户A通过公钥进?解密,如果解密的数据正确,则说明数据是由A发送的,有效的保证了数据的防篡改,从这两个场景我们看到,公钥是公开的,可发给任何?,私钥是私密的,?来解密或者签名的。

  ?特币证明归属权的示意图如下:

  

  从上图可?,现实?活中我们?钥匙打开锁头,我们?密码在ATM上提取现?,那么在?特币系统?,我们通过秘钥来实现?特币的转账,实现价值的转移。

  更具体来讲,?笔?特币交易会把?定数量的脚本锁定在?个地址,声明拥有这个地址的?户会通过密匙的签名来证明??拥有这个地址,然后,花费这笔?特币,这笔?特币被花费后并不会消失,会被锁定在其他?的地址上,其他?可以使?同样的?法来花费这笔?特币。

  从上?的过程,我们总结了两个动作,锁定与解锁,这和我们平时锁锁头和开锁头是对应的,在?特币系统?是通过锁定脚本和解锁脚本来实现的。

锁定脚本把比特币关联在一个比特币地址上,证明了比特币归属这个地址。

解锁脚本提供证明,证明这个地址归我所有,这个比特币也归我所有,我可以用来支付。

  下面我们举一个例子详细说明:

  ?户Alice在?特币?地址A上拥有10个?特币, Alice与Bob想做?笔交易, Bob把??家的汽?卖给了Alice,Alice需要向Bob?付10个?特币,Bob的?特币地址是B。在之前的交易中,Alice拥有的10个?特币被锁定在Alice的?特币地址A上,其来源可能是挖矿所得或者别?转账?来,我们会在后续详细描述如何获得?特币,这?我们只关注证明Alice拥有?特币的交易的锁定脚本。

  锁定脚本的逻辑格式为:

?特币数量

来源

锁定地址

10

挖矿所得

地址A

  如果想花费这个锁定脚本,需要的解锁脚本如下:

解锁地址

解锁

地址A

地址A的公钥、地址A?私钥对前?区块头哈希散列值的签名

  具体的解锁过程如下:

使用地址A的公匙推导出地址,与地址A对比,如果一致则证明公匙提供正确,进入下一步。

使用地址A的公匙解密签名,如果获得的值与前一区块的哈希散列值一致,则证明解锁成功,可以花费地址上的10个比特币。

  其实,锁定和解锁脚本是通过逆波兰表示法的基于堆栈的脚本实现的,由于本文篇幅有限,这里不展开介绍,会在后续的文章中详细介绍锁定和解锁脚本的原理和流程。

  4. 挖矿

比特币是共识产物么(比特币的共识机制是pow基于工作量证明)

  上一节介绍了比特币使用分布式存储的区块链作为记账系统,也解决了大家关于如何声明比特币的拥有权,以及把比特币支付给其他人的过程。现在我们遇到了新的问题,既然区块链是分布式的记账系统,每个参与的节点都有一份拷?,那么谁来负责把一笔交易记到区块链呢?

  这不得不引入一个新的概念,就是共识机制,比特币是通过?作量证明的共识机制来决定记账权的,通俗来讲,谁证明了自己的?作量最大,谁就负责记账。

  ?作量证明示意图如下:

  

  挖矿工作量大小是通过计算符合某一个标准的比特币区块头的哈希散列值来体现的。试图争夺记账权的节点称为挖矿节点,挖矿节点会把网络节点上发来的交易进行验证(网络传播机制会在下一节中介绍),验证后会存入缓冲区,形成一定的交易存储结构(交易使用Merkle树存储,后续问斩各种介绍),放在区块体中,然后根据区块的基本信息构造区块头,区块头通常包含前一个区块的哈希散列值、Merkle根(后续文章会详细介绍)、时间戳、难度目标、以及一个填充的随机值。这里面的随机值是随机产生并且填充的,挖矿过程就是求出一个能够填充本区块头的随机值,让区块头的哈希散列值符合某一个标准,例如:哈希散列值的前某些位为0,难度?标就是用来表达哈希散列值标准的难度系数,可以通过概率算法计算出难度值与挖矿成功的可能性。

  网络上的每一个矿机接收并验证了一批交易,然后就开始进行挖矿,视图计算满?某一难度值的区块头的哈希散列值,如果计算成功,则挖矿成功,向全网?播挖矿所得,全网节点验证后,把这个区块连接到区块的最上端,并且在全网达成一致。矿机需要反复的试验随机填充值来进行求解,一般采用产生随机数,尝试把产生的随机数填充到区块头,然后计算哈希,后续文章会介绍矿机联盟,矿机联盟会把随机数分成多个小区间,分配给联盟中的成员,共同求解。

  除了上面介绍的工作量证明机制,还有权益证明、股份制的权益证明共识机制等,后续我会在共识机制的专题文章中与大家分享。

比特币是共识产物么(比特币的共识机制是pow基于工作量证明)

  5. P2P网络

  前面两节介绍了比特币的账户体系和记账机制,这节我们讨论比特币的分布式区块链账本是如何在网络上传输,交易又是如何在网络上传输并得到验证的。

  比特币网络中的节点都是对等的,没有中心化的服务器,节点有不同的类型,不同的类型有不同的职责,我们会在将来的文章中详细介绍,这里我们只介绍全节点,也就是比特币核心客户端的工作机制。

  比特币中的全节点除了存储完整区块链,还具有矿工、钱包、路由节点等的角?,他们的职责如下:

矿工:就像挖矿的工人一样,做的是体力活,不断的尝试在构造的区块头的随机字段上填充数字,来找到满足一定标准的哈希散列值,如果找到,把此区块连接到区块链的最上端,并且把合法的区块链发送给邻接节点。

钱包:区块链记载了创币交易和转账交易,这有别于通常意义的账户系统,通常意义的账户系统记录账户余额,而区块链里面只记录了交易,没有余额,钱包就是用来从区块链中算出某个地址拥有区块的余额,如果你学过关系型数据库,你可以把区块链理解为数据库的索引,也可以认为是一本书的?录。

路由节点:负责在去中心化的网络环境中传递交易和区块,一个节点创建一笔交易,并发送给相邻的节点,相邻的节点验证后,再发送给相邻的节点,很快会传遍网络。如果一个节点通过挖矿,找到一个符合标准的区块,这个节点也会用相同的方式传递给相邻节点,然后相邻节点再继续传播下去,让网络的所有节点都达成一致。

  P2P网络传播的示意图如下:

  

  我们会在后续的文章中详细介绍比特币P2P网络的工作机制,包括节点分类、节点发现、节点连接和?播等。

  6. 总结

  由于篇幅有限,本文介绍了比特币的三大基础概念,包括区块链、挖矿与P2P网络,后续会对比特币的方方面面进行详细的说明,涉及到如何防止双重支付、智能合约、区块链分叉、通缩特性、锁定和解锁脚本、交易的Merkle树存储、交易的存储格式、区块链被攻击的概率、挖矿难度与挖矿成功时间、更多的共识机制、币交易和转账交易、比特币的性能、不同类型的挖矿节点、以及比特币的应用场景等。

  扩展阅读:

  区块链——2016最耀眼的新兴技技术之一 - 吴志刚@勤智数码

  区块链技术分享 - 邓明@国付宝

  3月25日,特邀嘉宾开涛将出席由中生代技术和飞马网联合主办的技术嘉年华活动,正是面基好时候,识别下图二维码购票有优惠,先帮到这里!

  中生代技术强烈推荐开涛的新书-《亿级流量网站架构核心技术》

  作者

  张开涛,现就职于京东,“开涛的博客”公众号作者。写过《跟我学Spring》《跟我学Spring MVC》《跟我学Shiro》《跟我学Nginx+Lua开发》等系列教程,博客现有1000多万访问量。

  内容简介

  《亿级流量网站架构核心技术》一书总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看后能快速运用到实践项目中。

  此书从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看完能落地,能实际运用。

  不管是软件开发人员、还是运维人员,通过阅读本书,能系统地学习实现亿级流量网站的架构核心技术,并收获解决系统问题的思路和方法。

  本书不仅仅只讲理论,还有大量实践和代码让读者看完后能落地。

  编辑推荐

  提前看到这部著作的人这样评价——

  √经历618、双11多次大考,是保证大规模电商系统高流量、高频次的葵花宝典。

  √集中火力讲述作者构建京东大流量系统用到的高可用和高并发原则。

  √浓缩作者多年对网站系统升级迭代的创新、技术、实践和积累。

  √高可用和高并发总体原则、关键技术、实战经验的总结,以及曾经踩过的坑。

  √教你如何构建高并发、大流量系统方能经受起亿级线上用户流量的真实考验。

  √从前端到DB底层设计,本书无不精细阐述。

  √站在一个新高度思考网站后台技术,从应用级缓存到前端缓存,从SOA到闭环。

  √京东多年架构升级及大促备战的高质量总结。

  √将系统设计的深奥套路讲得如此清晰,难能可贵。

  √完整呈现如何设计响应亿级请求的京东商品详情页系统。

  √本书作者是将技术应用于业务、理论应用于实践的大师。

  √地表至强,天大福利。

  √流量并发暴增与系统架构变革的十字路口,需要这样一本书。

  √一个亿级流量网站和一个中小型网站的技术架构难度截然不同。

  √这种指导手册式的技术书籍,值得精读和细品。

  √一本互联网高并发架构设计的百科全书。

  √从各角度剖析系统设计的优化要点和注意事项。

  √循序渐进地将一系列复杂问题阐述得清晰、易读。

  √实战出真理,选择这本书,靠谱。

  入手一本吧,这么多好评,错不了。

  识别上面二维码或者点击阅读原文购买(或者参与中生代技术的评论送书活动领取)

本文地址:https://www.changhecl.com/487001.html

退出请按Esc键