Что такое блокчейн? Что такое смарт-контракт? Что такое газ?
Tal KolПеревод: @vsmisl3
Cпециально для @qpweThinks

Это вводная статья, целью которой является введение в контекст того, что мы здесь делаем. Что такого особенного в блокчейне и почему мы вообще его используем? В этом посте также даются определения некоторым базовым терминам, таким как смарт-контракт и газ. Если вы чувствуете себя потерянным во всей этой терминологии - это хорошее место для старта.
Старый интернет (Web2)
Термин Web 2.0 используется для описания интернета, таким каким вы его знаете. Этот интернет управляется в основном крупными корпорациями, такими как Google. Формальная причина существования корпораций - генерировать прибыль для своих акционеров. Это означает, что глобальное благо или выгоды для пользователей являются побочным продуктом, а не конечной целью.
Рассмотрим, Web2-сервис Gmail. Вы, как пользователь этого сервиса, не равны с создателем сервиса, Google. Мы зовём это свойство централизацией. В действительности, в централизованных сервисах пользователи не являются владельцами чего либо. Если Google решит, что вы нарушили его условия пользования, оно имеет право отнять у вас доступ к электронной почте. В централизованных сервисах. так же, пользователям требуется разрешение от владельца. Если Google решит, что ваше письмо является спамом, оно не обязано его отправлять.
Централизация основана на доверии. Пользователи позволяют Google сохранять позицию силы, потому что они доверяют Google.
Новый Интернет (Web3)
Многие из нас рассматривают Интернет как общее благо. Мы видим в нем инструмент, превращающий мир в, своего рода, всемирную деревню. Инструмент, позволяющий пользователям общаться и создавать сообщества. Таким образом, мы хотели бы видеть передачу власти от корпораций к пользователям. Web3 является реализацией этой идеи, следующим этапом эволюции Интернета.
В рамках этой идеи вы, как пользователь сервиса Web3, должны быть равны создателю сервиса. Это свойство называется децентрализация. В децентрализованных сервисах пользователи являются истинными владельцами. Это относится не только к данным, но и к активам. Децентрализованные активы, такие как ваши биткоины или монеты TON, принадлежат вам, и никто не может их отобрать. Децентрализованные сервисы также не требуют разрешения, что означает, что для перевода вашей монеты TON другому человеку требуется только ваше согласие. Никто не может помешать этому или цензурировать вас.
Децентрализация позволяет создавать системы, основанные на отсутствии доверия. Поскольку центральной власти нет, ею нельзя злоупотреблять для причинения вреда пользователям.
Блокчейн
Web3 звучит замечательно на бумаге, но насколько он практичен? Будучи разработчиком, как мне написать сервис, где я буду на равне с пользователями? Реализация сервиса обычно требует написания бэкенда. Бэкенд работает на каком-то сервере. Кто владеет сервером? Разработчик. Разработчик может изменить сервер без предупреждения или даже отключить его. Это отношение изначально неравное. Серверы бэкенда являются централизованными.
Технология блокчейн была изобретена для решения этой проблемы и позволяет разработчикам создавать децентрализованные бэкенды. Кто управляет этим бэкендом? Пользователи. Поскольку отношения равноправны, любой пользователь, желающий принять участие в управлении этим бэкендом, имеет право это делать. Блокчейн - это способ сотрудничество между пользователями.
Сотрудничество регулируется консенсусом. Чтобы результат исполнения был истинным, множество пользователей, а точнее, большинство, должно проголосовать за подтверждение результата. Это делает блокчейны неэффективными, поскольку каждый расчет должен выполняться множеством пользователей. Это также делает блокчейны дорогостоящими по сравнению с традиционными централизованнымы серверами.
Токен
Мы упоминали, что результаты выполнения требуют голосования. Как это работает? Один пользователь - один голос, как на демократических выборах? В интернете это так не работает, из-за так называемой Атаки Сивиллы. Создать фейковых пользователей в Интернете очень легко. Поскольку Web3 децентрализован, мы не можем иметь централизованный источник власти, который решает, кто поддельный, а кто реальный.
Популярное децентрализованное решение этой проблемы - это предоставление права голоса на основе токенов. Если у вас есть 10 токенов, у вас есть 10 голосов. Токены не могут быть подделаны, очень легко отличить настоящий токен от поддельного. Блокчейн TON основан на монете TON. Блокчейн Ethereum основан на Ether. Это означает, что каждый блокчейн также является экономикой. Токен действует как стимул, чтобы децентрализованное сообщество двигалось в одном направлении.
Валидаторы сети
Все блокчейны являются сетями, так как они управляются группами пользователей. Пользователи, которые выполняют основную работу по управлению сетью и активно участвуют в процессе консенсуса, называются валидаторами. Вес голоса каждого валидатора пропорционален количеству токенов, которыми он обладает. Чтобы поддерживать честность валидаторов, они обычно обязаны заложить свои токены. Если консенсус считает, что валидатор нечестен, его токены будут изъяты в качестве наказания. Этот процесс управления называется proof-of-stake.
Быть валидатором сети обычно трудно. Вам нужно запустить ноду (узел) блокчейна на своем сервере и заложить много токенов. Меньшие пользователи, которые хотят участвовать, но не имеют достаточного количества токенов, могут делегировать свои токены одному из крупных валидаторов. Эти участники называются номинаторами.
"Газовые" комиссии
Как было упомянуто ранее, блокчейны являются экономиками. Оборудование для валидаторов сети не бесплатно, поэтому им нужно оплачивать свои усилия. Оплата, естественно, производится токенами блокчейна. В блокчейне TON пользователи оплачивают комиссии монетами TON. Валидаторы сети TON зарабатывают монеты TON за выполнение процесса валидации и выполнение всех приложений, работающих на блокчейне.
Когда пользователь выполняет какое-либо действие на блокчейне, он должен отправить транзакцию. Транзакция включает в себя плату за комиссию, называемую газом (gas с англ. бензин). Аналогия взята с автомобилей. Так же, как автомобилю нужен бензин для работы, так и блокчейн-транзакции требуется газ. Пользователи должны подписывать транзакции, используя свои блокчейн-кошельки. Эта подпись гарантирует, что только владелец кошелька может авторизовать оплату газа и отправку транзакции.
Dapps
Ранее мы говорили о том, что цель блокчейна - запуск децентрализованных бэкендов. Простым названием для сервисов, работающих блокчейне, являются apps (приложения) - точнее decentralized apps (децентрализованные приложения) или коротко dapps. Разработчики создают dapps и предоставляют их сетевым валидаторам для исполнения.
Пользователи взаимодействуют с dapp, отправляя им транзакции. Разработчик dapp и пользователи равны. Разработчик не должен иметь особых привилегий, так как приложение децентрализовано.
Давайте еще раз повторим последний пункт на примере. Возьмем Web2 сервис, такой как Google Search. Разработчик сервиса, Google, упорядочивает результаты поиска для пользователей. Google находится в положении силы и имеет право продвигать свои собственные продукты в результатах поиска. Например, при поиске "хранилище" Google может продвигать результат "Google Drive" вместо конкурентов, таких как "Dropbox". В версии Web3 Google Search разработчик сервиса не будет иметь право продвигать свои собственные продукты в поиске.
Смарт контракты
У каждого Web2 сервиса, например, Google Search, есть условия использования. Если пользователь считает, что к нему несправедливо отнеслись вразрез с условиями пользования, он может подать иск в суд и запросить разрешение спора. Web3 децентрализован и не может иметь централизованных источников власти, таких как суды. В блокчейне код - это закон. Код dapp - это единственное соглашение между его пользователями. В отличие от традиционных юридических соглашений это соглашение не допускает интерпретации. Код всегда выполняется одним и тем же способом.
Блокчейн заменяет юридические контракты кодом. Код dapp называется смарт (умным) контрактом. Прежде чем пользователи решат использовать dapp, например, отправив ему транзакции, они должны ознакомиться с исходным кодом dapp, чтобы понять его условия. Как и в случае с лизинговым контрактом на квартиру, вы бы не подписали контракт без его чтения, так же вы не должны и подписывать транзакцию, не ознакомившись с условиями смарт контракта. Поскольку не все пользователи достаточно технически подкованы, чтобы сделать это самостоятельно, сообщества часто полагаются друг на друга для выполнения этой задачи.
После того, как разработчик закончил написание смарт контракта, публикация этого контракта в блокчейне называется развёртыванием. Код контракта развёртывается в цепи, где каждый может найти его по его адресу контракта.
Блоки и эксплореры
Как мы уже говорили ранее, сетевые валидаторы должны голосовать за результат выполнения каждой транзакции. Чтобы упростить этот процесс, группы транзакций объединяются в блоки. Каждому блоку транзакций присваивается свой номер блока, и он проходит процесс согласования, в ходе которого требуется одобрение большинства валидаторов сети. Если вы упорядочите все блоки один за другим, вы получите цепочку блоков - отсюда и происходит слово blockchain (цепь блоков).
После отправки транзакции пользователь должен подождать, пока эта транзакция будет включена в блок. Новый блок на TON блокчейне создается в среднем каждые 5 секунд. Пользователи могут проверять транзакции, были ли они выполнены успешно, и узнавать, в какой блок они были добавлены, используя инструмент, называемый блок-эксплорером или просто эксплорером.
Так зачем же нужен блокчейн?
В этом посте мы в общих чертах рассмотрели, что такое блокчейн и определили множество терминолв, связанных с ним. Казалось бы, слишком много хлопот для достижения таких абстрактных вещей, как децентрализация и отсутствие доверия. Можем ли мы привести более практический пример, где блокчейн может улучшить вашу жизнь?
Еще в 2018 году я написал пост из двух частей на эту тему, собравший много хороших отзывов. "Как блокчейн может помочь вам на необитаемом острове" и "Как запустить блокчейн на необитаемом острове с помощью ручки и бумаги". Если вам нравится сериал "Lost", то, уверен, вам понравятся и посты.
Счастливого кодинга!
Tal является основателем Orbs Network. Он является блокчейн разработчком, сторонником ПО с открытым исходным кодом и активным контрибьютором в экосистему TON. Также он является одним из основых разработчиков TONcoin Fund. Подписывайтесь на Tal на GitHub и Twitter. Если вы нашли какие либо ошибки в посте, пишите Tal в телеграме.