区块链知识正在爆炸式发展,这篇文章算是区块链的扫盲文章,文章将围绕两个主题进行阐述:什么是区块链,以及区块链的应用。看完本篇文章,争取让你初步搞清楚 区块链 和 分布式 究竟是在解决什么问题,为什么区块链会是一个新的风口。...
区块链知识正在爆炸式发展,这篇文章算是区块链的扫盲文章,文章将围绕两个主题进行阐述:什么是区块链,以及区块链的应用。看完本篇文章,争取让你初步搞清楚 区块链 和 分布式 究竟是在解决什么问题,为什么区块链会是一个新的风口。
2008年11月1日 中本聪 发表《白皮书》:《比特币:一种点对点的电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System)
什么是区块链?区块链和比特币的关系
区块链 == 区块 + 链
区块是什么呢?区块里装的是什么东西呢?
区块本身承载的是账单信息,比如 A卖给B 5个BTC。把账单信息打包成块,就叫区块
一个区块1MB,差不多承载4000条交易信息
链 又在强调什么呢?
把每个区块串联成一个长链,就构成了区块链。
为什么要挖矿,矿会不会被挖完?
要理解区块链什么叫挖矿,我们先介绍一下区块链技术要解决的问题
区块链如何实现去中心化:产生一笔交易 >> 由矿工把这笔交易打包成区块 >> 在完成一笔挖矿后把区块拼接到区块链上。
这样从交易到记录都由区块链记录,没有任何人工的维护成本,且不需要任何一个中心化的组织来承认这笔交易。
问题1:交易信息的安全问题
a.如何防伪(比如:B广播消息说A支付了10个BTC,但A实际上并没有支付)
首先有一个前提,区块中记录的是A给了B多少BTC,也就是账单一定是A发出来的。是不存在B说A给了他多少BTC的账单。
防伪技术中使用到4个名词:私钥、公钥、签名、交易信息,简单介绍一下:
私钥和公钥都是非对称加密算法中的两个术语: 非对称加密指的是:加密时使用的是 私钥,但解密时使用的是 公钥。 私钥是自己保密的,公钥是可以分发出去的。 私钥加交易信息会生成签名:「私钥」 + 「交易信息」 >> 「签名」
通过公钥可以对签名进行解密,获得交易信息:「公钥」+「签名」 >> 「交易信息」
用图示描述上述流程即:
以A给B 10个BTC为例阐述上述流程:
首先A使用自己的私钥 将 A给B 10 btc 的交易信息 加密,生成签名 接着A把 签名 、公钥、交易信息 一起广播告诉大家 C收到A广播的信息后,使用A提供的公钥对签名进行解密,获得 交易信息I,然后将解密后获得的交易信息I和收到的交易信息进行匹配,如果两者相等,那么表示这条信息是真的,可以被打包进区块链,图示如下:
b.篡改(订单消息被人改了怎么办)
按上图分析的流程,当订单被人篡改后,交易信息I 和 交易信息 是匹配不上的,也就是说是个假信息,是不会进入打包成块的环节的
但是!如果有人说我就知道它是假的信息,我还是想打包到区块链里面,让区块链里存在假信息,这是可以做到的吗?
当然做是可以做的,但区块链有一个 “最长链” 原则,也就是区块链的规则里只会承认链条最长的那个区块链上的数据,如果你自己单独开辟了一条区块链上面加了假数据,除非你的电脑算力可以跑过除了你之外的其余所有人的电脑算力,否则你新开辟的区块链就会因为不够长,上面的信息不被承认。
图示中下面那条区块链绿色表示假的交易信息,你自己所打包的信息只能在下面那条链上追加区块,但世界上其余所有计算机的算力计算出的区块都是追加到上面那条区块链上面的。
c.双重支付(一个人同时发给两个人支付10个BTC,但这个人本身只有10个BTC)
双重支出指的是一笔钱花两次,我们一起来看一下这个例子。
你去星巴克用现金买了一杯咖啡花了 10 美元。现在这十美元现金被放到了星巴克的钱匣。你无法再用这十美元去买其他的东西了,除非你把这笔钱偷回来。
你付钱的同时,星巴克的服务员马上确认了你的付款,然后给了你咖啡作为交换。
但是比特币不一样,作为一个电子货币,它是可以被复制并且重新广播到网络上的,所以如果没有一个很好的确认机制,消费者会有可能把同一笔钱花两次。 解决双重支付有一个基本的前提:每个使用BTC的人都会把区块链从创世纪那一刻都下载下来,然后 A说要付给B 10个BTC,那么别人就可以进行一个检查:可以在区块链里面去查A这个账户还剩下多少BTC。
两笔交易都会到达一个待确认交易池。但是只有第一笔交易可以得到确认,并且被矿工在下一个区块签名验证。你的第二币交易会被矿工判定无效,进而被从网络中删除。
但是!如果两笔交易同时被矿工确认了呢?
如果两个矿工同时从待确认池取走了这两笔交易,那么拿到最多确认的交易将会被记入账本,另一笔将会被忽略。
聪明的你可能会发现,这个做法对商家来说是不公平的,因为付给商家的交易有可能会被网络忽略或者回滚。这就是为什么,我们建议商家等待要至少六轮的确认。每轮确认都会有一个新的区块被加入到账本中。也就是说,商家要等待 6 个新的区块被加入账本才能确保交易不会被回滚或是被修改,进而确定消费者无法发动双重支付。
为什么要等6轮呢?
因为这时候,为了成功发起双重支付,消费者必须回滚 6 个区块。这需要大量的算力,被认为是不可能的。
问题2:矿工凭什么要帮我把交易信息打包成区块
要了解矿工的工作,我们先搞清楚比特币"抵抗通胀"的处理方式
通货膨胀率(Inflation Rate)的定义 通货膨胀,是一种货币现象,指货币发行量超过流通中实际所需要的货币量而引起的货币贬值现象。
所有如果比特币会无限发行,那么最终比特币一定会出现膨胀的问题。
中本聪发明比特币的目的之一就是为了抵抗现实世界法币的通胀。
为了解决通胀问题,中本聪提出了“奖励减半机制”(Bitcoin Halving):
比特币系统每产生21万个区块,新区块的挖矿奖励就会减少一半。
通过这种设计,整个比特币系统的通胀率会随着时间的推移逐渐归零。
知道比特币减半的逻辑后我们来反推出比特币的总量:一共有2100万枚
比特币每10分钟出一个块,按一年365天计算,可以算出比特币约4年减半。
按照这个规律,最后的比特币将在2040年被挖出,在那之后矿工生产的区块将不再有奖励,他们还可以继续靠用户的转账支付的手续费来生存。
矿工们挖矿(记账)是有奖励的:
a. 手续费收益 A付给B 10个BTC,A还要额外支付点手续费给接受的人 b. 打包奖励
问:当btc被挖完之后,还有人愿意挖矿吗?
答:会的,还有额外的手续费可以支撑矿工的成本。
问题3:比特币减半和比特币价格波动有关系吗?
分析角度1:回顾历史
看过往历史,比特币的减半会导致比特币的暴涨,我们看一下过往比特币的减半走势
2008年11月,比特币正式发售
2012年11月,比特币第一次减半:比特币从40涨到最高1100,涨幅27.5倍
2016年11月,比特币第二次减半:比特币从1000涨到最高20000,涨幅20倍
2020年11月,比特币第三次减半:截止到今天2021年2月13日,比特币从13000涨到最高47000,共3.61倍,保守估计比特币会涨到550000,但按以往存在超买的情况,所以比特币甚至可以冲击70000美元,实现一币一别墅。
分析角度2:引入SF模型 SF模型介绍
在分析减半暴涨逻辑前,先介绍一个经济模型 :存量-产量 模型 Stock to Flow Model
存量(Stock):指某个商品在整个社会上一共有多少库存
产量(Flow):年产量
将 存量 / 产量 得到一个值,这个值给一个缩写为SF比(Stock/Flow)
黄金的SF比是62,白银是22。翻译成大白话就是:如果你要生产出目前人类商品社会所拥有的全部黄金存量,你需要62年。白银的话是22年,铂金是0.4年。
黄金和白银的SF比都很高,属于严格意义上的稀缺
我们生活中的食物、汽车、手机等,SF比都远远小于1,谈不上任何稀缺性。
之所以产生这种现象是因为只要是商品,只要是有人需要,理论上它就可以被无限生产。一旦市场中有人囤货,使得价格上涨,就会吸引更多的企业来生产。供应一增加,价格就会回落。
所以我们可以得出这么一个结论:某种商品的SF比越高,那么它的价值就越难被稀释,就越保值。
比特币的SF比是多少
目前实际流通的比特币存量应该是在:1670万左右
根据目前比特币每年的产量:它的SF比大约是27。
2020年减半后,SF比会升到54,再过4年,比特币的SF比会变成108,每年的通胀率在0.9%左右。
这会让它成为自黄金以来,人类所拥有的最稀缺的资产。
当然,使用SF模型进行估值的原则是:使用SF比来做估算的前提是稀缺性能够驱动价值的增长,但某个物品的价值取决于人们对它的信息以及它实际能带来的效用。
题外话:根据SF模型稀缺的,就是我们的时间。
问题4:挖矿为什么要比拼CPU?挖矿本质是在做什么?
CPU的核心优势是计算,所以挖矿可以理解是在通过CPU破解一道复杂的数学题。
必备知识点:哈希函数
可以把一个字符串通过运算转换成摘要,比如sha256。(“apple”) -> 1010101010... 一共是256位的二进制数
特点:正向算比较容易,反向算非常困难
挖矿就是把一个字符串做两次sha265的计算,会得到256位的二进制数字,满足前n位都是0,才算是挖矿成功,可以把块链接到区块链上。
字符串由四个部分组成:前块头部 + 账单 + 时间戳 + 随机数
要算出前n位是0,就要改变 字符串 中的 随机数。 问:"满足前n位都是0才算破解",这里的n是怎么确定的呢?
答:中本聪要求:每10分钟需要一个块,n表示难度,是一个数,在这个数下,全网的计算量大致可以维持十分钟出一个区块。
什么是拜占庭问题
拜占庭将军问题(Byzantine Generals Problem),是由莱斯利·兰波特在其同名论文中提出的分布式对等网络通信容错问题。
在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。莱斯利·兰波特在其论文中描述了如下问题:
一组拜占庭将军分别各率领一支军队共同围困一座城市。为了简化问题,将各支军队的行动策略限定为进攻或撤离两种。因为部分军队进攻部分军队撤离可能会造成灾难性后果,因此各位将军必须通过投票来达成一致策略,即所有军队一起进攻或所有军队一起撤离。因为各位将军分处城市不同方向,他们只能通过信使互相联系。在投票过程中每位将军都将自己投票给进攻还是撤退的信息通过信使分别通知其他所有将军,这样一来每位将军根据自己的投票和其他所有将军送来的信息就可以知道共同的投票结果而决定行动策略。
系统的问题在于,可能将军中出现叛徒,他们不仅可能向较为糟糕的策略投票,还可能选择性地发送投票信息。假设有9位将军投票,其中1名叛徒。8名忠诚的将军中出现了4人投进攻,4人投撤离的情况。这时候叛徒可能故意给4名投进攻的将领送信表示投票进攻,而给4名投撤离的将领送信表示投撤离。这样一来在4名投进攻的将领看来,投票结果是5人投进攻,从而发起进攻;而在4名投撤离的将军看来则是5人投撤离。这样各支军队的一致协同就遭到了破坏。
由于将军之间需要通过信使通讯,叛变将军可能通过伪造信件来以其他将军的身份发送假投票。而即使在保证所有将军忠诚的情况下,也不能排除信使被敌人截杀,甚至被敌人间谍替换等情况。因此很难通过保证人员可靠性及通讯可靠性来解决问题。
假使那些忠诚(或是没有出错)的将军仍然能通过多数决定来决定他们的战略,便称达到了拜占庭容错。在此,票都会有一个默认值,若消息(票)没有被收到,则使用此默认值来投票。
上述的故事映射到计算机系统里,将军便成了计算机,而信差就是通信系统。虽然上述的问题涉及了电子化的决策支持与信息安全,却没办法单纯的用密码学与数字签名来解决。因为电路错误仍可能影响整个加密过程,这不是密码学与数字签名算法在解决的问题。因此计算机就有可能将错误的结果提交去,亦可能导致错误的决策。
其它的数字货币和比特币有什么关系?
首先我们要对货币的种类进行一个划分:主流币、山寨币、分叉币、空气币
主流币:主流币就是市值高,同时经历过区块链社区的见证,稳定运行了多年,有自己的主网的币
比特币:中本聪是比特币(Bitcoin)的发明者 ,他在 2008 年发表的论文中提出了比特币的概念,以及比特币背后的技术:区块链。
以太坊:英文 Ethereum ,是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币提供去中心化的虚拟机来处理点对点合约。
莱特币:英文 LTC,受到了比特币的启发,并且在技术上具有相同的实现原理,莱特币的创造和转让基于一种开源的加密协议,不受到任何中央机构的管理。莱特币旨在改进比特币。
山寨币:山寨币(altcoin)以比特币或其他主流币代码为模板,对其底层技术进行了一些修改的新型区块链货币。因为比特币代码开源,目前 GitHub 上也有诸多的区块链方案,导致区块链量产,于是区块链玩家形象地称他们为山寨币。部分山寨币经过长期的发展,形成了自己的社群,也受到了玩家的认可,具有一定的价值。
狗狗币:英文 Dogecoin,又称狗币,台湾也常叫旺旺币。是一种继承自莱特币的虚拟货币,诞生于2013年12月6日,由IBM工程师 Billy Markus 推出,币面符号是一只Doge。起初只 是Billy Markus 用于证明,同时作为比特币的改进示范而创立的电子货币,创建者希望通过巨大的发行量从而减小少部分人对币值的操控。
达世币:英文 Dash,是一个专注于支付行业的开源对等网络加密货币。达世币以比特币为蓝本,以成为世界上最容易使用和可扩展的付款系统为目标。达世币也以自我管理和自我集资机制运作,促进建立以独立实体为主导的网络。
分叉币:比特币的软件是开源的,当区块链工程师通过修改代码在原区块链本身的基础上创建新的区块链和加密货币时,就会发生硬分叉(hard fork)。硬分叉的原本的目标是在现有区块链上进行改进,但现在大多数分叉币推出的目的都只是想借用区块链的名字来快速赚钱,而不是在区块链技术方面带来任何重大进步,只有不到百分之一的分叉币具有实际改进价值。
fork(分叉)在软件开发里面是很常见的,也就是“复制并修改”。最早比特币这个软件出来的时候,在最早的时候就有大量的虚拟币复制并修改它的代码,生成了莱特币、狗狗币、点点币,基本上有一千多种币,复制后修改部分不足1%,也就是99%是雷同的。从软件技术上,这1000多种竞争币都是比特币的分叉币。一般软件分叉,形成不同的版本号,不同的版本功能有所差异,用户按需选择使用,各自相安无事。但比特币这个软件带有货币属性,分叉出每一个版本都是一个新的币种,犹如“印钱”,是以前软件领域、金融领域没有出现过的事情,我们没听说过银行软件升级,我们的存款变成两份了。莱特币、狗狗币这些竞争币种,都是独立建立数据,和比特币分离。而BCH、BTG、BCD和比特币共用某个时间节点之前的数据,两者的本质差别在这,共用数据导致,某个时间节点之前持币的用户,自动同时持有两种币。因为用户关注的是持币问题,所以前者不被称为分叉币,而后者被称为分叉币。除了比特币,以太坊ETH目前也有一种分叉币存在,即ETC。分叉币从软件技术上,“复制并修改”,修改一行代码也是修改,修改100行代码也是修改,本质上是一个意思。从技术上看,不存在正宗不正宗的问题。
比特币现金:英文 Bitcoin Cash,是比特币因比特币扩展性问题在Block 478558(2017年8月1日)进行的一个硬分叉。
2018年11月15日,比特币现金迎来硬分叉,分为BCHABC(BCH),BCHSV(BSV)。硬分叉主因比特币现金自从面世以来,矿工之间一直争论是否回复至原来比特币之模式。
结果,BCHABC维持比特币现金之设计,而BCHSV则转回原来比特币之设计。分叉以后,BCHABC与BCHSV之间争夺算力。
双方被指进行恶性竞争,以消灭其他分叉。 以太坊经典:英文 Ethereum Classic,以太坊经典是以太坊平台分叉而成的加密货币。在分叉前,经典以太坊被直接称为以太坊。分叉以后,旧分叉以太坊经典,新分叉则保留原名。
空气币:顾名思义,价值如同空气的币,也就是我们之前讲过的假区块链上发行的货币,此类货币一般无任何技术支持。
有一些空气币发行商甚至都不会成立一个公司来进行管理发行的币,大部分都是去网络上吹嘘区块链无所不能,来忽悠一些投资者去投资。
特点是不重技术,重营销,将宣传放在第一位。币价的暴涨并不是由于技术某一难点攻克或者项目进展,而是通过某些营销手段。
拥有自己的主网,区块链浏览器,区块链钱包,同时拥有诸多实际应用场景的区块链更容易受到玩家们的欢迎,也更具有价值。
以太坊和比特币有什么关系?
比特币VS以太坊
比特币诞生于2008年金融危机之后,因此公众对银行和金融机构的信心处于历史最低点。它的目的是作为常规资金的一个可行的替代品,同时让人们能够完全控制自己的财务状况。
比特币作为一种全球去中心化的金融体系,是一种支付交易媒介,具有成为数字价值存储的能力。在任何时间任何地点发送比特币,而不涉及任何第三方。
另一方面,以太坊被设计为一个平台,使用它自己的货币工具促进对等合约和应用程序。以太坊创始人认为,区块链技术可以被利用,让开发人员可以在其上创建真实的应用程序。这是通过创建智能合约并在以太坊之上执行它们来实现的。以太平台的货币,主要是为了方便以太坊的工作,以便开发者可以构建和运行分散式的应用程序,也被称为dApps。
什么是智能合约?
(1)解决借钱不还的情况
(2)全世界都知道他欠债不还,也就是把合约公布给全世界所有人
(3)智能合约是一套先前写好的代码协议,在不可更改且公共监督的环境下去运行,违法合约的人将会按合约自动扣除
(4)智能合约对比特币功能进行扩展,实现在区块链上不仅是传递一些交易信息,还能够在以太坊的网络上传递一个智能合约,会记录在区块链之上。然后运行在以太坊之上的虚拟机,然后就可以运行一些指令。也就是说我能在以太坊之上发行自己的虚拟币。
(5)也可以写一个拍卖的智能合约,电子商务、销售或财产公证等,公开公证
如何开发智能合约
(1)部署智能合约的网页IDE:Remix
(2)钱包工具Metamask,网页插件
(3)以太坊的浏览器
(4)开发语言 solidity
(5)可以应用智能合约的场景:透明公开 && 去中间商
如何看待深圳开出的区块链电子发票?
国家维护一套链路,国家是最大的矿机,除非你在获取发票的渠道上能快于国家,你就可以造假。
但是实际上比特币防篡改的很大一个方式是:很多人一起参与。
有一个中心化的矿机,那其实这个矿机出错误,你基本是无能为力的。
最近风靡的DeFi是为了解决什么问题?
比特币等数字货币目标是实现去中心化的交易系统,但目前交易机构还是中心化的,你交易比特币还是要在各个数字货币平台上进行交易(比如火币、币安等),也就是交易的方式实际上还是传统的金融交易流程。
DeFi目标是实现去中心化金融系统,即通过提供货币流动池来保证各个货币之间兑换的功能,从交易到兑币都不需要有一个中心化的金融系统在管理。
FaceBook为什么要发行Libra数字货币?
是为了解决什么问题?为何美国频频阻拦?Libra发型后bitcoin还有存在的价值吗?
Libra的发行是搞技术的人对华尔街的一种挑战:硅谷 VS 华尔街
背景:全球目前有 17 亿人没有银行账户,占全球总人口的 31%。在传统的金融领域,跨境的转帐汇款非常繁琐,而且需要 3-5 个工作日才能完成。而且因为现金的使用,美国一年要被盗抢 400 亿美元的现金。而这些没有银行账户的人,为了参与社会金融,每个月要付出 4 美元以上的手续费。
Libra 稳定币的出现,可以让所有人都参与金融世界,它具备价值稳定、交易快速、可扩容和安全等兼具区块链金融和传统金融特点的功能。Facebook 这一次重新定义了「金钱」,改变了全球的经济。
Libra的出发点是为了解决法币信用问题,也就是很多国家存在"换个总统换个币"的情况,手中的法币不具备保值效应
Libra本质是一种超主权货币,所谓超主权就意味着Libra是不受单一主权国家控制的,那这就肯定在挑战美元霸权,美国肯定是要频频阻拦的。
FaceBook在全局有着大量的用户,全球很多用户都还没有银行卡的,Libra的推出可以让转账和发短信一样简单。
Libra和比特币不同,Libra使用了 拜占庭BFT 的技术, BFT这个技术有一个致命的缺点,就是不能挖矿。
Libra是一种稳定货币,发行10元的币,背后就要有一揽子资产(美元、债券等)进行对标。
问:Facebook为什么要搞这个事?- 为了赚钱,摆脱隐私泄露的困境,支付市场是一个非常非常大的时长 - 替代一些弱势的法币,可能会从欠发达的国家开始使用 - 用全球主权的国家的信誉来抗衡低信誉的国家 - 有可能想成为全世界的主权银行
为什么USDT、微信不能成为通用货币
互联网的本质是传递信息的,区块链是可以传递价值的,faceBook的网络如果能传递价值,那这个网络的价值又会值钱很多
区块链技术很多国家想封杀是比较难的,是可以自下而上的对抗监管的
最关键的因素:用户量,facebook是27亿用户
可以直接用,成百上千个公司一起运营的
但facebook本身是不需要发币挖矿的,因为facebook背后其实是有联盟成员来控制的,背后是抵押实际财产的。
BFT 性能非常好,安全性还好(只要超过2/3节点不出问题),比特币(51%超过算力)
竞选Libra的节点条件入门是1000万美元,联盟成员不是完全去中心化的,多中心制(facebook和多个联盟成员)
"去中心化其实并不是趋势,人类社会讲究效率为先,一个人能干的事,没必要找10个人干"
商业创新 和 技术创新 一般是要二选一的,不然如果都创新,那么没什么是确定的。Libra的诞生是商业创新,而非技术的创新。
那Librar能不能带来创业机会?
跨境电商手续费会降低
收购非洲的libra账户做黑产
比特币实现了人们对数字资产的首次拥有权,互联网是传递信息的,但互联网传递不了价值,比特币的本质是可以传递价值的。
区块链就是一种操作系统,区块链的本质可以传递信任。
数字货币一个最明显的特质是不需要中心化的机构来承认,数字货币应该是去中心化的。存在支付宝的里的钱肯定是要 支付宝 来认可的,它不认可你存的钱,那么你的钱就会归零。
中国央行的数字货币及其应用场景
银行的同业拆借利率飙升到30%,也就是银行和银行之间借不到钱。当银行流动性骤然紧张的时候,那整个全社会的资金面是非常的紧张。
消灭市场中流动的现金
数字货币替代M0(流动性货币)
2014年已开始着手研究了,"加强顶层设计,坚定不移推进法定数字货币研发工作" ## 出台背景
2013年发生的钱荒
目前严峻的经济形势
中小企业银行的脆弱性
大额现金管理制度的出台
对老百姓日常生活的影响
也即可能会定时将手里的钞票替换成数字货币,对黑钱、脏钱或腐败的钱影响很大
比如未来发生严重的经济危机,市场机制失灵,可以通过数字货币来控制限量消费(计划经济或管制经济)
对于促进国家调控,应对系统性风险,保障民生稳定提供一套高效的解决工具。
逐渐替代社会中流通的现金M0
可以追踪到所有人的一切消费行为的轨迹
央行的数字货币推开后不排除会有一波像印度一样的废钞运动
增强外汇管控
具备适用于极端情况的弹性和延展性