技术宅拯救世界,架构师链接未来

在可预见的未来里,做时代的建设者。

11月25日,Merculet的首席架构师吴翔彬在谷歌开发者节DevFest & TensorFlow Day2018上海站上,以《借助公链和联盟链构建融合基础设施》为题,分三个方向跟开发者们分享了:

1.区块链可扩展性,问题和提议;

2.解决方案实践经验;

3.面临的技术挑战和方案演进。

深度的区块链技术话题、行业领先的观点碰撞、以及创新技术与实战经验的深入分析。面对面的交锋,用最真实的声音诠释区块链。

(以下是吴翔彬老师在会上演讲的详细内容,欢迎仔细阅读)

·Chapter1.

区块链的可扩展性:

The ‘Trilemma’,中文定义为三元悖论。常规化的三元悖论,例如分布式计算里面的CAP原则,大众相对熟悉。

但是区块链世界的三元悖论则关注以下三点:

1. Decentralization: 即去中心化,实际上是多中心化,无需集中控制。

2. Security:即安全性,旨在通过现代密码学的机制,保证交易无法被抵赖和破坏,以便保护用户和交易记录的隐私性。

3. Scalability:即可扩展性,作为今天重点讨论的议题。

·Chapter2.

区块链的六层模型:

当前,区块链类比osi的七层模型,同样划定了分层架构,普遍比较认可的是图中的六层模型。

基于osi分层的区块链6层结构概念,我们将区块链网络和osi网络交互定义为Layer0。划分Lyer1和Layer2的标准在于Layer1涉及到链本身,而Layer2通过和链交互的方式来实现Scalability。

1> 数据存储,共识算法以及激励这一层我们归到Layer1层。

2> 应用和合约我们称作Layer2。

·Chapter3.

相对可行的解决方案:

针对Layer的问题,业界提出了相对可行的解决方案:

Layer 0解决方向主要是利用P2P网络、节点的查找发现,以及数据的传输,广播等等。Layer 1基本上各家公链都有各自的选择。Layer 2重心放在性能上,同时兼顾和Layer1的安全交互。Layer 2目前被认为有潜力解决大部分区块链业务落地问题。

·Chapter4.

Layer2的解决方案:

目前Layer技术上存在壁垒,Layer2最快实现将海量用户与数据代入区块链,具有一定的扩展性。

Layer2方案侧重以下三点:

off-chain ,共识是非常重要的点,业务是否通过ethereum来全球范围内确认吗?是不是可以将这些业务逻辑放到链下来操作,在发生争议或者需要裁决的时候通过链上合约来解决?

cross-chain,某些最终结果需要结合链上来解决,但是实现这两点之后就是一个layer2 方案吗? 我认为这只是一个数据上链,将区块链当成分布式数据库的用法,虽然数据在链上不可篡改,但是怎么保证提交的数据的真实可靠?

risk model,offchain没有任何安全性的保证,不能说是一个正确的链上交易。offchain是一种手段,是layer2方案的一部分而不是全部。Layer2需要依赖Layer1,Layer2和Layer1之间存在一个锚定关系,Layer2要保证和Layer1一致或者尽可能接近的风险模型。

Layer2方案的难点基本上也是跨链的难点,offchain怎么和onchain锚定,怎么保证它们之间有相同或者非常接近的风险模型,取决于具体的选择。事物的确认,尤其在链上确定另外一条链上的信息,区块链本身都是一个相对封闭的系统。包括独立安全性问题,在做跨链交易的时候,一条链上的出现问题不能影响另外一条链。从双链到多链,到网络,预期问题的复杂度会显著上升。

·Chapter5.

自研的解决方案:

在评估了业界一些现有的方案以及他们的成熟度之后,结合我们Merculet平台的业务特征,我们选择了自研的方案。大致思路主要有三点:

我们作为to b的企业,不是直接面对c方,需要授权加入网络,允许组织共同治理,所以选择了联盟链来作为我们的layer1 ,同时也可以为避免交易费用的问题,联盟链作为我们架构的layer1。

对业务分级,一定风险范围之内的交易通过链下方式处理,实现了自己的类支付通道了,风险模型锚定到联盟链。企业或者所属用户大部分行为在支付通道的生命周期内安全进行,在特定情况下可以选择关闭和结算。类支付通道的风险控制通过部署在Layer1上的chaincode来实现。用户通过提交balance proof来链上确认。

在实现了联盟内的生态流转之后,为了和生态外打通,比如企业或所属用户有提现或质押等要求,我们特有的服务代理能够处理这样的请求。

假设一个简化版的服务架构图:中间层是核心业务层,我们通过合约和服务适配b端用户的id系统,并且提供数字化的资产映射服务、提供支付、结算以及审计等接口。通过api gateway开放给最上一层的app/web以及授权api调用。

最下一层称之为native asset层,为了联通其他公链,比如允许客户质押erc20 token换取平台内数字资产。我们通过一个notary schema(公证人机制)的服务来允许客户资产存储。

使用联盟链作为Layer1,提供一个类支付通道作为Layer2实现。根据风险级别,业务可以选择直接和Layer1交互或者通过Layer2 offchain处理。在通道的生命周期内显示或者授权代理的方式周期性提交交易的balance proof,在安全性和性能之间达到更好的平衡,通过中继方式实现和公链的联通。

·Chapter6.

现有模式的参考意义

我们的模式在现阶段下对to b企业的参考意义在于:

通过联盟链为企业客户提供id服务和资产数字化服务。

在Layer1 tps 受限的前提下,结合业务特征,对符合微支付,小额资产转移的行为在Layer1的基础上研发类支付通道,目前业界只有基于公链的类似产品,比如基于以太的raiden.network和服务bitcoin的lighting项目。

研发专属的组件实现公链联通。

综合以上基础服务之后,结合包装好的sdk和api,以及合适的创意,能够服务客户带来切实的利益,提供良好的用户体验,

除此之外,公司另外一条产品线对AI有比较成熟的应用,这条产品线的风控目前是使用大数据来做处理,有兴趣的朋友可以和我们联系。

本期总结

最后我们将实际实现过程中的Tips分享给大家:

对存储在share preference里面的数据做加密处理,使用proguard加混淆字典来做代码混淆,包括so文件。

native layer方面做签名验证,避免被二次打包,还有反动态调试等等。

我们希望能和大家共同努力,在未来成为区块链美好未来的建设者,谢谢各位!

———— /END/ ————

关于Merculet

Merculet 是企业级的增长服务生态平台。依托日新月异的区块链技术,Merculet 为企业、IP、社群打造下一代高效增长解决方案。从而帮助企业、IP、社群迅速搭建基于用户行为贡献的运营体系,建立独有的品牌价值及用户社群,让用户积极参与企业共建,实现爆发式增长。

Merculet 希望通过平台化的增长服务生态体系,联合企业、IP、社群重启“百花齐放的互联网时代”。

关注我们

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181130A1AKVR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券