2018-08-17 IOST 清华大学FIT楼讲座记录
什么是区块链
将交易账本分散至若干互不信任的节点,通过统一的规则达成数据一致,可以容忍部分恶意节点,实现账本数据的可靠与不可篡改。
安全性假设:恶意方不控制大于50%的算力
区块链是一种手段,而不是目的。其目的是达成信任(在安全性假设下数据是可信的)
区块链依赖于去中心化、P2P网络,但后者不等同于前者。其数据与规则公开透明,但数据可以加密。
签名 : 非对称加密
公钥+私钥;使用其中任意一个对数据进行加密,需要另一个进行解密。
需要签名时可以使用私钥加密,接受者可以通过公钥验证数据可信。
比特币
基本运行步骤
- 收集交易信息(记账节点收集)
- 记账节点生成区块,广播至其他节点
- 其他节点验证区块
- 达成一致
节点
- 共识节点: 参与记账
- 普通节点: 不参与记账,但参与网路
节点的数量并不能证明去中心化的程度
账本模型
UTXO: 包含数量、拥有者签名、唯一ID(可以理解为纸币)
交易销毁若干UTXO,产生等额UTXO输出(总额等额,类似于找零)
优点
- 可扩展
- 可并行验证
以太坊
智能合约
区块链=>去中心化计算机,其存储和计算的内容都是可信的 记账=> 合约(脚本) 打包交易=>执行合约
节点也会执行脚本验证合约(虚拟机上执行)
账本模型
Account/Balance 模型(UTXO 无状态且过于复杂)
用数据库保存数据,节点维护数据库的快照
为什么需要区块链
传统达成信任:
- 用户与组织之间 :公信机构
- 不信任组织之间 ;审计、证明
关注点
链上
- 区块链 硬件
- 智能合约 操作系统
链下
- 链下扩容协议
- 其他应用协议
生态
Dapp
性能指标
- 吞吐率
- 延迟
- 虚拟机性能
- 决定上限,能支持怎样的应用
可靠性指标
- 去中心化
- 安全性
- 决定应用类型,适合怎样的应用
瓶颈
- 网络
- 计算
- 存储