Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
qwerttyuyui
7 лет назад

Концепции развития умных контрактов: биткоин vs Ethereum

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

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

Скриптовый язык биткоина позволяет программировать условные транзакции (простейшие алгоритмы “if-then-else”), но не обладает полнотой по Тьюрингу. А сам блокчейн биткоина не содержит маркеры состояний. Поэтому консервативный биткоин не смог дать программистам желаемой свободы действий, и дальнейшая разработка пошла по двум большим направлениям — эксперименты с сайдчейнами (ответвлениями основного блокчейна биткоина) и создание новых блокчейнов с нуля.

В 2014 году Виталик Бутерин опубликовал документацию, в которой говорилось о способах улучшения биткоина. Вскоре под его руководством начал разрабатываться новый блокчейн — Ethereum.

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

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

Полнота по Тьюрингу

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

Большинство современных блокчейнов, включая биткоин, не обладают этим свойством. Поэтому их «контракты» представляют из себя относительно простые конструкции, такие как «мультиподпись» или «транзакции с отложенным исполнением». Биткоин мог бы расширить свой функционал став тьюринг-полным, но отказ от этой характеристики — принципиальная позиция.

Более того, с жесткой критикой тьюринг-полных блокчейнов выступают так называемые “биткоин-максималисты”. По их мнению, включение излишних вычислений в блокчейн грозит существенными нагрузками на сеть. В результате это может привести к замедлению работы блокчейна, а, учитывая небольшой размер блока биткоина и десятиминутный промежуток между блоками, тьюринг-полные смарт-контракты являются неподъемными для биткоина. Но даже на более гибких и быстрых платформах вычисления, производимые на блокчейне, — довольно дорогое удовольствие.

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

Вместе с тем Бутерин отметил, что видение Ethereum опирается не столько на тьюринг-полноту, сколько на хранение состояния в блокчейне (statefulness). Главное отличие модели Ethereum от биткоина он видит именно в этом, а тьюринг-полнота является всего-лишь следствием.

Простыми словами, разницу между двумя основными подходами можно объяснить так: смарт-контракты Ethereum способны хранить состояние в блокчейне (stateful), т.е. воспринимать каждую транзакцию как часть большой картины. Биткоин же использует контракты без хранения состояния (stateless), т.е. его блокчейн обрабатывает каждую транзакцию как абсолютно независимое событие.

С одной стороны, хранение информации о состоянии в блокчейне открывает перед программистами дополнительные возможности. По мнению Бутерина, парадигма Ethereum дает максимальную свободу разработчикам и позволяет им использовать любые вообразимые варианты функционала. Именно такой подход сделал возможным создание первых ДАО (децентрализованных автономных организаций).

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

Продолжение дискурса

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

О вторых мы поговорим в следующей статье. Среди первых можно выделить проекты-сайдчейны, пытающиеся объединить гибкость смарт-контрактов с надежностью первого блокчейна. Эталонный пример такого гибридного подхода — Counterparty. У этой платформы нет собственного блокчейна, свою информацию она внедряет в транзакции биткоина. Обычные ноды эту информацию игнорируют, а ноды Counterparty распознают ее и обрабатывают. Для создания смарт-контрактов платформа поддерживает язык Solidity — тот же, что использует и Ethereum.

По гибридному принципу организована и находящаяся в разработке платформа Rootstock. Rootstock — тьюринг-полная виртуальная машина, обратно-совместимая с Ethereum, но имеющая при этом совместный c биткоином майнинг. Это значит, что Rootstock может поддерживать смарт-контракты Ethereum, при этом пользуясь защитой блокчейна биткоина.

Но привязка к блокчейну биткоина в то же время является и серьезным недостатком Rootstock, который, скорее всего, не позволит платформе стать “убийцей Ethereum”. Корень проблемы лежит в том, как происходит общение между Rootstock и основным блокчейном биткоина.

Транзакции проходят в обе стороны по определенным правилам — для перевода биткоинов в блокчейн Rootstock нужная сумма биткоинов отправителя блокируется в блокчейне биткоина, а получателю выдается эквивалент в токенах RSK в сети Rootstock. Так же происходит и обратный процесс. Но поскольку биткоин не использует “оракулы” и не может достоверно знать, что происходит в других блокчейнах (была ли заблокирована нужная сумма в RSK?), для осуществления переводов необходим гарант, третье лицо (в данном случае — RSK Federation), которое будет удостоверять соблюдение правил перевода активов между блокчейнами и получать за это вознаграждение с каждой такой транзакции. Учитывая, что устранение необходимости в сторонних гарантах — основная цель блокчейн-технологии, такой подход можно назвать шагом назад для индустрии.

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

0
0.271 GOLOS
На Golos с June 2017
Комментарии (3)
Сортировать по:
Сначала старые