主页 > imtoken离线钱包 > 区块链开发技术概述

区块链开发技术概述

imtoken离线钱包 2023-03-12 07:29:42

如果你已经关注区块链技术好几个月了,你可能也会像我一样被没完没了的原理介绍、前景描述、行业讨论、链圈新闻看得疲惫不堪。 是的,区块链必须和产业紧密结合,也有颠覆人类合作方式的巨大力量,但归根结底还是技术活,还是要写代码的。 整天坐在咖啡店里讨论事情是赚不到钱的。 从链。 技术人员的逻辑简单明了。 这件事有没有前途(钱)? 是的,怎么办?

本文试图概述区块链相关的技术流派和主流平台。 作为学习区块链技术体系的指南,旨在促进区块链开发社区的讨论和共识。

区块链技术的流派

想要投资区块链发展领域,至少要先搞清楚现在的玩家有哪些,各自的主张和实力。

区块链技术流派的划分没有固定的规则。 据我所知,可能有以下四种方式:

首先是按照节点接入规则分为公链、私链和联盟链。 公链的代表自然是比特币和以太坊,私链是最著名的R3 Corda,联盟链的代表作是Hyperledger旗下的Fabric。 公有链侧重于匿名和去中心化,而私有链和联盟链侧重于高效,往往设置进入壁垒。 公链、私有链、联盟链的这些差异都体现在技术上。 比如私有链和联盟链假设节点数量不大,可以使用PBFT算法形成共识。 但是公链假设有大量动态变化的节点网络,使用PBFT效率太低。 我们只能使用类似彩票的算法来确定意见领袖。 这意味着私有链和联盟链很难成为公有链。 虽然公链作为联盟链或私有链很容易使用,但它不是即插即用的。 学者们必须观察这种差异。

第二种是基于共同的目标将其分为两个派系:共享账本和共享状态机。 比特币是典型的共享账本,Chain和BigchainDB应该也属于这一类。 这些区块链系统在每个节点之间共享一个总账,因此与金融应用的连接更加方便。 在另一类大型区块链系统中,每个节点共享一个可以完成图灵完备计算的状态机,例如以太坊和Fabric。 它们都是通过执行智能合约来改变共享状态机的状态,进而实现各种复杂的功能。 .

三是根据Melanie Swan描述的代际演进,将区块链系统划分为三个世代:1.0、2.0和3.0。 其中,1.0支持去中心化交易和支付系统,2.0通过智能合约支持行业应用,3.0支持去中心化社交系统。 Bitcoin和Chain应该属于区块链1.0系统,而Ethereum和Fabric是区块链2.0系统。 目前还没有成功的区块链3.0系统,但有一个尝试没有成功,就是大名鼎鼎的The DAO。

第四,按照核心数据结构分为区块链和分布式账本两大派系。 区块链派在系统中真正实现了以区​​块链为核心数据结构,而分布式账本派只是吸收了区块链的精神,并没有真正以区块链为核心数据结构。 ,或者虽然是临时用的,但是声明说我的象装屋区块链是面向分布式账耳的。 如果需要时间,它会被命运取代。

主流区块链技术平台

懂得流派的划分,仍只能用来点江山,吹嘘道。 如果您想这样做,则必须始终有一个切入点。 据说区块链货币有数千种,但值得关注的技术平台只有几十个。 想要进入区块链开发领域,打好基础,练好本领,拿几个好本领。 offer,值得深入研究学习的平台屈指可数。

首先,当然是比特币。 作为第一个也是迄今为止最成功、最重要的区块链示范项目,比特币已经运行了八年多,没有发生过任何严重的安全和运维事故。 其稳定性和强度堪称当代软件。 系统模型。 Bitcoin Bitcoin Core 是一款代码质量高、文档完善的开源软件。 从学习区块链原理和掌握核心技术的角度来说,Bitcoin Core是最好的切入点,可以学习到最原始的区块链技术。 当然,Bitcoin Core是用C++编写的,并且使用了一些C++11和Boost库机制,这对学习者的C++水平提出了更高的要求。

学习比特币平台开发的另一个好处是你可以接触到繁荣的比特币技术社区。 目前,有很多人在改进和完善比特币比特币区块链网站,而且人多力量大。 隔离验证、闪电网络、侧链等较新的理念和技术,率先落地比特币社区。 例如,侧链技术的主要领导者 Blockstream 由加密货币资深人士 Adam Back 领导,而 Blockstream 是比特币核心的最大贡献者之一,因此一些侧链技术在比特币社区中讨论得最为充分。

但比特币作为典型的区块链1.0系统,是否是支持其他类型区块链应用的最佳技术平台,存在很多争议。 此外,并不是每个人都有能力也需要精通区块链底层技术。 所以对于渴望在区块链领域做(quān)事(qián)的人来说,更直接的学习目标可能是以太坊和Hyperledger Fabric。

