当前位置:首页 > 知识学习 > 详情

数字货币(bi)简称查询,数字货币简称大全

2023-06-09 17:45:36 阅读(20) 陶然歌词网
  

  数字货(huo)币简称查询,数字货币简称大全-陶然(ran)歌词网  

  

  数字货币与纸质货币区(qu)别在于数字货币是可以复制的,叫作(zuo)双花攻击,即double spending attack。  

  

  去中心(xin)化货币要解决两(liang)个问题:数字货币的发行怎么(me)验证交易的有效性,防止double spending attack。  

  

  答案:比(bi)特币的发行是由挖矿决定的(de)  

  

  依靠区块链的数据结构  

  

  假如比(bi)特币的发行者A拥有(you)铸币权(create coin)发行10个比特币,A(10)分别给B和C各五(wu)个B(5)C(5),该交易需要有A的签名,证明经A同意(designed by A),同时还要说明花掉的10个比特币从哪来的(de)。  

  

  比特币系统中每个交易都包含输(shu)入和输出两部分。输入部分(fen)要说明币的来源,输(shu)出部分要给出收款人公钥的哈希(xi)。  

  

  有的(de)交易部分比较复杂,如C的货币来源是(shi)链上的多个区块,要标识清楚。  

  

  哈希指针,是指向前(qian)面某个交易的指针,用来(lai)指明币的来源。为什么要说明币(bi)的来源:证明币不是凭(ping)空捏造的是有记录的,同时也是防范(fan)double spending。  

  

  例如A向B的转账,该交易需要A的签(qian)名和B的地址。比特币系统(tong)里收款的地址是通(tong)过公钥推算出来的。比如B的地(di)址就是B的公钥取哈希然后(hou)经过一些转换得到的。  

  

  A如何知道B的(de)地址?比特币系统中没有查询对方(fang)地址的功能,必须通过其他渠(qu)道。比如某个电商网站,接受比特币支付,就可以公开它的地(di)址或公钥。  

  

  A需要知道B的地(di)址,B需要知道A的什么信(xin)息吗?B其实也要知(zhi)道A的公钥,这代表(biao)A的身份。不仅是B,所有节点(dian)都需要知道A的公钥。而签名是用私(si)钥签名公钥验证(zheng)(加密是用接收人的公钥加密私钥解密(mi)),所以区块链(lian)上每个节点都要独立验证。  

  

  那(na)如何才能知道A的公钥(yao)?实际上交易里就包含(han)了。输入时不仅(jin)要输入币的来源,还要输入公钥(yao)。那就存在了安全漏(lou)洞,假如B的同(tong)伙伪造了这次交易呢?在A的(de)铸币交易的输出就有A的公(gong)钥的哈希,所以在下一个交(jiao)易里A的公钥要(yao)跟前面哈希对的上。  

  

  在比特币系统当中,前面这些(xie)验证过程,是通过执行(xing)脚本来实现的。每(mei)个交易的输入提一段脚本(ben),包括给出公钥的过程,公钥也是在(zai)输入的脚本里指定的。每个(ge)交易的输出也是一段(duan)脚本,验证其的合法性,就需要把当前交易的(de)输入脚本跟前面交易(提供币来(lai)源的交易)的输出脚本拼在一(yi)起,然后看看能不能顺利(li)执行,如果能执行说明是(shi)合法的。比特币脚本(BitCoin Script)。  

  

  实际上每个区块(kuai)可以有很多交易,这些交(jiao)易就组成merkle tree。每个区块分为块头和块身。  

  

  块头包(bao)含的是区块的宏观信息,比如:用的是比特币哪个版本(version)的协议,区块链当中指(zhi)向前一个区块的指针(hash of previous block header),整颗(ke)merkle tree 的根哈希值(zhi)(merkle root hash),还有两个域是跟挖(wa)矿相关的,一个是挖矿的(de)难度目标预值(target),另一个是随机(ji)数nonce。  

  

  这里的target,就是前面讲到的,整个块头的(de)哈希要小于这个预值,即H(block header)target。block header里存的就是这个目标(biao)预值的编码(nBits)。这里(li)需要注意,前一个区(qu)块的哈希只算的是前一个区块的块(kuai)头,一个区块引出一个(ge)剪头指向另一个区块中间,是(shi)不正确的,所以有的书中箭(jian)头是指向一个区块(kuai)的上面。取哈希时是把(ba)块头的所有部分都(dou)取哈希。  

  

  块身里面有交(jiao)易列表(transaction list)。  

  

  每个节点都需要验证所(suo)有的交易,实际(ji)上系统中的节点分全节点(full node)和轻节点(light node),全节点是保存(cun)区块链所有的信息的,验证每一个(ge)交易,所以全节点又(you)叫fully validating node。轻节(jie)点只保存block header的信息,一(yi)般来说轻节点没法独立(li)验证交易的合法性。  

  

  比如一个交易是不是double spending,轻节点没有存以前(qian)的交易信息所以它没法验证。系统中(zhong)大多数节点是轻节点(dian),我们在这里主要针对全节点(dian),因为轻节点没有参与区块链的(de)构造和维护,只是利用了区(qu)块链的一些信息做(zuo)一些查询。  

  

  区块链里(li)的内容是如何写到区块链里(li)面的呢?每个节点,每(mei)个账户都可以发布交易(yi),交易是广播给所有节点的。有些(xie)交易是合法的,有(you)些是非法的。谁(shui)来决定哪些  

