公有区块链技术实践

  • 828 浏览

中国技术开发日

2017/07/28 发布于 技术 分类

公有区块链技术实践

区块链  blockchain 

文字内容
2. 公有区块链技术实践 维优区块链 CTO 陈浩
3. 目录 区块链技术的一般性架构与实践(以公有链为例)分享 1 2 3 4 1. 区块链技术的演 化 2. 关于联盟区块链 的几个问题 1. 公链的图谱和生 态 2. 区块链的一些主 要指标 3. 区块链与传统架 构的不同点 1. 公有区块链的架 构与选型 2. 区块链开发中的 实践 1. 如何将我们设计 的公有链转化为 联盟链
4. 1 区块链技术概览 TOPICS 1. 区块链技术的演化 2. 关于联盟区块链的几个问题
5. 按许可性质分类 公链 联盟链 私有账本 • 数据中心 • 私有化的区块链 封闭 • HyperLedger • R3 Corda • 比特币 • 以太坊 • 比特股 开放
6. 技术演化 冷灾备 异地多活 数据中心 经典分布式一 致性算法 分布 式账 本 带拜占庭容错 的分布式一致 性算法 基于经济学的 博弈算法 区块链 公链演化
7. 有关联盟链几个问题 区块链分公证型和价值型;联盟链的困境 1 价值联盟链有什么前置 条件? • 价值联盟链必须是跨行 业的 2 联盟链实现的难点? 3 联盟链有什么类型? • 匿名性和隐私性 • 竞争联盟链 • 已有数据源的接入 • 协作联盟链 • 链间协议暂无标准
8. 2 2 区块链开发 TOPICS 1. 公链的图谱和生态 2. 区块链的一些主要指标 3. 区块链与传统架构的不同点
9. 公链技术图谱 彩色币 (染色币) 闪电网络 比特 币 The DAO DAPP Digix Augr 智能合约 侧链 以太坊区块 链 Rootstock 合约扩展 比特币多是围绕型生态, 上层应用独立开发,可插拔 以太坊多是继承型生态, 所有APP继承自智能合约
10. 公链应用生态的一种可能结构 任何人或机构都只需专注提供服务。
11. 区块链与数据中心的比较 一致性 10 8 6 4 2 0 拜占庭容错性 公有链 联盟链 数据中心 可用性 拜占庭容错:与CAP理论不同的是,”P”特性在区块链系统中演化为 指系统抵御人为篡改数据的情况下的业务容错能力,而不再单纯指网络分区(硬分叉篡改)。
12. 不同区块链的TPS比较 名称 公识算法 适合场景 开发语言 智能合约 TPS 比特币 PoW 公链 C++ 否 ~10 以太坊 PoW(将切换PoS) 公链/联盟链 Go/Rust 是 ~20 HyperLedger fabric PBFT(可插拔) 联盟链 Go 是 ~10^5 比特股2.0 DPoS 公链 C++ 否 ~10^3 公证通 类PoS 公链/联盟链 C++ 否 ~20 瑞波 RPCA 公链/联盟链 C++ 否 ~10^3 未来币 PoS 公链 JAVA 否 ~10^3
13. 评价指标 1 基础账本 • • • 3 2 可追溯性 透明性 兼容性 加密算法 4 共识算法 • P2P网络性能 • 安全性(拜占庭容错阀值) • 交割实时性 交互 • 非对称加密算法的安全性 • UI交互的友好性 • 速度与系统开销 • API交互的友好性和可扩展 性
14. 与传统网络应用架构的异同点 传统网络服务 公有区块链 1 要素 1 要素 2 特征 2 特征 • • • • • • • • • • 应用软件(架构)设计 系统(架构)设计 数据库设计 网络访问与控制 上线运营 面向服务 可部署 集成与发布(交付)过程 中心化存储与灾备系统 企业决策 • • • • • • • • • • 网络协议设计 共识算法与代币分发 矿工 加密算法与账户模型 账本与本地存储 社区维护 面向用户 IP(ImprovementProposals)过程 区块链分叉行为 社区投票
15. 3 2 公有区块链的架构与选型 TOPICS 1. 公有区块链的架构与选型 2. 区块链开发中的实践 元界为例,附量子链架构
16. 技术选型切入点 1 2 代币的经济学解释 • 代币分发 • 价值中介——Oracle • 基于信用的不可篡改数字身份 • 资产数字化 共识算法的选型 • PoW/PoS/DPoS/PBFT 3 P2P网络协议的选型 4 加密算法的选型 5 • 比特币P2P网络协议 • 破解难度 • 计算速度 账户模型的选型 • UTXO/Balance • 账户控制
17. 拓扑结构 通过公链打造价值互联网 VP节 点 互联网 用户终端 浏 览 器 程序 元界 终端 普通 节点 路由 节点 P2P网络 普通 节点 普通 节点
18. 元界架构 Metaverse Architecture v0.2 Communication Layer Web front-end Embedded HTTP server MVS explorer Ledger Layer Transactions Module Identity Module ETP transfer Asset issue Asset transfer Asset certification Register Authorization Certification Wallet/DB Module DataFeed Reference Module Query Interface Sub-module databases Hash Table / Index Memory map / Storage Rate Services Certification Consensus Layer P2P Network Module boost asio Consensus Module protocols POW mining difficulty adjust verification Base Layer chain def messages unicode mathematics boost wrapper log data stream encrpyt wrapper serializer base config exceptions …
19. 开发实践——网络与共识层 • 目标 降低分叉概率(降低出块速度) 防止已有算力攻击 降低大规模ASIC/PFGA矿机部 署的可能性 外部GPU 挖矿程序 CPU 挖矿 线程 交易 池 •策略 控制出块速度 重新设计修改挖矿算法 X11 ETHASH SHA512 CryptoNight SHA-3-256 scrypt CPU busy 替换为 IO busy 网络连接池 HTTP Server 本地查询服务 P2P数 据交 换协 议 网络通信层(异步非阻塞) P2P 握手 协议
20. 开发实践——账本层 核心功能 • 代币生成 • 代币转移 • 资产登记 • 资产交易 • 市场信息 UTXO代 币交易 嵌入 交易 体 实例化 数字 身份 UXTO代 币交易 嵌入 交易 体 实例化 资产 登记 UXTO代 币交易 嵌入 交易 体 实例化 资产 转移
21. 开发实践——交互层 浏览器 • 接口设计 Restful-API 接口 Json-RPC 接口 Websocket 接口 • 嵌入式http server 轻量级 安全性 Mongoose RestFul API Websocket Json-RPC 嵌入式HTTP Server 线程 ZeroMQ Blockchain Core Node Server
22. Qtum量子链架构 共识算法
23. 4 4 公链私有化实践 TOPICS 1. 如何将我们设计的公有链转化为联盟链
24. 工作流程 业务场景 的构建 实现层面的 需求痛点的 切入点 需求痛点 分析 区块链原 型选取 非区块链 技术能否 解决 业务场景 建模 基础账本 设计 业务扩展 层设计 交互接口 设计
25. 技术关键点 1 2 交割实时性 • 共识热插拔 • 节点数的控制 • 网络带宽的控制 访问许可控制 • 专用网络 • 新增权限控制 • 特权节点 3 隐私控制 4 数据接入 • 匿名性要求 • 是否要求脱敏 • 能否导入数据至链上
26. 匿名性与隐私保护可选扩展 1 混币 (CoinJoin) 2 环签名 • • 混币原理是割裂输入地 址和输出地址之间的关 系 环签名是一种简化的类 群签名,它因为签名由 一定的规则组成一个环 而得名 3 同态加密 4 零知识证明(ZKPs) • • 同态加密是一种无需对加密数据进行提前 解密就可以执行计算的方法。 ZKP是一种密码学技术,是一种在无需泄 露数据本身情况下证明某些数据运算的一 种零知识证明,允许两方(证明者和验证 者)来证明某个提议是真实的,而且无需 泄露除了它是真实的之外的任何信息。
27. 交易提速的可选扩展 基于已有的共识如何提升交易确认的速度? 1 分片处理(sharding) 2 闪电网络(LightningNetwork)和状态通道(State Channels) • 总体思路是每个节点只处理一部分交易,比如一部分账户发起的交易,从而 减轻节点的计算和存储负担 • 这两种策略是保持底层的区块链协议不变,尽可能将交易放到链外执行,通 过改变协议用法的方式来解决扩展性问题。 • 在这种策略下,分布式账本上只是记录粗粒度的账本,而真正细粒度的双边 或有限多边交易明细,则不作为交易记录在分布式账本上。
28. The End