区块链学习笔记12——BTC思考

学习视频:北京大学肖臻老师《区块链技术与应用》
笔记参考:北京大学肖臻老师《区块链技术与应用》公开课系列笔记——目录导航页

哈希指针

BTC系统中很多地方用到了哈希指针,比如区块的块头就包含指向前一个区块的哈希指针。指针保存的是本地内存的地址,只在本地的计算机上有意义,发送给其他计算机就没意义了。那么在发布区块的时候,哈希指针是如何通过网络进行传播?

所谓的哈希指针,只是系统中一种形象化的方法。实际应用的时候,只有哈希而没有指针。
回顾一下之前提到的Block header的数据结构:

图示位置即为前一个区块的哈希
因此可见,在block header中只有hash值,没有指针。那么如何查找到前一个区块的内容?
全节点一般将区块存储于一个key-value数据库中,key为哈希,value为区块内容。常用的key-value数据库为levelDB,所谓的链式结构实际上就是在levelDB中通过哈希值串连起来的,只要掌握了最后一个区块的哈希值,就可以根据levelDB把最后一个区块的内容取出来,然后这个区块的块头中又有指向前一个区块的哈希值,以此类推,最终就能把整个区块链都找出来。
有些节点只保存最近的区块链的部分信息,如果需要用到前面的区块,可以问其他的全节点要。哈希指针性质保证了整个区块链内容是不可篡改的。

区块“恋”

有情侣一起买BTC,将私钥从中截断,每人保留其中一部分。如果未来两人依旧感情很好,就可以将钱取出;如果分手,这部分钱就会永久锁死,谁也无法取出,通过区块链的不可篡改性作为两人的爱情见证。这样做有什么问题?

如此下来,N个人怎么办?
如果按照这种方法,将私钥分为N份。但这样会有一系列问题。一. 如果N个人中任意一个人忘记私钥,则无法将钱取出。二.截断私钥长度,会降低安全性,因为私钥长度会直接影响破解难度(假如一共四个人,其中三个人串通起来,他们只需要尝试264种可能就可以破解),对于多个人的共享账户不要用截断私钥的方式,用多重签名。三.如果分手,该钱变成死钱,一直保存在UTXO集合中,对矿工不友好。

分布式共识

为什么比特币系统能够绕过分布式共识中的那些不可能结论?
严格地说比特币并没有达成真正意义下的共识,因为取得的共识随时都有可能被推翻。
比如:分叉攻击,本来你以为已经达成了某个共识,分叉攻击后系统会回滚到前一个状态。理论上甚至可能一直回滚到创世区块
按照分布式共识理论的要求,共识一旦达成后就不应该再改了,从这点来看,比特币并没有绕过分布式共识中那些不可能的结论。

发明比特币的中本聪应该不是学术界出身,否则他不会设计出像比特币这样的系统
搞科研是很有意义的,但是不要被学术界的思维限制头脑,不要被程序员的思维限制想象力

比特币的稀缺性

为什么要挖矿?因为有收益,且收益大于开销。早期BTC难度低且出块奖励高,从而吸引矿工。
之前有提到,BTC总量固定,有人认为其是一个精妙的设计。但实际上,总量固定的东西并不适合作为货币,这也就决定了BTC并不能在未来完全颠覆现有货币体系。以太坊中便没有BTC中出块奖励定期减半的做法,此外,某些新型货币会自带通货膨胀的功能。
对个人来说,通货膨胀并非好事,因为钱不值钱了。但人类每年创造的价值在增多,如果用总量固定的东西作为货币,则其只会越来越值钱,而这会导致拥有者不断看着其升值,其他没有的人无论如何奋斗都赶不上(房市也是如此,炒房使一部分人靠房租便可大赚特赚,个人奋斗却很难买房。这也是我国目前存在的较大的问题,社会财富的分配不公,最终引发各种社会矛盾,需要政府解决)。

量子计算

比特币这种建立在密码学上的加密货币,在量子计算出来后会不会变得不安全。

  1. 量子计算距离使用仍然有很长距离(在BTC的有生之年,不一定会产生实质性的威胁)
  2. 量子计算若真正强大到破坏现有加密体系的话,首先冲击的是传统金融业。
  3. 比特币使用非对称加密体系,通过私钥是可以推导出公钥的,公钥推不出私钥。假如量子计算发达之后,能够从公钥推出私钥的话,比特币又加了一层保护,实际中使用的并非公钥,而是用公钥的哈希。所以如果有人想偷你账户里的钱的话首先要通过地址推导出你的公钥。相当于把公钥的哈希进行逆运算推导出公钥的本身,这一点即使是量子计算机也没法完成。(在取哈希的时候本身就会有信息的丢失,BTC中用的SHA-256,无论输入多大,最终结果都为256位,必然会导致信息丢失,无法反推原本数据。)

