作为一名区块链架构师,需要从哪几个纬度去做技术选型?

近年来,美国在 FinTech 领域不断实现技术突破和创新,特别是区块链方向,传统 IT 巨头、金融企业纷纷涉足其中,先后创建了 Hyperledger、R3、EEA 等著名区块链技术与应用联盟,积极地开展开源项目孵化,并在多个应用领域,包括但不限于 1)金融服务 2)政府治理 3)保险 4)医疗健康 5)物联网 6)供应链 7)信息通信技术(ICT)得到广泛的概念验证和试点落地。

为了更好地发展区块链技术,防范技术高速发展所孕育的潜在风险,行业标准刻不容缓。在此背景下,工信部中国电子技术标准化研究院牵头组织中国区块链技术和产业发展论坛主要成员,开展了《信息技术区块链和分布式账本技术参考架构》标准的研制工作。

笔者作为国内区块链参考架构的编制人员参加了 4 月 3 日 -5 日的 ISO/IEC TC307 区块链国际标准组第一次会议,下文将对 美国提交的区块链参考架构做一个简单分析并思考它的设计理念 对我们国内区块链架构设计的借鉴作用。

1. 参考架构的定位

(1)使用通俗的语言来描述区块链和分布式账本技术

(2)区块链或分布式账本技术的理想原型结构

(3)描述适用于区块链技术的标准范围

2. 参考架构的视角

可以从业务、法律或技术视角来看待区块链技术

a)从业务角度来看,区块链是一个在相互认同的参与者之间,促进价值、资产或其他实体转移的交换网络

b)从法律角度来看,区块链账本上的交易是经过验证、不可否认且无法篡改的,它不需要中介或第三方参与。

c)从技术角度来看,区块链是一个引用其他数据存储作为账本数据、全局复制的分布式账本。

3. 参考架构的设计理念

首先,从分布式应用架构师和开发人员角度来设计一种区块链平台参考架构,如下图:

图 3.1 区块链平台参考架构设计之一

它包含了 6 个层次:1)基础设施 2)安全 3)数据 4)账本 5)开发 6)分布式应用 ,我们一一对照解读一下。

(1)基础设施层

即运行分布式账本的一组服务器节点,它应该具有云计算的特性,包括虚拟化和可拓展性。该参考架构特别强调分布式账本不应该依赖于单个基础设施供应商,在联盟链场景下,应该使用来自多个基础设施供应商的云环境;这对国内是较大的挑战,企业往往出于管理便利性和自身数据安全考虑,仅选择一家公有云服务提供商或企业自己的云服务,在未来真正的分布式应用环境下,需要更加开放、高度兼容的 IaaS 服务。

(2)安全层

安全管理主要包含三部分内容,其中身份管理作为标准化的内容范围。

身份管理 – 即为不同角色维护他们在区块链网络中的数字身份

权限 – 即访问控制,如基于合约、用户、区块链等级别的权限管理,分级的权限控制符合更高的治理要求,更好适应各个国家监管和审计的要求。

可插拔加密服务 - 能够让用户自主选择和使用不同类型的加密算法,作为可升级的模块化组件,以应对未来量子计算机大规模流行对区块链所常用 ECDSA 等算法的安全性隐患。

(3)数据层

数据层都被纳入标准化的范围,主要包含下面三大服务:

安全(可信)数据访问服务 – 即分布式应用程序可以安全地存储和查询数据的能力

跨链服务 – 即智能合约在区块链与区块链间数据交互的能力

链上 - 链下服务 – 即安全地访问链下数据的能力,例如使用可信数据源或交叉使用可信认证技术

(4)账本层

分布式账本 – 即在全部节点间共享的经验证、共识的交易记录

可插拔共识服务 – 即验证哪些交易可以写入分布式账本的方法,需根据应用场景让用户自主选择合适的共识算法

(5)开发层

智能合约服务 - 能够将数据管理逻辑、应用逻辑、业务规则和合同条款集成进分布式应用程序的能力。该服务是可扩展的,所以应该支持不同的开发语言。

开发工具 - 用于编写、记录、测试、部署和监控分布式应用的工具

SDKs、APIs - 简化分布式应用程序访问分布式账本、智能合约等服务的中间代码。

编程接口 - 允许外部系统访问智能合约的服务、平台和数据的能力

总结一下,从开发者的角度来理解参考架构的设计思路,其根本目标是支持区块链的互操作性,使得用户、分布式应用和区块链之间能够实施可信数据交换,支持模块化、企业级程序设计、开放的 IaaS,便于开发者复用成熟的功能模块和选择任意的开发平台,实现跨平台的可移植性,当前市面上主流的区块链和分布式账本技术普遍使用 Go 语言、JS 语言进行分布式应用的研发,可以看出能够做到通用适配的平台较有优势。

