以太坊Layer 2 扩容,V神为什么偏爱ZK rollup ?

2024-01-02 14:50

本文主要是介绍以太坊Layer 2 扩容,V神为什么偏爱ZK rollup ?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注:原文作者是以太坊联合创始人Vitalik Buterin。

很多区块链应用最具价值的特征之一就是信任最小化(trustlessness):应用能够以预期的方式继续运行,而无需依赖特定参与者以特定的方式进行操作(即使他们的兴趣可能改变,并促使他们在未来以某种不同的意外方式行事)。区块链应用从来都不是完全无需信任的,但有些应用要比其它应用更接近于无需信任。如果我们朝着信任最小化的方向发展,那我们要能够比较不同程度的信任。

首先,我对信任的简单定义是:信任是对他人行为的任何假设的运用。如果在新冠大流行之前,你走在街上而没有确保与陌生人保持两米的距离,他们也不会突然掏出刀子来捅你,这是一种信任:双方都相信人们很少会完全精神错乱,相信管理法律体系的人会继续提供强有力的措施来反对这种行为。当你运行由他人编写的一段代码时,你可以相信他们诚实地编写了这段代码(无论是出于正派观念还是出于维护名誉的经济利益),或者至少是有足够的人检查该代码,并发现到漏洞。不亲自去种植自己的食物,也是一种信任的体现:你要相信足够多的人会意识到种植食物符合他们的利益,以便将其出售给你。你可以信任不同规模的人群,并且有不同种类的信任。

为了分析区块链协议,我倾向于将信任分成四个维度:

  1. 你需要多少人按照你的期望行事?

  2. 有多少人?

  3. 这些人的行为需要什么样的动机?他们是否需要利他主义,还是只是寻求利润?他们需要协调吗?

  4. 如果违反这些假设,系统的失败程度会有多严重?

现在,让我们专注于前两个,我们可以画一张图:

图中的颜色越绿,就代表越好。让我们更详细地探讨信任类别:

  1. 1 of 1:只有一名参与者,并且系统仅当该参与者按照你的期望行事时才能正常工作。这是传统的“中心化”模型,而这也是我们希望去尝试替换的。

  2. N of N:“反乌托邦”世界,你需要依靠一大堆参与者,并且所有参与者都需要按照预期的方式工作,才能使所有工作正常进行,而如果其中任何一个失败,便意味着没有后备人员。

  3. N/2 of N :这就是区块链的工作方式,如果大多数矿工(或PoS验证者)是诚实的,那么区块链便会工作。注意,N越大,N的N / 2就变得越有价值。与拥有广泛分布的矿工/验证者的区块链相比,具有少量矿工/验证者主导网络的区块链就没有那么有趣。也就是说,我们甚至希望提高这种安全级别,以抵御潜在的51%攻击。

  4. 1 of N: 参与者有很多,只要其中至少有一个按照你的期望运作,则系统就会正常工作。任何基于欺诈证明的系统都属于这一类,可信设置也是如此,尽管在这种情况下,N通常更小。请注意,你确实希望N尽可能地大!

  5. Few of N:参与者有很多,而只要他们当中至少有一小部分固定数量的参与者按照你的期望运作,则系统就会正常工作。数据可用性检查就属于这一类。

  6. 0 of N:系统始终会按预期工作,其不依赖任何外部参与者。通过自行检查来验证区块就属于此类。

除了"0 of N"之外的所有类别模型,实际上都可以被视为“信任”,但它们彼此之间有很大的不同。信任一个特定的人(或组织)将按预期工作,与信任任何地方的某个人按你期望的那样大不相同。可以说,"1 of N"要比"N/2 of N"或者 "1 of 1"更接近于"0 of N"。而“1-of-N”的模型可能会让人感觉像是“1 of 1”模型,因为这好像你是在信任一个单一的参与者,但两者的实际情况却大不相同:在“1-of-N”模型中。如果你正在与之合作的参与者消失了或者变坏了,你可以切换到另一个参与者,而在"1 of 1"模型系统中,遇到这种情况就意味着系统完蛋了。

