Существует ли (теоретический) предел количества данных, которые может хранить контракт?

Существует ли теоретический предел объема данных, которые может хранить один контракт при работе в частной сети, в которой газ не вызывает беспокойства?

Контекст. В финансовом Dapp, который должен заменить глобальные платежные системы, пропускная способность tx /s, безусловно, является одним из ограничивающих факторов, который широко обсуждается. Но это не то, что я получаю здесь. Может ли договор контракта хранить 1 ГБ, 1 ТБ, ... данные в контракте? Данные не будут записываться за один раз, а скорее накапливаться с течением времени.

Пример. Предположим, что наилучшим сценарием, в котором нам удается сжать одну транзакцию токенов, живущих поверх умного контракта, на 100 байт. При пропускной способности 1000 tps это даст 100 * 1000 * 3600 * 24 * 31 * 12 = 3,2 ТБ /год. Не стесняйтесь гадать, если /когда это будет возможно.

30 голосов | спросил Validity Labs - Sebastian 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 15:12:19 +0300000000pmFri, 05 Feb 2016 15:12:19 +030016 2016, 15:12:19

2 ответа


37
  

Контрактное хранилище - это ключ из 32 байтов и значение 32 байта, поэтому максимальный один контракт может хранить около 1,46 ГБ (32 ^ 32).

False. Есть 2 ^ 256 различных ключей, и каждый ключ может хранить 32 байта, так что это всего 2 ^ 261 байт, которые могут быть сохранены. Тем не менее, к тому времени блок-цепочка Ethereum, вероятно, сломается из-за столкновения хешей ....

ответил Vitalik Buterin 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 16:04:23 +0300000000pmFri, 05 Feb 2016 16:04:23 +030016 2016, 16:04:23
4

Контрактное хранилище - это ключ из 32 байтов и значение 32 байта, поэтому максимум одного контракта может хранить около 2 ^ 261 байт (2 ^ 256 * 32b).

В частной цепочке, где газ не вызывает беспокойства, поскольку адресное пространство составляет 160 бит, предполагая, что все это можно использовать, могут быть созданы 2 ^ 160 контрактов. Поэтому теоретически около 2 ^ 421 байт - это максимум, который могут хранить контракты.

ответил eth 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 15:49:52 +0300000000pmFri, 05 Feb 2016 15:49:52 +030016 2016, 15:49:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132