区块链通识
一、什么是区块链
1. 分布式数据库(本质)
每个用户都可以通过合法手段进行读写,不存储于某一辆个特定的服务器或安全节点上,而是分布式地存放于网络上所有的完整节点上,每个节点保留一个备份。
2. 网络底层协议(抽象)
它是一种共识协议,基于这种协议,可以在其上开发出各种应用,这些应用在每一时刻都保存一条最长的、最具权威的、共同认可的数据记录,并遵循共同认可的机制进行无需中间权威仲裁的、直接的、点对点的交互信息。
- TCP/IP: 数据层,网络层,传输层,应用层
- 区块链:数据层,网络层,共识层,激励层(Token,通证),合约层,应用层
网卡 -> TCP协议
比特币/以太坊 -> 区块链协议
二、区块链的特点
1. 特点
- 去中心化
所有参与其中的网络节点共同维护,无需中心节点调控。
- 不可篡改
整个链条按照时间顺序和哈希指针链接起来,环环相扣。
- 匿名性
私钥和地址是使用网络的所有条件,无需身份验证。
- 可溯源
所有写入区块的数据需多方验证,公开透明。
2. 不可能三角
安全性、去中心化、高效率
四、区块链的发展
0. 概览
D : 去中心化
APP: 应用
1. V1.0时代(可编程货币)
区块链1.0仅仅是电子货币,可编程货币
特点:
- TPS(Transaction per second)低,比特币每秒处理7笔交易,
- 基于栈编程,图灵不完备(脚本,无循环语句,不能实现复杂的编程)
2. V2.0时代(可编程金融)
区块链2.0是可编程金融,是经济、市场和金融领域的区块链应用,例如股票、债券、期货、贷款、抵押、产权、智能财产和智能合约。
代表:以太坊(ETH)、小蚁(NEO)、比原(BTM)
特点:处理速度加快,图灵完备(可以用代码实现各种复杂的逻辑)
创始人: V神
3. V3.0时代(可编程社会)
区块链与社会,区块链与各个行业融合:物联网、存储(IPFS)、游戏、区块链+ ,通证经济
代表:柚子(EOS)Enterprise Operation System 、墨客(MOAC)
特点:处理速度快,可达到商用级别
创始人:BM
五、区块链协议层
0. 协议层概览
1. 数据层
包括:区块链数据、链式结构、哈希函数、Merkle树、非对称加密、时间戳。
问题:需要突破的就是区块容量的问题。
比特币:1M容量
比特币现金:BCH:8M
以太坊:gas(汽油),一个区块能够装的汽油量是有限的,每一个交易消耗的汽油不同,这就决定了能够容纳交易的数量。
2. 网络层
P2P网络、传播机制、验证机制(自组网)
3. 共识层
- 共识机制
共识机制是指可以使所有节点对某一种状态达成一致的方式,有共识机制去中心化才有意义,才具备可信度,否则只是数据共享,目前主流的共识机制有:POW、POS、DPOS、==PBFT==等。
- POW(工作量证明)
POW(Proof Of Work,工作量证明),比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率挖到矿。
* 特点
-
算一道很难的谜题,系统给予挖矿奖励。
-
多劳多得【社会主义】。
* 优点
-
所有节点均可参与,记账权公平的分派到每个节点,去中心化。
-
多劳多得,矿工积极性高。
-
安全性高,欺诈成本高,如果能够欺诈成功,那么做诚实节点收益更大。
* 缺点
-
主流矿池垄断严重(中本聪设想:1CPU 1挖矿),存在51%算力攻击风险。
-
浪费资源严重(2018年底消耗全球0.5%电量)。
-
持币人没有话语权,算力决定一切。
-
网络性能低,共识时间长。
* 项目
- 比特币、以太坊(pow 后期想要改成pos)、比原链等。
- POS(股权证明)
POS(Proof Of Stake,股权证明),类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。 举个例子,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息 = 3000 * 5% / 365 = 0.41个币,持币有利息。具体的利息不同币种不一样。
币:token
持有的天数: 天数
币龄(币天) = 币的数量 * 持有的天数
币龄越大,获得记账权利的几率就越大,记账之后,获得奖励。
奖励 = 币龄* 利息数
获得奖励之后,币龄清零。
* 特点
-
不挖矿,依靠币龄也叫币天(币持有数量 * 持有天数),币龄越大,获得记账几率越大,利息即为奖励,记账后币龄清零。
-
按钱分配,钱生钱【资本主义】。
* 优点
-
在一定程度上缩短了共识达成的时间。
-
节约资源。
-
防作弊,币龄越大,获得记账权几率越大、避免51%攻击, 因为攻击会使自己权益受损。
* 缺点
- 数字货币过于集中化,富者越来越富有,散户参与积极性低。
* 项目
- ADA等。
- DPOS
比特币,以太坊:矿池垄断了记账机会,
名义上是人人平等,实际上只有少数人记账:3~5矿池
DPOS(Delegated Proof Of Stake, 委托权益证明),它的原理是让每一个持有币的人进行投票,由此产生n个代表 , 我们可以将其理解为n个超级节点或者矿池,这n个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心比特币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱会的内容。
黄色节点:记账的节点(一把手)
绿色节点:备用节点(二把手,随时准备上位)
蓝色节点:散户,把票投给自己相信的节点(小弟)
当选节点如果作恶,未能履行记账职责,就会被踢掉。
当选的节点要记账,需要提供丰富的网络资源,计算资源。记账有奖励。
奖励来自于系统每年的增发。
EOS引力区
火币
老猫
* 特点
- 不挖矿,每年按比例增发代币,奖励超级节点。
* 优点
- 高效、扩展性强
* 缺点
- 21个节点太少,非去中心化,而是多中心化
* 项目
EOS
- 常见项目共识机制
4. 激励层
发行机制、分配机制
token经济,通证经济
5. 合约层
- 智能合约(以太坊课程重点)
“智能合约”(smart contract)这个术语至少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表在自己的网站的几篇文章中提到了智能合约的理念。他的定义如下:
“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。”
-
本质:数字化合同。
-
特点:代码代替人仲裁和执行合同,同时能够触发支付。
- 普通合约示例
- 智能合约示例
-
代码化的合同,去除人的主观因素,一个合约写好以后,就无法再被编辑或者修改。因此,你可以保证无论合约的内容是什么,它都会无条件执行。
-
整个步骤包括: 构建-》存储-》执行
预言机(Oracle):
智能合约就是一个部署在以太坊区块链上的程序
6. 应用层
DAPP,合约调用
六、区块链按应用场景分类
1. 公有链
- 特点
所有人都可以随时自带有的加入和退出,每个节点平等,都有权交易和记账,属于开放式。
- 代表
比特币、以太坊、EOS、NEO、量子链、比原链、井通链。
2. 联盟链
- 特点
仅部分人参与,加入和退出需要授权,选定某些节点为记账人,其他人可以交易,但无记账权,属于半封闭式。
- 代表
R3CEV,全球40多个银行成立的联盟组织,2017年7月成立,共享区块链技术。
IBM farbric项目
Linux基金会发起的超级账本(HyperLedger)项目, 2015年成立, farbric 是子项目。
3. 私有链
- 特点
公司内部使用, 可实现更好的权限控制:管理和审计,属于封闭式。
- 代表
以太坊可以定制自己的私有链、商用区块链链定制。
七、几个概念
1. 分叉
代码升级时不同社区意见发生分歧时的结果、重大bug修复是会分叉。
- 软分叉
旧节点接受新协议产生的区块,毫无感知,新老协议共同维护一条链。
- 硬分叉
硬分叉是指区块格式或交易格式发生改变时,未升级的节点拒绝验证已经升级的节点生产出的区块,不过已经升级的节点可以验证未升级节点生产出的区块,然后大家各自延续自己认为正确的链,所以分成两条链。
旧节点拒绝接收新节点创造的区块,从此分裂为两条独立的链
THE DAO事件,以太坊上最大规模的一个众筹项目,被盗了,几千万美金的以太币。
A: 应该接受损失,这是区块链精神。
B: 损失太大,进行回滚。不能因为是区块链就纵容黑客作恶。
案例:以太坊分叉,分为ETC(以太经典),ETH(以太坊v神)
BCH,比特币现金,比特币的分叉币,发展最成功的分叉币,大皇子。
- 只做现金功能
- 做智能合约
- 导致BCH分叉
- 叔块(孤块)
在同一时间出现两个矿工同时挖出矿的情况,此时出现临时的分叉,区块链会同时保留两条链,并等待新生成的区块,新区块选择链接的链就是最长链,即主链,
那么另外一个区块就被称为叔块(以太坊,有奖励)/孤块(比特币,无奖励)
==比特币的孤块是没有奖励的,以太坊是有(叔块)奖励,因为分叉比较频繁(10几秒出一个块)==
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2017-02-06 PHP的错误机制
2017-02-06 PHP网站的安全要点