Как стать автором
Поиск
Написать публикацию
Обновить
4.63

Solidity *

Язык программирования контрактов для Ethereum

Сначала показывать
Порог рейтинга
Уровень сложности

Оракулы, или почему смарт-контракты всё ещё не изменили мир?

Время на прочтение6 мин
Количество просмотров16K
Для тех, кто интересуется темой смарт-контрактов, ответ на вопрос, заданный в заголовке, лежит на поверхности: на сегодняшний день контракты не имеют достоверного и полного источника информации о происходящем в реальном мире. Вследствие этого складывается прескверная ситуация: мы можем описать в смарт-контракте сложную логику, а блокчейн обеспечит нам её безоговорочное исполнение. И вот, казалось бы, мы в шаге от того, чтобы избавиться от необходимости в третьей стороне при заключении договоров — именно это имелось в виду под словами «изменить мир» в заголовке. Однако любой логике, описывающей процессы реального мира, нужно знать, что в этом мире происходит. Таким образом, от «революции доверия» нас отделяет последняя преграда в виде отсутствия поставщиков информации или оракулов, как их называют в мире смарт-контрактов. Решение этой задачи дало бы колоссальный импульс распространённости и применимости смарт-контрактов. В противном случае эта технология рискует навсегда остаться лишь площадкой для реализации ICO.



Способности, не находящие применения, превращаются в ничто.
Стен Надольный
Читать дальше →

Погружение в разработку на Ethereum. Часть 5: Oraclize

Время на прочтение13 мин
Количество просмотров7.8K
Доступ к объемным файлам и различные внешние динамические данные часто являются очень важной частью децентрализованного приложения. При этом в самом по себе Ethereum механизма обращения наружу не предусмотрено — смарт контракты могут читать и писать только в рамках самого блокчейна. В этой статье рассмотрим Oraclize, который как раз дает возможность взаимодействия с внешним миром путем запросов к практически любым интернет-ресурсам. Смежной темой является IPFS, вкратце упомянем и о ней.


Читать дальше →

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

Время на прочтение8 мин
Количество просмотров6.3K
«Программисты тратят огромное количество времени беспокоясь о скорости работы своих программ, и попытки достичь эффективности зачастую оказывают резко негативное влияние на возможность их отладки и поддержки. Необходимо забыть о маленьких оптимизациях, скажем, в 97% случаев. Преждевременная оптимизация это корень всех зол! Но мы не должны упускать из виду те 3%, где это действительно важно!».
Дональд Кнут.
Ethereum gas

Проводя аудиты смарт-контрактов, мы иногда задаём себе вопрос относится ли их разработка к тем 97%, где нет необходимости думать об оптимизации или мы имеем дело как раз с теми 3% случаев, где она важна. На наш взгляд, скорее второе. В отличие от других приложений, смарт-контракты не обновляемы, их невозможно оптимизировать «на ходу» (при условии, если в их алгоритм это не заложено, но это отдельная тема). Второй довод в пользу ранней оптимизации контрактов — то, что, в отличие от большинства систем, где неоптимальность проявляется только в масштабе, связана со спецификой железа и окружения, измеряется колоссальным количеством метрик, смарт-контракт обладает по сути единственной метрикой производительности — потребление газа.

Поэтому эффективность контракта оценить технически проще, но разработчики зачастую продолжают полагаться на свою интуицию и делают ту самую, слепую «преждевременную оптимизацию», о которой говорил профессор Кнут. Мы проверим насколько интуитивное решение соответствует реальности на примере выбора разрядности переменной. В данном примере, как и в большинстве практических случаев, мы не добьёмся экономии, и даже наоборот, наш контракт получится более дорогим в плане потребляемого газа.
Читать дальше →

Блокчейн-деривативы: решение проблемы на $500 трлн и победа на хакатоне Consensus 2018

Время на прочтение8 мин
Количество просмотров5.7K
11 и 12 мая 2018 года команда 8base в лице Евгения Семушина, Гейба Келли и меня решила испытать свои силы и побороться за приз AlphaPoint на хакатоне Consensus 2018, который проходил в Нью-Йорке. Всего в хакатоне участвовало 33 команды, а среди его спонсоров были такие гиганты, как CoinDesk, Microsoft, IBM, Hyperledger и Quorum.



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

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

Под катом нюансы реализации этого проекта.
Читать дальше →

Attention! S in Ethereum stands for Security. Part 4. Tools

Время на прочтение16 мин
Количество просмотров3.6K


