区块链是什么区块链的原理区块链的特点区块链的应用场景区块链开发语言与框架适合人群:对区块链感兴趣的读者
简单来说,可以从狭义和广义两个层面来理解区块链的概念。狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求。广义上,区块链还指代基于区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。
——Blockchain是否能够改变我们解决问题的方法,我们拭目以待。2.区块链的发展历程“过去的20多年,互联网使得个人和组织能够更有效地进行商业和社会活动。然而个人和组织相互之间进行交易的基本模式并没有改变。Blockchain可以带给那些流程更多的开放性和效率,正如我们在互联网时代所期待的那样。”—ArvindKrishna,SeniorVP,IBMResearch了解过去,是为了更好地把控未来,那么区块链的前世今生又是怎么样地发展历程呢?
现在区块链技术可能带来互联网的二次革命,把互联网从“信息互联网”带向“价值互联网”。在区块链的对照之下,人们发现,最初被形象地称为“信息高速公路”的互联网处理的是“信息”,而区块链能处理的是“价值”。
变革即将发生,未来已来。我们又一次处于革命的起点——价值互联网的变革,而要理解价值互联网的未来,我们先要搞明白区块链技术是什么。
区块链,可能是当下最有前景又充满分歧的技术与经济趋势。它给数字世界带来了“价值表示”和“价值转移”两项全新的基础功能。其潜力正在显现出来,但当下它又处于朦胧与野蛮生长的阶段。3.原理与特点Blockchain技术有极大可能性使得有多方参与的商业网络转型,从而明显地降低成本和风险,并进行业务模式创新。3.1基本概念要想对区块链有个大体的认识,可以从如下几个概念开始:
1.去中心化
去中心化是区块链最基本的特征,区块链不再依赖于中心化机构,实现了数据的分布式记录、存储和更新。所有在区块链网络里面的节点,都有记账权,都可以进行记账,这可以规避操作中心化的弊端。
在生活中,比如淘宝购物,实际你的钱是由支付宝这样的机构进行管理和储存。转账、消费时在我们的账户余额上做减法,收款时做加法。你的个人信息也都在支付宝的数据中,这些都是中心化的,都是围绕这第三方这个中心。
但如果支付宝的服务器受到损坏,被攻击导致数据丢失,那我们的记录就会被销毁,交易无法查询、在特殊时期,会被随时查封、冻结、无法交易、或者由于天灾导致数据销毁,你存在支付宝内的资金无法追回等。或者另一种常见的问题:个人信息的泄露。这就是中心化的缺点。
但由区块链技术支撑的交易模式则不同,买家卖家可以直接交易,无需通过任何第三方支付平台,同时也无须担心自己的其他信息泄漏。去中心化的处理方式就要更为简单和便捷,当中心化交易数据过多时,去中心化的处理方式还会节约很多资源,使整个交易自主简单化,并且排除了被中心化控制的风险。
2.全球流通
区块链资产首先是基于互联网的,只要有互联网的地方,就可以进行区块链资产的转账流通。相较于中心化的方式,区块链资产在全球流通的转账手续费非常低,比如比特币早期转账手续费为0.0001BTC,相对于传统转账来说,区块链资产到账也非常快。一般几分钟到1小时就能到账。
4.公开透明
5.不可篡改
区块链系统的信息一旦经过验证并添加至区块链后,就会得到永久存储,无法更改(具备特殊更改需求的私有区块链等系统除外)。除非能够同时控制系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。哈希算法的单向性是保证区块链网络实现不可篡改性的基础技术之一。
6.可追溯性
7.自治性
区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。
Blockchain共享帐簿技术实现了在分布式环境里多方参与的双边交易中的去中介化。共享帐簿全网记录,可追溯,防篡改具有最终性。从而在保证安全的情况下,提高效率,降低成本。
1.数字货币
在经历了实物、贵金属、纸钞等形态之后,数字货币已经成为数字经济时代的发展方向。相比实体货币,数字货币具有易携带存储、低流通成本、使用便利、易于防伪和管理、打破地域限制,更好整合资源等特点。
比特币技术上实现了无需第三方中转或仲裁,交易双方可以直接相互转账的电子现金系统。2019年6月互联网巨头Facebook发布了其加密货币天秤币(Libra)白皮书。无论是比特币还是Libra,其依托的底层技术正是区块链技术。
我国早在2014年就开始了央行数字货币的研制。我国的数字货币DC/EP采取双层运营体系:央行不直接向社会公众发放数字货币,而是由央行把数字货币兑付给各个商业银行或其他合法运营机构,再由这些机构兑换给社会公众供其使用。2019年8月初,央行召开下半年工作电视会议,会议要求加快推进国家法定数字货币研发步伐。2.金融资产交易结算
区块链技术天然具有金融属性,它正对金融业产生颠覆式变革。支付结算方面,在区块链分布式账本体系下,市场多个参与者共同维护并实时同步一份“总账”,短短几分钟内就可以完成现在两三天才能完成的支付、清算、结算任务,降低了跨行跨境交易的复杂性和成本。同时,区块链的底层加密技术保证了参与者无法篡改账本,确保交易记录透明安全,监管部门方便地追踪链上交易,快速定位高风险资金流向。
证券发行交易方面,传统股票发行流程长、成本高、环节复杂,区块链技术能够弱化承销机构作用,帮助各方建立快速准确的信息交互共享通道,发行人通过智能合约自行办理发行,监管部门统一审查核对,投资者也可以绕过中介机构进行直接操作。数字票据和供应链金融方面,区块链技术可以有效解决中小企业融资难问题。目前的供应链金融很难惠及产业链上游的中小企业,因为他们跟核心企业往往没有直接贸易往来,金融机构难以评估其信用资质。基于区块链技术,可以建立一种联盟链网络,涵盖核心企业、上下游供应商、金融机构等,核心企业发放应收账款凭证给其供应商,票据数字化上链后可在供应商之间流转,每一级供应商可凭数字票据证明实现对应额度的融资。
3.数字政务
区块链可以让数据跑起来,大大精简办事流程。区块链的分布式技术可以让政府部门集中到一个链上,所有办事流程交付智能合约,办事人只要在一个部门通过身份认证以及电子签章,智能合约就可以自动处理并流转,顺序完成后续所有审批和签章。
区块链发票是国内区块链技术最早落地的应用。税务部门推出区块链电子发票“税链”平台,税务部门、开票方、受票方通过独一无二的数字身份加入“税链”网络,真正实现“交易即开票”“开票即报销”——秒级开票、分钟级报销入账,大幅降低了税收征管成本,有效解决数据篡改、一票多报、偷税漏税等问题。
扶贫是区块链技术的另一个落地应用。利用区块链技术的公开透明、可溯源、不可篡改等特性,实现扶贫资金的透明使用、精准投放和高效管理。
4.存证防伪
在知识产权领域,通过区块链技术的数字签名和链上存证可以对文字、图片、音频视频等进行确权,通过智能合约创建执行交易,让创作者重掌定价权,实时保全数据形成证据链,同时覆盖确权、交易和维权三大场景。在防伪溯源领域,通过供应链跟踪区块链技术可以被广泛应用于食品医药、农产品、酒类、奢侈品等各领域。
5.数据服务
区块链技术将大大优化现有的大数据应用,在数据流通和共享上发挥巨大作用。未来互联网、人工智能、物联网都将产生海量数据,现有中心化数据存储(计算模式)将面临巨大挑战,基于区块链技术的边缘存储(计算)有望成为未来解决方案。
再者,区块链对数据的不可篡改和可追溯机制保证了数据的真实性和高质量,这成为大数据、深度学习、人工智能等一切数据应用的基础。最后,区块链可以在保护数据隐私的前提下实现多方协作的数据计算,有望解决“数据垄断”和“数据孤岛”问题,实现数据流通价值。
针对当前的区块链发展阶段,为了满足一般商业用户区块链开发和应用需求,众多传统云服务商开始部署自己的BaaS(“区块链即服务”)解决方案。区块链与云计算的结合将有效降低企业区块链部署成本,推动区块链应用场景落地。未来区块链技术还会在慈善公益、保险、能源、物流、物联网等诸多领域发挥重要作用。
1.JAVA开发语言(未来币)
定义:Java是一种面向对象的编程语言,不仅吸收了c++语言的优点,也抛弃了在c++、指针等概念中难以理解多重继承的困难,因此Java语言具有强大且易于使用的两个特性。作为静态面向对象编程语言的代表,Java语言完美地实现了面向对象的理论,允许程序员用优雅的思维方式进行复杂的编程。
Java的特点是简单、面向对象、分布式、健壮、安全、平台独立性和可移植性、多线程和动态。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。
2.C++开发语言(比特币、公正通、瑞波ripple)
定义:c++是C语言的继承,它可以是C语言程序设计的过程,也可以是抽象的数据类型,作为基于对象的编程的特征,也可以承担面向对象编程的继承和多态性。c++擅长面向对象编程,它也可以执行基于流程的编程,所以c++是问题大小的大小。
3.GO开发语言(以太坊、IBM)
定义:Go是一种新的语言,并行的,垃圾收集,快速编译的语言。它具有以下特点:
Go是一种编译语言,它结合了解释语言的灵活性、动态类型语言的开发效率和静态类型的安全性。它还打算成为一种支持网络和多核计算的现代语言。为了实现这些目标,需要解决一些语言问题:一个具有表达性但轻量级的类型系统、并发和垃圾收集机制、严格的依赖规则等等。这些不能通过库或工具来解决,所以创建。
4.Solidity开发语言(以太坊)
定义:Solidity是在Ethereum虚拟机(EVM)上运行的智能契约的高级语言。它的语法接近于Javascript,是一种面向对象的语言。但是当涉及到把网络作为一个真正的东西的时候,这是非常不同的。
5.2开发框架
开发区块链都用什么框架?以适应不同场景的需求为目标,区块链应用在实际使用过程中向来会需要进行多次修改,来满足特定业务的需求,于是用于定制专用区块链系统的架构就出现了,采用这些框架能够便捷地定制出适用于企业自身业务需求的区块链系统。
1.比特币架构
比特币(Bitcoin)身为区块链的始祖,在区块链的大家族中具备举重若轻的影响力。其有如下特点:
无需中央机构就能够发售货币;无需中介机构就能够支付;维持用户匿名;交易无法被撤销。
2.以太坊架构
以太坊(Ethereum)的目标是提供一个带有图灵完备语言的区块链,用这种语言能够创建合约来编写任意状态转换功能。用户只要简单地用几行代码来实现逻辑,就能够创建一个基于区块链的应用程序,并应用于货币以外的场景。以太坊在比特币的功能之外,还有下列几个设计目标:
图灵完备的合约语言;内置的持久化状态存储。
3.Fabric架构
Fabric是由IBM和DAH主导开发的一个区块链框架,是超级帐本的项目成员之一。它的功能与以太坊相似,也是一个分布式的智能合约平台。但与以太坊和比特币不同的是,它从一开始就是一个框架,而不是一个公有链,也没有内置的代币(Token)。
身为一个区块链框架,Fabric采用了松耦合的设计,将共识机制、身份验证等组件模块化,使之在应用过程中能够方便地根据应用场景来选择相应的模块。除此之外,Fabric还采用了容器技术,将智能合约代码(Chaincode)放在Docker中运行,从而使智能合约能够用几乎任意的高级语言来编写。
下列是Fabric的一些设计目标:模块化设计、组件可替换;运行于Docker的智能合约;
4.OnchainDNA架构
OnchainDNA(OnchainDistributedNetworksArchitecture),能够同时支持公有链、联盟链、私有链等不同应用类型和场景,并快速与业务系统集成。
OnchainDNA的设计目标关键有下列几点:多种数字资产的底层支持;图灵完备的智能合约和持久化状态;跨链互操作性;交易的最终性。
5.Corda架构
Corda由Java和Kotlin开发,并在其各项功能中充分依赖于Java,比如智能合约、数据访问接口等。Corda的设计目标关键是:没有全局账本;由公证人(Notaries)来解决交易的多重支付问题;只有交易的参与者和公证人才能看到交易。为此Corda的所有交易都不会向全网进行广播,而且所有的节点都是直接通信,没有P2P网络。这一点导致了其网络规模会被限制在一个较小的规模内,无法形成大规模的联盟链,适用的业务场景比较狭窄。
区块链技术的业务价值在于提高流程透明度、数据可信度、降本增效。