收钱只需要提供公钥的哈希,取钱才需要公钥和私钥产生的签名,如果有人监听到你取钱的交易,知道你的公钥是什么,他要偷你的钱,他需要实时的从你的公钥推导出你的私钥,然后产生一个和你竞争的交易,你要把钱转到你的账户,他要把钱转到他的账户,即使是量子计算机,也很难在几分钟之内把你的私钥破解了,而且他发布的交易还要抢在你之前,因为一旦你把钱转走了,他的交易就没用了,属于double spending。所以从安全性的角度来看,地址一旦用过之后就不要再用了。每次取钱最好一次性都取走。除了支付给别人的钱,剩下的钱可以转给自己的另一个账户,这样不但提高了安全性,也提高了隐私保护的程度

区块链学习笔记12——BTC思考相关推荐

  1. 区块链学习笔记4——BTC实现

    区块链学习笔记4--BTC实现 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 UTXO 区块链是一 ...

  2. 区块链学习笔记2——BTC中的数据结构

    区块链学习笔记2--BTC中的数据结构 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 本文主要介绍 ...

  3. 区块链学习笔记一 BTC密码学原理

  4. 区块链学习笔记五 BTC网络

  5. 区块链学习笔记15——ETH状态树

    区块链学习笔记15--ETH状态树 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 引入 要实现的功 ...

  6. 区块链学习笔记16——ETH交易树和收据树

    区块链学习笔记16--ETH交易树和收据树 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 交易树和 ...

  7. 区块链学习笔记23——ETH反思

    区块链学习笔记23--ETH反思 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 智能合约真的智能吗 ...

  8. 区块链学习笔记19——ETH难度调整

    区块链学习笔记19--ETH难度调整 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 前面学过,比特 ...

  9. 区块链学习笔记21——ETH智能合约

    区块链学习笔记21--ETH智能合约 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 智能合约简介 ...

  10. 区块链学习笔记(一)——区块链和搓麻是一样一样的

    区块链学习笔记(一)--区块链和搓麻是一样一样的 新的开始 一个故事 要点 总结概念 几个搞笑的解释(真实性待查) 新的开始 你好! 这是我的第一篇学习笔记,想来想去就从近几年挺火的区块链开始吧,大多 ...

最新文章

  1. 您如何在PHP中解析和处理HTML / XML?
  2. python安装3.7.2_linux环境安装python3.7.2
  3. SAP IDES、DEV、QAS、PRD都是什么含义
  4. linux c之判断字符串是不是以另一字符串开始或者结尾
  5. 计算机标准符合,计算机专利申请要符合哪些标准
  6. kivy中文手册python_K-Meleon
  7. 网络通信协议-TCP/IP模型实战
  8. [转]使用jQuery获取radio/checkbox组的值的代码收集
  9. 【李宏毅机器学习】regress case study 回归案例研究(p3) 学习笔记
  10. java8如何兼容java7_尽管使用Java 8功能,项目如何支持Java 7
  11. Tomcat学习总结(16)—— Tomcat优化时的参数分析
  12. Linux学习课程笔记(1)
  13. 面向对象之自动绑定数据源
  14. Centos7 NAT网络连接方式以及NetworkManger进行网络连接管理
  15. centos 下mono安装
  16. 前加加与后加加(自增)
  17. 微信支付查询订单V2 接口
  18. 汽车驾驶技巧-倒车入库技巧图解-怎样倒车入库
  19. JavaScript学习笔记(BOM编程案例)
  20. 6个炒菜习惯 丢失营养

热门文章

  1. 年轻人,你应该拒绝奶头乐
  2. X站全称是什么_科普|HDMI是什么意思?有什么用处?一文带你了解HDMI的发展史...
  3. word毕业论文格式排版修改
  4. 用迅雷下载百度网盘的文件
  5. iphone 4s IOS9 越狱教程
  6. java读取pdf文档
  7. Asp.net学习过程分解(学习路线)
  8. python中如何判断词性_Python自然语言处理 5 分类和标注词汇
  9. WPS、EXCEL中输入公式F4插入绝对引用无反应的解决方法
  10. 参考文献外国名字写法