Всем привет! Меня зовут Саша Аксёнов, я CEO питерской студии разработки Unistory. Мы разрабатываем SaaS решения с интеграциями web3 & AI технологий.

Сегодня я расскажу вам о нашем новом web3 проекте, который позволяет зарабатывать на блокчейне и отчислять процент заработка в НКО.

Как мы познакомились с заказчиком, и как появилась идея проекта

Все началось в апреле 2022 года. Мы искали клиентов на Upwork, и одними их наших заказчиков стали британец Джейдип и выходец из Индии по имени Яш. Их компания Launchnodes — экосистема для стейкинга ETH. Они помогают web3 энтузиастам запускать собственные ноды и зарабатывать на этом.

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

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

Успешно запустили проект, и через полгода нам сделали еще одно предложение.

Launchnodes получили грант на разработку сервиса для стейкинга ETН с возможностью благотворительных отчислений во всемирно признанные НКО. Грант выдала организация Lido, крупнейший DeFi-протокол на Ethereum. 

Вот так была оформлена заявка на грант
Вот так была оформлена заявка на грант

Как работают такие гранты? Организация Lido — децентрализованная, все решения принимает сообщество. Похоже на демократию в классическом ее понимании.  Launchnodes поделились своим предложением с участниками комьюнити, и им выдали $300 000 долларов на реализацию.

Проект получил название Lido Impact Staking. Джейдип и Яш обратились к нам за технической реализацией.

Как работает сервис?

Интерфейс Lido Impact Staking
Интерфейс Lido Impact Staking

Пользователь проходит авторизацию на платформе через крипто-кошелек. Для этого мы интегрировали наш проект с MetaMask.   

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

Например, мы можем зайти на платформу, застейкать 3 ETH, и перечислять процент суммы, которую зарабатываем, в НКО. Это может быть любая сумма от 1 до 100 процентов нашего заработка. 

Куда идут отчисления на благотворительность?

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

Сейчас сервис сотрудничает с двумя благотворительными фондами: GiveDirectly и Treedom. Переговоры по сотрудничеству с World Food Programme находятся на финальной стадии.

В будущем планируем добавить возможность жертвовать на отдельные благотворительные проекты этих НКО. Например, чтобы жертвовать не просто в Treedom, а на их работу и посев деревьев в каком-то конкретном регионе.

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

Как устроена отчетность?

На странице Rewards & Donations пользователь может отслеживать информацию по своему заработку и благотворительности. Здесь мы расписали историю транзакций, общий объем прибыли и суммы благотворительных отчислений. 

Всю эту информацию можно экспортировать в виде PDF. Документы, которые мы формируем на платформе, могут быть приняты в налоговых органах некоторых стран. 

Зачем это нужно? В зависимости от страны, вы можете принести доказательства своей благотворительной деятельности в налоговую и тем самым уменьшить объем налогов, которые платите. 

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

Самое интересное — математика смарт-контрактов

Во время разработки смарт-контракта столкнулись с проблемой. Заработок пользователей, заработок платформы, благотворительные отчисления — все это составляет огромное количество транзакций. 

Каждая транзакция — это дополнительные комиссии. Если оплачивать все комиссии отдельно, никто ничего не заработает: ни пользователь, ни благотворительные фонды, ни платформа. 

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

Интерфейс Lido Impact Staking
Интерфейс Lido Impact Staking

Чтобы свести комиссии к минимуму, мы глубоко проработали математику проекта. Составили несколько десятков формул: уменьшили объем данных, которые хранятся на смарт-контрактах, а также избавились от переиспользования информации.

В формулах используется множество показателей: общая сумма ETH пользователя, сумма застейканного ETH, доля НКО, доля платформы, доля пользователя, общий процент со стейкинга.

Очень подробно про транзакции, комиссии и формулы

Допустим, у нас есть два стейка. У них есть сумма, изначальный профит, и процент, который застейкал пользователь. Мы используем доли, которые конвертируются из суммы, которую человек застейкал. Переводим их в число, которое мы обозвали в своих таблицах Share, или «Доля». 

