主页 > imtoken币不见了 > 数字货币和纸币有什么区别

数字货币和纸币有什么区别

imtoken币不见了 2023-06-07 06:12:57

比特币区块和比特币的区别_比特币与传统货币的区别_比特币属于货币吗

数字货币与纸币的区别在于数字货币可以被复制,这被称为双花攻击,或双花攻击。

去中心化货币需要解决两个问题:①数字货币的发行②如何验证交易的有效性,防止双花攻击。

答:①比特币的发行由挖矿决定

② 依托区块链的数据结构

假设比特币的发行者A有权创币发行10个比特币,A(10)分别给B和C 5个→B(5)和C(5),交易需要A的签名,证明经A同意(由A设计),并说明所花费的10个比特币从何而来。

比特币系统中的每笔交易都包括输入和输出两部分。 输入部分应注明币种来源,输出部分应给出收款人公钥的哈希值。

有些交易比较复杂。 比如C的币源是链上的多个区块,必须明确标示。

哈希指针是指向之前一笔交易的指针,用于指示币的来源。 为什么要解释货币的来源:有记录证明货币不是凭空捏造的,也是为了防止双花。

例如,从 A 到 B 的转账需要 A 的签名和 B 的地址。 比特币系统中的接收地址是通过公钥计算出来的。 例如,B 的地址是通过对 B 的公钥进行哈希处理,然后进行一些转换得到的。

A怎么知道B的地址? 比特币系统中没有查询对方地址的功能,必须通过其他渠道。 例如,如果一个电子商务网站接受比特币支付,它的地址或公钥就可以公开。

A需要知道B的地址。 B 需要了解 A 的任何信息吗? B 还需要知道 A 的公钥,它代表 A 的身份。 不仅是 B,所有节点都需要知道 A 的公钥。 签名是用私钥验证对公钥进行签名(加密是用接收方的公钥加密私钥解密),所以区块链上的每个节点都要独立验证。

那么怎么才能知道A的公钥呢? 实际上,它包含在交易中。 输入时不仅要输入币种来源,还要输入公钥。 那么就有一个安全漏洞,如果B的同伙伪造了这笔交易怎么办? A 的铸币交易的输出有 A 的公钥的哈希值,所以在下一笔交易中,A 的公钥必须与之前的哈希值匹配。

在比特币系统中,之前的验证过程都是通过执行脚本来实现的。 每笔交易的输入都提供一个脚本,包括给公钥的过程,在输入脚本中也有指定。 每笔交易的输出也是一个脚本。 要验证其合法性,需要将当前交易的输入脚本与上一笔交易(提供币源的交易)的输出脚本结合起来,看能否顺利执行。 执行指令合法。 比特币脚本(BitCoin Script)。

事实上,每个区块都可以有很多交易,这些交易形成了一颗默克尔树。 每个区块分为区块头和区块体。

区块头包含了区块的宏观信息,比如:使用的是哪个版本的比特币协议,区块链中指向上一个区块的指针(上一个区块头的哈希值),整个默克尔树的根哈希值( merkle root hash),与挖矿相关的字段有两个,一个是挖矿的难度目标预值(target),另一个是随机数nonce。

这里的target就是前面说的,整个block header的hash要小于这个pre-value,即H(block header)≤target。 这个目标预值的代码(nBits)存储在区块头中。 这里需要注意的是,前一个区块的哈希值只算作前一个区块的区块头。 一个方块指向另一个方块的中间是不正确的,所以有些书中的箭头指向方块的顶部。 散列时,块头的所有部分都被散列。

区块体中有一个交易列表。

每个节点都需要验证所有交易。 实际上,系统中的节点分为全节点(full nodes)和轻节点(light nodes)。 全节点保存了区块链的所有信息并对每笔交易进行验证,因此全节点节点也称为全验证节点。 轻节点只保存区块头的信息。 一般来说,轻节点无法独立验证交易的合法性。

比如一笔交易是否双花,轻节点不保存之前的交易信息,因此无法验证。 系统中的大多数节点都是轻节点。 这里我们主要关注全节点,因为轻节点不参与区块链的建设和维护,只是利用区块链的一些信息做一些查询。

区块链中的内容如何写入区块链? 每个节点和每个账户都可以发布交易,交易被广播到所有节点。 有些交易是合法的,有些是非法的。 谁来决定哪些交易应该写入下一个区块? 按什么顺序? 如果每个节点自己决定呢? 如果每个人都在本地维护一条区块链,那区块链的统一性肯定是没有保障的,而账本的内容就是为了获得分布式共识(distributed consensus)。

以下笔记主要讲分布式系统中的一些理论,与比特币的应用关系不大,可以作为理解:

分布式共识的一个简单示例是分布式哈希表。 比如系统中有很多机器共同维护一个全局哈希表。

这里需要达成什么共识? 哈希表中包含哪些键值对key valve pairs。 如果有人在他的电脑上插入一个键值对,'xiao'这个pair对应的是12345,即'xiao'→12345。那么其他人在另一台电脑上读应该也能读到这个。 这称为全局哈希表。

关于分布式系统有很多不可能的结论(impossibility result),其中最著名的就是FLP。 这三个字母是三位专家的简称。 他们的结论是:在异步(asynchronous)系统中(网络传输延迟称为没有上限的异步系统),即使只有一个成员故障,也不可能达成共识。

