What would it take to do DAS with inner product arguments (IPAs)?

Vitalik Buterin发布于2022-02-22更新于2022-02-22

文章摘要

Data availability sampling (DA-sampling or DAS) today is planned to be done with KZG commitments.

Data availability sampling (DA-sampling or DAS) today is planned to be done with KZG commitments. KZG commitments have the advantage that they are very easy to work with, and have some really nice algebraic properties:

The first is a nice efficiency guarantee. The second ensures that producing a blob that can be DA-sampled is easy: if it takes O(N2) time to generate all proofs, then it would require either highly centralized actors or a complicated distributed algorithm to make it DAS-ready.

The third and the fourth are very valuable for 2D sampling, and enabling distributed block producers and efficient self-healing:

A block producer only needs to know the original M commitments to “extend the columns” with an FFT-over-the-curve and generate 2M commitments that are on the same deg<M polynomial.

You can do not only per-row reconstruction but also per-column reconstruction: if some values and proofs on a column are missing (but more than half are still available), you can do an FFT to recover the missing values and proofs.

However, KZG has a weakness: it relies on complicated pairing cryptography, and on a trusted setup. Pairings have been understood for over 20 years, and the trusted setup is a 1-of-N trust assumption with N being hundreds of participants, so the risk in practice is high and this author believes that proceeding with KZG is perfectly acceptable. However, it is worth asking the question: if we don’t want to pay the costs of KZG, can we use inner product arguments (IPAs) instead?

IPAs have the following properties:

  1. An evaluation proof has logarithmic size and can be verified in linear time (roughly 40ms for a size-4096 polynomial)
  2. There is no known efficient multi-proof generation algorithm.
  3. Commitments are elliptic curve points and you can linearly combine them just like KZG commitments
  4. There is no known way to linearly combine proofs.

Hence, we keep some properties and we lose some. In fact, we lose enough that our “current approach” to generating, distributing and self-healing proofs is no longer possible. This post describes an alternative approach that, while somewhat more clunky, still achieves the goals.

An alternative approach

First, instead of generating 2N independent proofs for a deg<N polynoial, we generate a proof tree. This looks as follows:

Blue: chunk 3, yellow: proof for chunk 3.

Note that to improve efficiency, each chunk does not need to be a single evaluation; instead, we can crop the tree so that eg. a chunk is a set of 16 evaluations. Given the combined size of the proofs will be larger than this regardless, we lose little from making chunks larger like this.

Generating these proofs takes O(N∗log(N)) time. Verifying a proof takes O(N) time, but note that verification of many proofs can be batched: the O(N) step of verifying an IPA is an elliptic curve linear combination, and we can check many of these with a random linear combination. O(N) field operations per proof would still be required, but this takes <1 ms.

Extension: fanout greater than 2

Instead of having a fanout of 2 at each step, we can have a higher fanout, eg. 8. Instead of one proof per commitment, we would have 7 proofs per commitment. At the bottom level, for example, we would have a proof of {1,2,3,4,5,6,7} , {0,2,3,4,5,6,7} , {0,1,3,4,5,6,7} , etc. This increases total proof generation effort by ≈(7∗7/4)/3 x (7 proofs per node, each proof 1.75x the size of the original, but 3x fewer layers, so ~4.08x more effort total), but it reduces proof size by 3x.

Proof size numbers

Suppose that we are dealing with N=128 chunks of size 32 (so we have deg<4096 polynomials), and a fanout of (4x, 4x, 8x). A single branch proof would consist of 3 IPAs, of total size 2∗(7+9+12)=56 curve points (~1792 bytes) plus 512 bytes for the chunk. This compares to 48 byte proofs for a 256 byte or 512 byte chunk today.

Generating the proofs would require a total of 2∗8192∗(3∗2+7) curve multiplications (3 * 2 for the two fanout-4 layers and 7 for the fanout-8 layer), or a total of ~212992 multiplications. Hence, this would require either a powerful computer to do quickly (a regular computer can do one multiplication in ~50 us, so this would take 10 seconds which is a little too long) or a distributed process where different nodes focus on generating proofs for different chunks.

Verifying the proofs is easy, as proof verification can be batched and only a single elliptic curve multiplication done. Hence, it should not be much slower than with KZG proofs.

