首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么事务收据中的信息不存储在事务本身中?

为什么事务收据中的信息不存储在事务本身中?
EN

Ethereum用户
提问于 2018-09-11 13:13:48
回答 1查看 174关注 0票数 1

黄纸上写着:

交易收据。为了对有关事务的信息进行编码,对其形成零知识证明或索引和搜索可能是有用的,我们编码包含执行过程中的某些信息的每个事务的接收。

为什么这些信息没有存储在事务本身中?这样,就可以在块头中再保存一个字段。那么这背后的设计理念是什么呢?

EN

回答 1

Ethereum用户

发布于 2018-09-12 01:47:29

因为事务是通过散列标识的。在事务的所有字段上计算事务哈希。在签署了事务后,您不能在不更改哈希的情况下修改它,如果在挖掘它之前就这样做了,网络就会将它视为不同的事务。

当事务创建合同时,合同地址存储在收据中。如何在不更改其哈希的情况下将这些数据添加到事务struct中?您不能这样做。封闭事务结果的唯一方法是创建另一个struct并将其存储在那里。这就是Receipts,它是事务的output,这是一个非常不同的概念,而Transaction数据是input

简而言之,以这种方式设计事物的决定是正确的。

顺便说一句,事务不存储在块头中,事务存储在单独的trie中。只有块的所有事务的散列保存在标头中。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/58528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档