BTC协议

假如先把去中心化的前提先去掉,我们都信赖一个中心化的机构比如说央行,央行发行货币是由印钞厂那里印钞等等的顺序后才开始发行货币的也就是我们以前最常见的纸币等,而想一下央行要是不发行实物货币了转为发行虚拟货币,(央行的公钥我们是都知道的)而我在和你交易时我把这个虚拟货币转给你,你在验证一下是不是央行发行的货币,这个想法好像还可以是吧,这个只是用到了密码学中的公私钥体系非对称加密算法,并没有用到区块链。因为这是个文件而这个文件有央行的签名,文件的内容是不可以伪造的可是我可以复制一份或者多份啊,这就跟实物货币不一样了假如我有一百元人民币我跟你买了一百元东西我把钱给你了而我就没有这一百元了,没办法花两次或多次这就是数字货币和实物货币的区别。这个叫花两次攻击:double spending attack,数字货币面临的一个主要的挑战就是如何解决double spending attack(花两次),来改进一下刚才的方法因为人民币是有编号的,那我要这个数字货币也加一个编号那么央行就要维护一个数据库了,比如说我获得了一个编辑号为1的数字货币,如果我把这个数字货币给你了你不但要验证是不是央行的还要验证我这个数字货币有没有被花出去过同时央行要改一下了因为我把这个数字货币给了你那么这个数字货币就在你手里了,假如我起了坏心思我复制了一份这个数字货币,我再给到别人那么别人就可以通过这个方法得知我是不是在重复使用这个货币了。这就解决了double spending attack的问题,这个方案是没错的实际中也时可以这么用的但这是一个中心化的方案数字货币的发行由央行控制和每一次交易都需要央行确认才能证明其合法性,依照这个方法我们能不能搞一个去中心化的方案把央行的职能改成广大的用户来承担这就是比特币数字货币系统要解决的一个问题,去中心化的货币要解决两个问题一个是数字货币的发行,谁有权利来决定数字货币的发行现在是去中心化了没有央行了,都是用户了该要怎么决定什么时候该发行,该发行多少。第二个问题怎么验证交易的有效性,怎么防止上面的double spending attack(花两次)。
第一个问题谁来发行货币。在比特币系统中是由挖矿决定的,第二个问题怎么解决double spending attack(花两次)其实解决方案是跟上面是类似的也是需要维护一个数据结构,来检查这个币以前有没有被花过被谁花过只不过这个数据结构不是由央行来维护,而是由所有的用户共同维护,这个数据结构计就是区块链。比如说有一个用户A获得了发行货币的权利(铸币权)那么他发行十个比特币

比特币系统中每个交易都包含了输入和输出两个部分,输入部分要说明币的来源,输出部分要给出输入人公钥的哈希,比如说A转给了BC各五个比特币而B又给CD各转了2,3各比特币而转币的过程中B也时要签名的也要说明币的来源这个时候C又把币给到了E这个时候E的证明就有点多了如上图,这就组成了一个小型的区块链,注意这里面有两种哈希指针第一种就是把它们穿起来变成一个链表第二种哈希指针是指向前面某个交易的这个是为了说明币的来源的,为什么要说明币的来源一是为了证明这个币不是凭空捏造的二是为了防止double spending attack(花两次)比如说B已经转钱给C和D了但是B又来一趟要转给F,签名还是B的签名,单看签名是没什么问题的但是查看币的来源就查出问题了这样一来就有效的防止了double spending attack(花两次)。回看到交易有没有想到一个问题就是在A和B进行交易的时候是不是B只需要知道A有没有转账转了多少就行了而A也是只需要知道B的公钥就行了这个说法貌似是对的但是也不

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值