文章目录

  • 区块链的历史
  • 比特币白皮书
    • 传统交易存在的问题
    • 比特币的解决方案
  • 总结

区块链的历史

2008年10月31日,一个密码学极客中本聪在“metzdowd.com(密码朋克)”网站的邮件列表中发表了一篇论文,题为《比特币:一种点对点的电子现金系统》,人称“比特币白皮书”。随即,比特币在极客圈和密码朋克圈掀起了一股浪潮。

3年后,比特大陆创始人吴忌寒将比特币白皮书翻译成中文,并首次提出了”区块链“一词。此后,人们也用”区块链“来描述比特币的底层技术和设计思想。

随着十余年的发展,区块链技术蓬勃发展,加拿大Vitalik Buterin在2013年首次提出以太坊的概念,并于2014年成功上线支持图灵完备的区块链平台—以太坊,通过以太坊,开发者第一次实现了在区块链上发布智能合约的设想。

2015年12月,由Linux基金会主导并牵头,IBM、Intel、Cisco等巨头同时宣布了Hyperledger联合项目成立,超级账本将区块链技术引入到联盟链的应用场景中,为未来基于区块链技术打造高效率的商业网络打下基础。

而到了今天,在国家政策的号召下,区块链技术的应用和创新正在加速发展,区块链概念正在被更多的人接受,但是绝大多数人并不了解区块链到底是什么,以及区块链的由来,请继续阅读这篇文章,相信你能找到答案。


比特币白皮书

要想深入理解区块链思想,更好地应用区块链技术,阅读比特币白皮书(下称"白皮书")是必不可少的一步。限于篇幅,这里就直接给出某场景,如下:

A在购物商城上购买B的货物,通过第三方金融机构来处理电子交付。

传统交易存在的问题

上面场景会存在什么问题呢?

  1. 交易信任问题:交易的前提是买卖双方都信任第三方金融机构,但在某些场景下,并不存在完全可信的第三方机构,此时交易可能不会发生,甚至买卖房某一方上当
  2. 交易成本问题:一般交易过程只涉及到买卖双方,第三方的介入增加了交易的成本,如交易时间、交易数量等
  3. 交易毁约问题:在某些情况下,交易可能存在反悔的可能,比如买方需要退货、或者卖方终止交易,此时无端的耗费了某一方的资源,并降低了双方的信任度
  4. 交易透明度问题:传统的交易只发生在三方之间,对外界保密,因此存在内部交易等其他问题

因此,中本聪建立一个电子支付系统,此系统建立在密码学基础上(而不是信任),允许任意有意愿的双方直接转账而不需要第三方介入,并且交易是不可撤销的,这将保护卖方权益防止被骗,此外此系统应该是完全透明的,任何交易都对系统内的其他人可见,最后要保证系统是安全的。

比特币的解决方案

信任问题

比特币诞生之初就完全开源,任何用户都可通过运行开源代码从而接入区块链网络,产生交易的代码完全公开透明

所有比特币交易都是基于密码学的,也就是说交易是基于物理规则而不是信任的,其完全隔离了人为因素

交易记录公开透明,比特币(区块链)的所有交易记录都是公开透明的,所有人都可以在网络上查到每一笔交易记录。

交易成本问题(去第三方)

系统内的用户需要遵守一套规则(共识机制),以此实现去中心化,系统内人人平等,任何用户下线或上线都不影响运行。

交易毁约问题

区块链的数据结构和运行机制保证了所有数据都能真实记录,无法被篡改。

**白皮书节选1:** 我们把一种电子币定义成一条数字签名链。
每一个所有者把币转给下一个人的时候,是通过将前一个交易的哈希和下一个所有者的公钥进行数字签名,
并把这些追加在币的后面。收款人可以通过验证数字签名来确认链的所有者。

上面可以看到,每一条记录都与上一条记录相关,因此无法篡改之前的历史记录,并且由于比特币是一种分布式记账系统,不同节点间的数据完全同步,篡改系统内所有节点上的数据需要的工作量是不可能实现的。

双花问题——共识机制

在交易发生时,存在一个无法避免的问题——双花问题:收款人无法验证其中的一个所有者是否同一个币花了两次(双花)。一个普遍的做法是引入一个信任的铸币厂,每次交易后币必须返回铸币厂,并再次发行新币,只有直接从铸币厂发行的币才被相信是没有被双花的,但这违背了去中心化的思想。