特别要注意的是,即使是你正在运行的软件的正确性,也通常取决于一个"few of N"信任模型,以确保如果代码中存在错误,就会有人找到它们并给予修正。

另一个重要的区别是:如果你的信任假设被破坏了,系统将会如何失败?在区块链中,两种最常见的失效类型分别是活性(liveness)失败安全性失败。所谓活性失败是指你暂时无法做你想做的事情(例如提取币、获得区块中包含的一笔交易、从区块链读取信息)。而安全性失败是指系统要主动防止的某些活动发生了(例如,区块链中包含无效区块)。

以下是一些区块链Layer 2协议的信任模型示例。其中“小N”指的是Layer 2系统本身的参与者集合,而“大N”是指区块链的参与者,并且我假设Layer 2协议的社区总是比主链本身要小。我还将“活性失败”一词的使用,限制在币被卡住很长时间的情况下。而不再能够使用该系统,但能够几乎立刻取出并不算是活性失败。

  1. 通道(包括状态通道和闪电网络):活性信任属于“1 of 1”模型(你的对手方可暂时冻结你的资金,不过如果你若是把币分散到多个交易对手,则可以减轻这种风险),安全性信任属于“N/2 of 大N”模型(区块链51%攻击可以窃取你的币);

  2. Plasma(假设使用中心化运营商):活性信任属于“1 of 1”模型(运营商可以暂时冻结你的资金),安全性信任属于“N/2 of 大N”模型(区块链51%攻击);

  3. Plasma(假设使用半去中心化运营商,例如采用DPOS):活性信任属于“N/2 of 小N”模型,安全性信任属于“N/2 of 大N”模型;

  4. Optimistic rollup:活性信任属于“1 of 1”或“N/2 of 小N”模型(取决于运营商类型),安全性信任属于“N/2 of 大N”模型;

  5. ZK rollup:活性信任属于“1 of 小N”模型(如果运营商未能纳入你的交易,你可以提币,如果运营商没能立即纳入你的提款,他们就无法产生更多的批次,你可以借助rollup系统的任何全节点自行提款),ZK rollup没有安全性失败风险;

  6. ZK rollup(带轻提取增强功能):无活性失败风险,无安全性失败风险;

最后,还有一个关于激励的问题:你所信任的参与者,是否要非常利他主义才能按预期行事,或者只需要略微无私,还是足够理性?寻找欺诈证明“默认”有点利他主义,尽管它的利他主义程度取决于计算的复杂性(参见《验证者的困境》一文,在公众号发送“验证”即可阅读本文),并且有多种方法可以修改游戏使其具有理性。

如果我们添加一种服务微支付方式,则协助他人退出ZK rollup总是合理的,因此,几乎没有理由去担心无法退出rollup系统的情况。同时,如果我们作为一个社区同意不接受51%攻击链,则这些攻击链在历史上要恢复得区块太多,或者审查区块的时间太长,则其他系统的更大风险就可得到缓解。

结论:当有人说一个系统“依赖于信任”,请更详细地询问他们的意思!他们是指的“1 of 1”,“1 of N”,还是“N/2 of N”?他们是要求这些参与者是利他主义者还是理性主义者?如果是利他主义,那会涉及一笔微不足道的开支,还是一笔巨大的开支?如果这个假设被违背了,你是需要等待几个小时或几天,还是你的资金会永远被卡住?根据答案的不同,你对是否要使用该系统的答案,可能会大不相同。

推荐阅读

或是未来10年最强风口:产业区块链时代正式到来

区块链落地应用盘点:五大领域应用告诉你“区块链能做什么”

区块链将引爆跨学科研究,比特币只是第一颗“核弹”

5分钟看懂区块链如何提升中国企业活力与效能!

