深入理解区块链技术,从比特币、以太坊到最新公链

原创: Andy.Chen 





 

阅读大概需要5分钟

背景


自2008年中本聪提出比特币概念,到2009年比特币的诞生,这代表着首个基于区块链技术去中心化交易模式的加密货币实现,同时吸引了无数人的目光聚焦在区块链技术上。在这里我们来先理解几个概念,什么是加密货币、数字货币、电子货币、虚拟货币?

数字货币:广泛理解是基于数字技术,通过网络传输,非物理形式存在的价值承载和转移的载体。它可包括电子货币、虚拟货币、加密货币、数字现金等。

加密货币:基于区块链和加密运算等技术,通过网络来创建、发行和实现流通的电子货币,即加密货币,比如比特币、以太坊等。

虚拟货币:非真实货币,是非金融、货币机构发行的只在网络空间使用作为币替代物的价值的数字表现,比如Q币等。


电子货币:以电子交易卡为媒介、通过计算机通信技术、电子数据流形式存储在银行的计算机系统并通过计算机网络以信息传递形式实现流通和支付功能的货币。比如信用卡、IC卡等。

 

发展历程


在比特币出现之前电子货币早在八九十年代已经有应用于与资金相关的电子支付,但由于它的核心还是基于中心化的数据管理,所以2009年比特币的出现才算是真正意义上区块链核心技术的首个应用,2013年由Vitalik
Buterin
提出以太坊公有链概念(下一代智能合约和去中心化应用平台),2017年国内推出公链星云链(基于价值尺度的区块链操作系统及搜索引擎),再到2018年的TrueChain初链(新一代混合共识无需许可链)出现。不管任何新公链的推出其区块链核心技术仍然是不会变动很大,底层基础思路都是一样的,都是P2P的网络节点、公开的账本、共识机制算法,去中心化的储存。

 

不同点

下面来对比一下这几个公链的技术架构及实现的不同之处:

*
设计理念

比特币:
(也称区块链1.0版本)是基于区块链一种点对点的电子现金系统,它是以结算网络为目标发展并设计的,去中心化的交易、存储,它解决的是世界货币的问题,由于它在设计上存在协议的扩展性不足问题,后期才有了以太坊的出现。

官网:https://bitcoin.org/zh_CN/

以太坊:
(也称区块链2.0版本)是一个开源的有智能合约功能的公共区块链平台,通过其加密货币以太币提供去中心化的虚拟机EVM和Solidity编程语言来处理点对点合约,以太坊从设计上解决比特币扩展性不足的问题,它目标是打造一个去中心化的新一代互联网应用平台。截目前为止,以太币是估值第二高的加密货币,仅次于比特币。

官网:https://www.ethereum.org/


TrueChain: 初链着力打造免费、开放、安全高效易用的区块链技术基础,行业基础设施,建设区块链经济体运营系统商业基础设施。支持无限节点接入、高性能(10,000-100,000
TPS)、安全性高、用户免费开放准则。Truechain继承了以太坊的虚拟机(EVM)的设计思路,并做更多的拓展,推出了全新 TVM虚拟机(类似于 X86
),在这虚拟机中可以运行多种开发语言(python、go、javascript等)编写的智能合约,可以快速的开发并且部署去中心化的 Dapp 应用。

官网:https://www.truechain.pro/zh/

 

*
架构设计


比特币:架构总分为两部分:一部分是前端,包括钱包(Wallet)或图形化界面;另一部分是运行在每个节点上的后台程序,包括挖矿、区块链管理、脚本引擎以及网络管理等功能。如图示:



 


以太坊:架构总体分为三大部分:最上层的是DApp,它通过Web3.js和智能合约层进行交换;中间层是智能合约层,所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用;在EVM和RPC下面是以太坊的四大核心内容,包括:blockChain,
共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)。如图示:



TrueChain: 初链的技术架构自下而上共分为五层:一是底层服务,包含P2P 网络、LevelDB
数据库、密码学算法、分片优化;二是核心层,包含区块链模块、TRUE 模块、共识算法模块;三是 API 接口层,包括 TVM 虚拟机、gRPC
通讯协议;四是智能合约层;五层是Dapp层。如图示:



