0%

BIU

13th BIU winter school

What are Blockchains and What are They For? - Dan Boneh

image-20230309164910424

如果有可信方,不需要区块链技术

image-20230309165047176

image-20230309165442867

比特币的创新:实际的公开可写的数据结构

image-20230309165717210

以太坊的创新:可编程的环境,应用可以互相调用

image-20230309165846240

区块链通过复制的方法实现只能写的功能

  • persistence: 只能写,不能删除
  • liveness: 诚实节点可以添加新的交易
    • 抗审查

image-20230309170207472

image-20230309170459366

和web2的区别是真正的状态存储在链上,而不是数据库

image-20230309170529887

资产由DAPP管理,和现实的金融机构不同,具有透明性

image-20230309170646811

2 application areas

DeFi

任何人都可以建立金融基础设施

应用之间可以交互,只要满足ERC-20标准 6个函数

image-20230309170833011

为什么需要DeFi

  • 垮境手续费
  • 经济可能不稳定
  • 经济状况不好时不适合使用银行

image-20230309171413201

Time will tell

image-20230309171601629

DAOs

  • 运行在特定地址的的DAPP
  • 任何人可以给DAO捐钱
  • 任何人可以发起请求
    • 投票(链上投票,链下可以用snapshot.org,如果通过再上链)
      • 如何链下投票,安全地把结果转移到链上是个问题
    • 同意,执行

image-20230309171903673

甚至有全日制员工,自己的博物馆,工资被program支付

image-20230309172134135

gitcoin 写开源代码,给开源者打钱

直接民主,direct governance,导致了参与度非常低

image-20230309172510515

image-20230309172614155

liquid democracy,也就是代理民主

政治学家可以进行民主实验,而不用建立一个新的国家

image-20230309172916272

2021年 Constitution DAO 但是输了

如何建立一个有secret treasury的DAO

image-20230309173401581

一个dapp,管理DAO的集合

问题是不知道DAO为什么要投资呢

image-20230309173805546

image-20230309174355621

image-20230309174520582

跨链

现实生活中有审计员,区块链可能需要对付款能力的零知识证明

image-20230309174609532

An Overview of PoW and PoS Consensus - Valeria Nikoaenko

image-20230310160737648

Definiation of blockchian

image-20230310160836195

consensus不需要协商整个账本的历史,只需要协商最新的区块并达成一致

safety:

liveness: means not consoring, malicious

image-20230310161343926

实际像是key-value对,每个区块是对币的重新分配

D是一个状态

image-20230310161621599

节点负责打包交易出块

client作为用户,发送交易,身份可以重合

image-20230310161742706

image-20230310161856858

选举领导者的过程简化了共识的过程(选项更少)

假设了理想情况下节点对交易的内容是客观的,但实际上节点会有意见

PoW vs PoS

共识机制consensus 包含两部分

  • 选举出块者
  • 每个参与者决定是否接收区块

image-20230310162245983

image-20230310162331356

工作量证明增加了成为出块者的门槛,系统更容易选择如何出块

虽然很浪费资源,但是没有挖金矿浪费资源

比特币和以太坊占了时长的80%

image-20230310163425990

考虑设计密码系统的成本时,可以参考,计算$2^{76}$次哈希的成本约为$150,000$刀

image-20230310163902166

如何设计更好地PoW

image-20230310164124610

  • proof-of-useful-work:解决实际问题

减少PoW使用的频率:PoW选举领导者,每个任期多次出块

image-20230310164757487

挖矿的收益和投入之间成比例

在PoS中矿工的收入和存的钱相关,任期结束后归还,提供了惩罚的方法;和Pow的区别是:在PoW系统中如果想要退出,已经购买的硬件成本无法像PoS一样回收

image-20230310165126602

image-20230310165135320

image-20230310165601334

在代理PoS中,借出权益也会获得收益

image-20230310165926265

非常成功,全球用电量降低了0.2%,ASIC用户可能转向其他Pow的区块链或者零知识证明的

An application-specific integrated circuit (ASIC) is an integrated circuit chip designed for a specific purpose. An ASIC miner is a computerized device that uses ASICs for the sole purpose of “mining” digital currency. Generally, each ASIC miner is constructed to mine a specific digital currency.

Longest chain vs BFT

image-20230310170815540