交易应该被写入下一(yi)个区块中呢?按(an)照什么顺序写呢?如(ru)果每个节点自己决定可以吗?如果(guo)每个人在本地维护一个区块链,那(na)区块链的统一性得不到保证(zheng),而账本的内容是要取得分布式的共(gong)识(distributed consensus)。

  

下面(mian)的笔记主要讲的是分(fen)布式系统中的一些理论,跟比(bi)特币的应用关系不大,可以(yi)作为了解:

  

分布式的共识一个简单的例子就是分布(bu)式的哈希表(distributed hash table),比如系统里有很多台机(ji)器,共同维护一(yi)个全局的哈希表。

  

这里需要取得共识的(de)内容是什么?哈希表(biao)中包含了哪些键值(zhi)对key valve pair。假如有人(ren)在自己电脑上插入一个键值(zhi)对,'xiao'这个pair对应的是12345,即'xiao'→12345。那么别人在另一台读的时候也要能(neng)把这个读出来,这就叫一个全(quan)局的哈希表。

  

关于分布式系统有很多不(bu)可能结论(impossibility result),其中最著(zhu)名的是FLP。这(zhe)三个字母是三个专(zhuan)家的名字缩写,他们的结论(lun)是:在一个异步的(asynchronous)系统里,(网(wang)络传输迟延没有上限就叫异步系(xi)统),即使只有(you)一个成员是有问题(ti)的(faulty),也不可能(neng)取得共识。

  

还有一个著名结(jie)论:CAP Theorem。(CAP是指分布(bu)式系统的三个我们想要(yao)的性质,Consistency【系统状态的一致性】 Availability【别人都(dou)可以用】 Partition tolerance【分区容错性】)。该理论内容是:任何一个分布(bu)式系统,比如分布式哈希表,这三(san)个性质中,最多只能满足两(liang)个,假如想要前两个(ge)性质,那么就不会得到第(di)三个性质。

  

分布式共识一个(ge)著名的协议是Paxos,该协议能够保证一致性,即第(di)一个性质。如果该协议打成了共识,那么这个共识一定是一致的,即每个成员所认为(wei)的共识都是相同(tong)的。但是,某些(xie)情况下,该协议可能(neng)永远无法达成共识,这种可能性(xing)比较小但是客观存(cun)在的。

  

数字货币(bi)简称查询,数字货币简称大全-陶(tao)然歌词网

  

比特币中的共识协议(consensus in BitCoin):

  

比特币中共识要解(jie)决的一个问题是(shi),有些节点可能是有恶意的。我们(men)假设系统中大多数节点是好的,那么(me)该如何取得共识协议?

  

第一种方案是投票(piao),首先应该确定哪些区块有投票权,有(you)些membership是有严格要(yao)求的,这种情况下基于投(tou)票的方案是可行的(de)。但比特币系统创建账户是很(hen)容易的,甚至一个人产生了(le)公私钥对别人都无法得知,只有转账时别人才知道。所以有些人可以不停的创建账(zhang)户,当超过账户总数的一半(ban)时就有了控制权,这种(zhong)称为女巫攻击(sybil attack)。因此投(tou)票方法不可取。

  

