GitChat 作者:蒋帆
原文:区块链落地中的九大问题与解法
关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术

【不要错过文末彩蛋】

前言

ThoughtWorks与其卓越的客户群一直以领导数字化创新,用实践带来变革为己任,在区块链领域也不例外,我们和客户一起在一些领域,如供应链、小微企业金服等,探索了区块链产业化的方案,并且通过探讨和实践总结出端到端落地的方法。本文希望通过分析区块链落地的现状和问题域,结合区块链的核心价值与工程实践,分享我们在区块链创新中的关键活动与最佳实践。

随着行业关注度的提升,区块链从“黑科技”中脱胎换骨,一跃成为炙手可热的技术新星,但是区块链的落地仍然存在许多的问题。区块链虽然是一门新兴技术(尽管其依赖的密码学和分布式技术早已在其他系统中使用许久),区块链的落地,本质上仍然是软件开发与交付运营的过程,面对这些问题,我们希望能采用ThoughtWorks在实践中总结出的最合适的过程方法去帮助区块链应用落地。

在和客户的交流与对行业的观察中,我们总结出这样几个现状:

针对区块链的落地现状,我们总结出了下列九大问题域,并且在几个项目上做了验证。

敏捷与精益 Agile & Lean

首先,我们认为敏捷和精益的方法,在区块链的开发与落地仍然适用,众所周知敏捷与精益都需要通过快速反馈,获得系统和项目的运作状态,并且依据其现状制定对策,而区块链应用中,由于其落地实践并不多,更加需要通过反复迭代回顾的方式推进项目落地。

此外我们也需要从市场出发,由商业模式驱动出区块链落地的具体方案,并且在识别、测试、提炼的过程中,寻找区块链的价值点。

区块链落地并非单纯的使用区块链技术,它与传统的软件开发相似,仍然需要多方的配合,不管是设计还是开发,甚至安全运营环节,都需要多方共同协作完成。

关注隔离 Separation of Concerns

区块链落地亟待“关注点隔离”,企业对于区块链的诉求究竟是平台?还是应用?还是服务?

关注点混乱是目前阻碍应用落地的罪魁祸首,而遵守分层隔离原则进行落地开发,可以帮助产品团队识别出落地重点。

以太坊社区就依靠这种方式,对其平台、应用、服务做了细致的分层分领域拆分。我们可以通过EthOn提供的本体论看到,区块链的网络层、区块数据层、消息层需要分离,区块链数据中的账户模型、事务模型、合约模型、合约事件等领域也需要进一步解耦。

价值发现 Value Discovery

区块链的一大贡献,就是提供了一种数字化的价值迁移模型,它可以在某些场景下替代原本需要依赖权威共识保障的背书和行权。

我们在进行区块链落地开发之前,会对项目的愿景进行梳理,其中最重要的环节就是价值发现,在于业务人员的沟通中,我们需要识别出业务场景下的的价值与迁移(Value migration)。这里的价值可以是企业的资产,也可以是用户的数据,我们将其量化后转变为可以计算的价值点,通过区块链的特性能力解决其在业务场景下的痛点,这样在后续的应用落地中,就可以依靠这些价值约定来驱动出功能。

与此同时,价值发现也可以帮助我们在梳理愿景时就分析各个价值点的优先级,对任务进行有效的排列,也可以减少不必要的时间浪费。

合约博弈 Contract Gaming

由萨博提出的智能合约模型,可以说是区块链产业的一大进步。

智能合约以区块链为载体,承载多方博弈中的价值,将规约与行权数字化。我们可以通过区块风暴的一系列活动,分析出区块链落地中可能存在的合约博弈点。

区块风暴通常包含下面几个步骤:

  • 价值风暴 Value Storming :针对业务中的价值进行发掘。

  • 交易/事务风暴 Transaction Storming :针对业务中的交易和事务(价值转移)进行梳理。

  • 事件风暴 Event Storming :将每个合约状态转移的事件映射到业务流中。

  • 博弈风暴 Gaming Storming :寻找合约中的博弈点,对其进行集中讨论。

