分类
外汇交易心得

什么是区块链技术?

什么是区块链技术?

这两个语言是无法逾越的,任何开发遇到瓶颈,基本上都会找到它们,自然应该排在第一位要介绍的。同时,区块链技术的鼻祖,比特币(协议层)就是用C++语言开发的,而且目前为止,没有比比特币更加成功的区块链产品。所以,无论你使用什么语言开发,在正式进入这个行业的过程中,都应该先研究研究比特币。比特币官方客户端钱包用的Qt,第三方钱包有Python语言开发的,特别是第三方整理的开发库(Api包)很多是Nodejs设计的。比特币的架构,与上面的架构设计基本相同,另外,因为共识算法采用的是工作量证明机制(PoW:Proof of work),还有一些特殊的挖矿的过程。其他竞争币都是直接来自比特币的分支,所以编程语言相同,具体的技术选型和技术实现上可能有所改进,比如:莱特币,使用了其他的加密算法。

如果是Python语言爱好者,我建议研究研究以太坊(Ethereum)的Python实现。尽管因为The Dao事件闹得沸沸扬扬,但从技术实现的角度来说,仍然值得参考学习。以太坊官方定位为一种开发管理分布式应用的平台,主攻方向就是“智能合约”,并为其定制了一种编程语言Solidity。以太坊的核心是以太坊虚拟机(EVM),允许用户按照自己的意愿创建操作。以太坊给出了Go、Java、Python等多语言的实现。其中以python为基础的实现主要包括三个部分:Pyethapp是客户端部分;pyethereum是核心库,实现了区块链、以太坊模拟机和挖矿等功能;pydevp2p是点对点网络库,实现了节点发现、合约代码传输、加密签名等功能,这三者组合在一起就是完整的区块链实现,后面两个核心库共同组成了协议层。另外,go-ethereum是go语言的完整实现;Ethereum(J) 是纯Java实现,它作为可以嵌入任何Java/Scala项目的库提供。客户端方面,还有Rust、Ruby、Javascript等语言的实现。

在多核时代,Go语言备受喜爱,它可以让你用同步方式轻松实现高并发,特别是在分布式系统、网络编程等领域,应用非常广。所以,在区块链开发领域,也有很多使用Go语言的项目。其中,由linux基金会主导的超级账本(HyperLeger),版本库的名字叫Fabric,就是其中一个。该项目试图为新一代的事务应用创建一种开放的分布式账本标准,支持许可式区块链(这种方式可能无法再现比特币那种强大的网络效应)。Fabric的开发环境建立在VirtualBox虚拟机上,部署环境可以自建网络,也可以直接部署在BlueMix上,部署方式可docker化,支持用Go和JavaScript开发智能合约。它采用PBFT分布式算法,网络编程方面用gRPC来做P2P通讯,使用 Protocol Buffer来序列化要传递的数据结构。在架构设计上,Fabric可能与比特币等区块链产品有所不同,但是上述基本组成部分还是不可或缺的。

1.区块链是什么

在Wikipedia上,将区块链类比为一种分布式数据库技术,通过维护数据块的链式结构进行持续增长的、不可篡改的数据记录。 在百度百科上,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块 [1] 。

简单来说,可以从狭义和广义两个层面来理解区块链的概念。 狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求。 广义上,区块链还指代基于区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。

2.区块链的发展历程

2008 年 10 月 31 日,中本聪向一个密码学邮件列表的所有成员发送了一个电子邮件,标题为“比特币:点对点电子现金系统”(Bitcoin:A Peer-to-Peer Electronic Cash System)。

2008 年 11 月 16 日,中本聪公布了比特币系统的源代码。

2011 年 11 月后,中本聪不再出现。他成了一个匿名的传奇,没人知道他是谁,他只留下了自己的创造。

3.原理与特点

3.1 基本概念

3.2 基本原理

