Перейти к публикации
a4j

Etherium токены

Рекомендованные сообщения

Категорически приветствую :)

 

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

 

И вторая часть вопроса - загрузить контракт - платная процедура,  а обращения к контракту - это же тоже транзакция, и тоже платная?

 

Третья часть вопроса - код и данные контракта где хранятся? Также у всех-всех-всех?

 

Благодарю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Да вы все правильно поняли. Токены это просто словарь где ключ это адрес, а значение это баланс. Данный словарь хранится в сторадже контракта. На адресах ничего не храниться.

   Для выяснения баланса, да надо обратиться к контракту.

2. Сам контракт может переводить только в пределах той логике которая в нем заложена. Если вы ведете речь об самом популярном ERC20, то там переводить свои токены может только хозяин адреса.

3. Для внесения изменений процедура платная, надо отправить транзакцию. Для чтения, бесплатно достаточно сделать вызов к ноде.

4. Храниться в блокчейне, то есть у всех-всех-всех😊

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ага, Благодарю. Ещё несколько уточнений:

Вот контракт - это же просто по сути набор функций и набор его данных.  Это вот получается, раз он хранится у всех-всех - каждый к себе скачивает этот, ну назовём его, программный модуль.. так ведь? Когда делается запрос к этому контракту - где именно он будет исполнен? На той ноде где к нему обратились? А если его нет ещё на этой ноде? Пока не синхронизуется - не сможем обратиться к контракту? И сам контракт - он физически как хранится? В плане возможно ли его подменить. Как вот (было в новостях то) - удалили контракт. Если в блокчейне всё  хранится "навечно" - как смогли контракт удалить? И если в этом контракте была табличка с токенами - получается что токены тоже изчезли? Ведь теперь негде посмотреть сколько их было у каждого владельца.. Я правильно понимаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Контракт появляется только на тех нодах которые синхронизированы до того блока где он был задеплоен. То есть если у ноды нет данного блока то вызвать контракт не удастся.

Контракт хранится у каждой ноды, заменить его не получится так блокчейн имеет свойство tamper proof. Все сцепленно зешами и меркл рутами.

Удалили контракт  - это история в новостях когда в контракте был вызов self destruct, то есть само уничтожиться. И данный метод кто то не прикрыл и сделал public. Любой мог дернуть его и уничтожить контракт.

 

И он не удалился из истории он стал не активным. Все таблички и перемещения токенов можно глянуть в истории блоков.

 

И да контракт /вызов к контракту исполняется тоже у всех-всех-всех

 

Изменено пользователем 4_tochka

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Понятно, значит в целом правильно понял. Благодарю!

 

Хотя..  Ещё один момент меня мучает - А если какая-то часть сети была временно отрезана от мира, в мире в это время тот самый контракт "удалили", а эта, отрезанная часть, ничего об этом не знала, и какие-то другие операции в контракте выполняла и думала что всё хорошо.. Что произойдет тогда связь восстановиться?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×