为了在无第三方参与的情况下,我们需要让收款人知道币并没有被上一个交易者使用,仅有的可以确认某交易是否双花的方法是知道所有交易,因此我们需要将交易对公众进行广播。

并且我们需要一个共识机制,那就是公众要认同一个按收到的交易顺序排列的历史记录,收款人需要证据来说明在每一笔交易的时候,大多数节点一致认为这个交易是第一时间到达的。(我的理解是如果存在交易双花问题,那么在系统内的所有交易顺序将会存在不同,比如某交易同时到达A、B,再经过共识排序后,A、B的交易列表将会不一致)

时间戳服务器——共识机制的前提

我们提出的解决方案从一个时间戳服务器开始。这个服务器工作方式是,对条目所在的区块的哈希加盖时间戳,并且广泛的公布这些哈希,比如通过报纸或新闻组邮件。显然,为了能进入这个哈希序列,时间戳证明的数据在那个时间必须存在。每一个时间戳和以前的时间戳,形成一条链,每一个追加的时间戳都是对前一个时间戳进行加强。

此时,每条发生的交易都存在一个时间戳,也就存在了排序的可能

工作量证明——实现时间戳服务器

为了基于点对点的基础实现一个分布式的时间戳服务器,我们将需要一个工作量证明的系统,这个系统和亚当·贝克的哈希现金类似,而不是报纸或新闻组邮件。这个工作量包含寻找一个哈希值,比如用哈希算法SHA-256,这个哈希值以若干0开头。平均工作量和开头的0的个数是指数关系,并且验证很简单,只需要执行一次单独的哈希计算。

在我们的时间戳网络里,是这样实现工作量证明的,就是不断增加区块里的一个临时的数值,直到找到一个值使得区块的哈希值满足开头0的个数的要求。 一旦CPU花费算力计算满足了工作量证明的要求,这个区块链就无法修改,除非重新计算。随着后面的区块不断产生,想要改变这个区块,需要重做它后面所有区块的工作量。

并且随着链长度的增加,落后的攻击者追上的概率呈指数级减小。

网络运行

运行这个网络的步骤如下:

1) 新交易给所有节点广播。

2) 每个节点将新交易放到一个区块。

3) 每个节点开始为这个区块寻找相应难度的工作量证明。

4) 当一个节点找到了这个工作量证明,把这个区块广播给所有节点。

5) 如果区块里所有的交易是有效的并且是没有被花费的,节点就会接受这个区块。

6) 节点把这个区块的哈希作为上一个哈希,并开始进行工作以竞争创建下一个区块。

节点总是认为最长的链是正确的,并且不断的工作去延长它。如果两个节点同时广播下一个区块,一些节点可能接受其中一个,也可能是另一个。这种情况下,他们在最先收到的区块上工作,但是也会保存另外一个分支以防它会变得更长。当下一个工作量被找到并且一个分支变得更长时,这种情况就会被打破,在另外一个分支上工作的节点将会切换到这个长的链上。

新交易广播不一定要广播到所有节点。只要他们能到达很多节点,这个交易很快就会进入下一个块。区块广播也能接受消息丢失。如果一个节点没有收到区块,当它收到下一个块时会发现自己少了一个区块,它就会请求来获得少的这个区块。


总结

上面,我对为什么提出比特币(区块链技术)给出了自己的看法,并借助白皮书来简略的介绍了一下比特币的实现,下一篇将继续深入介绍比特币的实现。

顺嘴一提,我本人之前是做区块链落地实现,在一次面试中与面试官交流时,其旁征博引使我自惭形秽,尤其是在区块链基础知识方面,因此写下此文,以此感谢面试官的教诲!