作为一名区块链架构设计师,可以从下面几个维度去设计或者对区块链平台做一个选型:

  1. 区块链或分布式账本技术:根据业务特性,在需要增加“信任”的场景下,选择区块链或分布式账本技术解决方案。
  2. 身份管理:构建一个弱中心的认证中心,使得通过简单的方式就可以访问多个区块链,比如主权身份(身份证、护照等)。
  3. 安全数据访问服务:存储的数据需要在区块链中全局共享,需参考数据访问层对安全的要求。
  4. 跨链服务:不同区块链间的智能合约数据交互;这个服务使得区块链之间构建了互操作性,在复杂的业务场景下,可以设计出细粒度运作的独立子链(逻辑 / 物理),并通过母 - 子智能合约满足不同的业务需求,提升了全局“臃肿”账本的灵活度。
  5. 链上 - 链下数据访问服务:分布式应用程序需要与传统的链下系统进行互操作;在区块链高速发展期,不可避免需要与传统数据库应用系统进行交互,可能会诞生大量区块链中间件服务该需求。
  6. 智能合约服务:对于开发者,智能合约需要具备可移植性,尽可能支持多个不同的区块链平台,降低跨平台移植的工作量。对于合约开发平台,应该提供一个语法规范,让不同的区块链平台支持该开发语言。
  7. 编程接口:为了行业应用的爆炸式发展,对于传统的应用开发者,需要提供熟悉的 API 接口方便调用区块链上的智能合约程序。

结束语:2017 年将是区块链技术和应用的关键一年,将会涌现出大量有价值的应用。参考架构作为区块链领域的基础标准,一方面规范区块链技术和应用的研发,另一方面也为后续业务发展提供了引领的作用。

原文发布于微信公众号 - 程序你好(codinghello)

原文发表时间:2018-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网数据官iCDO

如今火爆的区块链技术到底是什么鬼?

作者:Sarah 本文长度为1746字,预估阅读时间8分钟。 导读:本文作者从分布式数据库、耐用性和稳健性、透明性和不易攻击性三个方面向我们介绍区块链技术。 区...

37390
来自专栏区块链大本营

这篇在medium上获得5万点赞的文章,值得区块链小白耐心读一读

不知道你有没有感觉到,如今的区块链,已经在大妈大爷这股强大催化剂的作用下,被出神入化地抬上了绝对的高度:

8420

更好地构建:区块链用例的简单指南

根据德勤最近的 在过去两年中创建的26,000个区块链项目中,92%已经死亡。

43780
来自专栏腾讯技术工程官方号的专栏

区块链技术沙龙最全回顾:我们需要做怎样的区块链?

? 导读:在诸多新技术付诸应用之后,越来越多的技术从业者开始发现,似乎摩尔定律已经开始失灵了,两年的周期远远跟不上技术和信息爆炸的速度。但与此同时,我们却发现...

21220
来自专栏区块链技术指北

区块链和数据库

本文由币乎社区(bihu.com)内容支持计划奖励。 这是「区块链技术指北」的第 15 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时...

50550
来自专栏区块链

解释区块链 - 工作证明如何实现去信任化的共识

比特币是区块链技术应用的经典实例,但是区块链这一技术往往很难被人们所理解。这是因为区块链技术的核心常常被一些复杂却并不重要的细节所掩盖。本文的目的就是建立对计算...

879110
来自专栏智能计算时代

区块链101:区块链能做什么?

在过去的30年里,金融机构资助了无数行业的崩溃;他们对革命技术能对静态的现任者做些什么有个想法。 因此,为了保持领先地位,银行在建立研发实验室、建立测试中心和与...

38040
来自专栏数字资产交易系统

2018年专业区块链技术研发公司详述数字资产交易平台开发技术

2017年是区块链元年,2018年将是区块链应用元年。数字货币与区块链技术经历了曲折的从概念到实践的坎坷之路后,应用落地的时机逐渐成熟,区块链技术的优势将于20...

16620
来自专栏智能计算时代

区块链概况:关键技术和挑战

image.png 从技术角度讲,区块链涉及到的领域比较杂,包括分布式、存储、密码学、心理学、经济学、博弈论、网络协议等,下面列出了目前认为有待解决或改进的关键...

47250
来自专栏区块链开发

区块链技术开发公司谈区块链的技术特点

区块链被吹捧为一种新兴技术,它有可能对每个行业造成影响。区块链的分布式系统与当今使用的固有集中式操作系统相对立,采用分布式数据库架构形式,某些操作的记录和身份验...

19550

扫码关注云+社区

领取腾讯云代金券