在以太坊上使用Solidity开发智能合约是进入区块链开发最简单的方式,没有之一。 以太坊的理想非常雄心勃勃。 因为它配备了强大的图灵完备的智能合约虚拟机,它可以成为所有区块链项目的母平台,是一只可以承载整个区块链世界的大乌龟。 在以太坊上开发类似比特币的加密货币是不折不扣的小目标。 一般有经验的开发者在文档的指导下半天到一天就可以上手。 问题是,开始之后会发生什么? 你能通过编写 Solidity 来征服世界吗? 这是非常值得怀疑的。 我们也可以反过来说,如果以太坊+Solidity是区块链的终极解决方案,那为什么会有那么多区块链技术流派? 尤其是,以太坊似乎并没有给现实世界中的巨型中心化组织留有后路。 这种完全不妥协的革命态度,也可能成为以太坊推广的障碍。

目前以太坊项目的发展并不顺利。 一个比较突出的问题是项目多、力量散,导致工程质量参差不齐。 但尽管如此,与其他区块链2.0平台相比,以太坊提供的开发环境是最简单、最完备的。 刚接触区块链的小伙伴们,学习以太坊是绝对必要的,这样才能对区块链和智能合约建立最“真实”的理解。

主流区块链技术平台的第三个分支是Fabric,它是Hyperledger最早也是最知名的孵化项目。 Fabric 最早来自 IBM 的 Open Blockchain 项目。 到 2015 年 11 月,IBM 将当时已经开发的 44000 行 Go 语言代码交给了 Linux 基金会,并纳入了 Hyperledger 项目。 在 2016 年 3 月的黑客马拉松中,Blockstream 和 DAH 将各自的代码合并到 Open Blockchain 中,后来更名为 Fabric。 目前为止,英特尔提供的Fabric和Sawtooth Lake被列为Hyperledger的一级孵化项目,但前者受到的关注度远高于后者。

从技术上看,Fabric 的想法很好,重点是满足企业商业使用的需求,比如解决交易量的问题。 众所周知,比特币最大的缺点就是每秒7笔交易的上限,根本不能满足现实的需要。 Fabric的目标是实现每秒10万笔交易,接近刚刚过去的双十一交易量的瞬时峰值,完全可以满足正常情况下的行业级应用。 Fabric是用Go语言开发的,也提供多种语言的API。 特别值得一提的是,Fabric充分利用了容器技术,例如其智能合约运行在容器中。 这也是Go语言给Fabric带来的一个好处,因为Go语言的静态编译和部署特性非常适合在容器中开发程序。

面料也有一些特点。 比如其会员服务可以设置节点准入审核,这是联盟链的典型特征。 另一个例子是它的共识算法是可定制的。 Fabric有自己的PBFT共识算法实现,但是PBFT的算法效率是O(n²),其中n是节点数。 因此,在节点数量有限的联盟链中使用 PBFT 没有问题,但在公链中使用效率太低。

Fabric的短板是系统相对复杂。 虽然有文档,但对于没有经验的开发者来说,学习难度相对较大。 但由于其定位明确,迎合了众多企业的心理,业内已经有不少机构基于Fabric秘密开发联盟链项目。

小教派

以上三大主流区块链开发平台在活跃度、关注度、参与人数等方面都远超其他平台。 但俗话说,莫欺少年贫,一些目前还名不见经传的平台也不容忽视。

Hyperledger的另一个一级孵化项目Sawtooth Lake是英特尔开发的区块链平台。 很少看到有人讨论,项目活跃度也不高。 但实际上,Sawtooth Lake 是一个非常用心设计的区块链项目。 其以数字金融资产管理为目标,整体架构清晰,模块化程度高,可定制性强。 在概念上,创建了“交易家族”的概念,同时也支持PoET和Quorum两种共识机制。 当节点数量较多时(公链环境),利用第6代Intel Core CPU提供的SGX扩展功能,提供一种叫做Proof of Elapsed Time (PoET)的机制形成共识,类似于比特币 PoW 也是一种“彩票式”的共识算法,但它通过 ASIC 专用硬件消除了“作弊”的可能性,消除了比特币算力过度集中的隐患。 可靠性由 Intel CPU 硬件保证。 它是一条公共链。 系统中有价值的共识机制。 另一方面,当节点数量较少且受控时,Sawtooth Lake可以采用Quorum共识机制,这是Ripple提出并验证的一种共识机制,非常适合联盟链场景,这样Sawtooth Lake可以变身为非常有用的联盟链了。

Sawtooth Lake 使用 Python 开发并提供 Java SDK。 由于这两种语言的流行,它实际上应该拥有大量潜在的开发人员。 事实上,R3 CEV 已经测试了 Sawtooth Lake,并进行了成功的证券交易实验。 目前,它的主要问题是缺乏关注。 不知Intel是否有足够的耐心和毅力坚持下去。 如果Intel的战略更清晰,支持力度更大,建议大家多多关注。