Представляем четвертую часть цикла, посвященного типичным уязвимостям, атакам и проблемным местам, которые присущи смарт-контрактам на языке Solidity и платформе Ethereum в целом. Здесь мы поговорим о том, какие инструменты для анализа безопасности смарт-контрактов существуют, и почему они (не)нужны.

Читать дальше →

Как написать смарт-контракт для ICO за 5 минут

Время на прочтение14 мин
Количество просмотров64K


Всем привет! В этой статье я расскажу вам, как за 5 минут и несколько команд в терминале запустить смарт-контракт сбора денег для своего ICO на Ethereum. Этот очерк потенциально сэкономит вам десятки тысяч американских долларов, так как любой программист — да и не программист тоже — сможет запустить проаудированный и безопасный смарт-контракт (вместо того, чтобы платить $15,000 – $75,000 за разработку). Вкратце, на этот смарт-контракт можно будет отправить денег и получить за это ERC20 токены. Можно сказать, эта статья — сборник всего опыта, который я получил, запуская ICO для своего проекта.

В Интернетах этих ваших и так полно статьей про смарт-контракты, но как только начинаешь писать оный, сталкиваешься с тем, что информация везде повторяется, а туториалов, как запулить свой ERC20 попросту либо нет, либо они устарели что аж донельзя. К слову, чтобы эта статья оставалась актуальной, постараюсь указать потенциальные места, где она может устареть (и как это поправить). Поехали!
Читать дальше →

Смарт-контракт как угроза безопасности блокчейн-стартапа

Время на прочтение5 мин
Количество просмотров9.7K

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


В конце статьи я резюмирую свои размышления краткой инструкцией по написанию безопасных смарт-контрактов.


image

Читать дальше →

Воркшопы о разработке смарт-контрактов на Solidity

Время на прочтение4 мин
Количество просмотров6.3K


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


Сегодня наша главная задача в том, чтобы создать сообщество программистов и вдохновить их на использование смарт-контрактов. Именно для этого мы проводим наши регулярные воркшопы.


Список:


  1. Смарт-контракты: введение.
  2. ICO и токен ERC20.
  3. Создаем конструктор смарт-контрактов на платформе Smartz.
  4. Техническая лекция по Solidity.
  5. Смарт-контракты: тонкости разработки.
  6. Компилятор solc, структура файла смарт-контракта, типы и структуры данных в Solidity.
  7. Solidity: ссылочные типы.
  8. Разрабатываем прототип децентрализованной Multi-blockchain биржи.
Читать дальше →

Как написать децентрализованную мультиблокчейн биржу за сутки

Время на прочтение4 мин
Количество просмотров13K


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

Для тех, кто любит читать код, а не статьи — репозиторий проекта.

Любители видео тоже не обижены :) В этом видео можно послушать краткое содержание статьи, посмотреть, как реализуется биржа шаг за шагом и увидеть вживую ее работу.

Децентрализуем это

Как я хочу инвестировать в криптовалюту или венчурные проекты?

Время на прочтение10 мин
Количество просмотров2.7K
image

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

Но как и в истории с систематической ошибкой выжившего, нужно обращать внимание не только на истории успеха, которые постоянно приводят в пример, но и на истории, где люди потеряли кучу времени и денег, пытаясь развивать свой проект, написали тонны кода, а в итоге не получили ничего. Причем довольно часто потерянные деньги принадлежат инвесторам. Конечно, всем хотелось бы заработать на ранних инвестициях в компании типа facebook, но к сожалению 9 из 10 таких компаний прогорают.
Читать дальше →

Как мы игру «Камень – ножницы – бумага» на блокчейне Ethereum делали. Ч.2 Техническая

Время на прочтение14 мин
Количество просмотров5K
Учтя комментарии к моей предыдущей статье я решил написать вторую часть, где будут более подробна рассмотрена техническая составляющая игры.
Читать дальше →

Как мы игру «Камень – ножницы – бумага» на блокчейне Ethereum делали

Время на прочтение4 мин
Количество просмотров5K
В апреле 2018 года, внутри нашей компании пришла идея выпустить свою игру на cмарт контракте блокчейна Ethereum. Подумав несколько дней и перебрав несколько вариантов, мы остановились на хорошо известной всем нам с детства игре «Камень, ножницы, бумага».
Читать дальше →

Solidity 0.5.0 — что нового он нам несет

Время на прочтение6 мин
Количество просмотров6K

Update: 13.11.2018 вышел релиз, вот подробное описание изменений. В статье рассказывается про состояние этой версии в мае (за пять месяцев до релиза).


