.
点击注册
你的位置: usdt数字币钱包 > usdt钱包 > 科普区块链(下)
数字货币热门文章

科普区块链(下)

发布日期:2022-03-06 20:58    点击次数:216

科普区块链(下)

  若两个人同时上传,虽然这个概率很小,但是若发生,我们就看最后的区块链哪条更长,短的那条就失效。对于要制作虚假交易usdt钱包,除非你说服了全网里超过51%的矿工都更改某一笔账目,否则你的篡改都是无效的。

  先来一个定义,把累计了最多难度的区块链,也是包含最多区块的那个链称为主链。每一个(挖矿)节点总是选择并尝试延长主链。当有两名矿工在几乎在相同的时间内,各自都算得了工作量证明解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。

  当这个两个区块传播时,一些节点首先收到#3458A,一些节点首先收到#3458B,这两个候选区块(通常这两个候选区块会包含几乎相同的交易)都是主链的延伸,分叉就会产生,这时分叉出有竞争关系的两条链,如图:

  两个块都收到的节点,会把其中有更多工作量的一条会继续作为主链,另一条作为备用链保存(保存是因为备用链将来可能会超过主链难度称为新主链)。收到#3458A的(挖矿)节点,会立刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受#3458B区块的节点会以这个区块为链的顶点开始生成新块,延长这个链(下面称为B链)。这时总会有一方抢先发现工作量证明解并将其传播出去,假设以#3458B为父区块的工作量证明首先解出,如图:

  当原本以#3458A为父区块求解的节点在收到#3458B, #3459B之后,会立刻将B链作为主链(因为#3458A为顶点的链已经不是最长链了)继续挖矿。节点也有可能先收到#3459B,再收到#3458B,收到#3459B时,会被认为是“孤块“(因为还找不到#3459B的父块#3458B)保存在孤块池中,一旦收到父块#3458B时,节点就会将孤块从孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。

  工作量证明机制还解决了在集体投票表决(majority decision making)时,谁是大多数(代表)的问题——如果是一个ip一票,那那些拥有很多ip地址的人可能会成为这个系统的权势人物(The Mighty Man)。因此,我们采用的是基于CPU的方式来做工作量证明机制(”one-CPU-one-vote“)。系统中最长的链表示“大多数”的决定,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实节点控制,那么诚实链条将以最快的速度延长,并超越其他的竞争链条。如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。我们将在后面证明,设想一个较慢的攻击者试图赶上随后的区块,那么其成功概率将呈指数递减。激励系统也有助于节点保持诚实。试想如果有一个贪婪的攻击者能够调集比所有诚实节点加起来还要多的CPU计算力,那么他就面临一个选择:要么将其用于诚实工作产生新的电子货币,或者将其用于进行二次支付攻击。那么他就会发现,按照规则行事、诚实工作是更有利可图的,而进行二次支付攻击的话,那么他自身的货币价值也会受损。关于共识,还有一些其他的细节:

  硬件的运算速度在高速增长,而节点参与网络的程度则会有所起伏。为了解决这个问题,工作量证明的难度机制(the proof-of-work difficulty)将采用移动平均目标的方法来确定,即令难度指向每小时生成区块的速度为某一个预定的平均数。如果区块生成的速度过快,那么难度就会提高。

  另外一个激励的来源则是交易费(transaction fees)。如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。一旦预定数量的电子货币(比特币是2100万枚)已经进入流通,那么激励机制就可以逐渐转换为完全依靠交易费,那么本货币系统就能够免于通货膨胀。

  (5) 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;

  (6) 其他节点表示他们接受该区块是通过在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为previous的随机散列值。

  比特币采用了基于互联网的点对点(P2P:peer-to-peer)分布式网络架构。比特币网络可以认为是按照比特币 P2P 协议运行的一系列节点的集合。

  节点总是认为最长的链是唯一正确的,并且保持区块链的延伸。如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别。当此情形,他们将在率先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成最长的链条。僵局(tie)的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。网络上目前基本可分为三种节点。

  不是完整节点,通常被称作SPV节点,也称轻量节点 (Lightweight node)——钱包

  针对于普通比特币钱包用户,钱包的运营者会通过 SPV (Simple payment verification) 协议,将每个用户钱包中的转账与网上的完整区块链进行核对与确认。

  既然上节提到了SPV,我们就必须聊一下这种轻量节点,也就是我们一般玩币的玩家是怎么通过这种协议接入比特币网络了。

  在不运行完整网络节点的情况下,也能够对支付进行检验。一个用户需要保留最长的工作量证明链条的区块头的拷贝,它可以不断向网络发起询问,直到它确信自己拥有最长的链条,并能够通过merkle的分支通向它被加上时间戳并纳入区块的那次交易。节点想要自行检验该交易的有效性原本是不可能的,但通过追溯到链条的某个位置,它就能看到某个节点曾经接受过它,并且于其后追加的区块也进一步证明全网曾经接受了它。

  对于我们使用bit币的买家卖家,其实就是使用钱包功能。钱包的本质其实就是对支付进行检验。放大具体区块的细节,则会得到下面这个图。

  区块头封装了当前版本号、前一区块哈希值、当前区块PoW要求的随机数(Nonce)、时间戳、以及Merkle根信息。区块体则包括当前区块经过验证的、区块创建过程中生成的所有交易记录。这些记录通过 Merkle树的哈希过程生成唯一的Merkle根并记入区块头.

  等等,这里面又出现了神奇的东西。Merkle树是什么?Merkle树一种二叉树,同一个父节点下的两个叶子节点可以计算出父节点的值;向上追溯,最终算出根的值。延伸到区块链中来说,区块中的每一笔交易都先进行HASH,得出一个hash值,然后hash值两两相加再hash,最后会hash出一个Merkle根。

  区块头是80字节,而平均每个交易至少是250字节,而且平均每个区块包含2000个交易。因此,包含完整交易的区块比区块头的4千倍还要大。SPV节点只下载区块头,不下载包含在每个区块中的交易信息。这样的不含交易信息的区块链,大小只有完整区块链的几千分之1。SPV节点不保存所有交易也不会下载整个区块,仅仅保存区块头,我们来看看它是如何对交易数据进行验证的。假如要验证区块结构图中交易6,SPV节点会通过向相邻节点索要(通过Merkleblock消息)包括从交易6哈希值沿Merkle树上溯至区块头根哈希处的哈希序列 (即哈希节点6, 5, 56, 78, 5678, 1234 1~8 - 称为认证路径) 来确认交易的存在性和正确性。

  终于来到我们的最后一个概念了。这是我们区块链核心内容介绍中的最后一个概念,也是中本聪没有在论文中提出的概念。

  换句话说,UTXO像是比特币交易中的原子,是组成世界的基本单元。另外比特币网络中记录每个人有多少钱其实根本不是使用余额概念来记录的,而是直接记录每一笔交易的UTXO。

  比特币交易是首先要提供一个用于解锁UTXO(用私钥去匹配锁定脚本)的脚本(常称为解锁脚本:Signature script),这也叫交易输入,交易的输出则是指向一个脚本(称为锁定脚本:PubKey script),这个脚本表达了:谁的签名(签名是常见形式,并不一定必须是签名)能匹配这个输出地址,钱就支付给谁。这些脚本,其实就是最简单的智能合约。

  关于图灵完备:一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。比特币自带的脚本语言是不支持循环的,因此并非图灵完备。

  锁定时间定义了能被加到区块链里的最早的交易时间。在大多数交易里,它被设置成 0,用来表示立即执行。如果锁定时间不是 0 并且小于 5 亿,就被视为区块高度,意指在这个指定的区块高度之前,该交易不会被包含在区块链里。如果锁定时间大于 5 亿,则它被当作是一个 Unix 纪元时间戳(从 1970 年 1 月 1 日以来的秒数),并且在这个指定时间之前,该交易不会被包含在区块链里。

  交易的数据结构没有交易费的字段,交易费通过所有输入的总和,以及所有输出的总和之间的差来表示,即:交易费=求和(所有输入)-求和(所有输出)

  3 一段标准的输出代码的组成字段4 多个标准输出如何组成一笔交易的输出部分以上的数据组合已基本完成了一笔交易的具体数据落地。再次结合我们在简单支付验证一节中描述的一个区块的具体组成数据组织方式,我们就能理解所有的区块的代码内容中具体包含字段。区块结构包含多个交易的哈希。那么交易哈希是怎么计算的呢?

  至此我们第一节的最困难内容终于全部完成,下面是目前讲到的所有内容的知识点的思维导图。相信大家对比特币,区块链的概念有了一个初步但是较为全面的认识。

  共识机制解决信任问题。其实我们可以从第一节的内容知道,区块链核心就是利用一种技术上的手段代替了目前金融体系中的信用机制。利用对技术的信任,代替了对人或者机构的信任组成了金融系统的核心部分。源于共识机制的区块链技术是一项去中心化,透明的技术。对原本的信任机制在提升透明度,精确追踪,长期保存,不可篡改等封面都有了很大提升。

  智能合约解决成本问题。另外,区块链技术利用了整个参与网络的所有节点的资源完成了整个网络的搭建。整个系统的成本实际上分摊到了所有使用者。同时,智能合约的方式实际上将交易本身人的参与度降低到了很低的水平,保证了稳定性的同时也降低了成本,提升了效率。

  以上提到的这些,尤其是去中心化,也自然而然成为了很多人认定区块链是一项颠覆性的,革命性的技术的原因。当然,我们去吹鼓它的时候,自然可以大谈特谈,天花乱坠,不过我还是奉劝大家擦亮眼睛,自己对这项技术有更清醒的认识。事实是,在这一年多的时间里,区块链技术在实际的科技,商业,社会领域并未有革命性和颠覆性的应用诞生。关于这点,更私人化的讨论我们放在后面章节再聊。

  高频场景效率较低:由于每一笔交易和数据流转需要的计算量巨大,目前超高频商业场景区块链表现不佳。解决:需要技术的进一步发展。