BFT是为了设计可靠的分布式系统提出的,但是需要预先知道验证者的规模

image-20230310171044295

image-20230310171510394

推荐的学习资料

image-20230310171756494

image-20230310171915851

image-20230312125824805

image-20230312130251382

image-20230312130536483

Latest message-driven greedy heaviest observed sub-tree

未被选择的区块内的交易重新回到交易池等待被打包

最长链方案存在的问题:

  • 双花攻击,确认结果是概率的,等待时间越长,确认的正确概率越高

  • 对用户不友好,可能需要等待1h-1day

  • 在分片下不安全,可能会出现冲突的链

image-20230312132622028

image-20230312132644507

image-20230312132802166

Responsiveness指网络越快,完成协议越快

Hotstuff的创新点在于:

  • 将消息重新发回Leader,让Leader再广播,避免了$n^2$的复杂度

  • 支持并行

image-20230312132902496

image-20230312133156905

image-20230312133251103

保证了3个区块后就一定会被确认

image-20230312133301876

当验证者的数量增加到大于100时,效率会非常低,延迟会很高

混合的协议

image-20230312133530407

image-20230312133629192

image-20230312133722087

image-20230312134123486

An Overview of the Ethereum Excecution Layer - Dan Boneh

image-20230312134233883

先上一节crash course

image-20230312134449575

状态转移函数,什么是world state

image-20230312134542647

image-20230312134658166

image-20230312134732323

image-20230312134945076

这次讲座主要介绍execution_layer

The Ethereum Compute Layer: The EVM

从顶向下进行介绍

image-20230312135134997

状态空间很大,$2^{32}$

人类的代码站在了同一个层次

image-20230312140316880

线性计算复杂度

image-20230312140547577

四种类型的交易,contract也可以给contract转钱

image-20230312140928114

交易的内容

来自contract的交易不会被签名

目的地址为0时相当于建立新的账户,输出hash(your address,your notes)

如何在链上存储secret key?

nonce机制是为了防御重放攻击,但仍然可能存在跨链重放,设计了chain_id字段

如果同一个nonce被使用多次,只有其中一个交易会被接受,其他会被拒绝

image-20230312141920486

提交的代码占的空间越少越好

image-20230312142831254

image-20230312143543518

image-20230312143649117

archival 存储了所有的历史

log message for:记录了合约做了什么,如果发起了一个换钱交易,log可能记录了将多少转换为多少

image-20230312144409662

image-20230312145244476

image-20230312145313760

