Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

科普区块链

749 views

Published on

用纯技术的角度理解区块链基本技术原理,这仅仅是一个科普和学习的引子。

Published in: Technology
  • Login to see the comments

科普区块链

  1. 1. 科普“区块链” 2017.11.08 Schubert Zhang
  2. 2. 误解
  3. 3. 区块链 vs. ⽐比特币 “区块链”和“⽐比特币”是完全不不同的概念,不不要混为⼀一谈。 区块链是⽀支撑⽐比特币的底层技术! ⽐比特币使⽤用了了区块链技术,但是区块链并不不是⽐比特币! 在回答区块链问题时,提到“矿⼯工”、“挖矿”等等词的,其实都不不准确,因为这 是⽐比特币范畴的概念,区块链中不不应该有这样的解释。
  4. 4. 过度期望 • ⼈人们对区块链的过度期望,实际暗示着对其存在很多误解 • 区块链是⼀一种颠覆性的新技术(技术组合:P2P动态⽹网络、密码学、共识机制、智能合约等) • 区块链就是去中⼼心化的 / Decentralized,并赋予了了很多主观和政治⾊色彩 • 区块链上的交易易存在很⼤大的延迟 • “过度期望期” -> “期望幻灭期”
  5. 5. 什什么是区块链? What is BlockChain?
  6. 6. 区块链 BlockChain 是⼀一种 分布式数据库
  7. 7. 区块链 BlockChain 最初被⼴广泛应⽤用在 ⽐比特币 (Bitcoin)
  8. 8. 区块链 BlockChain 在⽐比特币系统中,维护⼀一种连续不不断的 交易易记录数据
  9. 9. 区块链 BlockChain 每⼀一个被持久化记录下来的数据对象被称为 ⼀一个 区块 (Block)
  10. 10. 区块链 BlockChain 每⼀一个区块可以包含 ⼀一笔以上的交易易记录
  11. 11. 区块链 BlockChain 每个区块都与另⼀一个(前⼀一个)区块 产⽣生连接 (Linking)
  12. 12. 区块链 BlockChain 每个区块都会包含 前⼀一个区块的 Hash 值
  13. 13. 区块链 BlockChain 所有连接在⼀一起的区块被称为 链 (Chain)
  14. 14. 区块链 BlockChain 就是 由多个区块组成的链
  15. 15. Block Chain Block0 Block1 Block2 Block3 … 上个区块的Hash 上个区块的Hash 上个区块的Hash
  16. 16. Inner a Block
  17. 17. 区块链如何⼯工作? How BlockChain Works?
  18. 18. 区块链 BlockChain 产⽣生每个区块的过程都会经过 严格复杂的密码学(Cryptography)运算 和数据结构组织
  19. 19. 区块链 BlockChain 密码学运算可以有效杜绝 数据记录被篡改
  20. 20. 区块链 BlockChain 每个区块在成功产⽣生/持久化记录之后 是⽆无法被修改的
  21. 21. 区块链 BlockChain 产⽣生区块的过程⼜又被称作 挖矿 (Mining) (这是引⽤用了了⽐比特币的概念)
  22. 22. 区块链 BlockChain 负责产⽣生区块的⼈人⼜又被称作 矿⼯工 (Miner) (这是引⽤用⽐比特币的概念)
  23. 23. 区块链 BlockChain 负责产⽣生区块的机器器⼜又被称作 矿机 (这是引⽤用⽐比特币的概念)
  24. 24. 区块链 BlockChain 每块数据都可以通过链接找到 所有可靠的历史数据
  25. 25. 区块链 BlockChain 由于是分散式的数据库,因此具有 “去中⼼心化 / Decentralized” 特性
  26. 26. 区块链 BlockChain “去中⼼心化”意味着 数据分布在很多(存储和计算)节点上
  27. 27. 区块链 BlockChain 所有的节点共同维护 整个数据库
  28. 28. 区块链 BlockChain 所有节点共同维护整个数据库意味着 没有⼈人可以说⾃自⼰己的区块 才是合法有效的区块
  29. 29. 区块链 BlockChain 所有节点共同维护整个数据库同时意味着 多数⼈人(超过50%)验证认可的区块 才是合法有效的区块
  30. 30. 区块链 BlockChain 每个节点 必须存储所有区块 (新的设计某些节点可仅存储部分区块或区块的头部数据)
  31. 31. 区块链 BlockChain 每个节点都可以 参与协助验证区块的有效性
  32. 32. 区块链 BlockChain 任何⼀一个区块的数据被篡改 都将破坏区块以及整条链的完整性
  33. 33. 区块链 BlockChain 任何⼀一个区块的数据被篡改的概率 ⼏几乎为0!
  34. 34. 区块链 BlockChain 的运作原理理和 Git 分布式存储 有异曲同⼯工之妙
  35. 35. 区块链 BlockChain 中存储的对象有两种类型 “交易易” 和 “区块”
  36. 36. 区块链 BlockChain 常⽤用的场景 数字货币
  37. 37. 区块链 BlockChain 数字货币场景中交易易对象就是 转账过程的完整内容
  38. 38. 区块链 BlockChain 区块中的内容包含 ⼀一批交易易的集合
  39. 39. 区块链 BlockChain 区块之间链接起来的是⼀一本 账本 (Ledger)
  40. 40. 区块链 BlockChain 基本原理理就是让所有⼈人 共同维护⼀一份账本
  41. 41. 区块链 BlockChain 这份共同维护的账本必须 由⼤大伙共同认证 (每个区块必须拥有超过50%的参与者认证通过)
  42. 42. 区块链 BlockChain 解决了了 分布式⽹网络中的多⽅方互信问题
  43. 43. 以⽐比特币转账为例例
  44. 44. 区块链的特点和应⽤用 Features and applications of BlockChain
  45. 45. BlockChain in Summary • 区块链是⼀一个放在⾮非安全环境中的分布式数据库(系统) — 这是其本质 • 区块链采⽤用密码学+数据链的⽅方法来保证已有数据不不可能被篡改 — 这 是其核⼼心特性 • 区块链采⽤用共识算法来对于新增数据达成共识 — 这是技术上在去中 ⼼心化的P2P⽹网络中的不不得已,同时也是其拿来当作“⾰革命宣⾔言”的核⼼心 特性
  46. 46. 潜在应⽤用领域 • 数字货币(Cryptocurrency): BitCoin(⽐比特币)、LiteCoin(莱特币)、Ethereum(以太坊)、… many … • 能或者需要将数据去中⼼心化存储和决策、透明化、不不可修改(只能新增)、永久保存的应⽤用场景 • 数据资产管理理 • 供应链透明化 • 智能和合约/契约履履⾏行行 • 交易易流程透明化 • 电⼦子保函
  47. 47. 其实基础技术很基础 let’s review them …
  48. 48. 数据库基本原理理回顾 (database)
  49. 49. 数据的载体 • All over the common under-layer storage and IO system: • Hardware, Disk, Network … • Trade-Off on Disk • 顺序读写 (High byte throughput, High IO bandwidth overhead) • 随机读写 (Low byte throughput and long latency)
  50. 50. 回顾⼀一下计算机系统原理理 • 计算机的存储系统(准确地说是持久化存 储的Disk)上,数据都是以块(Block)存储 的 • 从⽂文件系统 (File System) 到 数据库 (database)
  51. 51. 常⻅见数据库基本结构 ⼀一般的简单数据库本质上就是⼀一个单机版的 BlockChian 或 BlockTree … 。 。。。 客户端 Data Block in Memory Data Block on Disk Data Block on Disk 顺序写⽇日志 on Disk Data Block on Disk Flush Write
  52. 52. 分布式数据库
  53. 53. • MySQL 的 Master/Slaves 架构 • Google GFS/Bigtable and Hadoop HDFS/HBase 的 分布式 Master/ Slaves 架构 • Cassandra 的 Consistency Hash Ring 架构,本质还是分布式的 Master/Slaves 架构
  54. 54. • 为什什么在分布式MySQL架构中,写数据都必须由唯⼀一的 Master 决 定? • 但是在去中⼼心化的⽹网络中,没有Master怎么办? • 那就每次选⼀一个Master出来吧! • 那就得有个⾼高效且可靠的选举办法!
  55. 55. BlockChain database
  56. 56. Hash 回顾
  57. 57. Hash • HashTable / HashMap (基于Hash的数据结构) • SHA256 / MD5 (Hash⽤用于加密) • 考⼤大家⼀一个和 Hash 相关的数据处理理问题
  58. 58. Hash 还可以解决很多问题 • 数据结构 • 加密 • 过滤器器 : Bloom Filter • 估计型统计分析 (省内存空间、速度快)
  59. 59. P2P Network
  60. 60. P2P Network • PPLive、PPStream、迅雷雷 • ⼤大量量的P2P先驱 • Gossip (⼀一般BlockChain中常⽤用的是其他变种) • Paxos (⼀一般BlockChain中常⽤用的是其他变种) • Merkle Tree
  61. 61. P2P ⽹网络协同 Gossip
  62. 62. 共识算法 Paxos Leslie Lamport Google Chubby, ZooKeeper, Spanner …
  63. 63. Merkle Tree
  64. 64. “挖矿”的本质和误导
  65. 65. 中国的⽐比特币矿场 ⽐比特币⽹网络70%的算⼒力力在中国,
  66. 66. 中国的⽐比特币矿场
  67. 67. 中国的⽐比特币矿场
  68. 68. 中国的⽐比特币矿场
  69. 69. 中国矿机的发展 CPU -> GPU/显卡 -> ASIC/FPGA -> 矿机池
  70. 70. Google、Facebook 的 IDC
  71. 71. “挖矿”的本质 • 因为是全分布式系统架构 • 没有中⼼心节点负责计算/打包和⽣生成区块 • 就要借助“⼤大众”的⼒力力量量 • 那么决定某次记账以谁为准呢,那么算hash吧(HSA256),就像掷骰⼦子,只不不过这骰⼦子的⾯面 太多了了,有2的256次⽅方个⾯面 • “⽐比特币”体系中为了了⿎鼓励“⼤大众”开着机提供“计算能⼒力力”(算⼒力力),就随机性有⼀一定概率地奖励 “中奖”的机器器⼀一点“⽐比特币” • ⽐比喻起来就像“挖到了了⼀一点⾦金金⼦子”⼀一样,我决定与其叫“挖矿”,不不如叫“淘⾦金金”,因为概率很低
  72. 72. “挖矿”的本质 • 所以“区块链”中本身没有“挖矿”的概念 • 因为从技术层⾯面,不不存在奖励“⽐比特币”的说法 • 我们完全可以做⼀一个封闭的系统(私有链)或者⾏行行业系统(联盟链), 不不需要奖励任何虚拟货币,只是⼤大家的节点连在⼀一个P2P⽹网络中,实 现⼀一个特定⾏行行业场景的区块链,⽐比如⼀一种多⽅方协作确认的合约/合同 数据库。
  73. 73. 参考资料料 • What is Blockchain Technology? A Step-by-Step Guide For Beginners • Git • Cassandra • 数据库基础原理理很重要 • Paxos ZooKeeper Chubby • Gossip • Merkle Tree
  74. 74. 个⼈人观点 • 区块链(BlockChain)现在各种忽悠⽐比较多 • 潜下⼼心来做个真正的分布式数据库远⽐比炒作来的实在些 • 区块链(BlockChain)不不⼀一定会巨⼤大成功,但很有价值 • 在局部领域/⾏行行业内应⽤用可能⽐比较好 • 个⼈人还有很多东⻄西不不懂,有可能讲的不不对,需要学习
  75. 75. Thank You

×