当前位置: 首页 > news >正文

由比特币说起 - 区块链的前世今生及未来趋势

内容来源:2017年7月22日,系统分析师王士勇在“【济南】OSC源创会第65期”进行《由比特币说起 - 区块链的前世今生及未来趋势》演讲分享。IT 大咖说(ID:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:3245 | 6分钟阅读

嘉宾演讲视频地址: suo.im/4z8E9B

摘要

比特币越来越火,虽在国内尚不属于合法货币,但仍未能阻止人们火热的投资热情,也由此引发了人们对区块链的关注及重视。区块链(也包括比特币)做为源于开源社区的一项技术性创新,却由于去中心化的特点,已然形成一种文化。影响力也超越了技术本身。那么,比特币是什么?它是怎么出现的?现在发展到什么程度了?未来会发展成什么样子?他的技术原理是什么?区块链又是怎么回事?它的技术原理又是什么?为什么会得到了众多政府、机构、企业、个人的关注和青睐。凯文凯利曾说过:未来已经到来,只是尚未流行。欢迎大家一起来感受区块链的前世今生,感受尚未流行的未来。

什么是比特币?

比特币是一个基于P2P网络、基于开源软件的去中心化数字货币。总量是固定的2100万,目前已经有1500~1600万左右被挖掘出来了。获取手段有两种,一种是用钱买,另一种则是自己去“挖矿”。

比特币能火主要有两个原因,首先是因为它是去中心化、去信任化的货币,其次是因为它的总量不变,就不会出现通货膨胀。

货币的演变

在货币出现以前,人们通过以物易物或贝壳来换取自己所需的物品。后来黄金逐渐变成了大家约定俗成的货币。到现在我们用的都是纸币,纸币是一种信用货币。

比特币和纸币的差异在于,它依靠算法建立信用,而非基于国家信用。因为它的公开和去中心化,没有人可以控制它的发行和数量。而且在具体使用的时候过程中也解决了安全问题。

央行等五部门:比特币不作为货币在市场流通使用

在国内,由于政策原因,比特币更偏向属于投资品和收藏品。但是后来大家发现,比特币的去中心化、公开和去信任化这些特征背后的区块链对整个互联网的发展产生了很大的推动。

比特币的技术原理

比特币的整个技术架构,从区块数据到链式结构,包括数字签名、哈希函数、梅克尔树以及非对称加密。它还利用了分布式的网络,再加上共识层和激励机制,构成了整个比特币的技术原理。

比特币的几大特征

去中心化是由它的技术特征带来的货币特征。还有去信任化,货币最核心要解决的问题就是由完全陌生的双方来做货币的转移需要百分百可靠,才能承担货币的职能。

比特币有一套完整的共识机制,整个数据是公开透明的,比特币的交易过程和每个人钱包里持有的比特币,是不可篡改可追溯的。

而且这是一个P2P的、去中心化的整体网络,这些架构决定了如果真的用比特币做为货币来衡量世界的物质,它是具备了一个很稳定的体系。这些特征共同构成了区块链的价值。

互联网与互联网金融

互联网的核心是解决了信息的制造和传播,但一直没有解决价值和信用的转移问题。

这方面的优化和改进成就了阿里巴巴。互联网本身是一个分布式的、完全不受控的、自组织的体系架构,而为了解决价值和信用的转移,出现了中心化的信用机构,支付宝就属于这种机构。

这个架构体系会使得整个交易都局限在一定的机构,如果在双方互不信任的情况下,怎么完成价值和信用的转移呢?大家突然发现比特币背后的区块链是一个非常好的解决方案,它能够帮助建立一个全球性的信用共识体系,取代固定的第三方中介,实现去信任的机制。所以现在区块链被视为大型机、个人电脑,互联网之后的颠覆式创新。

中本聪首次提出区块链的思想

2008年,中本聪发表了文章《比特币:一种点对点的电子现金系统》,其中首次提到了区块链的思想。

区块链(比特币)的前世今生

比特币是一系列技术的组合,包括RSA的非对称加密算法、基于哈希函数多维树形结构的梅克尔树。

1990年的时候就有人提出了加密数字货币的概念,1995年的时候有人提出基于计算机程序的智能合约。在这过程中包含了SHA-1算法,以及P2P网络的出现。

基于这些,在2008年的时候中本聪为了构建比特币而创造出了区块链整个的体系机构。

区块链的重要成就:解决了拜占庭将军问题

如果有十个将军带领十支部队攻打同一个城市,分布在整个城市的四面八方。在假定通讯员可靠的情况下,这中间出现了叛徒,但叛徒的数量不超过一半,怎样保证一个正确的指令有效地传递给各方?

也就是说在一个P2P的网络中,要解决货币这种高可靠的问题,就必须考虑当网络部分节点不可靠的情况下,如何保证整体的可靠性。

区块链上的交易

第一步:所有者A利用他的私钥对前一次交易和下一位所有者B签署一个数字签名,并将这枚签名附加在这枚货币的末尾,制作成交易单。

第二步:A将交易单发布在全网,比特币就发给了B。每个节点都将收到的交易信息纳入一个区块中。

第三步:每个节点通过解一道数学难题,从而去获得创建新区块的权利,并争取得到比特币的奖励。

第四步:当一个节点找到解时,就会放弃继续解并把它作为一个新的起点,竞争下一个区块。这样就构成了一个闭环。

第五步:当全网的其它节点核对完该区块记账的正确性,确保没有错误之后,就会把合法区块记录在整个比特币链条中,再去竞争新的区块,构成完整的循环。

这样交易的过程就完成了。

最初的比特币是从哪里来的

1、最初的比特币是由系统奖励给抢到记账权记录的区块矿工的。

2、每一个区块在生成的时候就会在生成这个区块的矿工账户上生成一定数量的新的比特币作为奖励。

3、区块链上记录了所有比特币的交易记录。

4、只需要追溯所有与账户相关的历史交易就能知道这个账户上到底还有多少余额。

5、余额不足时,矿工就会拒绝记录交易。

6、每个比特币账户都有公钥和私钥,发起交易时用私钥对交易信息签名,矿工收到信息后用公钥验证签名,验证通过即为本人,否则为冒名顶替。

如何判断以谁的记录为准

1、共识机制:工作量证明。

2、设计一个数学问题,该数学问题会耗费大量的计算机CPU时间才能得出答案,同时每一次得出的结果都会作为下一次计算的初始条件进行再次计算。

3、全世界的矿工一起来计算这个问题,谁先得出答案,他就可以用这个答案生成一个新的区块,再广播到网络中。

4、收到这个新区块数据的矿工会立即停止当前的计算,用新区块里的数据重新进行下一次的计算。

5、矿工产生的区块一旦被网络接受,他就能获得一笔比特币作为报酬。

叉链

同一时间段内全网不止一个节点能计算出随机数,即会有各个节点在网络中广播它们各自打包好的临时区块。

某一节点曾收到多个针对同一前端区块的后续临时区块,则该节点会在本地区块链上建立分支,多个临时区块对应多个分支,该僵局的打破要持续到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。其它的短分支将会被网络彻底抛弃。

比较分叉的长短,存长弃短。

交易多久后可以到账

当交易发生的时候,比特币会及时显示在接收方的比特币钱包里。但要直到区块被确认成功后才可使用。

一笔比特币从支付到最终确认成功,需要得到六个节点确认之后才能真正确认到账,到账之后就不可篡改。

是否真的无法篡改

可以篡改。代价会随着全网算力的增强而变大,随着算力的减弱而变小。

控制全网51%算力的人可以篡改。

安全问题

公开的P2P网络是否会受到攻击

粉尘攻击:大量的微小交易,造成区块拥堵。

女巫攻击:在网络中,恶意实体模仿多个身份,通过控制系统的大部分节点来削弱正确数据冗余备份的作用。

如何避免记假账

不同于传统的单中心或单节点记账方案,没有任何一个节点可以单独记录账目,从而避免了单一记账人被控制贿赂而记假账的可能性。

非对称密钥对交易信息签名并广播。

共识机制+分布式节点的验证确认机制。

目前存在的问题

技术的挑战:吞吐量、高并发、一致性、可伸缩性、模块化、标准化等。

存在延迟,处理一笔交易需要10分钟。

容量与带宽的瓶颈。

安全性需要进一步提升,目前区块链上传输和存储的数据都是公开可见的,商业秘密与个人隐私。

用户体验,区块链的可交互性。

商业模式的挑战。

政府的监管态度与法律法规的不确定性。

区块链的发展趋势

区块链技术快速演变,新的技术在不断结合创造更有效的解决方案。

今天的分享就到这里,谢谢大家!


相关文章:

  • 典型用户和场景描述(团队项目)
  • 腾讯课堂:腾讯大神带你进阶性能测试
  • springboot整合mybatis开发
  • TypeScript+Webpack+React组件库开发采坑实记
  • gitlab的使用(待书写)
  • ssh免密码登陆设置时bad ownership or modes for file 报错的解决办法
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • 模块讲解
  • 真·APIO2018滚粗记
  • 面试-线程池的成长之路
  • mysql建数据库的字符集与排序规则
  • “互联网+教育”时代 亚信安全助力江汉大学“安全”云化
  • Java多线程处理某个线程超时的问题
  • 学习网站
  • 下单快发货慢:一个 JOIN SQL 引起 SqlClient 读取数据慢的奇特问题
  • Angular6错误 Service: No provider for Renderer2
  • CSS实用技巧
  • ES6系列(二)变量的解构赋值
  • Javascript基础之Array数组API
  • leetcode386. Lexicographical Numbers
  • python 装饰器(一)
  • Spring Boot快速入门(一):Hello Spring Boot
  • Vue2.x学习三:事件处理生命周期钩子
  • 大型网站性能监测、分析与优化常见问题QA
  • 当SetTimeout遇到了字符串
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 理清楚Vue的结构
  • 入手阿里云新服务器的部署NODE
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​水经微图Web1.5.0版即将上线
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (2015)JS ES6 必知的十个 特性
  • (3)(3.5) 遥测无线电区域条例
  • (C语言)fread与fwrite详解
  • (阿里云万网)-域名注册购买实名流程
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .net core控制台应用程序初识
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .Net 路由处理厉害了
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】