去中心化金融-Lec3
区块链
(什么是区块链?)区块链提供了一种无需可信的参与方,能够让多个参与方实现合作的方式(若存在可信的第三方,则不需要区块链;但是金融系统中往往没有可信的第三方)
终端用户工具:user interface
应用:program
计算层:编译
共识层:数据结构
共识层 Consensus layer (了解即可,不是本门课重点)
A public append-only data structure:
• Persistence: once added, data can never be removed*
• Safety: all honest participants have the same data**
• Liveness: honest participants can add new transactions
• Open(?): anyone can add data (no authentication)
应用层:去中心化应用 (DAPPS)
DAPP: Decentralized APP
- 透明性: 规则编写在公开的程序中(任何人不能操纵),源代码公开(没有可信的第三方),
- 公开可验证性:DAPP程序是由床在新区块的参与方执行的,任何人都能够验证状态的转换
加密学背景
Hash function
\(H: \quad M \rightarrow T\), 其中 \(|M| >> |T|\)
注意,在这里 hash value (哈希值)是32字节的
抗碰撞性 (Collision resistance)
定义: 碰撞是指对于\(H: \quad M \rightarrow T\)使, 存在一对 \(x \ne y\) 使得 \(H(x) = H(y)\),因为定义域 \(|M|\) ≫ 值域 \(|T|\) 说明存在很多碰撞
定义:对于方程\(H: \quad M \rightarrow T\) ,如果很难找到H 的一对碰撞,那么我们说它是抗碰撞的 (collision resistant) (\(H\) 是一个
\(CRH\))
举例:SHA256:\(\{x : len(x)<264 bytes\} ⇾ \{0,1\}^{256}\)
Merkle tree 默克尔树
Merkle tree 的生成是从下到上两两一起Hash,直到根。
验证需要sibling的信息
密码学背景
数字化签名
签名是由待签名的文档内容决定的
数字化签名: 语法
定义: 一个签名的方案由三个算法构成
▪ Gen(): 产出一对秘钥 (pk, sk)
▪ Sign(sk, msg) 产出sigs/σ
▪ Verify(pk, msg, σ)产出‘接受’或‘拒绝’
pk是公钥,sk是私钥
签名方案的种类
- RSA签名 (不会用在区块链上):
sigs和公钥太大 (≥256 字节),可以很快速地验证 - 离散型对数签名: Schnorr 和ECDSA(比特币, 以太坊)
sigs短 (48 或 64 字节) 且 公钥也短 (32 字节) - BLS 签名: 48 字节,可聚合,低门槛 (以太坊 2.0, Chia)
- 后量子(post-quantum) 签名:长(≥768 字节)
区块链上签名的使用场景
- 确保Tx被授权
- 社区治理投票
- 共识协议投票
区块链的分片
交易率 (Tx/sec):
- 比特币: 可以处理大约 5-10 (Tx/sec)
- 以太坊: 可以处理大约 20-30 (Tx/sec)
- visa交易网络:可以处理高达24000(Tx/sec)
交易费率:2 dollar to 60 dollar (简单交易)
分片方法
- 更快的共识: 现在的区块链 (e.g., Solana, Polkadot, Avalanche, ...)
- 支付渠道: 大多数交易为离线的点对点 (e.g., 闪电网络)
- Layer 2 方法:zkRollup, optimistic Rollup:打包多比交易为一笔交易
- 侧链:Polygon 等等
支付渠道(闪电网络)
多个双向支付渠道的存在,使得总交易的交易费降低了。
以太坊Rollup(卷叠)扩容
主要工具: SNARK
C: C程序将在<=B个步骤内终止所有的信息输入
x: C的公共输入
w: C的私有输入
从第一层向第二层转移财产
- 在同一个Rollup 系统中交易非常容易: 在第1层网络批量结算(例如, 以太坊)
- 将资金转入或转出Rollup系统 (L1 ⟺ L2) 的费用要贵一些: 需要在第1层网络上发布更多数据⟹更高的交易费用.
- 将资金从一个Rollup系统转移到另一个 (L2 ⟺ L2) 要么通过第1层网络(费用昂贵),要么直接通过L2⟺ L2网络链桥(费用低廉)
zero knowledge 将项目从L1以太坊迁移到L2 zkRollup
即将到来的开发进展:ZKEVM(例如,MatterLabs等)。
Solidity智能合约的兼容性: 协调者可以为短的Solidity程序的执行生成SNARK证明
⟹ 将DAPP从L1以太坊迁移到L2 zkRollup很容易。
⟹ 与L1相比,降低了交易费用,增加了交易效率
Optimistic Rollup [例如 Optimism, Arbitrum]
原理与zkRollup相同,但是没有SNARK 证明。
相反:协调者在链上发送交易数据而不需要证明,然后给验证者几天时间来审核: 如果发送的交易无效 ⟹ 任何人都可以提交欺诈证明并赢得奖励,Rollup协调者将被惩罚。
优点:简单的完整以太坊虚拟机(EVM)兼容性,协调者工作量少。
数据可用性:zkSync和zkPorter对比
Q:协调者是中心化的?(中心化恐惧? ?)
答案是:不!协调者停止工作⟹用户可以找到另一个协调者来生成证明
Q:使复杂化的难题:新的协调者需要所有的当前账户信息.如果旧的协调者已停止运行,如何获取数据?
两个解决方案:zksync和zkporter。他们同时并行工作。
zkSync:将所有交易摘要存储在L1区块链(以太坊)上
- L1链只接受批量交易处理,如果它包括所有交易的
摘要信息 - 其他协调者可以根据L1区块链数据重构L2的状态
- 缺点:更高的以太坊交易费用。适用于高价值资产
zkPorter: 将交易数据存储在一个新的区块链上
- 由一组协调者维护储存
- 廉价的链外存储,但比zkSync更低的费用
- 客户可以选择协调者如何存储其账户资产。
互通性(如何将资产从一个链转到另一个链)
- 交互性:使用户能够把资产和储备移动到另一个区块链生态上.
- 可组合性:使在某一区块链的Dapp能调动另一个区块链上的Dapp
跨链交易(block chain bridge)
一些跨链协议: XCMP,IBC,…
这里的校验者和矿工的功能是类似的。(都能在Tx结束后拿到钱。。)
Q : 为什么需要外部的校验者?链桥合约不能用于储存用来签名的秘钥
Web 3 game
NFT游戏