Мы внедрили прототип анонимных транзакций на базе zkSNARK, чтобы обеспечить конфиденциальные транзакции в блокчейне Waves. В своей реализации мы используем доказательную систему Groth16 на кривой BN254 и DSL circom.
Объясняем, как это работает.
Компания Waves временно не ведёт блог на Хабре
Оракулы приходят на помощь
Блокчейн-оракулы решают проблему доставки в блокчейн информации из внешнего мира. Но нам важно знать, каким из них мы можем доверять.
RSA-рандом на блокчейне
В статье рассказываем, как удалось решить проблему на примере игр. Первой из них стала Waves Xmas Tree. Для разработки нам понадобился генератор случайных чисел.
Ловим кота с TLA+
Вы находитесь в прямом коридоре с семью комнатами по одну сторону. В одной из них находится кот. За один шаг можно заглянуть в одну из комнат, если там есть кот, он пойман. Как только дверь закроется, кот перейдет в одну из соседних комнат к той, в которой находился. Задача — поймать кота.
Истории
Оседлай волну Web 3.0
Расскажите немного о себе. Чем вас заинтересовал этот курс?
Работа с Worker “как хочется“, а не “как можно”
В этой статье будет использоваться ГРЯЗНЫЙ, небезопасный, "костыльный", страшный и т. д. метод eval
. Слабонервным не читать!
Сразу скажу, что некоторые проблемы удобства использования решить не удалось: в коде, который будет передан в worker, нельзя использовать замыкание.
Обзор грантовых программ для блокчейн-разработчиков
Под «развитием экосистемы» может подразумеваться выявление и решение проблем, существующих на платформе, разработка недостающих сервисов и инструментов, создание образовательных материалов, интеграция продуктов платформы в реальный бизнес или что-то другое.
Принцип работы грантовых программ на разных платформах не имеет существенных отличий. Блокчейн-компания определяет наиболее приоритетные для себя направления и выделяет бюджет на выплату грантов, как правило, в собственной криптовалюте.
Как строить, развертывать и тестировать Waves RIDE dApp
Схема разработки dApps и обычных приложений почти не отличается:
- Пишем код
- Пишем автоматизированное тестирование
- Запускаем приложение
- Тестируем
Инструменты
1.
docker
для запуска ноды и Waves ExplorerЕсли не хотите запускать ноду, можете пропустить этот шаг. Ведь есть тестовая и экспериментальная сеть. Но без развертывания своей ноды процесс тестирования может затянуться.
- Вам постоянно будут нужны новые аккаунты с тестовыми токенами. Кран тестовой сети переводит по 10 WAVES каждые 10 минут.
- Среднее время блоков в тестовой сети – 1 минута, в ноде – 15 секунд. Это особенно ощутимо, когда транзакция требует нескольких подтверждений.
- В общедоступных тестовых нодах возможно агрессивное кэширование.
- Еще они могут быть временно недоступны из-за технического обслуживания.
Далее буду считать, что вы работаете со своей нодой.
2. Инструмент командной строки Surfboard
- Скачайте и установите Node.js с помощью ppa, homebrew или exe здесь: https://nodejs.org/en/download/.
- Установите Surfboard – инструмент, который позволит запустить тесты на существующей ноде.
npm install -g @waves/surfboard
3. Плагин Visual Studio Code
Шаг необязателен, если вы – не фанат IDE и предпочитаете текстовые редакторы. Все необходимые инструменты – это утилиты командной строки. Если используете vim, обратите внимание на плагин vim-ride.
Протокол для общения между iframe и основным окном браузера
Многим разработчикам периодически требуется наладить общение между несколькими вкладками браузера: возможность посылать сообщения из одной в другую и получать ответ. Такая задача встала и перед нами.
Существуют стандартные решения вроде BroadcastChannel, однако поддержка в браузерах сейчас оставляет желать лучшего, поэтому мы решили реализовать свою библиотеку. Когда библиотека была готова, выяснилось, что такая функциональность уже не нужна, зато появилась другая задача: нужно было общаться между iframe и основным окном.
При ближайшем рассмотрении выяснилось, что две трети библиотеки при этом можно не менять, необходимо только немного порефакторить код. Библиотека представляет из себя скорей ПРОТОКОЛ общения, который может работать с текстовыми данными. Его можно применять во всех случаях, если есть возможность передавать текст (iframe, window.open, worker, вкладки браузера, WebSocket).
Как это работает
На данный момент в протоколе есть две функциональности: отправка сообщения и подписка на события. Любое сообщение в протоколе — это объект с данными. Главное поле этого объекта — поле type, которое говорит нам, что это за сообщение. Поле type — это enum со значениями:
Пишем безопасное браузерное расширение
В отличие от распространенной "клиент-серверной" архитектуры, для децентрализованных приложений характерно:
- Отсутствие необходимости хранить базу данных с логинами и паролями пользователя. Информация для доступа хранится исключительно у самих пользователей, а подтверждение их достоверности происходит на уровне протокола.
- Отсутствие необходимости использовать сервер. Логика приложения может выполняться в блокчейн-сети, где возможно и хранение необходимого количества данных.
Существует 2 относительно безопасных хранилища для ключей пользователей — хардверные кошельки и браузерные расширения. Хардверные кошельки в большинстве своем максимально безопасны, однако сложны в использовании и далеко не бесплатны, а вот браузерные расширения являются идеальным сочетанием безопасности и простоты в использовании, а еще могут быть совершенно бесплатны для конечных пользователей.
Учитывая все это, мы захотели сделать максимально безопасное расширение, которое упрощает разработку децентрализованных приложений, предоставляя простой API для работы с транзакциями и подписями.
Об этом опыте мы вам и расскажем ниже.
В статье будет пошаговая инструкция как написать браузерное расширение, с примерами кода и скриншотами. Весь код вы можете найти в репозитории. Каждый коммит логически соответствует разделу данной статьи.
«Игры на деньги вне блокчейна должны умереть»
Дмитрий Пичулин, известный под ником «deemru», стал победителем игры Fhloston Paradise, разработанной Tradisys на блокчейне Waves.
Чтобы победить в игре, игрок должен был сделать самую последнюю ставку во время периода из 60 блоков — до того, как ставку сделает другой игрок, обнулив тем самым счетчик. Победителю доставались все деньги, поставленные другими игроками.
Победу Дмитрию принес созданный им бот Patrollo. Дмитрий сделал всего восемь ставок по одному WAVES и в итоге выиграл 4700 WAVES (836300 руб.). В интервью Дмитрий рассказал о своем боте и перспективах игр на блокчейне.
Смарт-ассеты Waves: «черные» и «белые» списки, интервальный трейдинг
В двух предыдущих статьях мы рассказали о смарт-аккаунтах и о том, как они могут использоваться для проведения аукционов и создания программ лояльности, а также помогают обеспечить прозрачность финансовых инструментов.
Сейчас мы рассмотрим смарт-ассеты и несколько кейсов их применения, включая замораживание активов и создание ограничений на транзакции по заданным адресам.
Применение смарт-аккаунтов и смарт-ассетов Waves в финансовых инструментах
В предыдущей статье мы рассмотрели несколько кейсов применения смарт-аккаунтов в бизнесе – включая аукционы и программы лояльности.
Сегодня мы поговорим о том, как смарт-аккаунты и смарт-ассеты могут повысить прозрачность и надежность таких финансовых инструментов, как опционы, фьючерсы и векселя.
Ближайшие события
Применение смарт-аккаунтов Waves: от аукционов до бонусных программ
Блокчейн часто ассоциируется лишь с криптовалютами, но области применения технологии DLT значительно шире. Одно из самых перспективных направлений для применения блокчейна – смарт-контракт, выполняющийся автоматически и не требующий доверия между сторонами, его заключившими.
RIDE – язык для смарт-контрактов
Waves разработала специальный язык для смарт-контрактов – RIDE. Его полная документация находится здесь. А вот – статья на эту тему на Хабре.
Контракт на RIDE является предикатом и возвращает на выходе «true» или «false». Соответственно, транзакция либо записывается в блокчейн, либо отвергается. Смарт-контракт полностью гарантирует исполнение заданных условий. Генерация транзакций из контракта в RIDE на данный момент невозможна.
Осторожно — ГАЗ! или Как мы делали негазированные смарт-контракты
Блокчейн и смарт-контракты все еще остаются горячей темой среди разработчиков и технических специалистов. Существует много исследований и рассуждений об их будущем и о том, куда это все движется и куда приведет. У нас в Waves Platform свой взгляд на то, какими должны быть смарт-контракты, и в этой статье я расскажу, как мы их делали, с какими проблемами сталкивались и почему они не похожи на смарт-контракты других блокчейн-проектов (в первую очередь Ethereum).
Эта статья также является руководством для тех, кто хочет разобраться в том, как работают смарт-контракты в сети Waves, попробовать написать свой контракт и ознакомиться с инструментами, которые уже есть в распоряжении разработчиков.
Механизмы достижения консенсуса в блокчейне
Ключевое условие — сеть должна коллективно согласовывать содержимое регистра: он распределен между всеми участниками цепочки вместо того, чтобы передать централизованное ведение счетов одному субъекту — например, банку.
Для этого сети требуется поддерживать консенсус вокруг информации, записанной в блокчейне. Способ достижения этого консенсуса влияет на безопасность и экономические параметры протокола. Вот пять примеров его достижения.
Итальянская пиццерия горячо поддержала криптовалюту
Ласло был одним из первопроходцев GPU-майнинга, что позволило ему скопить большой запас криптовалюты. Он заплатил Джереми Стурдиванту 10 тыс. BTC за покупку двух пицц с доставкой на дом. В то время столь внушительное количество коинов было эквивалентно всего лишь нескольким долларам, однако сегодня на открытом рынке за него можно получить целое состояние — 20 млн долларов.
Празднование этой первой реальной биткоин-транзакции проводится ежегодно 22 мая. В то время вы не могли ничего купить за биткоины напрямую: Ласло пришлось убедить другого энтузиаста с форума BitcoinTalk оплатить пиццы со своей кредитной карты взамен на биткоины Ласло. Сегодня, однако, криптовалютные платежи вовсю набирают обороты, и не только в биткоинах.
Сегодня, когда на дворе 2017 год, появилась новость, что итальянский ресторан и пиццерия под названием Gusto DiVino объявил о начале приема токенов нашей блокчейн-платформы Waves в качестве предпочтительной валюты для оплаты заказов. Местечко расположено в Санта-Понса, на Майорке — величественном острове цепи испанских Балеарских островов в Средиземном море. Ее владелец — Марко Аволедо, также известный как @deepred86. Марко — активный член Telegram-сообщества Waves, вносящий свой вклад в глобальное распространение криптовалюты.
Блокчейн на ПМЭФ
Сегодня в рамках ПМЭФ прошла панельная сессия «Блокчейн — рождение новой экономики», участие в которой принял Александр Иванов, гендиректор и основатель нашей блокчейн-платформы Waves Platform. В дискуссии также участвовали министр связи и массовых коммуникаций РФ Николай Никифоров, заместитель председателя ЦБ РФ Ольга Скоробогатова, первый заместитель Председателя Правительства РФ Игорь Шувалов, Основатель Ethereum Виталик Бутерин, Основатель, главный исполнительный директор The BitFury Group Валерий Вавилов и другие ключевые фигуры банковского и государственного секторов.
Централизованные криптовалюты
Значение децентрализации широко обсуждалось (см., например, пост Виталика Бутерина), и именно децентрализация представляет собой единственную реальную причину использования блокчейна. В этой статье я собираюсь обсудить степень и причины централизации существующих криптовалют.
Централизация управления и развития
Приятно думать, что никто не контролирует блокчейн, т.е. участники сети (майнеры) действуют как децентрализованное сообщество, которое обслуживает блокчейн и выбирает направление его дальнейшего развития. На самом деле, все гораздо хуже.