R3 Corda 是一个备受瞩目的分布式账本项目。 R3是一家由数十家银行和金融机构支持的区块链企业,已融资数亿美元。 它声称已经聚集了一组专家来研究满足金融行业需求的分布式账本系统。 Corda 是 R3 分布式账本系统的核心,经过长时间的调用,于 11 月 30 日正式开源。

Corda使用JetBrain独创的小众语言Kotlin开发,打开了Java世界的大门,令人钦佩。 此外,Corda 更重要的特点是它与现有世界的大银行和大型中央机构全面妥协和全面合作的态度。 Corda在设计上有很多独特的考虑,就是要与现有的业务规则相衔接。 例如,在几乎所有其他区块链平台中,每笔交易对每个节点都是可见的,并且只有在可见时才能被验证,只有能够被验证才能达成共识,因此整个网络的交易可见性是理所当然的事。 但在现实世界中金融机构之间的交易中,只有参与交易的各方才能看到交易的细节。 工行和建行之间的一笔交易,招商银行是完全没有必要看的。 为了满足这一现实,Corda 设计了一种独特的机制,牺牲了交易验证的全局可见性,以确保只有参与交易的各方才能看到并验证交易本身。 但另一方面,银行业务是一项受到严格监管的业务。 不能因为你用了区块链系统就把口若悬河的巴塞尔协议搁置一旁。 如何体现监管机构的职能? 这在其他区块链系统中并没有太多考虑。 Corda 设计了独特的 Notary 和 Oracle 节点,为监管系统留有空间进入。 细细品味,这些都是留给现实世界大机构的好工作。 这些设计考量无疑大大提高了 Corda 被现有大型金融机构采用的机会。 但是这一切看起来都很好,但是Corda目前的实现基本上就是作秀,很多想法都处于TODO状态。

另外两个值得一提的区块链派别是 Chain 和 BigchainDB。 前者与Visa有合作,后者是基于RethinkDB开发的分布式账本。 两者都有自己的想法和特点,也都获得了可观的投资。 不排除未来会有大发展。 限于篇幅,这里不做介绍。

区块链开发所需的技术基础

可以预见,未来从事区块链开发的开发者主要有三类。 一种是开发基于区块链的 Web 或移动应用程序。 这些开发人员所需的技能与当今的 Web 和移动开发人员相同。 ,这里就不赘述了。

第二类开发人员是开发智能合约。 此类开发者使用Solidity等智能合约语言,或者直接使用Go、Java、Python等语言进行开发。 开发智能合约对语言和算法水平要求不高,并发、多线程等东西一般用不到,普通开发者可以胜任。 但智能合约的难点在于业务和安全。 本质上,智能合约是用代码编写的商业合约。 必须对业务有非常清晰的理解,对安全有深刻的理解,才能编写出正确的智能合约。 因此,我认为未来智能合约的开发者可能主要是特定应用领域的行业专家,因为他们掌握Python语言要比程序员了解进出口贸易规则或商业票据业务容易得多。

第三类开发者是区块链核心应用系统和核心平台的开发者。 当然,这些人必须是技术专家。 按照现在流行的说法,一定是后端高手。 语言方面,C++、Java、Python、Go、JavaScript都有可能接触到。 基础知识方面,需要对密码学、分布式系统、网络编程、系统架构、部署等有相当程度的理解和实践经验。 这种开发者显然会是区块链技术浪潮的浪潮,也将是最大的受益者之一。

特别是,单击密码学。 密码学是大多数开发者的短板比特币区块链网站,但如果想在区块链核心技术领域拿出能够碾压竞品的创新,密码学是最有可能出成果的地方。 不用说,任何密码学的突破,即使密码学已有的成果完全应用到区块链上,也可能会出现一些奇葩的创新。 比如利用零知识证明构建高度匿名的区块链系统,比如利用私有计算外包(private computing outsourcing)技术让其他节点在不知道交易本身内容的情况下验证交易。 众所周知,这些都是可以激发大量商业模式创新的技术,等待密码学黑客去发现和实现。 因此,我相信密码学成为一门科学的时代正在到来。

区块链是一项前景广阔、极具颠覆性和想象力的技术。 它有可能带来一个完全不同的商业时代,塑造新一代互联网。 也可能被传统势力的勾结所异化。 不管怎样,区块链为创业者和程序员提供了另一种参与潮流的机会。 这片蓝海会上演怎样的好戏,让我们拭目以待。

作者简介:孟岩,IBM大中华区高级经理,负责IBM智慧地球、智慧城市、认知计算等重大科技战略在中国的推广和实施。 一年前,他开始关注区块链技术及其行业应用前景。 先后对比特币、以太坊、超级账本、BigchainDB四大区块链技术流派进行调研,形成了区块链技术在中国的应用。 观点和想法。

本文永久更新链接地址:

linux