图说区块链
2021-05-22 23:47:59 79 举报
AI智能生成
区块链是一种分布式数据库技术,它通过加密算法将数据打包成一个个“区块”,并将这些区块按照时间顺序连接起来形成一个不断增长的链条。区块链的核心特点是去中心化、公开透明和不可篡改。区块链技术最初应用于比特币等加密货币,但现在已经被广泛应用于金融、供应链管理、物联网、版权保护等多个领域。区块链技术的出现为解决信任问题提供了新的解决方案,它有望在未来改变许多行业的运作方式。总之,区块链技术具有巨大的潜力和广阔的应用前景。
作者其他创作
大纲/内容
人物篇
永远的背影:中本聪的99种传说
中本聪
比特币的创造者,可以说区块链的核心理论就是他发明的
当尼克·萨博被自动售货机“砸中”
尼克·萨博
计算机科学家、密码学家、法律学者,是智能合约等创新概念的先驱
从华尔街走出的区块链女性领袖人物
凯瑟琳·尼科尔森
区块链创业公司BlockCypher的CEO
布莱斯·马斯特
数字资产控股公司的CEO
在《纽约时报》撰写专栏的男子
马克·安德森
比特币专栏作家
想投资所有数字资产项目的大亨
巴里·希尔伯特
数字货币集团(DCG)的CEO
应用篇
区块链+金融
区块链+银行
区块链+跨境支付
区块链+供应链
区块链+信息
区块链+证券
区块链+保险
区块链+互联网管理
区块链身份证
区块链+能源
区块链+电力
生态系统
能源智能化调控
区块链+政府
基础信息保护
公民身份认定
政务信息公开
政府税收监管
项目公开招标
救助资金监管
彩票网络发行
区块链+医疗
电子健康病例
“DNA钱包”
药品防伪
蛋白质折叠
区块链+版权
区块链+物联网
区块链+农业
区块链+慈善
区块链+其他
区块链+社交网络
装备篇
比特币简史:从何处来往何处去
1975年4月5日 中本聪的生日
1982年 拜占庭将军问题
1982年 密码学网络支付系统
1990年Paxos算法被提出
1991年 使用时间戳确保数位文件安全
1997年 哈希现金技术被发明
1998年 分散式电子现金系统B-money
2008年11月1日 比特币白皮书发布
2009年1月4日 创建“创世区块”
2009年1月11日 比特币客户端0.1版发布
2009年1月12日 第一笔比特币交易
2009年10月5日1美元=1 309.03比特币
2009年12月30日 比特币挖矿难度首次增长
2010年7月12日 第一次价格剧烈波动
2010年7月12日GPU挖矿开始
2010年8月6日 比特币网络协议升级
2010年10月16日 第一笔托管交易
2010年12月5日 比特币第一次与现实的金融社区产生交集
2010年12月16日 比特币矿池出现
2011年6月20日Mt. Gox出现交易漏洞
2011年6月29日 比特币电子钱包
2011年7月 比特币悬案
2011年11月10日 比特币POS(销售终端)研制成功
2012年8月14日 芬兰中央银行承认比特币的合法性
2012年9月27日 比特币基金会成立
2012年11月28日 区块奖励首次减半
2013年10月25日FBI成为比特币新富豪
2013年11年29日 比特币价格首度超过黄金
2013年12月5日 中国五部委发通知
2013年12月18日 比特币单价暴跌
2014年7月9日 波兰财政部确认比特币作为一种金融工具
2014年7月12日 法国发布比特币新规
2014年12月11日 微软接受比特币支付
2015年10月22日 欧盟对比特币免征增值税
2015年12月16日 比特币证券发行
2016年4月5日OpenBazaar上线
2016年5月25日 日本认定比特币为财产
2016年6月 民法总则划定虚拟资产保护范围
2016年7月20日 比特币奖励二次减半
2017年2月 中国央行数字货币试运行
区块链词条:人手必备拿好不送
区块链
比特币
中本聪
数字货币
PoW
公钥和私钥
哈希值
公有链和私有链
区块和链
智能合约
信用共识
R3
书籍信息
作者: 徐明星 / 田颖 / 李霁月
副标题:神一样的金融科技与未来社会
出版社:中信出版社
起源篇
账本演变:一本帐的兴衰发展史
账本起源
记忆
符号、绘图
节绳
流水账:收支项目按照时间顺序发生
文字
单式记账法
日记账
现金出纳账
复式记账法
龙门帐
四角帐
会计电算化
分布式账本
可以无限增加的巨型账本
每个区块可以视作这个账本的一页,每增加一个区块,账本就多了一页,这一页中可能会包含一条或多条记录信息
加密且有顺序的账本
账目信息会被打包成一个区块并加密,同时盖上时间戳,一个个区块按时间戳顺序链接形成一个总账本
去中心化的账本
由网内用户共同维护的,它是去中心化的
价值转移:互联网之后还有什么
互联网可以让信息高速、低成本地传输
在互联网上可以方便快速地生成信息并将其复制
有些信息是无法复制的
举个例子,我们把支付的钱直接复制给对方是不行的,而是要在付款账户上减去一些钱,在收款账户上增加一些钱,才能完成支付过程。
价值转移概念
价值转移不是直接传输
由一个中心化的第三方来做背书,政府或集团公司
中心化机构把所有价值转移的计算都放在一个中心服务器中进行处理,其中会涉及人的参与,而人的“有限理论”和“机会主义行为”往往会使整个系统变得不那么可信
区块链技术
无需第三方信用背书
区块链跨越多个遍布全球各地的节点,保存所有交易的历史记录
网络中所有授权的参与者都保存着一份完全相同的账本,一旦对账本进行修改,全部副本数据也将在几分钟甚至几秒钟内全部修改完毕
分布式账本中的每一笔交易都有独特唯一的时间戳,防止重复支付
可编程性,开源的技术
信用成本:你能记住多少人的脸
信用共识
相信一个人需要什么成本?一旦公信力机构出现了问题,信任又将何处安放?
公信力
指在社会生活中,公共权力面对时间差序、公众交往以及利益交换时,所表现出的一种公平、公正、公开、人道、民主与责任的信任力。当前社会,公信力一般由政府、国家机关或政府授权的第三方组织来提供。
区块链公信力
基于共识的数学方法,用算法证明机制来保证这份信任
区块链公信力网络是不可篡改的,任何节点企图更改信息都会被其他节点发现
区块链不制定政策,是一个公证人的角色,是政府建立和执行政策的工具
信任是建立在区块链上的,而非由单个组织掌控,可以被多方交叉验证与监督
实时自动撮合、强制执行、成本低
技术创新:从比特币到区块链
区块链是比特币的底层技术,是储存加密货币(例如比特币)的交易记录的公共账本
比特币
源于中本聪的《比特币:一种点对点的电子现金系统》
一个纯粹的点对点电子现金系统,使在线支付能够直接由一方发起并支付给另一人,不需要通过金融机构
不需要授信的第三方支持就能防止双重支付
对全部交易加上时间戳,并将他们并入一个不断延展的基于哈希算法的工作量证明的链条作为交易记录。除非重新完成全部的工作量证明,形成的交易记录将不可更改
最长的链条不仅将作为被观察的事件序列的证明,而且被视为来自CPU(中央处理器)的计算能力最大的池。只要大多数CPU的计算能力不被合作攻击的节点所控制,那么就会生成最长的、长度超过攻击者的链条
系统需要的基础设施非常少,节点尽最大努力在全网传播信息即可,节点可以随时离开和重新加入网络,并将最长的工作量证明作为该节点离线期间发生的交易的证明
原理篇
讲一个故事,什么是区块链
区块链本质上是一个去中心化的分布式账本,其本身是一系列使用密码学而产生的互相关联的数据块,每一个数据块中包含了多条经网络交易有效确认的信息
区块链其他规则
凭什么帮你记账?
知乎用户“玲珑邪僧”举过一个例子:单身男士们要找女朋友,“国民岳母”说,我有好多乖巧漂亮的女儿,我给你们出一个旷世难题,解出一个就给你们其中一个姑娘的微信号。于是,单身男士们疯狂竞争,想破脑袋去解这道旷世难题。只要其中一位单身男士解出一道题,就立马得意扬扬地昭告天下,示威全部单身男士,这个姑娘的微信号是我的啦,先到先得,你们放弃吧。其他单身男士虽然已经算到一半了,但是没有办法,速度不够快啊,只好立马去解下一道题。同时,首个成功破解旷世难题的幸运的单身男士不仅不用付彩礼,被其才华征服的“国民岳母”还会给这位单身男士一笔巨额财产做嫁妆,也就是比特币挖矿中的比特币奖励。
分叉问题听谁的?
记录需要5分钟才能完成,记录所用的时间变得不同了
双花问题
双花问题是指一笔数字现金在交易中被重复使用的现象
以比特币为例,运行比特币网络的步骤如下:
1. 新的交易向全网进行广播;
2. 每一个节点都将收到的交易信息纳入一个区块中;
3. 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;
4. 当一个节点找到了一个工作量证明,它就向全网进行广播;
5. 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
6. 其他节点表示他们接受该区块,而接受的方法则是跟随在该区块的末尾,制造新的区块以延长该链条,并将该区块的随机散列值视为新区块的随机散列值。
交易发生的一刻起,比特币的交易数据就被盖上了时间戳;而当这笔交易数据被打包到一个区块中后,就算完成了一次确认;在连续进行6次确认之后,这笔交易就不可逆转了;在比特币中,每一次确认都需要“解决一个复杂的难题”,也就是说每一次确认都需要一定的时间
当试图于把一笔资金进行两次支付交易的时候,因为确认时间较长,后一笔交易想要与前一笔交易同时得到确认几乎是不可能的,而这笔资金在第一次交易确认有效后,第二次交易时就无法得到确认
讲一下原理,区块链如何运作
区块链的核心概念
区块
区块作为区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构成
区块头包含三组元数据:
用于连接前面的区块、索引自父区块哈希值的数据
挖矿难度、Nonce(随机数,用于工作量证明算法的计数器)、时间戳
能够总结并快速归纳校验区块中所有交易数据的Merkle(默克尔)树根数据
区块链系统大约每10分钟会创建一个区块,包含了这段时间里全网范围内发生的所有交易
每个区块中包含了前一个区块的ID(识别码),使得每个区块都能找到其前一个节点
哈希算法
哈希算法是区块链中保证交易信息不被篡改的单向密码机制。
哈希算法接收一段明文后,以一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据
加密过程不可逆,无法通过输出的散列数据倒推原本的明文
输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必将导致最终输出的散列数据的变化
在区块链中,通常使用SHA–256(安全散列算法)进行区块加密
这种算法的输入长度为256位,
输出长度为32字节的随机散列数据
公钥和私钥
不对称加密方式
公钥就是给大家用的,用来加密/验章
私钥就是自己的,私钥用来解密/签章
在比特币的系统中,私钥本质上是32个字节组成的数组,公钥和地址的生成都依赖私钥,有了私钥就能生成公钥和地址,就能够花费对应地址上面的比特币。私钥花费比特币的方式就是对这个私钥所对应的未花费的交易进行签名。
在区块链中
使用公钥和私钥来标识身份
公钥和私钥还可以保证分布式网络点对点信息传递的安全
信息发送者:用私钥对信息进行签名,使用信息接收方的公钥对信息加密
信息接收方:用信息发送者的公钥验证信息发送者的身份,使用私钥对加密信息解密
时间戳
对应的是每一次交易记录的认证,证明交易记录的真实性
直接写在区块链中的,而区块链中已经生成的区块不可篡改,一旦篡改,生成的哈希值就会变化,从而变成一个无效的数据
每一个时间戳会将前一个时间戳也纳入其随机哈希值中,这一过程不断重复,依次相连,生成一个完整的链条
Merkle树结构
区块链利用Merkle树的数据结构存放所有叶子节点的值,并以此为基础生成一个统一的哈希值
Merkle树的叶子节点存储的是数据信息的哈希值,非叶子的节点存储的是对其下面所有叶子节点的组合进行哈希计算后得出的哈希值
区块中任意一个数据的变更都会导致Merkle树结构发生变化
比特币的工作流程
创世区块,区块链中的第一个区块
挖矿,在“创世区块”诞生之后,比特币的用户通过计算寻找满足特定SHA–256哈希值对应的数值解
当任意一个用户优先计算出符合要求的数值解时,就会在全网范围内广播,而网络中的其他节点收到这条信息会进行验证,若通过验证,其他节点就会放弃计算,并将新创建的区块加到前一个区块的后面
随着越来越多的人加入比特币的区块链系统,一个又一个哈希值的数值解被找到,在不断重复的过程中,新的区块不断地生成、验证,最终形成一个主链
哈希算法的难度也会调整,以此控制用户们解出数据所用的时间
在比特币的实际交易过程中,单笔交易的区块向区块链中的所有用户发布广播,全网用户通过验证哈希值来确认这笔交易是否有效,一旦被认证为有效,这个区块就会被加盖时间戳,然后被添加到区块链主链上
区块链的工作原理
假设A和B之间要发起一笔交易,A先发起创建一个新的区块的请求,这个区块就会被广播给网络里的所有用户,所有用户验证同意后该区块就被添加到主链上
这条链上拥有永久和透明可查的交易记录
区块链的四大特点
去中心化:在一个去中心化的金融系统中,没有中介机构,所有节点的权利和义务都相等,任意节点停止工作都不会影响系统整体的运作
去信任:系统中所有节点之间无须信任也可以进行交易,因为数据库和整个系统的运作是公开透明的,在系统的规则和时间范围内,节点之间无法欺骗彼此
集体维护:系统是由其中具有维护功能的所有节点共同维护的,系统中所有人共同参与维护工作
可靠的数据库:系统中每一个节点都拥有最新的完整数据库拷贝,修改单个节点的数据
库是无效的,因为系统会自动比较,认为最多次出现的相同数据记录为真
讲几个问题,区块链底层架构
区块链的模型架构
数据层
描述区块链技术的物理形式
网络层
实现区块链网络中节点之间的信息交流
本质上是一个P2P(点对点)网络
节点之间通过维护一个共同的区块链来保持通信
每一个节点都可以创造新的区块,在新区块被创造后会以广播的形式通知其他节点进行验证,当全区块链网络中超过51%的用户验证通过后,这个新区块就可以被添加到主链上了
共识层
共识层能让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识
激励层
提供一定的激励措施,鼓励节点参与区块链的安全验证工作
以比特币为例,在比特币总量达到2 100万枚之前,奖励机制有两种,新区块产生后系统奖励的比特币和每笔交易扣除的比特币(手续费)。而当比特币总量达到2 100万时,新产生的区块将不再生成比特币,这时奖励机制主要是每笔交易扣除的手续费
合约层
指各种脚本代码、算法机制以及智能合约等
以比特币为例,比特币是一种可编程的货币,合约层封装的脚本中规定了比特币的交易方式和过程中涉及的种种细节
应用层
应用层封装了区块链的各种应用场景和案例
区块链的基本类型
公有链
指全世界任何人都可读取、任何人都能发送交易且交易能获得有效确认,任何人都能参与共识过程的区块链
保护用户免受开发者的影响
开发者无权干涉用户,区块链保护用户
访问门槛低
任何人都可以访问,只要有一台能够联网的计算机
所有数据默认公开
公有链中的每个参与者可以看到整个分布式账本中的所有交易记录
私有链
指其写入权限仅在一个组织手里的区块链,目的是对读取权限或者对外开放权限进行限制
交易速度非常快
少量的节点具有很高的信任度,并不需要每个节点都来验证一个交易
为隐私提供更好的保障
数据不公开
交易成本大幅降低甚至为零
可以进行完全免费或者至少说是非常廉价的交易
有助于保护其基本的产品不被破坏
银行和传统的金融机构使用私有链可以保证它们的既有利益,以至原有的生态体系不被破坏
联盟链
指其共识过程受到预选节点控制的区块链
联盟链可以视为“部分去中心化”,区块链项目R3 CEV就可以认为是联盟链的一种形态
其他的说法
许可链
许可链是指每个节点都需要许可才能加入的区块链系统,私有链和联盟链都属于许可链
混合链
复杂链
区块链的发展脉络
区块链1.0
以比特币为代表的可编程货币
数字货币领域的创新,如货币转移、兑付和支付系统等
区块链2.0
基于区块链的可编程金融
合约方面的创新,特别是商业合同以及交易方面的创新,比如股票、证券、期货、贷款、清算结算、所谓的智能合约等
区块链3.0
区块链在其他行业的应用
人类组织形态的变革,包括健康、科学、文化和基于区块链的司法、投票等
区块链的共识机制
工作量证明
工作量证明(PoW)
PoW依赖机器进行数学运算来获取记账权
优点
完全去中心化
缺点
比特币已经吸引全球大部分的算力,其他再使用PoW共识机制的区块链应用很难获得相同的算力来保障自身的安全
挖矿造成大量的资源浪费
共识达成的周期较长
权益证明
权益证明(PoS)
PoS的主要理念是节点记账权的获得难度与节点持有的权益成反比
这个系统中存在一个持币人的集合,他们把手中的代币放入PoS机制中,这样他们就变成验证者。比如对区块链最前面的一个区块而言,PoS算法在验证者中随机选取一个(选择验证者的权重依据他们投入的代币量,比如一个投入押金为10 000代币的验证者被选择的概率是一个投入1 000代币验证者的10倍),给他权利产生下一个区块。如果在一定时间内,这个验证者没有产生一个区块,则选出第二个验证者代替产生新区块
优点
在一定程度上缩短了共识达成的时间
不需要大量消耗能源去挖矿
缺点
还是需要挖矿,本质上没有解决商业应用的痛点;
所有的确认都只是一个概率上的表达,而不是一个确定性的事情
股份授权证明
股份授权证明(DPoS)
节点选举若干代理人,由代理人验证和记账,持币者投出一定数量的节点,进行代理验证和记账
执行该模式的基本步骤
成为代表
成为一位代表,你必须在网络上注册你的公钥,并获得一个32位的特有标识符
该标识符会被每笔交易数据的“头部”引用
授权投票
每个钱包有一个参数设置窗口,在该窗口里用户可以选择一位或更多的代表,并将其分级
一经设定,用户所做的每笔交易将把选票从“输入代表”转移至“输出代表”
保持代表诚实
每个钱包将显示一个状态指示器,让用户知道他们的代表表现如何
如果他们错过了太多的区块,那么系统将会推荐用户更换一位新的代表
如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每个钱包进行更多交易前要求选出一位新代表
抵抗攻击
前100位代表所获得的权力是相同的,即每位代表都有一项平等的投票权
由于只有100位代表,一个攻击者可以对每位轮到其生产区块的代表依次进行拒绝服务攻击。由于每位代表的标识是其公钥而非IP地址,这将使确定DDoS(分布式拒绝服务)攻击目标更为困难
优点
大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点
整个共识机制还是依赖于代币,而很多商业应用是不需要代币的
投注共识
投注共识(Casper)
按区块达成的
Casper惩罚机制
如果你两次的投注序号一样,或者说你提交了一个无法让Casper依照合约处理的投注,你将失去所有保证金
Casper协议下的验证人需完成出块和投注两个活动
出块
独立于其他所有事件而发生的过程,验证人收集交易,当轮到他们的出块时间时,他们就制造一个区块,并签名,然后发送到网络上
投注
模仿传统的拜占庭容错共识:观察其他的验证人如何投注,取33%处的值,向0或者1进一步移动
客户端确认当前状态的过程
下载所有的区块和投注,用上面的算法来形成自己的意见,但是不公布意见
简单地按顺序在每个高度进行观察,如果一个区块的概率高于0.5就处理它,否则就跳过
如果高度k之前的每个区块形成的意见高于99.999%或者低于0.001%,那么客户端就可以认为前k个区块已经最终确定
瑞波共识
使一组节点能够基于特殊节点列表形成共识
初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由该俱乐部51%的会员投票通过
共识遵循这些核心成员的“51%权力”,外部人员则没有影响力
Pool验证池
基于传统的分布式一致性技术以及数据验证机制
优点
不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)的基础上,实现秒级共识验证
缺点
去中心化程度不如比特币,更适合多方参与的多中心商业模式
实用拜占庭容错
实用拜占庭容错(PBFT)
只要系统中有2/3的节点是正常工作的,就可以保证一致性。
实用拜占庭容错算法的过程
客户端向主节点发送请求调用服务操作
每个由副本节点发给客户端的消息都包含了当前的编号,使得客户端能够追踪编号,从而进一步推算出当前主节点的编号
客户端通过点对点消息向它自己认为的主节点发送请求,然后主节点自动将该请求向所有备份节点进行广播
主节点通过广播将请求发送给其他副本,然后执行三个阶段的任务
预准备阶段
准备阶段
确认阶段
优点
允许强监管节点参与
具备权限分级能力
性能更高、耗能更低
允许33%的节点作恶,容错性为33%
授权拜占庭容错
授权拜占庭容错算法在实用拜占庭容错算法的基础上进行了改进
将C/S(客户机/服务器)架构的请求响应模式改进为适合P2P网络的对等节点模式
将静态的共识参与节点改进为可动态进入、退出的共识参与节点
为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点)
在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题
优点
专业化的记账人
可以容忍任何类型的错误
记账由多人协同完成
每一个区块都有最终性,不会分叉
算法的可靠性有严格的数学证明
缺点
当1/3及以上的记账人停止工作后,系统将无法提供服务
当1/3及以上的记账人联合作恶,且其他所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据
帕克索斯算法
传统的分布式一致性算法,是基于选举领导者的共识机制
领导者节点拥有绝对权限,并允许强监管节点参与,其性能高,资源消耗低
所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性
分支主题
0 条评论
下一页