区块链的目标是实现一个分布的数据记录账本,这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前导区块的哈希(Hash)值。某个区块(以及块里的交易)是否合法,可通过计算哈希值的方式进行快速检验。网络中节点可以提议添加一个新的区块,但必须经过共识机制来对区块达成确认。 下图是基于第三方机构的消费系统存在的问题,这也是比特币创立背景。 区块链技术是如何进行交易的呢?下面以比特币的交易流通过程进行描述区块链的原理。 区块链技术作为比特币的基础性技术,具有高度透明、去中心化、去信任、不可篡改、匿名等性质。这些性质体现了分布式自治的理念,逐渐受到拥有创新意识的金融机构的广泛关注。DAC(Distributed Autonomous Corporation)翻译为分布式自治机构。所谓DAC,就是通过一系列公开公正的规则,以无人干预和管理的情况下自主运行的组织机构。 这些规则往往会以开源软件的形式出现,每个人可以通过支付手段获得不定形式的回报,分享收益,参与系统的成长。比如,比特币、纳斯达克的新平台以及其他应用就是典型的DAC。

3.3 基本特点

3.匿名性 匿名性是比特币最基本的特性之一。区块链的匿名性是基于算法实现了以地址来寻址 ,而不是以个人身份信息进行交易流转。区块链的匿名性是指别人无法知道你的区块链资产有多少,和谁进行了转账等。这样,在区块链网络上只能查到转账记录,但不知道地址背后是谁,但是一旦知道这个地址背后对应的人是谁,也就能查到其所有相关的转账记录和资产。

4.应用场景

区块链可以通过哈希时间戳证明某个文件或者数字内容在特定时间的存在,加之其公开、不可篡改、可溯源等特性为司法鉴证、身份证明、产权保护、防伪溯源等提供了完美解决方案。

5.区块链开发语言

5.1 常用开发语言

5.2 开发框架

  • 无需中央机构就能够发售货币;
  • 无需中介机构就能够支付;
  • 维持用户匿名;
  • 交易无法被撤销。
  • 图灵完备的合约语言;
  • 内置的持久化状态存储。
  • 模块化设计、组件可替换;
  • 运行于Docker的智能合约;

Onchain DNA(Onchain Distributed Networks Architecture),能够同时支持公有链、联盟链、私有链等不同应用类型和场景,并快速与业务系统集成。

区块链技术应用前景广阔 推动农业粮食体系转型大有可为

在生产供人类消费的食品、牲畜饲料或家用木材时,区块链的可追溯性和透明度确保人们知道此类产品来自安全来源,或材料来自可持续供应商。

从一个假设的林业从业者的案例就可以窥见一斑:
• 林业从业者出售木材时,森林研究所确认木材采伐是合法的,并确认地理坐标。这些信息进入第一个区块。
• 粮农组织的地理信息系统——“手拉手”地理空间信息平台提供可共享的丰富数据,可用于验证先前声明的有效性。该验证信息进入第二个区块。
• 该国相关部门确认该木材采伐行为的合法性。第三个区块生成。
• 另一个独立机构独立确认该木材采伐行为的合法性。最后一个区块生成。
由此一来,区块链包含了批发商追踪木材来源和合法性所需的所有信息。

什么是区块链技术?

区块键技术的特征

“区块链”(Block chain)是由2008年发明比特币的Satoshi Nakamoto设计引入的,是比特币的核心技术,具有去中心化存储、信息高度透明、不易篡改和去信任化等特点。区块链是可信任的分布式数据库,具有分布式、不可篡改的特点,运用密码学原理、数据库存储和共识机制。区块链是一种数据结构,它创造了交易的一个数字总帐,在一个分散的计算机网络中实行公开透明。这个结构使用加密算法,使网络中的人能够进行交易,从而在无需集中管理就能调整总帐。简单来说,这是一条交易链,特定区域网络的参与者通过为总账添加价值块以做出贡献。这也是它的名字的由来:区块链。