Блокчейн-термины, C

Децентрализованные приложения – простым языком

Синхронизация данных блокчейна

Блокчейн сконструирован таким образом, что данные на всех его компьютерах (“нодах“) – синхронизированы.

То есть, если одна нода содержит информацию “Виктор имеет X токенов такого-то ICO”, то и все остальные ноды содержат точно такую же информацию.

Но! Информация в нодах непрерывно изменяется. Виктор может перевести Y токенов Павлу. И таких транзакций может быть тысячи в течение ограниченного периода времени.

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

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

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

 

Смарт-контракты

“Смарт контракт”- это программный код для блокчейнов типа Ethereum, см.  “Платформы смарт-контрактов”. В Эфириуме он написан на языке Solidity, а например в блокчейне Lisk – на Javascript.

Смарт-контракт нужен для описания структуры ваших данных (“Аккаунт пользователя, Число токенов на аккаунте пользователя” и т.п.) и логики операций над данными. Например “Нельзя выполнять переводы токенов, пока не прошел месяц после окончания ICO”.

После создания смарт-контракта его нужно развернуть (“задеплоить”) в блокчейне. После чего он там останется навечно, у него будет свой адрес, и по этому адресу можно обращаться к контракту для выполнения определённых действий. Например, для перевода токенов.

Допустим, вы открываете свой кошелёк и видите количество определённых токенов на своём аккаунте. Но что происходит “под капотом”?

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

Выполняется запрос вида “получить баланс токенов”.

Смарт-контракт в ответ отдает баланс токенов и вы видите его в своем кошельке.

Операции с токенами- лишь одна из возможностей применения смарт-контрактов.

Например, вы создали нечто оригинальное. Книга, сценарий, технология. Вы хотите иметь возможность подтвердить свое авторство. 

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

Еще пример, смарт-контракт “Голосование”. 

Есть группа избирателей и некоторое количество кандидатов – у каждого свой аккаунт. 

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

Голосовать можно только в определенный период времени.

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

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

И данные смарт-контракта также доступны всем. Это число токенов на балансе или фамилия кандидата-победителя.

Эти данные не может изменить “руками” никто, включая разработчиков контракта. При двух условиях:

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

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

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

Close Menu