比特币账户巧妙的解(jie)决了这个问题,不是按照账户(hu)数目投票,而是按照计算力来投(tou)票。每个节点都可以在本地组装出一个(ge)候选区块,把它认为合法的交易(yi)放在里面,然后开始尝试(shi)各种nonce值(占4 byte),看哪(na)一个能满足不等式H(block header)≤target的要求。如果某个节(jie)点找到了符合要求的nonce,它(ta)就获得了记账权。

  

所谓的记账权,就(jiu)是往比特币账本里写入下一个区(qu)块的权利。只有找到(dao)这个nonce,获得记账权的节点才有权利(li)发布下一个区块。其他节点收到这个区块之(zhi)后,要验证这个区块的合法性。

  

比如括号里block header的内容填得对(dui)不对,block header里面有(you)一个域,叫nBits域,实(shi)际上它是目标预值的一个编码检查(cha)一下nBits域设置的(de)是不是符合比特币协议中规定的难度(du)要求;该不等式是否成立。假(jia)设都符合要求,然后检查block body 里面的交易列(lie)表,验证一下每个(ge)交易都是合法的:①要有合法(fa)的签名②以前没有被花(hua)过。如果有一项不符合要求,这个(ge)区块就是不能被(bei)接受的。如果所有条件都(dou)符合,也不一定接受。

  

假如生成了(le)一个新区块,怎么知道新区块插(cha)在了哪里呢?根据生成(cheng)区块的指针。有可能就存(cun)在一个问题,两个(ge)交易是A转账给B,以及A转账给自己(ji)。这种情况不是double spending,判断一个交易是不是double spending ,是看这个区块所在的分支(zhi)上币有没有被花掉。币一(yi)直都没有花过,所以这个交(jiao)易是合法的。虽然(ran)该交易是合法的,但是(shi)它不在最长合法链(longest valid chain)上。这种称为分叉攻击(forking attack)。所以接收的区块应该是扩(kuo)展最长合法链。

  

区块链在正常情(qing)况下也可能出现分岔:两个(ge)节点同时获得记账(zhang)权。每个节点在本地(di)自己组装一个它认(ren)为合适的区块,然后去试各(ge)种nonce,如果两个节点在差(cha)不多同一个时间找到了符合要求的nonce,就都可以把区块(kuai)发布,这时会出现两个等长的分岔(cha)。这两条都是最长合法链,那该接受那条呢?比特币协议当中(zhong),在缺省(默认的意(yi)思)情况下,每个节点是接受它(ta)最早收到的那个。所以不同节点(dian)根据在网络上的位置不同(tong),有的节点先听到新生成的其中一个区(qu)块,那就接受这个区块;有些节(jie)点先听到另一个区(qu)块,那就接受另一个区块(kuai)。

  

如何判断接收了一个区块(kuai)?比特币协议中用到了implicit consign,如果沿着这个区块(kuai)往下继续扩展,就算认可了这个发(fa)布的区块。比如在新生成(cheng)的其中一个区块后面又拓展一个区块,表明就认可了这个新区(qu)块。

  

等长的临(lin)时性的分岔会维持一段时间,直到一(yi)个分岔胜出。也就是(shi)哪一个链抢先一步生成(cheng)了新的区块,哪(na)一条就是最长合法链。另一个作(zuo)废的就叫orphan block。这两个(ge)新区块有可能会各自拉拢,两个区块链看谁的算力强,有时候也(ye)是看谁的运气好(hao),就会胜出。

  

竞争记账权的(de)好处:首先获得记账(zhang)权的节点本身有一定的权力,可(ke)以决定哪些交易写到下一(yi)个区块里。但这些不应该被设(she)定为竞争记账权的动力,所以巧(qiao)妙地建立了一个(ge)机制:区块奖励(block reward)。

  

比特币协议中规定获(huo)得记账权的节点在发布的区(qu)块里可以有一个特殊的交易:铸(zhu)币交易。在这个交易里可以发布(bu)一定数量的比特币。

  