这四个头脑风暴,通过大量讨论识别系统中可能存在的价值点、交易、事件、博弈,并且将其映射到组织和组织间原本的业务流当中,可以将每个合约落地时所需的指导规约提前确定,帮助开发。

TDD,BDD & DDD

在区块链的开发过程中,我们依然采用测试驱动开发、行为驱动实现、领域驱动设计的最佳实践,帮助我们保证代码质量、确定业务需求、约束关注边界。

TDD可以保障合约的细节实现满足需求,并在重构迭代中为开发团队提供强大的信心支撑。BDD可以作为业务人员与区块链应用开发团队的沟通桥梁,以规范的业务描述形容规约。

而DDD则可以帮助架构师约束边界、拆分架构与组织,三者结合可以帮助开发团队在各个迭代中交付高质量、体验佳、清晰的区块链应用。

能力度量 Ability Evaluation

在技术选型的过程中,我们需要考察区块链框架和平台的能力,通常区块链的能力度量会从分布式的性能和系统完备等多个方面考虑。我们建议开发团队在选型前,先行评估下列能力。

针对每个维度的能力度量,我们都可以希望尽可能量化和标准化,例如对于分布式系统中的一致性、分区容错性、可用性三者需要进行合理的权衡。区块链是一个高一致性高可用性的数据库,也由此带来了一系列性能瓶颈,我们可以通过一些裁剪(如SPF、闪电网络等)对其特定场景的性能进行优化。

而针对平台提供的基础开发设施,开发团队也需要有更完整清晰的认识,如Bitcoin、Ethereum、Hyperledger之间的的可扩展性差异,由其本身平台底层设计约束,开发人员需要了解非图灵完备系统与图灵完备系统,非防停机问题系统与防停机问题系统之间的区分,才能判断选用何种平台作为落地框架。

密码学与分布式 Crypto & Distribution

密码学与分布式系统是区块链应用的两大基础理论支撑,在区块链应用的落地过程中,我们也不可避免地需要讨论密码学与分布式问题。

其中密码学最核心的作用是将数字资产与价值数字化,因此不同的密码学原语(如摘要、签名、零知识证明、哈希谜语、同态加密等)都是为了满足信息系统与现实事务的映射,通过密码学技术完成数字孪生,是区块链的一个核心议题。

去中心化的分布式系统,是区块链的另一大创举,比特币为首的区块链应用,通过完善的协议规约,完成了高容错的去中心共识协议(如POW、POS、PBFT等),这就好比十字路口转变为环形岛的设计,而去中心化场景下的应用落地,也给传统业务区块链化带来了机遇和挑战,如何分析和适应去中心的场景,就对应用团队提出了新的要求。

持续集成与不可变交付 Continuous Integration & Immutable Delivery

持续集成与持续交付已经成为IT业界的最佳实践,而区块链的去中心化特性,对开发团队在这一领域的能力提出了更高的要求。

区块链开源社区还在稳步的积累过程中,不可变交付也成为了新的难题,区块链在部署之后便很难进行迭代发布,尤其是合约一旦部署便不可修改,需要对留存在合约中的价值物进行迁移,这就要求开发团队将可能发生的迁移与部署问题考虑完善。

Truffle与OpenZepplin在持续集成与不可变交付方面为以太坊开发提供了支撑区块链应用落地的工具与标准库,使用类似的工具可以帮助我们管理不可变的部署与迁移过程,并且享受业界在生产环境久经考验的标准化框架(如ERC Token、Math函数等)。

开发运维与内建安全 DevOps & BuildSecurityIn

随着区块链的一些应用逐渐落地,其工程实践如DevOps与内建安全的体系也在逐渐的完善,ConsenSys就总结了一些区块链的最佳实践供社区的开发者们参考,在开发运维方面,回滚与审计已经形成了一些实践,安全运营方面也有诸如断路器(Circuit Breaker)、减速带(Speed Bump)、限速器(Rate Limiting)等模式,也有一些公司采用Bug Bounty的方式进行悬赏。