*
共识算法

比特币:PoW 工作量证明机制算法,当满足一定工作量条件后才会产生一个区块。

优点:完全去中心化,节点自由进出,避免了建立和维护中心化信用机构的成本,只要网络破坏者的算力不超过网络总算力的50%,网络的交易状态就能达成一致。

缺点
:目前比特币挖矿造成大量的资源浪费,另外挖矿的激励机制也造成矿池算力的高度集中,更大的问题是PoW机制的共识达成的周期较长,每秒只能最多做7笔交易,大概10分钟才产生一个区块,不适合商业应用。

以太坊:基于PoW工作量证明算法实现的共识机制(挖矿算法)ETHash。

优点
:提高内存级别难度,避免平行使用内存同时计算多个Nonce值,降低了中心化的风险。另外最近以太坊也正在从PoW共识机制渐渐转换为PoS(权益证明)共识机制。

TrueChain:  选择了将PBFT的高效与PoW 的去中心化相结合的混合共识机制。fPoW
是一种全新的设计挖矿设计理念,初链采用了水果链(FruitChain)的设计,在挖矿过程中保证所有参与者的公平性。

优点:弥补前两代区块链比特币与以太坊TPS过低导致无法应用到实质商业应用开发的弊病,去中心化和性能之间的矛盾。

   

*
账户模型

比特币:使用UTXO(unspent transaction
outputs 未花费的交易输出)账户模型,从技术角度讲,比特币账本可以被认为是一个状态转换系统,系统包括所有现存的比特币所有权状态和状态转换函数,状态转换函数以当前状态和交易为输入,输出为新的状态。

作为状态转换系统的比特币:



代码:
// UTXO type Transaction struct { //1. 交易hash TxHash []byte //2. 输入 Vins
[]*TXInput //3. 输出 Vouts []*TXOutput }
 

 


以太坊:取消UTXO模型,使用自己设计的账户模型,以太坊上的账户分两种:一种是针对智能合约账户用的CA(由合约代码控制),一种是针对Dapp用户用的EOA(由私钥控制的)。通过创建和签名一笔交易从一个EOA用户账户发送消息,每当合约账户CA收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取和写入,和发送其它消息或者创建合约。不管使用那种账本模式,其在区块链底层交易的核心其实就是一种状态对象转换的过程,如图是以太坊的状态转换函数:



TrueChain:  采用分片优化,把区块链的世界状态分割成不同的“片”,每“片”都由不同的 PBFT
委员会来处理,把串行处理变成并行处理,从而实现性能的大幅度的提升。

 

小结

本篇主要讲述了数字货币、加密货币、电子货币、虚拟货币的概念,和区块链技术的发展历程,以及对比特币(区块链技术1.0)、
以太坊(区块链技术2.0)、初链TrueChain的区块链核心技术进行对比,相信各位对整个区块链技术都已经有了新的认识。 



在上一篇文章中,有些朋友加我微信给我留言提出的问题,现抽取一条来回答一下。



答:


1,关于发展的情况,我从三方面来解答,第一,来自工信部前天的消息“中国网信网:2018年上半年我国在区块链等信息领域核心技术发展势头向好”;第二,从招聘的数据看“区块链和加密货币工作在亚洲增长了
50% 以上”,第三,从申请专利技术来看(汤森路透): “2017年全球发布的 406
项区块链专利中,有56%来自中国”;第四,从行业来看,近日IBM宣布其开发了一种基于区块链技术的新支付系统。国泰君安与上交所、深交所合作研究区块链应用及监管”。

2,关于区块链技术应用还要多久?我个人看法,从最初比特币的出现到以太坊再到如今星云链,Truechain
等多种公链的推出,区块链技术已经变得非常成熟,可以说区块链技术正蓬勃发展中。

3,关于瓶颈问题,目前区块链技术发展最大的瓶颈应该是如何提升TPS的问题,要解决区块链瓶颈问题不能一味只考虑技术,更多的也要考虑到商业环境和行业环境因素。