“区块链是一个自带对账功能的分布式账本”
区块链的演化
区块链1.0 比特币
- 数据结构
- 例如:张三100
- 例如:李四55
- 算法(转账)
- 张三100 -10 = 90
- 李四55 + 10 = 65
- 世界状态变化
- 100, 55 function() 90,65
区块链2.0 以太坊(智能合约)
- 数据结构
- 开始丰富:整形,数组,map,结构体...
- 算法(智能合约)
- 图灵完备虚拟机中执行的函数
- 世界状态变化
- 00110011 function() 10110110
区块链3.0 hyperledger
- 数据结构
- 任意数据结构
- 算法(智能合约)
- Nodejs , java, go, python编写的chaincode
- 世界状态变化
- 00110011 全功能function() 10110110
区块链的分类
- 公有链 :全世界任何人都可读取、发送交易且交易能获得有效确认的、也可以参与其中共识过程的区块链。
- 私有链 :其写入权限是由某个组织和机构控制的区块链。参与节点的资格会被严格的限制,由于参与的节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击、并且能够做到身份认证等金融行业必须 的要求。
- 联盟链 :指由若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。
共识协议
- POW:Proof of Work,工作证明。
比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。
- POS:Proof of Stake,股权证明。
POS:也称股权证明,类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息= 3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。
- DPOS:Delegated Proof of Stake,委任权益证明
比特股的DPoS机制,中文名叫做股份授权证明机制(又称受托人机制),它的原理是让每一个持有比特股的人进行投票,由此产生101位代表, 我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心比特币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱会的内容。
- POE: Proof of elapsed time ,消逝时间证明
区块链适合的场景
- 有共享通用数据库的需要;
- 流程设计的参与方存在激励冲突,或者在参与方之间没有信任;
- 一个数据库有多方参与或者有多个写入者;
- 现在由受信任的第三方参与流程, 托管服务、数据提供服务、发放牌照的权威以及公证人;
- 密码学正在被使用或者应当被使用。密码学促进数据保密,数据完整性,权威性以及不可复制性。
- 一个商业流程的数据在整个流程中被导入许多不同的数据库。
- 系统中的参与者受到统一的规则制约;
- 各方的决策是透明的而不是保密的;
- 有对客观、不可更改的历史或者对各方指定的事实的日志的需求;
- 交易频次不超过10,000次/秒 (存在对账瓶颈)。
区块链不适合的应用场景
- 业务场景涉及机密数据
- 业务过程存储大量的静态数据,或者数据非常大
- 交易规则经常变化
- 使用外部或者三方服务来收集/存储数据
是否需要区块链,可以看如下图,任意一个规则不满足,那么并不需要区块链
原文地址:https://www.cnblogs.com/zhenghongxin/p/10288577.html