区块链
狭义上来说:是一种按时间顺序将数据区块以顺序相连的方式组合而成的一种链式数据结构,并以密码学保证其不可篡改性和不可伪造性。
俗话:逻辑上来说,就是由很多小数据块(也叫区块)组成的一条数据链,里面的数据都是不可修改的(使用其他技术保证)。
区块链的首个应用就是比特币,其他知名区块链应用如以太坊(ETH)、小蚁(NEO)、量子(QTUM)、EOS、夸克(QKI)等。
公链、私链和联盟链
公链
是完全去中心化的一类区块链,BTC和ETH就是。交易信息公开透明,任何人都可以交易和读取信息,也都可以加入/退出节点。私密性,无法知道参与者的真实身份。缺点是交易成本高,需要多数节点验证一笔交易。
全球十大公链:BTC,ETH(以太坊),ICP,ADA(艾达币),VET,TRX,NEO(小蚁),EOS,XTZ,ETC(以太坊经典,ETH硬分叉之前的主链)
联盟链
部分去中心化,只开放给特定机构/组织,这些节点再根据共识机制协调工作。这是部分去中心化的区块链,民众可以进行查阅和交易,不过验证交易的话就需要联盟内部决定。
私链
私有链是对单独的个人或实体进行开放的区块链系统。系统内的每个节点的权限都需要组织来分配,对每个节点开放的数据量要视情况由组织来决定。优势是交易成本低,速度快,因为不需要每个节点验证交易,少量节点就可以完成。 其次是更好的私密性,因为读取数据的权限受限,参与者无法读取链上与自己无关的数据。(适用于需要监管的场景)
Corda,hyperledger都是私链。
三者核心区别
三大类型区块链的核心区别,在于访问权限的开放程度,或者叫去中心化程度。本质上,联盟链也属于私有链,只是私有的程度不同。一般来说,去中心化程度越高、信任和安全程度越高,交易效率则越低。
从技术上介绍
区块链更像是一门交叉学科,结合了P2P网络技术、非对称加密技术、宏观经济学、经济学博弈等等知识,构建的一个新领域——针对价值互联网的探索。
分布式数据库是区块链的物理载体,区块链是交易的逻辑载体,所有核心节点都应包含该条区块链数据的全副本。区块链按时间序列化区块,
且区块链是整个网络交易数据的主体,区块链只对添加有效,对其他操作无效!
区块链是一套协议,一组规范,而不是具体代码、项目,理解了这套协议,你可以基于现有的技术,以不同的语言去实现它。
比喻
- 金融业的人会说区块链是一个分布式账本,是一个分布式的银行记账系统
- 密码学者的会说区块链是使用密码学构建的去信任网络
- 码农可能会说区块链就是一个确保最终一致性的分布式数据库
核心技术
区块链使用的p2p网络通信技术或许给了我们另外一种选择:人皆生而平等,没有谁生来就是server,就是client。每个节点都是平等的,既是生产者也是消费者。
有人可能会问,p2p网络就能保证不作恶,不宕机,数据不被篡改么?别急,p2p网络只是为所有节点提供了信息交换的方式。做事的还是
共识算法和加密算法。
1.共识算法
最简单的解释,共识算法就是保证少数服从多数!大多数人认可一件事,这件事就是事实,也就意味着如果你要去改变一个既定事实,
那么你必须伙同大多数人陪你一起作假。
在基于p2p通信的数以千计的节点中,想要伙同其他节点一起作恶,除非“大多数节点”都被统一组织(人)控制,有共同的利益,
且利益大于付出,否则不可达成。
这里“大多数节点”加了引号,因为有些算法并不是在大多数的临界点51%时就能达成共识。如PBFT,需要66%以上的确定节点才能达成共识。比如现在比特币网络有人就提出了这样的担心,因为大概有75%的算力被中国矿池掌控。
目前"三巨头"分别使用不同的共识算法(Consensus Algorithm), 比特币使用工作量证明PoW(Proof of Work),以太坊即将转换为权益证明PoS(Proof of Stake),比特股使用授权权益证明DPoS(Delegated Proof of Stake)。
以上这些算法我称之为“经济学”的算法,所谓经济学的算法,是指让作弊成本可计算,且让作弊成本往往远大于作弊带来的收益,
即作弊无利可图,通过这种思想构造一个用于节点之间博弈的算法,并使之趋向一个稳定的平衡。相对应的我们还有计算机领域的
分布式一致性算法,例如Paxos、Raft,也称之为传统分布式一致性算法。
2.加密算法
说到加密算法,大多数码农都会想到诸如对称加密,非对称加密,hash, md5,des,rsa等。加密的本质其实很简单,让信息真实、隐秘的交流及存储。
真实性由数据签名保证,隐私性由数据加密实现。区块链平台现在广泛使用的算法有椭圆曲线签名算法(ECDSA)、SHA256以及ripemd160,三者的结合使用保证了区块链在密码学层面上达到高度隐私。
学习区块链,更多资料查看我的Github仓库Learn Blockchain