Хочу рассказать об изменениях языка Solidity, которые ожидаются в версии 0.5.0. Сразу отмечу, что я ограничусь только языком — его грамматикой и семантикой.


Какого-то вменяемого текста на эту тему нет даже на английском языке, но недавно в репозитории Solidity появился проект.
По нему можно отслеживать прогресс подготовки версии 0.5.0.


Disclaimer: в статье описано текущее состояние проекта, к релизу многое может поменяться. Точную информацию можно получить из официального changelog'a.

Читать дальше →

Ближайшие события

Вопрос на миллион

Время на прочтение3 мин
Количество просмотров8.5K
Возможно, многие из вас задавались вопросом: как изменится поведение смарт-контракта, если его данные будут весить сотни мегабайт и хранить сотни тысяч или миллионы записей? Будут ли дорожать транзакции? Как это повлияет на сеть в целом? Будут ли одни типы переменных в solidity справляться с подобной задачей лучше, чем другие? Мы решили лично узнать ответы на эти вопросы и провести эксперимент в нашей приватной сети Ethereum, смоделировав описанные ситуации. Что из этого получилось читайте дальше в статье.

Читать дальше →

Переписываем приложение под Blockchain

Время на прочтение6 мин
Количество просмотров11K

Before and after


Отмечу сразу, что данная статья не о том как писать код на Solidity, а как существующую классическую архитектуру вашего приложения можно перевести на рельсы blockchain и думать в ключе децентрализации.


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


В последнее время по роду деятельности мне довелось поработать с несколькими проектами связанными с криптовалютой и blockchain-технологиями. Познакомившись ближе с Ethereum и его идеологией децентрализованных приложений (ĐApp) я просто заболел этой идеей: никакой цензуры, никто не может прикрыть ваш бизнес, никто не может конфисковать ваши средства, невозможно просто взять и выключить сервер на котором работает ваше приложение. В определенный момент я пришёл к выводу, что именно в такой среде мой проект может иметь шансы на жизнь.


Итак, взглянем на фронт работ.

Читать дальше →

Attention! S in Ethereum stands for Security. Part 3. Solidity in practice

Время на прочтение8 мин
Количество просмотров5.1K


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

Читать дальше →

Key transparency & Coniks для защиты структур данных

Время на прочтение9 мин
Количество просмотров3.6K

Алексей Ермишкин (Scratch )




Прежде я бы хотел немножко объяснить свое отношение к теме блокчейна. Я очень люблю технологию блокчейн, в последнее время все, что крутится вокруг – SEO, криптовалюта, смарт-контракты – это все прекрасно и отлично, но это далеко не все, что может блокчейн, и это далеко не вся его философия.

Blockchain – это далеко не только смарт-контракты и криптовалюты, которые вообще стали сокращать до слова «крипто». Мне, как человеку, занимающемуся криптографией, это особенно бьет по ушам.

Blockchain — не обязательно распределенные системы. Если посмотреть определение слова «Blockchain», это распределенная база данных с консенсусами и со всем остальным. Нет, это абсолютно не так.

Blockchain-технология существовала за 4 года до Bitcoin. Вы наверняка тоже ею пользуетесь, но не догадываетесь, что это блокчейн. Это Git, и я очень легко это докажу.
Читать дальше →

Программный комитет по блокчейну или как отбиться от ICO

Время на прочтение6 мин
Количество просмотров3.5K
image

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

В случае с DeCenter TokenConf мы получили многообразие заявок о способах сбора крипты на самые замечательные цели, из которых можно было бы собрать ещё пять конференций, и все их отклонили…
Читать дальше →

Смарт-контракт ловушка в сети Ethereum

Время на прочтение3 мин
Количество просмотров20K
Недавно, просматривая опубликованные смарт контракты в сети Эфириум, наткнулся на один интересный контракт с уязвимостью внутри. С первого взгляда, разработчик ошибся в коде и вы можете получить деньги контракта, но если внимательно проанализировать логику контракта, все выглядит совершенно иначе.
Читать дальше →

Платёжная система в 50 строк кода, реально?

Время на прочтение10 мин
Количество просмотров20K
В последнее время технологические решения на блокчейне всё больше проникают в нашу повседневную жизнь. Технология новая, поэтому не все понимают, как и где её применять. Я попробовал создать платежную систему на базе смарт-контракта Ethereum и результат меня удивил. Смарт-контракт выполняющий функции полноценной платёжной системы получился всего в 50 строк кода. Всех заинтересовавшихся как он работает прошу под кат.

image
Читать дальше →