此外在代码安全层面,我们也建议开发者尽可能使用现有的工具进行静态分析与可视化,同时提高测试覆盖率,以提高安全性与交付质量。

一个样例 SAMPLE

我们采用持续迭代的形式,在社区试验了数场区块链落地的 Workshop,其中基于以太坊的知识分享激励合约 PonziTTT 旨在培养更多区块链应用落地实践的布道者(Train the trainer),也已经经历了数轮迭代,两个线上版本的演化,你可以在 github 上找到我们的推进过程与代码。

在这个样例项目中,我们的学员也总结了一些问题,如:

  • 博弈点需要确定。

  • 不可变交付,要求严格测试。

  • 数据访问,难以简单实现保密。

  • Gas机制,用户体验受影响。

  • 模块化调用与跨链通信,仍然需要等待标准。

面对这些问题,我们也找到了各自的方向:

  • 合约博弈的引入可以帮助产品更好地运作。

  • 引入测试工具,尽可能使用标准库,减少安全风险。

  • 不可以依赖简单的实现做数据访问控制。

  • 参与大都会(metropolis)的讨论,与社群一同制定Gas Billing新标准。

我们也期待未来的进展中能给大家带来更多的分享,也欢迎更多渴望落地实践的朋友能参与进来。

期待 Expectation

综上,我们为区块链落地过程中遇到的这九大问题:敏捷与精益、关注隔离、价值发现、合约博弈、TDD/BDD/DDD、能力度量、密码学与分布式、持续集成与不可变交付、开发运维与内建安全 分别找到了解决的研究方向,但是这些方法仍然等待着我们去深化和探索。

我们也期待看到区块链社区与业界能有更多的力量投入到关注实践与落地的应用场景里来,一起完善区块链落地中的最佳实践,希望这场技术创新能在开发者们脚踏实地的摸索中爆发出更大的能量。


实录:《蒋帆:解析区块链落地中的九大问题与解法》


【GitChat达人课】

  1. 前端恶棍 · 大漠穷秋 :《Angular 初学者快速上手教程 》
  2. Python 中文社区联合创始人 · Zoom.Quiet :《GitQ: GitHub 入味儿 》
  3. 前端颜值担当 · 余博伦:《如何从零学习 React 技术栈 》
  4. GA 最早期使用者 · GordonChoi:《GA 电商数据分析实践课》

