在上一篇文章中,我们学习到区块链是由一个个的区块组成的,所有的区块串联起来就组成了区块链,在区块链的世界里,遵循特定的算法逻辑,一切数据都在去中心化运行,所有的数据都无法被恶意篡改。我们也了解到区块链分为公有链,联盟链,以及私有链,而且链的发展又分为区块链1.0时代,区块链2.0时代和区块链3.0时代。区块链按照圈子的发展又分为链圈,矿圈和币圈。
在这篇文章中,我们开始从区块链的发展来展开学习区块链中的比特币,以太坊,超级账本,以及其他一些主流链的一些技术知识。
比特币刚开始出来的时候,大家对区块链的技术底层还不是很了解,只是觉得比特币就是区块链,其实真实情况不是这样的。比特币其实是运用了区块链的技术而发行出来一种代币,这种代币我们又可以称它为通证,积分,在当时的技术条件前提下,比特币只能支持持有,转账,慢慢地认可它价值的人多了,这个代币迄今为止还是处于很高的一个价位。对于比特币的了解,我们只要知道,它是区块链发展最初阶段的技术的产物,而且它不等同于区块链,仅仅是利用区块链技术实现的一种虚拟货币而已。
由于比特币处于区块链1.0的阶段,最直观的缺点就是它的交易速度,我们要转一笔账,这通常要花费10分钟左右的时间。以太坊的诞生将区块链的交易时间又往前进步了一些,达到每笔交易大概花费10秒左右的时间。以太坊是由天才V神带领团队创建出来的,他的年龄不大,年仅20岁左右就已经创建出了以太坊。以太坊之所以称之为区块链2.0时代,除了交易时间上加快之外,还在于它创建了智能合约可编程技术。以太坊迄今为止是生态发展最好最庞大的链,而且其通证ETH价值也是挺高的,我们刚开始入门区块链技术的学习,大部分都是先从学习以太坊开始。以太坊的智能合约编程说的是它可以利用代码编程实现代币的发行,通过智能合约,我们可以在以太坊网络上轻松地发行任何代币,也可以上线任何智能合约产品,后面发展壮大的web3.0就是合约直接跟前端交互,而无需像传统项目一样需要后端接口和后端的数据库。以太坊智能合约的编程语言可以用solidity,vyper,cpp,python来实现,其中,solidity是以太坊最容易上手,也是用得最多的一门语言,而且基于以太坊的EVM虚拟机可以实现在线编程。
Hperledger Fabric又称之为“超级账本”,因为这门技术就是专门存储数据的,而且是分布式存储数据。Hyperledger Fabric属于联盟链,它需要我们开发者掌握Go,Nodejs或者Java语言,shell脚本语言,一些运维功底以及算法,分布式数据库的使用。在做联盟链开发的过程中,我们首先要使用到多台服务器部署节点环境,利用前面讲的任意编程语言编写sdk以及链码逻辑,再通过使用kafka或者etcdRaft算法分配节点,再利用shell编写部署脚本,使用paas或者saas平台发布部署的底层节点环境。总的来说,Hyperledger Fabric要求的技术栈是比较深的。
Pokadot就是波卡,由以太坊技术黄皮书主要编写者Gavin Wood博士创建的。波卡想要达到的目的就是做跨链,由唯一的中继链作为波卡的中心,其它的链作为它的平行链存在。区块链发展到这个阶段,大家都意识到,区块链的每条链都孤立存在的,所有的链都彼此孤立,数据不共享,资产不共享,所以就有了跨链的存在。波卡技术的实现用的是substrate框架,底层用的rust语言,也因为rust语言的高级安全检查内存等特性,所以目前想要在波卡上做应用的必须是要学会rust编程语言。我们之前讲过区块链的私有链和联盟链是自己地搭建的,但是如果自己有玩过应该晓得私有链以及联盟链搭建的步骤是比较繁琐的,而substrate框架的一大进步就在于它可以在几分钟内就可以运行一条链,这又是区块链的一大进步。
Binance就是币安智能链,Okex就是欧科云链,Heco就是火币链,Polygon就是Maitc链,这四大链都是在以太坊底层的基础上改改共识,改改出块就形成了自己的一条独有的链了。在技术上还是只要掌握了solidity合约编程语言就可以完全将我们的应用部署到这四条链上,跟以太坊非常类似。
Tron就是波场链,加了一些带宽的概念以及用户创建需要成本的概念;Eos就是柚子,比较出名的就是它的柚子钱包;Fisco-Bcos是webank开源的联盟链。这三条链我接触得少,有兴趣的可以了解了解。
layer2网络,我们单独拿出来讲,它是属于侧链,也可以说它是链的扩容,通过以太坊的知识我们了解到,以太坊生态圈庞大,用户极多,而随着数据在链上越来越多,链的交易速度就会变得非常拥堵,那么交易手续费也随之高涨,令人望而却步。layer2网络的诞生就是为了兼容以太坊的,让用户可以在layer2网络上做交易,同时又可以与以太坊无缝交互,比如Aurora。
这几条链算是后面的后起之秀,也是后面区块链技术发展的方向,因为随着区块链技术的不断发展,对rust的要求也越来越多,这几条链又是国外的链,用户群体也是比较大,在这上面的生态也是比较成熟的,如果区块链技术往后再进一步发展的话,这几条链还是应该学习的,毕竟像以太坊这样的拥堵已经吓跑了许多的用户,现在用户更加迫切需要一条稳定的,可持续的,有前景的链来做支撑。
好了,这篇文章主要还是给大家讲了区块链的发展之路,更重要的是每个发展时间段,对技术开发者技术栈的要求是不一样的,比如精通以太坊的开发,但是可能过一阵子以太坊的热度就退去了,进而又是超级账本或者其它一些链的发展,那么对区块链技术开发人员的挑战是很大的,所以作为区块链技术开发者,要一直保持学习,因为技术更新迭代太快,对区块链技术开发者的要求越来越高。总结一下:如果想在区块链开发领域不被淘汰的话,一定要熟悉多门编程语言,熟悉每一条链的规则,这样才可能在熟悉链的规则以及熟悉其编程语言的前提下做应用。