Self-healing

Self-healing could not effectively be done column-by-column. But can we avoid requiring a single healer to have all of the data (all 2N chunks from each of all 2M polynomials)?

Suppose that a single row is entirely missing. It’s easy to use any column to reconstruct the value in the missing row in that column. But how to prove it?

The simplest technique is cryptoeconomic: anyone can simply post a bond claiming a value, and someone can later take that claim together with a branch proof proving a different value to slash that validator. As long as enough legitimate claims are available, someone on that row subnet can combine together the claims and reconstruct the commitment and the proofs. Validators could even be required to publish such claims for sample indices that they are assigned to.

A cryptoeconomics-free but more technically complicated and slow alternative is to pass along M branch proofs for values along that column, along with a Halo-style proof that the proofs verify correctly.

你可能也喜欢

被AI吓崩的软件股,怎么突然成了美股最靓的仔?

近日,软件股在美股市场强势反弹,成为最亮眼板块。以Snowflake和Datadog为代表的公司股价大幅上涨,单月涨幅惊人。这标志着市场情绪发生了显著逆转——仅仅半年前,华尔街还普遍担忧人工智能(尤其是AI Agent)会颠覆传统软件公司,导致该板块遭到低配。 反弹的核心逻辑有二:首先,最新财报数据证伪了“AI冲击软件”的恐慌。例如,Snowflake不仅上调了业绩指引,还签署了巨额AI相关合作协议,表明AI工作流反而增加了对软件平台的需求。其他软件公司的业绩也普遍超预期,显示行业盈利增长依然强劲。 其次,机构此前对软件股的配置处于历史低位,业绩向好触发了大规模空头回补和资金涌入,推动了暴涨行情。市场观点也随之转变,有分析指出AI的利润重心正从硬件向软件转移。 文章进一步探讨了AI与软件的关系,指出AI Agent非但不会取代软件,反而会成为软件的新用户,增加对身份管理、数据调用和工作流协调等服务的需求,从而扩大了软件的市场空间。同时,企业级应用场景复杂,涉及经验积累、成本控制和合规治理,通用AI模型与具体业务结果之间仍有距离,而这正是软件公司的价值所在——将智能转化为稳定、可靠、可信任的业务流程。 最终结论是,AI不会杀死软件,而是会重新定义软件。能够成功将AI能力融入并增强自身产品、解决企业实际痛点的软件公司,将在新周期中胜出。

marsbit26分钟前

被AI吓崩的软件股,怎么突然成了美股最靓的仔?

marsbit26分钟前

交易

现货
合约

热门文章

如何购买ETC

欢迎来到HTX.com!我们已经让购买Ethereum Classic(ETC)变得简单而便捷。跟随我们的逐步指南,放心开始您的加密货币之旅。第一步:创建您的HTX账户使用您的电子邮件、手机号码注册一个免费账户在HTX上。体验无忧的注册过程并解锁所有平台功能。立即注册第二步:前往买币页面,选择您的支付方式信用卡/借记卡购买:使用您的Visa或Mastercard即时购买Ethereum Classic(ETC)。余额购买:使用您HTX账户余额中的资金进行无缝交易。第三方购买:探索诸如Google Pay或Apple Pay等流行支付方法以增加便利性。C2C购买:在HTX平台上直接与其他用户交易。HTX场外交易台(OTC)购买:为大量交易者提供个性化服务和竞争性汇率。第三步:存储您的Ethereum Classic(ETC)购买完您的Ethereum Classic(ETC)后,将其存储在您的HTX账户钱包中。您也可以通过区块链转账将其发送到其他地方或者用于交易其他加密货币。第四步:交易Ethereum Classic(ETC)在HTX的现货市场轻松交易Ethereum Classic(ETC)。访问您的账户,选择您的交易对,执行您的交易,并实时监控。HTX为初学者和经验丰富的交易者提供了友好的用户体验。

748人学过发布于 2024.03.29更新于 2026.06.02

如何购买ETC

相关讨论

欢迎来到HTX社区。在这里,您可以了解最新的平台发展动态并获得专业的市场意见。以下是用户对ETC(ETC)币价的意见。

活动图片