区块链科普系列之1—区块链的由来相关推荐

  1. ctf 区块链_区块链科普002:什么是区块?白话通俗讲解区块是什么意思?

    原标题:区块链科普002:什么是区块?白话通俗讲解区块是什么意思? 八宝饭区块链科普:什么是区块 区块链的价值已经获得多方认可,各项行业应用都在探索尝试,因此形成了基于不同底层架构.针对不同行业应用的 ...

  2. vue标准时间改为时间戳_区块链科普005:什么是时间戳?白话通俗讲解时间戳是什么意思?...

    原标题:区块链科普005:什么是时间戳?白话通俗讲解时间戳是什么意思? 八宝饭区块链:什么是时间戳 时间戳是什么?可能很多人都没有听过,但是作为办公一族应该掌握这个技能.时间戳技术就是数字签名技术一种 ...

  3. 京东区块链之科普篇:京东在区块链技术领域的应用与布局

    云妹导读: 近些年来,区块链这一词频繁出现在人们的眼前.从达沃斯论坛到纳斯达克,从央行数字货币到 Facebook的libra 项目,各大跨国银行.互联网巨头也在区块链赛道频频发力.区块链正快速走进大 ...

  4. 区块链知识系列 - BTC和ETH的区别

    Bitcoin的出块时间 Bitcoin的区块平均产生时间是10分钟,每个区块的大小限制在1M左右 一个事务有了6个确认,我们就认为这个事务已经确定了,所以一个事务要1小时左右才能保证成功(最快),不 ...

  5. 区块链知识系列 - 系统学习EVM(二)-存储与安全

    区块链知识系列 - 系统学习EVM(一) 特点 EVM出于所谓运算速度和效率方面考虑,采用了非主流的256bit整数. 不支持浮点数 缺乏标准库支持,例如字符串拼接.切割.查找等等都需要开发者自己实现 ...

  6. 区块链知识系列 - App 与 DApp 的区别

    App vs DApp App = frontend + server DApp = frontend + contracts App DApp 入口 电脑浏览器/手机 Dweb浏览器/数字钱包 协议 ...

  7. 区块链知识系列 - 区块链大事记

    突然想要整理一下区块链界的大事记,正是这些有趣的事迹,使得这门基于密码学的学科,充满了趣味与人性,吸引着我继续去探究. 区块链大事记 2008年11月1日,中本聪发布了比特币白皮书<比特币:一种 ...

  8. 区块链入门系列之梅克尔帕特里夏树

    区块链入门系列文章 区块链基本概念和名词解释 P2P 共识算法 梅克尔-帕特里夏树 从零开始搭建区块链 这里写自定义目录标题 区块链入门系列文章 前言 Merkle树 MPT 总结 前言 在讲基本概念 ...

  9. 区块链应用系列 - DID

    参考: https://mp.weixin.qq.com/s/3pUC0uRwQAJJ-QC_FF-QTg https://w3c.github.io/did-core https://www.w3. ...

最新文章

  1. 有人统计了2万篇论文发现:想增加引用量,最好少说「黑话」
  2. linux 可执行文件权限不够,root执行/media可执行文件权限不够,chmod修改权限无效...
  3. python操作文件的库_Python使用pyshp库读取shapefile信息的方法
  4. opencv3.10加入OPENCV_contrib模块
  5. js if判断多个条件_EXCEL一对多条件查找显示多个结果(INDEX+SMALL+IF+ROW函数组合)...
  6. 谷歌guava_Google Guava:您永远不会知道的5件事
  7. java实现报表_用存储过程和 JAVA 写报表数据源有什么弊端?
  8. LeetCode 419. 甲板上的战舰
  9. Large Memory Footprints on AIX
  10. 毕设日志2019.4.2——tf版本的faster rcnn的代码运行
  11. 关联分析研究思路及应用:GWASTWAS
  12. 中国剩余定理----51nod1079
  13. Excel函数实战技巧精粹(三)常用函数之INDEX与MATCH组合详解
  14. 交叉编译 openwrt 平台上的开源 H3C iNode 客户端 njit-client
  15. 【LOJ2863】「IOI2018」组合动作
  16. uni-app开发小程序,笔记记录6 商品详情页
  17. 大数据Hadoop等大数据架构学习
  18. CCF CSP 202109-3 脉冲神经网络
  19. 不安装工具快速破解网吧不能下载、注册表锁定、窗口不允许等
  20. pve(proxmox ve)强制关闭虚拟机

热门文章

  1. vue跳转链接(新页签)
  2. 全连接网络和卷积神经网络对比分析
  3. html5+css3布局尝试
  4. 关于ionic环境卸载
  5. Microsoft Word中编辑Visio图形的方法
  6. Angular4 自制华容道拼图(可以升级难度、关卡、更换图片)
  7. 如何逆序输出一个整数
  8. Mac 重命名快捷键
  9. Some NCCL operations have failed or timed out.
  10. 公告:CSDN个人空间即将改版