栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

区块链科普系列之1—区块链的由来

区块链科普系列之1—区块链的由来

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

区块链的历史

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) 节点把这个区块的哈希作为上一个哈希,并开始进行工作以竞争创建下一个区块。

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

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


总结

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号