存在front running attack](https://www.halborn.com/blog/post/what-is-a-front-running-attack))

Front-running attacks take advantage of this process of adding transactions to blocks based on transaction fees. An attacker has the ability to ensure that their transaction is processed before any other transaction by including a higher transaction fee with it. This is called a front-running attack.

image-20230312150136506

image-20230312150231761

image-20230312150338122

nameLookup函数是为其他智能合约设计的,brain of the contract

如果把秘密放在链上

为什么使用name而不是直接使用地址:

  • name的代价是付出成本,convenience costs money
  • 某种意义上将name可能更安全,address可能存在typo

目前存在系统中的小bug:由于交易的目的地址可以是虚假的地址,造成了不存在的地址却拥有账户余额的情况,如果智能合约的编写假设了余额为0,可能产生bug

image-20230312173809451

一般数据存在链下,链上存储承诺

image-20230312174155419

log是执行层产生的,但是执行层不能读

image-20230312174542018

image-20230312180142873

image-20230312180429548

image-20230312180621134

image-20230312180445905

CeFi Versus DeFi - Arthur Gervais

image-20230313151729740

Defi存在于application logic state层 ,将逻辑编码在应用程序中

设计的composability使得应用之间能够进行交互

标准保证了composability

arbitrage:套利

What Is a Bear Raid?

A bear raid is an illegal practice of colluding to push a stock’s price lower through concerted short selling, while spreading negative rumors about the shorted company. A bear raid is sometimes undertaken by unscrupulous short sellers who want to make a quick buck from their short positions, leveraging social media platforms and online message boards.image-20230313153521850

what is stable coin like USDC?A stablecoin is a digital currency that is pegged to a “stable” reserve asset like the U.S. dollar or gold. Stablecoins are designed to reduce volatility relative to unpegged cryptocurrencies like Bitcoin.

由于比特币缺乏接受外界输出的能力,需要使用Oracle和现实世界交互.区块链外信息写入区块链内的机制,一般被称为预言机 (oracle mechanism) 参考](https://zhuanlan.zhihu.com/p/52369816))

Oracle需要了解实时的汇率

image-20230313155357802

custodial就是类似于银行的机构,保管大部分资产

任何参与者不能有优势来审查交易和协议执行

image-20230313160105543

image-20230313160224017

image-20230313160417991image-20230313160353603

FAFT gives examples but not standards.

如果有节点能独自审查交易,可能会要求KYC/AML

image-20230313161156286

稳定币可以冻结一些地址,减少攻击带来的危害 2周前发生过

usdt可以销毁

image-20230313162127044

image-20230313162307038

limit order book

image-20230313162621936

买卖订单可以分为市价订单(market order)和限价订单(limit order),市价订单是指当交易者想要尽可能快速地执行目标交易指令,从而以市场最优价格发出的订单指令;限价订单则区别于最优价格,交易者会在订单中指定买入的最高价格或者卖出的最低价格,以及对应的订单规模,等待市场价格变动后到达自己的目标价位,再进行撮合成交。这些限价订单被交易所整合到一起并挂出,就是我们所介绍的限价订单簿。因此,限价订单簿(limit order book, LOB),顾名思义,也就是市场上限价订单的集合簿。

image-20230313163116934

什么是Uniswap? 史上最全新手导读 - 知乎 (zhihu.com)

image-20230313164051858

image-20230313164734783

如何免费发送交易,using relayer,如果失败了不需要付款

image-20230313165108420

image-20230313165455850

在Defi中抵押的价值通常比借的数额更多

杠杆是导致借贷流行的重要因素

image-20230313165808193

image-20230313170926997

image-20230313172802145

主要用来交换担保或者套利

image-20230313172947491

可能会被拿来进行投票(虚假的权益),makerDAO,已经修复无法进行投票 ;

可能会被用来套现

image-20230313173247208

rational矿工实际可以在打包交易时本地运行程序来检查自己能否复现套现的操作,为自己谋利

image-20230313174329437

image-20230313174417558

image-20230313174436585

image-20230313174516002

image-20230313174545417

image-20230313174634381

image-20230313174653896

image-20230313175230630

image-20230313175347680

image-20230313175538566

image-20230313175555758

如果钱包的私钥泄露,可能存在跨链的安全性问题

image-20230313175832184

image-20230313175946183

GameStop

image-20230313180205737

image-20230313180313425

Hard Problems in Blockchains - Valeria Nikolaenko

image-20230314091825196

Long-Range Attack

虽然讲的是困难问题,实际上区块链系统运行的很好,更加高效节约能源(不要被吓到233)

image-20230314092026596

出块时锁定了自己的权益,如果作恶会被惩罚

image-20230314092155928

image-20230314092213092

考虑验证者的生命周期,当不再持有财产后没有保存旧的密钥的动机

image-20230314092852032

PoS中敌手很容易做到分叉,PoW中不适用

当以前的私钥泄露后,敌手可能轻易伪造一条和当前链长度相同的分叉

image-20230314092917720

image-20230314093141414

当验证者密钥最少的时候最容易受到敌手攻击

image-20230314093304538

将主链的区块哈希硬编码在中心化组织,比如github

  • 如果不中心化,检查点的哈希可能不一样,如何协商/选择
  • 可以把检查点写在PoW区块链上(目前最实际的做法)
    • 如果安全性依赖PoW的链,PoS也没有那么节约电力

image-20230314094015158

如果不验证轮换密钥,更加容易攻击。考虑在$t_4$攻击两个节点很困难,但是等价于在$t_2$攻击相同的两个节点

核心思想是激励验证者更新密钥

image-20230314094506538

image-20230314094848617

公钥不变,更新私钥,但是会泄露部分信息,私钥会变得越来越弱

假设相信他们会忘记旧的密钥

如果验证者知道未来可能通过出售私钥获利,无法假设验证者是诚实的,因此无法解决实际问题

image-20230314095334330

以太坊建议的解决方案 ,问题是实际上验证者和客户端不会一直查看链的状态

image-20230314095519060

开始介绍自己发的文章,引入了第二层共识

image-20230314095757652

如果区块链生成区块的速度很快,用户发起的交易的last_block字段很可能落后于当前区块,可以考虑设置此字段为更长的时间间隔,比如epoch

image-20230314095924108

image-20230314100013866

image-20230314100050437

image-20230314100343805

第二层共识需要用户在线,实际的场景可能没有这么多用户在线,考虑代理或降低交易费

验证者可能会更加倾向于打包一些交易,不再客观

假设所有用户知道当前正确的链是哪一条,预防了敌手不知道在哪条冲突的链投票的情况

存在潜在中心化的问题:用户的对链上信息的了解可能来自某些中心化机构,比如交易所;本方案要求用户对比各个信息源的

方案类似于要求用户参与链的安全性

image-20230314103006306

Proposer Election in PoS

image-20230314103452297

如果T的值很大,攻击者很容易引诱leader或者进行Dos攻击

image-20230314105318786

循环选择显然不满足不可预测性和无偏性

image-20230314105713753

使用RB的问题在于出现了循环依赖关系,一般的解决方案是当前轮固定proposer的schedule

以太坊采用的drb

image-20230314110033912

节点可以选择提交$v_i$或者保存,但是VDF保证了无法预先计算随机数的值,不具备提前进行判断的优势

问题是目前的实践部分,VDF的理论构造很好,但是实际的构造基于class group,很多人不看好;

以太坊的构造是对同一个函数的多次计算并给出证明,未来很可能会出现可用的

为了保证VDF无法被加速,需要在ASIC进行验证(很贵)

image-20230314111602084

ethereum

image-20230314111615701

image-20230314113106896

Post-quantum blockchains

image-20230314144442669

image-20230314144521529

PoW机制也存在问题,量子矿工能在$T$时间搜索$T^2$的空间,可能传统矿工挖矿的动机会消失

hash函数的困难性依然得到保证

image-20230314144857476

image-20230314144932739

后量子签名的大小显著增加

image-20230314145205986

image-20230314145215000

image-20230314145249133

image-20230314145409065

可以采用零知识证明证明自己拥有seed来宣称所有权

image-20230314150230758

image-20230314150248652

image-20230314150316944

The Risk of Censorship and De-anonymization - Arthur Gervais

define censorship:

  • 某个矿工忽略某个交易,属于censor吗
  • 许多矿工故意不传播某个交易,属于对该交易censor
  • 如果网络发生了分片,可能是一种censor

image-20230329095555113

image-20230329095714528

image-20230329103715524

image-20230329103750638

Q:为什么tornado cash只实现输入1eth拿出1eth而不支持1.1eth进1.1出

A:如果进入的输入不固定为1,10,100,敌手容易观察出身份

Q:who pays for the gas?

A:存在一个第三方,需要混币的人向第三方发送证明,第三方负责给mixer支付gas,然后从需要混币的人从池子中拿回的钱里取一部分做补偿

  • 或许可以拿存的钱来挖矿,类似于银行

mixer的用户足够多时,才能够保护用户的隐私。同时还需要浏览器,ip地址可能泄露隐私的保护。

image-20230329105756930

相当一部分来自TC自己,说明可能经过多次混币

image-20230329105847587

制裁之后TC的存款量减少为以前的20%

多次混币

image-20230410101127788

image-20230329110006218

但是从矿池角度来看,制裁之后包含TC交易的矿池几乎没有了

image-20230329110214688

image-20230329110825537

以太坊目前有四类实体

  • searchers 逐利,可能在套利/清算,将交易发给builder
  • builder负责将交易打包为有序的区块,发给relayer
  • relayer选择出价最高的交易交给validator出块

究竟谁在参与censor?

image-20230329111257477

图中的绿色区块是包含TC交易的区块,即认为是没有被审查过的

该网站提供了以太坊的四类实体的交易区块的可视化 mevboost.pics | MEV-Boost Dashboard

Maximal Extractable Value (MEV) is a method for miners or validators to increase their profits by changing the order of transactions before approving a new block on the network. MEV refers to profits that can be made by extracting value from Ethereum users by reordering, inserting, or censoring transactions within blocks being produced. It is one of Ethereum’s biggest issues, with more than $689 million extracted from users of the network year-to-date.

TC交易被ban掉的这一现象可能就是一种censorship

image-20230329112311713

blender.io不是智能合约,由第三方实体提供混币服务,当OFAC开始后,服务几乎停止了(相对于智能合约,代码开源,更难容易关停)

image-20230329112322049

Q:security implications of censorship?

image-20230329113530464

如何判断交易确认延迟:引入挖矿矿池之外的节点spy node

image-20230329113645178

实验结果显示censor 交易确认时间出现了变化15.8s-29.3s

但是实验无法区分是sanction导致了变化还是ethereum的proposer builder(M PBS)区分导致的

image-20230329113942951

接下来考虑DOS的部分,核心思想是让节点执行工作却不付gas ,前提条件是发起交易比验证更廉价

image-20230329114409396

如何设计攻击:交易前面都是复杂的逻辑,但是最后是TC,由于节点想要监管,并不会将交易包含在区块内,类似于让validator打白工了

image-20230329115047150

存在问题:如何得知哪个validator在执行交易

已经解决:查看每个块的coinbase交易,可以区分执行censoring和不censoring的miner

后续可以设计更加精巧的攻击方案:如果可能得知下一个validator会censor再攻击

image-20230329141242534

image-20230329141353038

通过这个问题,提出了Censor可能引入被Dos攻击这一问题

image-20230329165410233

Q:如果所有的validator开始审查,是否可以通过硬分叉来实现先拿到fee再执行

A:可能存在的

What Are Snarks and What Are They Good for? - Dan Boneh

Intro

image-20230329170654067

40年发展,第一行是提供snark的公司,第二行是使用snark的公司,第三行是研究snark硬件加速的

image-20230329170940528

ZNARK发展快速的原因

image-20230329171633196

what is layer1 blockchain

Layer 1 refers to a base network, such as Bitcoin, BNB Chain, or Ethereum, and its underlying infrastructure. Layer-1 blockchains can validate and finalize transactions without the need for another network. Making improvements to the scalability of layer-1 networks is difficult, as we’ve seen with Bitcoin. As a solution, developers create layer-2 protocols that rely on the layer-1 network for security and consensus. Bitcoin’s Lightning Network is one example of a layer-2 protocol. It allows users to make transactions freely before recording them into the main chain.

讨论两类区块链:

  • 外包计算的:没有隐私,不需要ZK,但是链上存储非常昂贵,交易需要快速被验证
    • 跨链:对旧链资产进行证明,B链证明
    • 如何实现资产的跨链?在旧链上lock资产,新链得知存在被locked的资产
  • 需要保护隐私的链
    • 证明加密的交易有效
    • 证明交易是可偿还的,证明资产

研究的目的:证明更短,验证更快,生成证明更快

image-20230329173006577

image-20230329173516102

区块链驱动了SNARKS的发展,许多其他的与区块链无关的应用收益

image-20230329173756175

image-20230329173820719

Zero Knowledge Canon, part 1 & 2 - a16z crypto

what is SNARK?

image-20230329174411327

算术电路,n元多项式的评估方法

image-20230329174551593

pp is prover parameter,vp is verifier parameter.

image-20230329174843720

next

image-20230330154239398

NARK is trivial

NARK with succint

任何比trivial NARK更好的方法都很有意义,比如当证明的长度为sub-linear

image-20230330155356530

目前有的SNARK证明的长度和验证的时间都是常数

比较有趣的地方:验证者甚至不能完全读入C就要做出验证?实际上VP是C的一个总结

image-20230330155833321

这次讲座主要讲SNARK,存在从SNARK到zk-SNARK的通用构造,因此困难的部分在构造SNARK

image-20230330160047589

zero-knowledge可能不公开witness

image-20230330160155218

image-20230330160333294

现实中使用snark并不需要写算术电路,已经有了domain-specific的语言,建议学习

采用dsl写好后编辑器编译为SNARK友好的形式:circuit/EVM

给定输入x和witness产生证明的过程可能需要很多的计算

但是输出很可能是简单的几百个字节,DB建议打印在T恤上

问题是谁来执行高昂的运算?现在有专门的公司

image-20230330161158370

未来可能会有证明市场,证明者选算力提供者来产生证明,臭打游戏的显卡空闲时也可以用来产生证明

image-20230330161724731

存在树形的递归证明,prover3不证明交易,证明prover1和prover2

non-interactive表现在verifier的验证阶段

think:who gets paid?

为什么不能哪个节点先响应就把证明任务交给哪个节点?如果这样设计,永远都是硬件最强的节点进行证明,存在中心化的风险,因此市场需要指派由哪个节点来证明,这里需要设计界复杂的机制,可能会有密码的应用

为什么要去中心化?出于对效率的考虑而不是安全的考虑,现有的算力是分布式的现状

如果witness是保密的,可以采用秘密分享,分拆后的份额分别进行证明

证明的交易之前可能存在一致性的问题,tx1的输出可能会影响tx3

applications of SNARKs-Tornado

image-20230330163311245

只有名字里没写zk的Tornado使用了零知识证明(乐

Q:目前zkRollup在实际的full contract中运行,效率如何

A:硬件问题,是可以并行的,需要更多GPU即可

DAI是稳定币,1000dai约为1000刀乐

image-20230330164309241

看起来人畜无害(benign)

coin merkle tree存了当前存储的所有coin,链上存储过于昂贵,链上只存merkle root

nullifier

image-20230330164728293

当Alice想要存100DAI时,给出MerkleProof(4)C_4,发送的证明必须和当前的next字段值相同

image-20230330164853379

合约检查证明,计算更新后的merkle_root,更新状态

Alice保存hash的原像即可作为取钱的凭证

image-20230330165249850

存在的问题:observer知道谁存在哪个叶节点

image-20230330165742310

当Bob要取钱时证明自己有nf,不泄露存的是哪个币

image-20230330165928639

(i)在10年前是不可能高效证明的,但是由于zkSNARK的发展,现在浏览器的JavaScript几秒内就能够完成

image-20230330170212615

A作为输入但是没有使用:在假设敌手不能扩展的情况下,用来防御重放攻击

一般的论文会证明soundness,但是实际上不可延展性非常重要

image-20230330170623789

image-20230330170934504

image-20230330171004406

取完钱后需要新加上nf

image-20230330173051993

image-20230330173334189

image-20230330173416547

设计的很好,然后被别人拿来洗钱了

吃一堑长一智:支付系统中完全的匿名化问题多多

image-20230330173819854

如何设计

image-20230330174951441

显然不可以,攻击者可以使用proxy

Tornado的匿名性可以通过存储的时间来增强,存的时间越长越不容易被链接起来

image-20230330180629504

Permissionless Consensus I - Rafael Pass

image-20230419161535218

image-20230419161808584

future self-consistency sometimes are neglected

$\Delta$ should be polynomial,比特币假设为10s(非常悲观的取值),实际可能2s已经到达了99%的网络节点

image-20230419162759632

image-20230419163838156

传统的许可链,参与者很少(10),参与者的数量固定,身份已知

协议执行期间节点不会掉线

节点之前存在认证信道/PKI

image-20230419164236072

实际上认证信道和PKI的区别分长达

image-20230419165548671

为什么加一个节点就能保证consistency and liveness

image-20230419170618762

image-20230419171411032

economic robostness指因为节点可能随时离开或加入网络,需要设计激励机制

image-20230419171626796

image-20230419171805125

image-20230419172036888

image-20230419172355148

敌手能够伪装为good guy的代价太低了

image-20230419172503929

不再依赖于诚实节点的占比,依赖于计算能力

image-20230419173713048

考虑一个人恶意

image-20230419174143595

image-20230419184223312

image-20230419184829074

诚实节点遵循最长链原则

image-20230419184955890

image-20230419185118029

image-20230419185135769

image-20230419185358888

image-20230419185502328

chain quality: get paid for their work

image-20230419185700177

image-20230419185806657

如果有了一个区块链系统,如何得到consensus?

  • 去掉最后k个区块,实现consistency
  • chain is going… even bad guys are censoring

image-20230419190147884

看上去chain quality不是最优的:诚实节点比例为1-p,但是得到的链质量为$(1-p/(1-p))$

实际上这已经是最优的

敌手可以获得比恶意算力更多的收益:自私挖矿

image-20230419190705377

比特币看起来是一个半同步的网络假设,没有用到$\Delta$,但是挖矿的难度$d$隐含了这一条件

如果网络中的最大时延超过10mins,协议不再安全

Decentralized Exchanges, Sandwich, Arbitrage - Arthur Gervais