☘ 引言:
“未来已经来临,只是尚未流行” —— Willam Gibson
区块链定义
区块链是一种安全共享的去中心化的数据账本。 区块链技术支持一组特定的参与方共享数据。它可以收集和共享多个来源的事务数据,能够将数据细分为以加密哈希形式的唯一标识符链接在一起的共享区块,并通过单一信息源确保数据完整性,消除数据重复,提高数据安全性。
在区块链系统中,未经法定人数许可,数据将无法更改,这一特点有助于防范欺诈和数据篡改。换言之,区块链账本可以共享,但不能更改。如果有一方尝试更改数据,区块链所有参与方都将收到警报,知晓哪一方试图更改数据。
从历史看技术发展
区块链技术的演进和落地应用出现 3 个阶段的大规模应用。1.0阶段以编程货币为基础,2.0阶段是以可编程金融为代表;3.0阶段则全面进入可编程社会

区块链概念辨析
-
一种记录方式:一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构
-
一种技术方案:如大数据、物联网一样,其并不是单一信息技术、而是依托于现有技术加以独创性的组合创新
-
一项应用协议:构建于互联网TCP/IP基础协议上,将加密技术与分布式相结合,提出基于算法的解决方案,推动“信息”向“价值”的转变
-
一种管理范式:是一种去中心化的、无需信任积累的信用建立范式。
架构模型

主要类型:
公有链、联盟链、私有链
《2018工信部中国区块链产业白皮书》“联盟链作为支持分布式商业的基础组件,更能满足分布式商业中多方对等合作与合规有序发展要求”
核心技术

总体架构
区块链是分布式网络中,由互不信任的节点共同维护的,一个记录交易的不可变账本。技术本质不是一个不可篡改的账本结构,而是提供了一个去中心化、开放的、拜占庭容错的服务器架构,也是Web3.0的基础设施。
数据层
狭义的区块链即是去中心化系统各节点共享的数据账本。 每个分布式节点都可以通过特定的哈希算法和merkle树结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的数据区块中,并链接到当前最长的主区块链上,形成新的区块。
哈希函数
Hash,’散列’,就是把任意长度的输入(又叫做预映射,pre-image)通过散列算法,变换成固定长度的输出这种转换是一种压缩映射,将任意长度的消息压缩到某一固定长度的消息摘要的函数。
账户模型
(比特币中没有用到账户模型,而是UTXO)账户保存了余额的状态,与银行账户相似
UTXO
unspent Transaction Output 未支出的交易输出 (不可分割的最小交易单元)
上一笔交易将比特币汇至某一地址,这笔比特币可长期存储,直到该地址主人要将款项汇至下一个收款人。在这笔款项尚未被提出汇至下一个地址之前,这笔款项被称为UTXO
优点:
- 原子性,或成功或失败,没有中间状态
- 可并发,消耗存储空间较小
缺点:
- 查询余额需要遍历所有交易数据
- 无状态,若账户需要复杂状态(智能合约)则无法支持
- Iuput较多时,见证脚本也会增多,而签名本身是比较消耗CPU和存储空间的