Среди современных криптовалют не так много тех, кто привнес реальные инновации. Но Ethereum, несомненно, входит в их число.
Появление на рынке криптовалют Ethereum сопровождалось немалой помпой, перечислялись достоинства новой системы, и среди них первое место занимали смарт-контракты.
Не то, чтобы это было что то ранее невиданное. Идея смарт-контрактов была озвученна еще в 1994 году Ником Сабо. Однако практическая реализация этих идей стала возможна только с появлением жизнеспособной реализации технологии blockchain. Однако даже определение, даваемое смарт-контрактам в википедии заметно отличается от того, чем являются на самом деле смарт-контракты в Ethereum.
В чем же разница?
Для начала - как мы ожидаем от технологии, называемой смарт-контракт (“умный договор”), как минимум, что это - договор (контракт же), то есть нечто, что имеет юридическую силу. С "умным" - чуть сложнее, но тоже логично предположить, что это, как минимум, технология, при которой сам договор является не просто записью, а имеет какие-то интеллектуальные функции. Как пример приводится ситуация, когда выполнение условий, описанных в самрт-контракте автоматически вызывает перевод денег.
На практике, по крайней мере в контексте Ethereum, все не совсем так. А если точнее - то это совсем не так.
Во первых, сразу расстанемся со словом “контракт” - очевидно что смарт-контракты Ethereum не имеют и не могут иметь никакой юридической силы. И не только потому, что ни один нотариус или суд не признает их. А по самой своей природе.
Да, технология blockchain является практически идеальным хранилищем данных, которое отлично защищает данные от утери и искажения. Даже в bitcoin blockchain можно сохранить текст договора и он останется в неизменном виде доступным на все время существования этого блокчейна.
Однако то, что в Ethereum принято называть контрактом - это не договор между субъектами. А некий набор программного кода. Если присмотреться к Ethereum, особенно к тому, как позиционируют его сами разработчики - это не криптовалюта в чистом виде. Сами разработчики называют Ethereum “Распределенной виртуальной машиной на основе технологии блокчейн”. Даже определение Ethereum в википедии звучит так:
платформа для создания децентрализованных онлайн-сервисов на базе блокчейна (Đapps, Decentralized applications, децентрализованных приложений), работающих на базе умных контрактов.
Найдите тут слово “криптовалюта”. Так вот эти Đapps и называют чаще всего смарт-контрактами. В интернете часто возникает путаница и недопонимание, в чем между этими понятиями разница, однако для простоты я не буду вдаваться в дебри функционирования EVM (Ethereum Virtual Machine).
Cмарт-контрактом называют именно приложение для Ethereum - Đapps. Это небольшие программы, которые записываются разработчиками в blockchain в виде так называемого байт-кода. Самым распространенным языком програмирования, заточенным специально под Ethereum, является Solidity - развитие широко распространенного JavaScript с рядом серьезных ограничений и особенностей синтакса.
Для того, чтобы ограничить нагрузку и не позволить недобросовестным разработчикам использовать слишком много ресурсов сети, выполнение смарт-контракта требует использование газа (gas) - своеобразной внутренней валюты. Ниже я привел типичный пример смарт-контакта.
А почему все же “Море и свинки?”. Потому что морская свинка не имеет отношения ни к морю ни к свиньям...
contract Mortal { address owner; function Mortal() { owner = msg.sender; } function kill() { if (msg.sender == owner) selfdestruct(owner); } } contract Greeter is Mortal { string greeting; function Greeter(string _greeting) public { greeting = _greeting; } function greet() constant returns (string) { return greeting; } }
Читайте также
Как собрать майнинг риг для Bitcoin и Ether в 2020 году?
Майнинг на небольших домашних фермах вновь становится популярным. Что нужно для того, чтобы собрать собственный риг дома?
Сканер блоков (Blockchain explorer) своими руками: немного теории
В прошлой статье мы рассмотрели причины, по которым нам может понадобится свой blockexplorer. Замечу, что список этот далеко не полный, но будем считать, что мы определились - нам нужен свой источник данных о транзакциях и их связях с адресами.