共计 2418 个字符,预计需要花费 7 分钟才能阅读完成。
对于近期很火热的数字货币,吃瓜群众也就只能看它涨看它跌。支撑数字货币运行的平台是的核心技术是区块链,技术免费且没有风险,最近也抽时间学习了区块链,将学习的内容总结于此。
用一句话总结区块链:一个分布式网络中各个参与者通过共识算法,维护网络中随着时间不断增长的不可篡改的链。
区块链 DNA,顾名思义是区块链区别于他物的关键要素。
- De-Centralize&Share 去中心化 & 共享
- Consensus 共识
- Immutability 不可更改
基于 P2P 网络,P2P 网络中每个参与者之间共享数据,网络中任何两个节点(参与者)可以发起交易,请求改变共享的数据,请求被其他节点认可之后,纪录到块中。通过这种方式免去了交易的中间人,简化交易流程,提升交易效率。
网络中的节点通过共识算法达成一致,同意或拒绝网络中节点发起的交易。共识算法是区块链的核心。共识算法是的网络中节点对节点之间的点对点交易成为可能,免去中间人。
通过共识算法达成的交易记录被记录到一个区块中,区块一旦生成之后就不可更改。此特性是的区块链可以用于记录合约,避免单方面篡改合约。
回看区块链的发展历史,可以分为三个阶段:区块链 1.0,区块链 2.0,区块链 3.0。
区块链 1.0 就是比特币,比特币是区块链目前最成功的应用,没有之一。区块链 1.0 是一个封闭系统,不开放给开发者扩展,不是一个通用平台,可以将比特币与区块链 1.0 等同起来。
以太坊是一个开放的区块链平台,并通过 EVM(Etherenum Virtual Machine)使得开发者可以基于以太坊开发区块链应用(Smart Contract 智能合约)。以太坊是由一个平台+一系列的工具组成以及应用开发的环境组成。以太坊平台是开放给所有用户、开发者使用的,不过开发者运行应用需要消耗以太币,以太币使用比特币兑换。以太坊本身是开源的,当前微软等企业有提供基于开源的以太坊构建的 BaaS 服务(Blockchain as a Service)。
超级账本定位是企业级的区块链平台,区块链按照公开程度分为公开链、联盟链 / 私有链。前面的比特币与以太坊属于公开链,超级账本瞄准的目标用户是企业,属于联盟链 / 私有链。企业级的区块链应用与 Internet 上公开的区块链平台是有显著区别的,前面说到微软基于以太坊构建了 BaaS 服务,当前微软正在开发一个 CoCo Framework 的区块链框架,这个就是瞄准企业用户的。CoCo Farmeowk 还正在开发中,预计 2018 年开源给社区,当前已经放出了白皮书,里面总结了公开链与企业级区块链之间的 Gap:
- 交易吞吐量 (TPS) 太小:以太坊的交易吞吐量 TPS 大约为20 交易 / 秒,而像 Visa 信用卡系统需要的吞吐量为2000 交易 / 秒
- 缺少灵活、丰富的信息安全模型:企业应用涉及到很多企业机密信息,并不是网络中所有参与者都可以获取到同样的信息
- 缺少用户权限管理:企业应用需要对网络中不同节点赋予不同的权限,并不是所有节点都是等价的
- 不节能:当前以太坊、比特币使用的基于 PoW(Proof of Work)的共识算法非常耗电,不适合在企业级区块链应用中使用
超级账本以及微软的 Coco Framework 都是为了解决上述问题而设计的。
Blocalchain Layer
区块链层是去中心化的技术实现层,区块链层被所有的节点共享,矿工通过挖矿的方式更新区块链,通过加密与共识算法等技术维持区块链的更新。
BitCoin Protocol & Client
特定的数字货币(如比特币)协议层,承载比特币的共识算法规则与 API。比特币有三种客户端:移动客户端、完全客户端、Web 客户端。
Blockchain Explorer&tools
用于查询、浏览区块链的工具。
Internet
P2P 网络层。
Hardware Clients
网络中的节点,包括矿工等。
Swarm(Storage)
以太坊网络中用于存储的部件,由于 Blockchain 本身不适合用于存储大文件,因此通常的做法是将索引信息存储到块中,而大文件本身单独存储。可以将 Swarm 理解为以太坊网络中的 BitTorrent。
Whisper(Message)
以太坊网络中用于节点之间互相发送消息的部件,使用此部件节点之间可以互相通信。
EVM(Consensus)
以太坊网络中用于解析并执行用户的智能合约部件,可以理解为代码执行的沙箱。
Decentrailzed Applications
基于上述网络开发的各种去中心化的应用,包括以太坊钱包,也是其中一种应用。
Mist Browser
浏览以太坊区块链的工具。
图灵完备性
通过提供可编程的语言与运行环境,使得以太坊具备图灵完备特性,因此开发者可以基于以太坊开发出很多去中心的应用,这个是以太坊与 BitCoin 的显著区别。由于图灵完备性,理论上开发者可以开发出永久在线运行的应用,但是应用运行是需要消耗资源的,因此以太坊为在设计上,增加了 Gas 的概念,应用运行需要消耗 Gas,Gas 是需要使用以太币购买的,通过这种方式防止恶意应用攻击网络。
World Computer
以太坊的图灵完备+P2P 网络的特点,使得以太坊平台可以成为 World Computer,对于基于以太坊开发的去中心化应用来说确实是如此,因为你付钱给以太坊购买算力,来运行你的应用。
超级账本的白皮书里面对超级账本的结构已经阐述的很清楚,超级账本的目标就是为了使得区块链能够在企业使用。