区块链落地中的九大问题与解法相关推荐

  1. 区块链开发中的9大应用场景

    区块链开发中的9大应用场景 自从2008年区块链技术的概念在中本聪的手里诞生以来,至今已有10年的历史.伴随着比特币市值的巨大波动,不管是男女老少都多多少少对区块链技术有过一定的了解.当很多人听到&q ...

  2. 去伪存真,更多区块链落地应用即将涌现

    区块链的发展标志着人类开始构建真正的信任互联,且高度契合国家政策所规划的未来经济发展方向,我国将区块链.大数据.AI 等纳入新基建范围,将有力推动整个区块链行业的创新突破和全行业应用场景落地. 虽然近 ...

  3. 区块链创业者:谈企业级区块链落地,传统行业的崛起(分享实录)

    2019独角兽企业重金招聘Python工程师标准>>> 1 前言:我与区块链结缘 2011,初始比特币 2016,了解以太坊及加密货币,开始投资,并关注企业级区块链落地实现. 分享大 ...

  4. 笃志前行 锐意进取 | 中创算力在区块链比赛中展现新风采

    近日,由南京市江北新区中央商务区建设管理办公室指导,万向区块链实验室主办的2022万向区块链黑客马拉松圆满落幕. 经过线上报名.海选.线下比赛的方式,挖掘并孵化一批落地能力强.有创新潜力的优质区块链项 ...

  5. ADAMoracle预言机将数据传至链上实现区块链落地应用

    ADAMoracle预言机将数据传至链上实现区块链落地应用. 现在近乎所有的公链都是一个封闭的系统,它只能读取链上的数据,无法感知真实的世界.也就是说,链下真实世界的数据无法传输至链上,比如天气数据. ...

  6. 沙龙报名 | 区块链落地难? 六位专家揭秘京东区块链全景应用

    区块链的发展标志着人类开始构建真正的信任互联,且高度契合国家政策所规划的未来经济发展方向,我国将区块链.大数据.AI 等纳入新基建范围,将有力推动整个区块链行业的创新突破和全行业应用场景落地. 虽然近 ...

  7. 区块链游戏中的网络效应:内容仍为王

    导读:两个月前,我们写过一篇<内容为王>,其中用VR行业和主机游戏行业为例阐述了如今区块链应用落地过程中的困境--没有内容.没有消费者.上周六我们在Hackernoon上读到了一篇观点类似 ...

  8. 区块链落地应用虚实待验,以人为本挖井为先

    区块链落地应用虚实待验,以人为本挖井为先 金融领域中按道理深圳之声的到来会加大数字货币的快速提升,但当还没有牛市来临,也可能和天气现象一样,这边打雷不下雨,而隔岸正下着雨.不是所有的事情都是用肯定的, ...

  9. 炙手可热的区块链落地金融,是行之将至还是渐行渐远?

    区块链是目前互联网上最受热捧的技术,即使是在今年年初数字货币的低迷和ICO被监管部门明确禁止,技术能否落地受到质疑,但是区块链的大火仍在弥漫. 众所周知的是,在虚拟货币受限之后,不少区块链玩家都在思考 ...

最新文章

  1. Linux中history历史命令使用方法详解
  2. 太强了!这个 Jupyter notebook 离线工具可以用一辈子!
  3. arduino与matlab联调出现问题
  4. P5431-[模板]乘法逆元2【递推】
  5. 如何从过滤器中排除URL
  6. 最新变体Transformer!∞-former!DeepMind 出品!
  7. android 扫描SDCard.
  8. HttpUtility.UrlEncode、HttpUtility.UrlDecode、Server.UrlEncode、Server.UrlDecode的区分与应用
  9. get方式乱码post方式不会乱码原因
  10. hadoop安装教程(一次填完所有的坑)
  11. 车辆等级、车型分类及carsim内置车辆种类整理
  12. 初测ONES项目管理工具,寻求与众不同
  13. LOCAL_PRIVILEGED_MODULE 详解(3)
  14. 计算机b类b级2020,CPU天梯图2020_笔记本CPU天梯图2020最新版【7月更新】-太平洋IT百科...
  15. ctex中dvi格式_LaTex使用过程中的各种类型文件说明
  16. 【单片机】4.4 响应中断请求的条件
  17. 端午临中夏,时清日复长。
  18. 【补充】膜拜大神——吴恩达(转自Wikipedia)
  19. 【应急基础】————8、辅助脚本
  20. 【牛客网-华为机试题目录】持续更新中

热门文章

  1. 美国雷曼兄弟公司简介
  2. linphone-LinphoneAddressImpl文件对应的JNI层文件分析
  3. Python 分布式爬取 InfoQ 信息
  4. 药明奥测完成1.5亿美元B轮融资,加速全球诊断市场产业布局
  5. 计算机英语videos啥意思,英语video的中文是什么意思
  6. 怎么样用计算机解锁密码忘了,电脑开机密码忘记了怎么办,详细教您如何解决忘记电脑开机密码...
  7. Idea——Tomcat和Maven使用 报错——Warning: No artifacts configured 解决方法
  8. 微信小程序实现点击订阅消息在特定的时间点发送
  9. JuiceFS:写流程源码解析+刷盘+数据一致性分析
  10. 如何细分暴利关键词实现月入10万+