一文读懂区块链项目的法律问题,通证激励、链改可行吗?

比特币技术堆栈的创新:今非昔比

区块链入门 | 什么是DAO?

更多关键词:矿工 | 51%攻击

燃点 | 孟岩 | 白硕 | 肖风

长铗 | 李国权 | 蚂蚁金服 | 来学嘉

这篇关于以太坊Layer 2 扩容,V神为什么偏爱ZK rollup ?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/562776

相关文章

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

[Linux Kernel Block Layer第一篇] block layer架构设计

目录 1. single queue架构 2. multi-queue架构(blk-mq)  3. 问题 随着SSD快速存储设备的发展,内核社区越发发现,存储的性能瓶颈从硬件存储设备转移到了内核block layer,主要因为当时的内核block layer是single hw queue的架构,导致cpu锁竞争问题严重,本文先提纲挈领的介绍内核block layer的架构演进,然

mysql动态扩容调研

MySQL动态扩容方案 目前可用方案 MySQL的复制: 一个Master数据库,多个Salve,然后利用MySQL的异步复制能力实现读写分离,这个方案目前应用比较广泛,这种技术对于以读为主的应用很有效。数据切分(MySQL的Sharding策略): 垂直切分:一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;垂直切分的思路就是分析

基于Shard-Jdbc分库分表,数据库扩容方案

一、数据库扩容 1、业务场景 互联网项目中有很多“数据量大,业务复杂度高,需要分库分表”的业务场景。 这样分层的架构 (1)上层是业务层biz,实现业务逻辑封装; (2)中间是服务层service,封装数据访问; (3)下层是数据层db,存储业务数据; 2、扩容场景和问题 当数据量持续新增,面临着这样一些需求,两台数据库无法容纳,需要数据库扩容,这里选择2台—扩容到3台的模式,如下图

springboot+dubbo+zk 入门篇(windows单机版)

一、下载安装zk注册中心并启动:     官网地址:http://www.apache.org/dyn/closer.cgi/zookeeper/     我的是zookeeper-3.3.6版本的。下载之后需要修改下文件:进入zk的conf目录。复制下zoo_sample.cfg     这个文件并重命名为zoo.cfg,然后把修改该文件内容,下面是我的,这个只是单机配置: # 心跳时间间隔

android xml之Drawable 篇 --------shape和selector和layer-list的

转自 : http://blog.csdn.net/brokge/article/details/9713041 <shape>和<selector>在Android UI设计中经常用到。比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到<shape>和<selector>。 可以这样说,<shape>和<selector>在美化控件中的作用是至关重要。 在

容器第三课,JDK源码分析,自己实现ArrayList数组扩容

package com.pkushutong.Collection;/*** 测试底层方法的实现,参照这JDK源码* @author dell**/public class Test02{private Object[] elementData;private int size;private int size(){return size;}private boolean isEmpty(){r

Windows C 盘扩容方案

Intro 最近 C 盘飘红了,想要扩展一下 C 盘的空间,因此我需要把 D 盘的空间移动一些到 C 盘(如果你的 C 和 D 盘是同一个硬盘才可以这么做)。最简单的情况下,你可以使用电脑自带磁盘管理来处理,下面会介绍如何处理,但是对我来说,因为内存地址不相连,无法直接分配从 D 盘分配内存给 C 盘。 因此,在这里我会给到几个合适的空间迁移方案,大家可以从上到下都试一试,确保成功。 为什么

centos7根分区扩容(适用目前主流版本)

查看根分区不够用了       1.关掉系统,从新增加一块硬盘,开机。(云主机不用关机直接添加就行) 2.fdisk –l   本次增加的磁盘叫做/dev/vdb      3.给新增加的磁盘分区: fdisk /dev/vdb 输入p,查看分区;(新加的硬盘是没有分区的,如果有 数据可以情况,输入d删除) 输入n ,创建新分区; 输入p,创建主分区 输入1,新建xvdc的第一