这里要回到前面的问题,谁(shui)来决定货币的发行?coinbase transaction币基交易是比(bi)特币系统中发行新的比特币(bi)的唯一方法,后面的交易(yi)都是比特币的转(zhuan)移。这个交易不用指出币的来(lai)源。

  

那么能造多少币(bi)呢?开始时比特币刚上线的时候,每一个发布的区块可以产生50BTC(BTC就(jiu)是比特币的符号)。协议中规定,21万个区块以后,初块奖励就(jiu)要减半,就变成了25BTC。再过(guo)21万个区块,又要减半。

  

因此当一个区(qu)块胜出后,另一个作废的区块得(de)到的比特币是没(mei)有作用的,其他诚实的(de)区块是不会承认的。

  

比特币系统中要取得什么共(gong)识?去中心化的账本要取得共识(shi)。谁又能决定账本的内容呢?只有获得记账权的(de)节点才能写东西。怎么(me)获得记账权呢?就是解pow(挖矿(kuang))。按照算力记票,算力可以用每秒能试多少nonce数(shu)值表示。那怎样防范女巫攻(gong)击呢?按算力记票,即使(shi)创建再多的账户,也无法使算(suan)力增强。

  

比特币争夺记账权的(de)过程叫作挖矿(mining),比特币被称为数字黄金(digital gold),争夺记(ji)账权的节点被称(cheng)为矿工(miner)。

  

数字(zi)货币简称查询,数字货币简称大全(quan)-陶然歌词网

上一篇:猫咪在古代的(de)名字(猫咪在古代的名字叫什么)

下一篇:被2.3个月小猫咬(yao)了出血(我被猫咬了,没去打针,会不会死)

推荐阅读:

  • 先行指标(先(xian)行指标同步指标滞后指标有哪些)

    先行指标(先(xian)行指标同步指标滞后指标有哪些)

    先行指标因果区别先行指标(biao)是指在研究中,可以用来预测(ce)某种结果的变量。它们可以是客观的,如年龄,性别,收入等(deng),也可以是主观的,如个人偏好,信念等(deng)。因果指标是指可(ke)以用来说明某种(zh…
    2023-06-09 阅读(21)
  • ok币官方(fang)网站(ok币最新消息)

    ok币官方(fang)网站(ok币最新消息)

    莱特币在哪里交(jiao)易平台官网全球(qiu)性交易所1、796交(jiao)易所(塞舌尔),专业的期(qi)货衍生品交易所,期货成交量全球(qiu)份额长期超过50%2、Bitfinex(英属维京(jing)群岛)酆辖灰姿,成交量排名靠?3、BTC…
    2023-06-09 阅读(25)
  • 迷你世界如(ru)何切换账号(迷你世界如何切换账号手机版)

    迷你世界如(ru)何切换账号(迷你世界如何切换账号手机版)

    《迷你世界》怎么换号登(deng)录?方法如下:1.在游戏主界面里(li),点击右上角设置图标。2.再点(dian)击进入账号设置页面。3.然后点击切换账号按钮(niu)。4.最后输(shu)入账号密码,点击登录,完成切换。游戏(xi)简…
    2023-06-09 阅读(26)
  • 限号时(shi)间段(深圳限号时间段)

    限号时(shi)间段(深圳限号时间段)

    汽车限行是几点到(dao)几点?机(ji)动车限行时间为上午7点至19点。具体如(ru)下:1、限定时间:工作日(一般指周(zhou)一至周五,法定节假日不计算工(gong)作日)7点至19点;2、早晚高峰:工作日从7点(dian)到9点和1…
    2023-06-09 阅读(16)
  • 云南派友之家(jia)生态城(云南派友之家生态城可以用派币买车吗)

    云南派友之家(jia)生态城(云南派友之家生态城可以用派币买车吗)

    亳州派友俱乐部地址在哪(na)里和平路与新华南路交叉口(kou)东约60米。根据百(bai)度地图信息得知亳州派(pai)友俱乐部地址在和平(ping)路与新华南路交叉口东(dong)约60米。亳州车友(you)会系一群私家车友为主体自(zi…
    2023-06-09 阅读(18)