还有一个著名的结论:CAP定理。 (CAP指的是分布式系统我们想要的三个属性,Consistency【系统状态的一致性】Availability【别人可以用】Partition tolerance【分区容错性】)。 该理论的内容是:任何分布式系统比特币与传统货币的区别,比如分布式哈希表,最多只能满足这三个性质中的两个。 如果你想要前两个属性,你将得不到第三个属性。

一个著名的分布式共识协议是Paxos,它可以保证一致性,这是第一个特性。 如果协议达成共识,那么共识必须是一致的,即每个成员认为的共识是相同的。 然而,在某些情况下,协议可能永远无法达成共识。 这种可能性比较小,但客观。

比特币属于货币吗_比特币与传统货币的区别_比特币区块和比特币的区别

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

比特币共识解决的一个问题是某些节点可能是恶意的。 我们假设系统中的大部分节点都是好的,那么如何达成共识呢?

第一个解决方案是投票。 首先,应该确定哪些区块有投票权。 有些会员有严格的要求。 在这种情况下,基于投票的解决方案是可行的。 然而,在比特币系统中创建账户非常容易。 即使一个人生成了公钥和私钥,其他人也无法知道。 只有转了钱,别人才能知道。 所以有些人可以一直开账号,当超过账号总数的一半时,他们就有了控制权。 这被称为女巫攻击(sybil attack)。 所以投票方式不可取。

比特币账户巧妙地解决了这个问题比特币与传统货币的区别,不再按照账户数量投票,而是按照算力投票。 每个节点可以在本地组装一个候选区块,将自己认为合法的交易放入其中,然后开始尝试各种nonce值(占4字节),看哪个能满足不等式H(block header)≤target要求. 如果节点找到满足要求的随机数,则获得记账权。

所谓记账权,就是将下一个区块写入比特币账本的权利。 只有找到这个nonce,获得记账权的节点才有资格发布下一个区块。 其他节点收到区块后,需要验证区块的有效性。

例如,括号中的区块头内容是正确的。 区块头中有一个字段,称为 nBits 字段。 实际上,它是目标预值的代码。 检查nBits字段的设置是否满足比特币协议规定的难度要求。 ; 不等式是否成立。 假设都满足要求,再查看块体中的交易列表,验证每笔交易是否合法:①必须有合法签名②之前没有花费过。 如果其中一项不符合要求,则该块不能被接受。 如果满足所有条件,则可能不会被接受。

如果产生了一个新的区块,你怎么知道新的区块被插入到哪里呢? 根据生成块的指针。 可能有问题,两笔交易是A转账给B,A转账给自己。 这种情况不是双花。 判断一笔交易是否双花,要看区块所在分支上的币是否被花掉了。 币从未被花费过,所以交易是合法的。 交易虽然有效,但不在最长有效链上。 这称为分叉攻击。 所以接收到的块应该延伸最长的合法链。

区块链在正常情况下也可能出现分叉:两个节点同时获得记账权。 每个节点在本地组装一个它认为合适的区块,然后尝试各种随机数。 如果两个节点几乎同时找到满足要求的随机数,则它们都可以发布该块。 此时,a 有两条等长的分叉。 这两条是最长的合法链条,那么应该接受哪一条呢? 在比特币协议中,默认情况下(默认的意思),每个节点接受它最先收到的那个。 因此,根据不同节点在网络中的位置,一些节点首先听到一个新生成的块,然后接受这个块; 一些节点首先听到另一个块,然后接受另一个块。

如何判断一个块已经收到? 比特币协议中使用隐式委托。 如果继续沿着这个区块扩展,则认为发布的区块被批准。 例如,在一个新生成的块之后扩展一个块表示新块被批准。

等长的临时分叉将维持一段时间,直到一个分叉获胜。 即哪条链先产生新区块,哪条链是最长的合法链。 另一个过时的称为孤立块。 这两个新块可以一起绘制。 两个区块链的胜负取决于谁的算力最强,有时也取决于谁的运气好。

竞争记账权的好处:最先获得记账权的节点具有一定的权力,可以决定将哪些交易写入下一个区块。 但这些不应该被设定为争夺记账权的动机,所以巧妙地建立了一个机制:区块奖励。

比特币协议规定,获得记账权的节点可以在发布的区块中进行一项特殊的交易:铸币交易。 本次交易可以发行一定数量的比特币。

这里又要回到上一个问题,谁来决定货币的发行? coinbase交易是比特币系统发行新比特币的唯一途径,后续的交易就是比特币的转账。 本次交易无需注明币种来源。

那么可以创造多少个币呢? 当初,比特币刚推出时,每个发布的区块可以产生50个BTC(BTC是比特币的符号)。 协议规定,210,000 个区块后,初始区块奖励减半,变为 25 BTC。 再过210,000个区块,又会减半。

因此,当一个区块获胜时,另一个无效区块获得的比特币是没有用的,其他诚实区块将不会承认。

比特币系统应该达成什么样的共识? 去中心化账本必须达成共识。 谁能决定账本的内容? 只有获得记账权的节点才能写东西。 如何取得记账权? 就是解决POW(挖矿)。 根据计算能力,计算能力可以用每秒可以测试多少个nonce值来表示 。 那么如何防止女巫攻击呢? 门票按算力计票。 不管创建多少账户,算力都无法提升。

比特币争夺记账权的过程称为挖矿,比特币称为数字黄金,节点争夺记账权称为矿工。

比特币属于货币吗_比特币区块和比特币的区别_比特币与传统货币的区别