Эта Share рассчитывается как вся сумма минус 1000. Изначальной сумме Share присваивается айдишник. Рассчитываем Total Share, то есть сколько всего таких Share в системе. У каждого пользователя по его айдишнику есть сумма всех его Share. Благодаря этому мы можем легко подсчитать, сколько застейкали двое или более человек.

Как-то так выглядят эти таблицы
Как-то так выглядят эти таблицы

Как потом считаем: допустим, было полтора ETH. Стало 1,6 ETH, то есть накопили какие-то награды за стейкинг. Мы вызываем функцию распределения денег. Смотрим текущий баланс по Share, смотрим какая сумма награды в данный момент в Share. 

Есть еще отдельный показатель Share для НКО, это средневзвешенный процент, умноженный на 1018 (специфика работы с Solidity). Высчитывается это как процент Amount (общая сумма, общее количество ETH), умноженный на процент, который застейкали пользователи, и разделенный на общую сумму обоих (или более) пользователей. 

Также рассчитываем отчисления для команды заказчика, это 5%. И в итоге для НКО уходит на благотворительные цели некоторая сумма минус комиссия команды проекта. 

Чтобы уменьшить количество вычислений, считаем все Share при стейке и выводе. Запоминаем только количество предыдущих наград, что позволяет нам подсчитать их в следующий раз. Доли всех пользователей и по отдельности не пересчитываются до момента вывода (всего или части), что позволяет нам делать комиссии маленьких размеров.

Как наши смарт-контракты прошли аудит (спойлер, на пятерку)

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

Когда мы отдали проект на аудит в первый раз, сторонняя команда выявила ряд ошибок и неточностей. Мы устранили их, и в итоге наши смарт-контракты прошли аудит «на отлично»: почти по всем параметрам статус Excellent, по некоторым — Good.

Финальный репорт, кстати, состоит из 100+ страниц. Сто страниц о том, какие мы молодцы — приятно!
Финальный репорт, кстати, состоит из 100+ страниц. Сто страниц о том, какие мы молодцы — приятно!

Куда без соцсетей в 2025 году

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

Социальные сети на блокчейне, или SocialFi, понемногу развиваются в последние годы. Они дают пользователю больше свободы слова, конфиденциальности и уверенности в том, что твой контент и коннекты никто не удалит, в том числе — администраторы. 

Естественно, наши заказчики — криптоэнтузиасты, поэтому было бы странно не прикрутить ни одну такую соцсеть :)

Долгожданная встреча

Заказчики, Джейдип и Яш, долго приглашали нас встретиться вживую. Наконец такая возможность представилась — я и Илья, один из менеджеров Unistory, решили съездить на Devcon 2024 в Бангкоке. Это крупнейшая конференция, посвященная Ethereum, каждый раз проводится в разных городах, в этом году здесь было 12 500 посетителей.

Встретились в ресторане и обсудили, что сделали за два года сотрудничества. Поговорили о текущем и будущих проектах. Джейдип, CEO проекта — супер заряженный, Яш — типичный CTO, более интровертный. 

Джейдип, Яш, Илья, Саша (Саша — это я)
Джейдип, Яш, Илья, Саша (Саша — это я)

Ребята предложили нам вписаться в разработку банковской инфраструктуры для государственного банка.

Мы с Ильей получили приглашение приехать в гости в Индию — в город, где живет Яш. Решили, что обсудим там партнерские отношения: у ребят есть большая база клиентов, для которых мы могли бы предоставлять услуги разработки.   


Меня радует, что к нам в Unistory[ссылка удалена мод.] часто приходят такие вот проекты с социальной миссией, при этом технологически сложные и интересные. Возможно, это потому, что я раз за разом отказываю заказчикам, которые хотят проекты на тему гэмблинга и адалта? Кто знает.

Комментарии (2)


  1. depressedliza
    24.01.2025 11:54

    Интеграция с DeFi платформой и акцент на благотворительность — это действительно вдохновляющее применение блокчейна


    1. unistory Автор
      24.01.2025 11:54

      Спасибо!)