区块链笔记:基础链:比特币(加密数字币),以太坊,Fabric,EOS,Cosmos

以比特币为代表的加密数字币

  • 功能以数字货币为主,不支持功能扩展,或者说支持很有限的编程能力
  • 比特币,莱特币,还有各种其他各种各样的一些竞争币
  • 以太坊本身是一个基础链,在其上可以去发布资产型token,这也属于一种加密数字币
  • 这些功能都是以加密数字货币为为代表的一些基础链系统
  • 至今,区块链的功能范围已经远远超越了数字币的范畴

以太坊

  • 以太坊是继比特币以后,拓展了比特币这种仅仅以实现加密数字货币为主要功能的一个单一场景,支持了更多的功能
  • 它原生支持了数字币,同时它也是一个开发平台,支持自定义的合约编程和部署,也就是说支持各种类型的DApp的开发
  • 基于以太坊,可以编写程序,这些程序就叫做智能合约,也就是说支持智能合约的开发
  • 以太坊本身也是一个公链系统,是区块链2.0时代的一个代表

Fabric

  • 实际上是属于一个开源项目Hyperledger超级账本的一个子集,它是一个开源项目的一个子项目
  • 这个子项目,主要为联盟链服务,它提供了一个联盟链开发以及部署的框架
  • 它本身并不是一个部署的公链系统,它本身是一套框架,基于Fabric可以实现自己的一个区块链系统
  • 它其中也包含了很多可装配的组件设计,比如说不同的这个数据文件的支持, 如写入文件,同时也支持LevelDB, CouchDB等
  • 支持多种共识机制:PBFT、Raft等,所以说它更多的是一种平台框架, 相当于软件开发里面的一些半成品
  • 同时它也支持了很多联盟链所需要的一些身份鉴权、许可登记等功能模块
  • Fabric是区块链3.0时代的一个代表,它不仅仅是直接简单的实现一个链本身,而是为用户去开发自己的链而提供了很多组件

EOS

  • 首先它和比特币,以太坊一样是一个公链系统,同时也支持智能合约的开发
  • 它的共识机制采用了DPoS + BFT设计的一组超级节点
  • 在EOS之前区块链系统的共识主要都还是以网络中的节点来通过一种工作量证明,权益证明等机制来进行一个区块打包的
  • EOS在这个层面上设计得相对中心化,也就是所谓的超级节点
  • 在打包的过程当中,并不是网络中所有的节点都有机会去打包的,而是限制在一个范围中,这一组范围中的打包节点的就称之为叫超级节点
  • 在这里不去深入探讨这么一个机制的一些问题,这种做法是一种在这个区块链的共识的设计中,是一个比较新的做法
  • 到目前为止,也出现了一些更多的其他的一些共识机制,比如说随机选择打包节点的算法
  • 对于EOS来讲,它是靠一种投票约定的超级节点来进行打包的
  • 相比于比特币这种通过全网中所有节点共同参与的这种做法,它更多的是通过经济模型来确保网络的稳定性
  • 对于超级节点来讲,它要负责全网的区块打包,所以超级节点对于节点部署的物理环境是有一些要求的
  • 要求有更好的网络环境,更好的存储和存储能力等等,这样的一个超级节点,它的部署是带有比较大的成本
  • 这些超级节点为什么愿意来提供这个打包服务,维持这样的一个节点的运行,它是需要有一个经济模型来对它进行激励的
  • EOS是一种半中心化的共识机制,更多的是需要通过一个经济模型来确保网络的稳定性

Cosmos

  • Cosmos 是一个很大的一个项目,它有一个很大的特点
  • 它是一个用于构建区块链系统的基础设施,这一点类似Fabric,它是一个框架平台,可以提供给用户来开发自己的区块链系统
  • 它实现了一些基础的共识机制,实现了基础的把p2p网络模块等,方便用户来开发自己的系统
  • 比如很多商家他们可能更加关心自己的业务逻辑去如何实现在链上,对于底层的功能实现不是很关心
  • 这种场景可以基于这样的一些基础设施来开发自己的业务区块链系统
  • Cosmos有个目标是: 实现不同区块链系统的互联互通, 也就是我们曾经说过的一个链与链之间的交互, 或者叫中继链这样一个功能
  • 通过Cosmos,用户可以通过插件应用的方式来开发自己的区块链系统, 它也提供了一种开发包Cosmos SDK
  • 用户可以在这个半成品框架上来开发自己的经济模型,或者说实现自己的共识机制,以及实现其他的一些功能特点等等
  • 它是这样的一个应用场景很大的一个项目

总结

  • 随着区块链的发展,从最早期的时间就是货币到实现智能合约系统,再到实现可装配的半成品框架,再到实现不同区块链之间的互联互通等等
  • 区块链的技术发展确实是有了很大的进步,这也为我们将来来对接更多的一些实用性的应用场景提供了很多的基础帮助
发布了438 篇原创文章 · 获赞 253 · 访问量 71万+

猜你喜欢

转载自blog.csdn.net/Tyro_java/article/details/104877084