区块链的分类是什么? - 诺米粒 - 2024最新贷款口子论坛
登录 or

区块链的分类是什么?

已邀请:

金钦视界 白米Ⅲ级

赞同来自:

区块链按照不同的方法有多种不同的分类。
根据参与方式或准入制度可以分为:
  1. 公有链,完全去中心化的、不受任何机构控制的区块链。如比特币
  2. 联盟链,不完全去中心化,受多个机构联合控制的区块链。如Hyperledge
  3. 私有链,内部去中心化,受单个机构控制的区块链。
根据是否有账户概念可以分为:
  1. 无账户,余额是通过所有UTXO计算得到,如比特币网络
  2. 有账户,如以太坊(普通账户、合约账户)、Hyperledge
根据公示机制可以分为:
  1. POW,如比特币
  2. POS,如以太坊,Hyperledge
  3. DPOS,如EOS,主网暂未上线
  4. 瑞波共识,如瑞波
根据技术时代:
  1. 比特币时代称为1.0时代
  2. 以太坊、Hyperledger时代称为2.0时代
  3. EOS(主网未上线)称为3.0时代
以上只是大致分发,除了以上之外还可以根据使用的技术语言,加密算法等划分,只是这些划分方法不太常见。

新奇岛 白米Ⅲ级

赞同来自:

感谢小秘书邀请。
区块链目前大类分三类:
一是公有链,就是所有用户都可以自由加入、退出的区块链;
二是联盟链,一般是指一些不同机构之间建立的区块链,普通用户无法加入,常用选举的方式来实现共识机制。
三是私有链,一般是指机构内部构建的共块链,只给机构内部人员提供相关权限。
联盟链和私有链共同组成许可链,按字面意思理解,就是必须经过许可才允许接入系统中。

链金有法 白米Ⅲ级

赞同来自:

根据公开范围不同分类:
1、公有链:完全非中心化的区块链,比特币应用就是公有链。
2、私有链:限制在一定范围内,外部节点不能加入,各个节点的写入权限收归内部控制,读取权限可以视需求有选择地对外开放。
3、联盟链:多中心的,不同节点的权限不同,满足一定条件的节点是核心节点,往往是由某个群体内部指定多个预选节点为记账人,区块生成有预选节点通过共识机制决定,其它接入节点可以参与交易,但不过问记账。
从权限控制的角度分类
1、无需许可型:没有权限管理,所有参与者拥有相同的权限,
2、限定许可型:不同节点永远不同权限。
3、可许可型:不仅不同参与者权限不同,还有些高级节点能够进行权限管理,可以授权或剥夺其它节点的权限。
从应用的角度分类
1、B2C领域
2、B2B领域

ZY区块笔记 白米Ⅲ级

赞同来自:

以参与方分类,区块链可以分为公有链、联盟链和私有链;


1) 公有链(Public Blockchain)
公有链通常也称为非许可链(Permissionless Blockchain),无官方组织及管理机构,无中心服务器,参与的借点按照系统规格自由接入网路、不受控制,节点间基于共识机制开展工作。
公有链是真正意义上的完全去中心化的区块链,它通过密码学保证交易不可篡,同时也利用密码学验证以及经济上的激励,在互为陌生的网络环境中建立共识,从而形成去中心化的信用机制。
公有链一般适合于虚拟货币、面向大众的电子商务、互联网金融等B2C、C2C或C2B等应用场景,比特币和以太坊等就是典型的公有链。


2) 联盟链(Consortium Blockchain)
联盟链是一种需要注册许可的区块链,这种区块链也称为许可链。联盟链仅限于联盟成员参与,区块链上的读写权限、参与记账权限按联盟规则来制定。整个网络由成员机构共同维护,网络接入一般通过成员机构的网关节点接入,共识过程由预先选好的节点控制。由于参与共识的节点比较少,联盟链一般不采用工作量证明的挖矿机制,而是多采用权益证明(PoS)或PBFT(Practical Byzantine Fault Tolerant)、RAFT等共识算法。
一般来说,联盟链适合于机构间的交易、结算或清算等B2B场景。例如在银行间进行支付、结算、清算的系统就可以采用联盟链的形式,将各家银行的网关节点作为记账节点,当网络上有超过2/3的节点确认一个区块,该区块记录的交易将得到全网确认。联盟链对交易的确认时间、每秒交易数都与公有链有较大的区别,对安全和性能的要求也比公共链高。


3) 私有链(Private Blockchain)
私有链是建立在企业内部,系统的运作规则根据企业要求进行设定。
私有链的应用场景一般是企业内部的应用,如数据库管理、审计等;在政府行业也会有一些应用,比如政府的预算和执行,或者政府的行业统计数据,这个一般来说由政府登记,但公众有权力监督。私有链的价值主要是提供安全、可追溯、不可篡改、自动执行的运算平台,可以同时防范来自内部和外部对数据的安全攻击,这个在传统的系统是很难做到的。

要回复问题请先登录注册

var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();