Использование EVM или Swarm для хранилища данных

Я хочу поддерживать хранилище данных пар ключ-значение. Например, пользователи моего децентрализованного приложения вводят информацию о своей любимой еде. Я хотел бы сопоставить их учетную запись с названием еды. Насколько я понимаю, я могу сделать это с помощью смарт-контракта или сохранить его в рое. Каковы различия между хранилищами данных в рое и в смарт-контракте? Получаю ли я больше конфиденциальности, сохраняя свои данные в рое, а не в состоянии EVM?

Ответы (1)

Хранение ваших данных в смарт-контракте стоит дорого, сохранять большие объемы данных в смарт-контракте неэкономично. Вы можете лучше контролировать , как (а не кто) будут доступны ваши данные с помощью смарт-контракта. Однако, когда вы отправляете данные с транзакцией, все узлы получают их, поэтому для обеспечения конфиденциальности вам придется шифровать данные.

В swarm вы загружаете свой контент, который затем разбивается на части, при этом каждый фрагмент отправляется на разные узлы для хранения на основе их хэша — в основном хэш также является адресом фрагмента. Каждый, у кого есть хэш, может получить и прочитать содержимое. Таким образом, и в swarm, если вы хотите конфиденциальности, вам необходимо зашифровать свои данные и управлять ключами (команда swarm работает над встроенным средством шифрования).

Однако хранение в рое намного дешевле и подходит для данных любого размера. В настоящее время это даже бесплатно, так как внедряется протокол учета SWAP. Когда он будет включен, оплата будет осуществляться за потребление данных, а узлы, обслуживающие данные, будут оплачиваться (микроплатежи). Кроме того, ваши данные будут обслуживаться узлами в зависимости от популярности.

Тем не менее, непопулярные данные (низкая частота запросов или отсутствие запросов) могут быть удалены узлами, но вы можете застраховать их с помощью авансового платежа.

Наконец, участвуя в роевой сети, вы также можете получать оплату за предоставление контента, компенсируя (или даже превосходя) ваши расходы на страхование.

Однако Swarm все еще находится в альфа-версии, поэтому вам не следует использовать его для критически важных приложений.