基本概念
区块链的核心理念:一个分布式数据库,其基本单元为区块,取款用来存储数据,区块之间前后关联,通过时间排序,基于PKI、摘要算法实现集体验证、维护。区块链提供了一个分布式总账,让用户对总账的数据实现共同治理,因而建立互信。
区块链基本逻辑
区块链有两个核心场景:
1、创建新的区块Create:创建的区块与前序区块关联,并按时间排序;
2、填充数据到区块VoteAndSignAndFillData:填充数据到区块需要住民集体共识,并有基于PKI的签名;
区块链分类
区块会因为使用场景的不同,而分组,用来记录不同场景的数据。这些分组也因为面向的用户群不一样而又所区别,有一些区块链面向所有人,所有人的权利一样,这就成了公有链;有一些区块链只面向特定的人群,这就成了私有链;公有链、私有链之间会有协作,相互之间按照特定规则实现数据互信,则成了联盟链。
几种分类
公有链主要以建立基础设施为主,例如比特币基于工作量证明来实现稀缺性,以太坊通过智能合约提供共识机制的基础实现。私有链是真实有价值的领域,可以在一个领域形成共识,例如供应链SRM;当多个私有链所在一个领域且有互通有无的需求时,联盟链就诞生了。
公有链的开发接口
常见的公有链有BTC,ETH,SWT,MOAC,以及EOS,他们都提供了API接口用来集成开发。这里用表格对比下:
序号 | 接口 | BTC | SWT | MOAC | EOS | ETH |
1 | 创建钱包账户 | Y | Y | Y | Y | |
2 | 查询账户余额 | Y | Y | Y | Y | |
3 | 交易 | Y | Y | Y | Y | Y |
4 | 查询交易信息 | Y | Y | Y | Y | |
5 | 查询当前区块的交易记录 | Y | ||||
6 | 查询区块信息 | Y | ||||
7 | 解锁账户 | Y | Y | |||
8 | 查询最新区块高度 | Y | Y | |||
9 | 查询当前区块交易总数 | Y | ||||
10 | 查询协议版本 | Y | ||||
11 | 查询预测gas值 | Y | ||||
12 | 查询交易历史 | Y | ||||
13 | 查询区块交易总数 | Y | ||||
14 | 查询交易收据 | Y | ||||
15 | 查询账户信息 | Y |
常见公有链的API
基于区块链的交易系统架构
区块链是用来形成有共识保障的分布式账本的,因此基于区块链的交易系统本质就是借助这个能力,如果按照三层结构(客户、服务、数据),除了数据层,其余部分则与目前常见的电商、支付系统并无差异。而考虑到交易系统实现的中心化还是去中心化,因为数据层的实现变更为了区块链的模式,会造成体验会有不同。所增加的部分,在数据层,考虑到交易的情形,需要与区块链沟通信息。
主要差异点是结算系统需要与区块链沟通
区块链本来是为了实现共识,并借助了密码算法提高安全效率,奈何用户还是会接受中心化交易系统的便利,将自己的私钥都委托给交易系统,因此也除了很多问题。交易系统的安全是全方位的,除了操作风险外,还是非主观的因素,做必要的安全测试非常必要(AWVS是个选项,用来扫描安全漏洞,或者去购买第三方服务),系统维护上最好基于工具来收敛打开的窗口(Jenkins、Saltstack都是不错的选择)。
区块链开发:入门不难