江西景德镇麻将一副牌共有5类,42种图案,136张,四个人组局开局。数字牌共有万子牌(从一万至九万,各4张,共36张);条子牌:(从一条至九条,各4张,共36张。);筒子牌:(从一筒至九筒,各4张,共36张。)字牌合计28张,箭牌:(中、发、白,各4张 ,共12张。);(风牌:东、南、西、北,各4张,共16张。)

在江西景德镇麻将中,全局都是应该贯穿记牌的,一刻也不能够放松,如果说玩家有一次没有看清楚对手的打牌的话,对于后面的算牌和分析就是有极大的影响的。

  中心化矛盾:区块链技术上的去中心化与商业本质中心化存在矛盾。解决:商业区块链更多使用私有链或联盟链。

  参与者的动力和门槛:区块链上的参与节点(企业)需要有加入动力,区块链生态参与也存在技术门槛。解决:动力问题需要区块链运营方管理运营实现共赢,技术问题需要知识储备与团队储备。

  公有链:全网公开,无用户授权机制的区块链。比特币这种建立在互联网端的代币类应用采用的完全去中心化的应用形式。

  联盟链:允许授权的节点加入网络,可根据权限查看信息的区块链。希望形成行业标准的业务类应用会采用联盟链。一种部分去中心化的区块链形式。

  私有链:所有网络中的节点都掌握在一家机构手中的区块链。仅有公司内部需要强监管的业务应用,适合私有链的应用形式。数据完全不公开。

  下面我们来看看目前区块链在各行各业预计的实用场景和前景预想。这里就不得不提出区块链的狭义与广义的定义。

  狭义:区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。区块链其实就是数字记载的、不能改不能作假并且所有参与者都在记的账。

  广义:区块链是分布式数据存储、点对点传输、共识机制、智能合约、加密算法等计算机技术的新型应用模式。当区块链的记录范围从交易账目扩展到所有有价值的数据资产时,便具有了广义概念。

  以上这些,可以说都是2016年10月18日,工业和信息化部信息化和软件服务业司指导中国区块链技术和产业发展论坛发布的《中国区块链技术和应用发展白皮书(2016)》中提到的各行各业可以结合区块链的产业领域。

  众所周知,在保险公司支付端投保过程中,核保是必不可少的环节,也是耗费成本的环节。尤其是投被保人的健康数据,需要利用大量的健康问卷进行获取,手段直接而繁琐。目前的问题,一是问卷题目多,流程长,用户体验差;二是用户自行填写,不能保证完全可靠。而从另一个角度看,我们身边的朋友大多数人人都体检。为什么我们不可以从体检机构直接获取健康数据呢?

  当然,从体检机构的角度来说,客户的体检数据其实是企业的核心数据,是绝对不可外流的,就算交易也不可行。而从本人角度,实际上个人的体检数据所有权应属于客户本人,使用应当经过客户本人授权。

  业务流程:A用户方开始投保,要使用A的健康数据,授权B保险公司获取自己的健康数据;B保险公司查询C体检机构的数据;C体检机构根据预置的智能合约根据A的健康数据计算获取健康评级,返回B保险公司;B保险公司根据健康评级进行进一步核保工作。如何学习区块链

  技术知识背景:深入浅出区块链社区-深入浅出区块链是由一群区块链技术爱好者共同维护的一个秉承去中心化精神的区块链技术博客。

  最后回应一下前文提到的更私人化的区块链商用讨论。其实我个人认为,区块链这项技术在目前的社会商业场景下,很难成为类似于互联网,智能手机一类能深刻改变人类行为的革命性技术。

  首先还是区块链的本质:完全的去中心化。什么是完全的去中心化是什么意思呢?所有在这个网络里面的接入者人人平等,没有任何一个人是特殊的比别人拥有更大权利。这和人类的社会性不符。说的不太中听,无论是中国社会,还是西方社会,社会都并非人人平等,社会是分层级的。让不同层级的人进入一个去中心化的网络必然产生原始利益分配问题。

  其实和商业本质的相悖。商业的本质是什么呢?去中心化么,显然不是,而且恰恰相反,是中心化,资源的中心化。所有公司的目的就是赚很多钱,壮大自己,然后再赚更多的钱,继续壮大自己。终极的目标是什么?垄断而已。这是一种资源的高度集中,和去中心化不仅没关系,而且南辕北辙。因此才催生出了所谓私有链,联盟链。但换个角度想想,没了去中心化特点的区块链,还算是区块链么。

  因此在我来看,区块链改变人类命运,改变商业格局,可能仅仅是个乌托邦。希望大家,尤其是刚毕业的小朋友不要被炒概念的一波热潮迷惑了,想从事相关工作也一定要看清落地场景是不是适合,是不是非区块链莫属,谨慎加入PPT公司。

  另外,文中很多内容来源于CSDN,深入浅出区块链等技术论坛usdt钱包,非商业用途,如有侵权,请告知我,我会删除。



----------------------------------