scarlet

Posted on Jul 17, 2022Read on Mirror.xyz

Zk rollups", "Validiums", "Volition", "DAC", "Data availability layer" 都是啥

现在也许你已经知道什么是有效性证明了validity proof 爱丽丝执行一个程序,然后将输出output+执行证明发送给鲍勃。 鲍勃验证了该证明,并确信输出output是正确的。

很酷哈,是因为

  • 1 鲍勃不需要运行该程序,而且 2)有效证明validity proof 要比运行程序容易得多,而且 3)以太坊智能合约能够验证这种证明。

  • 程序的 "证明”(proof) "和 "输出(output )"可以是独立的。

    鲍勃可以检查爱丽丝是否正确执行了她的程序,而不知道执行的输出是什么

  • 举一个例子。 爱丽丝和鲍勃在玩牌。 爱丽丝正在计算点数。 她可以给鲍勃一个证明proof ,证明她算得很准。 鲍勃可以在数学上确定她是诚实的,而他不知道每个人有多少分(output)

  • 对于他们进行的每一轮游戏,爱丽丝向鲍勃发送一个PROOF,说明她从N轮到N+1轮的转变是正确的。 鲍勃可以检查这个转换是否正确。

    但是,如果爱丽丝丢失了她正在计算点数的纸,会发生什么?

  • 他们会被卡住。 产生一个新的证明以使游戏前进到N+1状态的唯一方法是知道N是什么状态;如果它丢失了,就不能产生证明。

    换句话说,他们需要从N-1过渡到N的输出output来生成新的证明。以此来确定N的状态而推出N+1的状态

  • 简而言之,这就是数据可用性问题data availability problem,你证明了一个状态转换,但你仍然需要该状态被广泛使用,以便之后可以计算出后续的状态。

    那么区块链网络呢?

    当StarkNet在以太坊上结算时,它可以在不发送区块N+100的情况下发送一个正确的执行证明 "我正确地从区块N移动到区块N+1"。

    但是,如果区块N+100丢失了,那么就不可能将StarkNet向前推进。

    所以StarkNet发送正确执行的证明 "我正确地从区块N移到区块N+1",以及输出 "这里是区块N和N+1的状态差异"

    数据存储在Ethereum上。问题解决了!

  • 这被称为 "Validity rollup "或 "ZK rollup"。通过这些,我们今天实现了500-1000倍的成本降低。

    但我们能做得更好吗? 毕竟,在链上存储数据是昂贵的。 也许将数据存储在链外而不丢失并不难?

  • 所以就有了 "数据可用性层"Data availability layers,比如 @CelestiaOrg的设计,为数据的可用性提供保证。

    另一种设计了DAC数据可用性委员会(Data Availability commitees),它是负责保管数据的一组实体。

    这是一个有趣的设计空间。这些设计--由以太坊验证的证明,数据存储在其他地方--被称为 "Validiums"。

    有了这些,你可以得到如今成本降低了20,000倍,是的。这就是 @Sorare 或 @Immutable正在采用的验证逻辑

  • 最后一点。 在Validity rollups和Validiums中,这些设计选择会影响整个链条。 但是,如果在一个单一的链中,你选择哪个变量去哪里呢? 例如 "NFT所有者在L1,NFT元数据在链外"。

    ”自愿“Volition“,你可以设计你的应用程序并以不同的方式保护不同的区域。

    StarkEx已经开始Volition,并且最终将在StarkNet上使用