2022-12-11

Что такое кошельки TON?

Описание Telegram Open Network если его внимательно читать со временем начинает затягивать все сильнее и сильнее.

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

Оказывается, кошелек в сети TON это действительно смарт-контракт, причем довольно простой.

Чтобы понять как адресуются данные в блочейне TON нужно знать как они хранятся. Для хранения всех данных TON использует дерево ячеек. Каждая ячейка может хранить до 1023 бит информации и до четырех ссылок на другие ячейки. Адресом ячейки является ее sha256 хеш. То есть для содержимого ячейки, находится sha256 хеш, этот хеш и является адресом ячейки. Если две ячейки содержат одинаковые данные, то они имеют одинаковый адрес. Это позволяет экономить место не сохраняя дублирующиеся данные. Такой способ хранения информации называется направленным ациклическим графом.

Часть ячеек хранят код смарт-контракта, а часть ячеек хранят данные смарт-контракта. Поскольку для большинства кошельков в сети используется один и тот же смарт-контракт, то получается для его хранения используются одни и те же ячейки!

Адрес смарт-контракта это sha256 хеш от кода смарт-контракта и его исходных данных. Когда пользователь устанавливает приложение кошелька, при первом запуске приложение предлагает создать пользователю пару ключей - закрытый и открытый. В этот момент смарт контракт кошелька еще не опубликован в сети TON. Однако, адрес будущего смарт контракта приложение уже знает - поскольку код смарт контракта и публичный ключ уже известны. Этот адрес пользователь может использовать, чтобы послать не него криптовалюту.

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

Как только приложение кошелька видит, что баланс адреса ненулевой оно посылает в сеть сообщение с кодом смарт контракта вместе с публичным адресом пользователя. Только в этот момент в блокчейне сохраняется публичный ключ пользователя с привязанным к нему кодом смарт-контракта.

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

Смарт-контракт может не иметь уникальной части в виде публичного ключа пользователя, в этом случае код смарт контракт однозначно определяет свой адрес. Например, вот этот простейший смарт-контракт может быть опубликован только на одном уникальном адресе так как его код является единственной уникальной характеристикой.

Примечательно, что если кошелек не используется долгое время, то с него начинает браться повышенная комиссия и как только баланс кошелька становится нулевым смарт-контракт сначала замораживается а потом и вовсе удаляется из блокчейна.

 

Оставить комментарий

 
  2022-12-11

Третий Конкурс Смарт-Контрактов от TON

Ребята из TON Foundation опять устраивают конкурс в денежными призами и ценными подарками. На этот раз это соревнование по написанию смарт контрактов на языке Func. 

Хотя конкурс рассчитан на новичков, хочу честно признаться - я не могу даже приблизительно понять ЧТО нужно сделать, не говоря уже о том КАК.

Например в задании 4 нужно реализовать операцию по сложению двух эллиптических кривых Curve25519.

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

Ловлю себя на мысли, что мне нравится в этом копаться. Николай Дуров проделал колоссальную работу собирая вместе эту систему. Некоторые называют TON следующим Биткойном.

Пока у меня больше вопросов чем ответов. Например, Смарт Контракты TON можно модифицировать после публикации, как при этом можно защититься от скама? Или, например кошельки в сети TON это смарт контракты, при этом часть кошельков написана на Func а часть на Fift. На сайте утверждается, что они практически идентичны, тогда почему у кошельков второй версии нет кода на Func? Это все равно как привести две программы - одну на Си а вторую на Ассемблере и сказать что они практически идентичны...

Для того чтобы понять как это работает нужно прочитать сотни страниц спецификации. Документация вроде есть, но ее нужно прочитать, а это сотни страниц. Уже есть первые Step-by-step руководства, но они, как правило поломаны из-за изменений в коде системы, и чтобы понять как их пройти, все равно приходиться читать документацию.

Если кому-то нравятся головоломки, то смело могу порекомендовать этот конкурс. Первая фаза уже прошла, для тех кого это не смущает еще есть время до 23 декабря, чтобы разобраться в теме.

 

Оставить комментарий

 
  2022-06-23

Hack-a-TON

А нет ли случайно среди читателей моего маленького блога желающих поучаствовать в хакатоне проводимым командой TON первого июля? Хакатон продлится 48 часов и стартует 12:00 UTC (кстати, кто знает, это полдень или полночь?).

Мне формат хакатонов очень нравится - ограниченное время заставляет работать на пределе возможностей. Для участия нужна команда до четырех человек, думаю, можно участвовать и одному, но три-четыре человека - оптимальный размер команды.

Для участия понадобится только JavaScript и команда из четырёх (или менее) человек, а все необходимые SDK и готовые смарт-контракты будут предоставлены.

Хакатон будет проходить в режиме онлайн.

Если у вас вдруг есть пару свободных летних дней 1-го и 2-го июля, кажется это будут пятница и суббота следующей недели - дайте знать, должно быть весело!

 

Оставить комментарий

 
  2022-04-02

Пассивный доход в Toncoin

Можно бесконечно следить за тремя вещами - как горит огонь, как течет вода и как меняются циферки на смарт контракте куда ты послал немного коинов...

Давно слежу за развитием проекта TONCOIN. Проект представляет собой развитие проекта Павла и Николая Дуровых, который те перестали развивать и, который сейчас поддерживает open source сообщество. TON расшифровывается как Telegram Open Network и представляет собой блокчейн четвертого-пятого поколения который должен прийти на смену сетей первого и второго поколения типа Bitcoin и Ethereum. На базе проекта уже работают различные сервисы, в том числе сервис т.н. стейкинга.

Что такое стейкинг? Это не что иное как как получение дохода с вклада в классическом понимании этого слова. То-есть вы кладёте в банк определённую сумму и получаете доход с этой суммы. Недавно появился сервис на сайте tonwhales.com появилась возможность вкладывать свои деньги и получать свой интерес с этих денег.

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

Работает всё это на смарт контракте, поэтому вы, в некоторой степени, можете быть уверены, что эти деньги вы не потеряете. Хотя нет никаких оснований доверять создателям сайта, смарт-контракт опубликован на гитхабе и можно посмотреть его исходный код. Если в смарт-контракте есть уязвимости это как правило выясняется в ходе аудита.

Как это работает - вы посылаете на электронной адрес определённую сумму с комментарием "Deposit". После этого, умный контракт принимает ваш депозит присылает вам подтверждение что депозит принят. Далее, на депозит ежедневно начисляются проценты. Сейчас процентная ставка составляет около 13% годовых.

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

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

Конечно, доходность такого способа заработка относительно невысока но и риски так же невысоки. Кстати о рисках. Риски есть всегда. Нужно понимать, что если вы потеряете свой кошелёк вы никогда не сможете снять деньги со смарт контракта, потому что деньги возвращаются на тот же адрес с которого была сделана первоначальная оплата. Нельзя быть обсолютно увереным, что контракт стейкинга не имеет скрытых дефектов или уязвимостей. Несмотря на то, что  можно посмотреть его код в блокчейне, не каждый может в нем разобраться, например я, программист с двадцатилетним опытом пока не могу. Технология, на которой работает весь блокчейн TON, может оказаться уязвимой и проект обесценится, как это не раз происходило в прошлом. Даже если сами монеты вы не потеряете их цена может быть обнулена в будущем.

Так что думайте сами решайте сами, но мне кажется, что эта технология весьма многообещающая.

 

Оставить комментарий