前言
2018年疯狂的币市把区块链技术推到了风口浪尖,随着潮水的退去,越来越多的技术人和市场开始沉淀到实际的问题上。如何利用区块链技术带来的新特性(去中心,可追溯,不可篡改等)去解决现实世界的实际需求成为了探讨的热点。蚂蚁金服作为区块链技术的先锋,已经陆陆续续的推出了十大解决方案和对应的落地案例如下:
- 司法区块链
- 合同存证
- 供应链金融
- 电子票据
- 商保快赔
- 处方流转
- 智慧租房
- 通用溯源
- 安全多方计算解决方案(联合营销,联合风控)
- 跨境支付
未来,会有越来越多的传统行业和新兴业务拥抱区块链技术。可以预见,这项技术正在或即将改变许多现有的行业格局。
区块链应用开发的挑战
对于企业用户,如何把业务“搬”上区块链成为一个热点问题,其中困扰大家的主要是如何基于区块链去开发一套应用,如何把传统的商业模式升级为信任商业模式。以蚂蚁合同存证的解决方案为例,在底层,需要基于区块链技术打造一个可信的上链流程,包括把哪些数据、什么格式的数据送到链上等。在应用层,需要根据业务来设计一套业务流传的方案,包括如何与链上数据进行交互,如何与链下资源的对接,另外还要考虑到不同参与方的接入方式。
对于公链,如以太坊,已经有很多开发者活跃于此,许多的新兴应用正在出现。但是在企业级市场,基于区块链的应用开发模式还存在很大的挑战。一方面,企业需要在众多已有的区块链方案中选择出一个成熟的区块链平台,并搭建和管理对应的运行环境。另一方面,企业需要针对自己的业务需求,开发出一套基于区块链技术的应用。对大多数的企业来说,这两方面的挑战都不小。
区块链平台
让普通的企业用户自己去开发一套区块链方案是不现实的;如果让企业用户利用已有的开源区块链方案去搭建区块链环境,技术要求也比较高,一方面软硬件层面的配置比较复杂,另一方面后期维护升级成本高,缺乏底层支持保障。
因此,选择一个成熟的企业区块链平台对大多数企业来说是一个高效经济的做法。蚂蚁区块链BaaS(Blockchain as a Service)平台是蚂蚁金服自主研发的具备高性能、强隐私保护的金融级区块链技术平台。通过这个平台,企业用户可以轻松的搭建和托管区块链。企业可以把链的管理和维护交给平台,从而专注于应用的开发。蚂蚁BaaS平台提供一系列的SDK来帮助开发者实现客户端的接入。对于特定的应用场景,如商品溯源、司法存证,蚂蚁金服更进一步地提供了基于BaaS平台的具有行业特色的链上服务。
应用的开发
如果要和传统应用的开发类比,可以把区块链“类比”成一个数据库来看。传统的,开发一个基于数据库的应用需要:
- 根据业务需求,设计一个数据库,包括
表/存储过程/触发器
等; - 在应用层,利用各种SQLClient与数据库进行数据交互。
基于区块链的应用开发过程也是类似的,如果不深究区块链的原理,那么作为开发者需要掌握:
- 链上智能合约的开发;
- 链下应用的接入。
智能合约
智能合约(Smart Contract)作为区块链应用的一个核心特色,需要做一些特别的说明。可以把智能合约理解成一套全网自动执行的合同代码:当这个合同代码被部署到了链上,一旦相关条件满足,这份合同就会按照事先的约定自动执行。合同的执行过程不需要参与方额外的人工干预。合约代码对所有的参与方来说都是透明可见且不可篡改的,合约的执行结果也是可验证和确定的。假设通过智能合约设计来一个有三方参与的投资系统,参与者包括银行、投资人、被投资人。合约中约定投资人的决策者中有一半以上的成员同意一笔投资,银行就可以给被投资人放款,把资金从投资人的账户上转移到被投资的账户上。当这样当合约部署后,整个投资流程就可实现链上的自动执行,更重要的是整个过程对参与方来说都是透明公开、可追溯且不可篡改的。信任的构建不再需要复杂的文书和证明文件,智能合约的特性保证了交易的自动流转和真实可靠。
在蚂蚁区块链上,目前既支持主流的Solidity语言编写的智能合约,也支持通过C++语言编写的智能合约。
应用的接入
光有区块链和智能合约还是不够,就像上面提到的数据库应用,应用最终需要通过不同的客户端来实现需求、解决问题。开发者如何去实现链上链下的数据互通是区块链开发中的另一个热点。蚂蚁区块链BaaS平台上,目前已经提供了Java/JS/C++版本的SDK,这些SDK可以帮助开发者从容地使用不同的编程语言接入蚂蚁区块链,实现数据存储,状态查询和合约调用等。
蚂蚁BaaS平台的开发前准备
要使用蚂蚁区块链BaaS平台,开发者需要通过支付宝认证账户(企业)开通蚂蚁金融科技的账号并开通区块链服务。具体步骤如下:
- 登录控制台,点击
产品与服务
>区块链
>BaaS 平台
>前往开通
,进入开通页面。 - 阅读并同意服务条款后,点击
确定
。 - 审核通过后,产品开通成功。
BaaS平台为开发者提供了多条体验链用作前期的开发测试。近期,基于BaaS平台的区块链创新大赛也为开发者提供了更为完整的测试体验环境。
当然,用户也可以根据自己的需求选择创建和托管属于用户自己的不同类型的链。
原文地址:https://blog.51cto.com/14321927/2418700