Блокчейн — инновационная технология, представляющая собой распределенную базу данных, в которой содержатся записи транзакций.
По сути, блокчейн — это инструмент децентрализованного хранилища данных, обеспечивающий высокий уровень безопасности и манипуляции данными, включая их обработку и распространение.
Как следует из названия, блокчейн представляет собой цепочку блоков (block — блок, chain — цепочка), выстроенную по определенным правилам и реплицируемую по всей сети, где каждый блок состоит из заголовка и списка транзакций.
В свою очередь, заголовок блока содержит свой хеш, хеши транзакций, а также хеш предыдущего блока, то есть каждый блок ссылается на предыдущий.
Благодаря этому выполняются два важных условия:
Также одним из главных преимуществ блокчейна является прозрачность проводимых транзакций: все пользователи имеют доступ к информации и могут наблюдать за осуществлением транзакций.
Так как технология блокчейн основывается на обеспечении высокого уровня безопасности данных и защищенности транзакций, ее внедрение является отличным способом предотвращения различных мошеннических действий.
В связи с этим особый потенциал эта технология имеет в банковской сфере, финансах, недвижимости, медицине, страховании и юриспруденции, то есть там, где сохранность данных имеет наибольшее значение.
Что касается сфер применения, то они включают в себя проведение финансовых транзакций, проверку личности и подтверждение авторских прав, безопасное хранение данных и их обмен.
И данные примеры — далеко не конец списка. Так, одной из ключевых технологий мира блокчейн, которая открывает большие возможности, является платформа Ethereum (Эфириум).
Ethereum — это распределенная платформа с открытым исходным кодом на базе блокчейн, представленная в 2013 канадско-российским программистом Виталиком Бутериным и запущенная в 2015.
Ethereum предоставляет все необходимые инструменты для разработки децентрализованных приложений (decentralized applications — DApps), работающих на основе смарт контрактов и представляющих собой логику смарт контрактов плюс пользовательский интерфейс.
Таким образом, можно сказать, что Ethereum служит дополнением к технологии блокчейн. Более того, на сегодняшний день Ethereum является самым популярной и лучшей блокчейн-платформой для создания смарт контрактов.
Смарт контракт — это программа, содержащая условия договора, вписанные в строки кода и определяемые заключающими его сторонами. Программа автоматически отслеживает выполнение условий соглашения и полностью убирает необходимость в посредниках.
Таким образом, можно сказать, что смарт контракт — это обычный контракт, заключение (и контроль выполнения) которого происходит техническим, а не юридическим, способом.
Как и в сети блокчейн, доступ к данным есть у всех пользователей (участников сети), а их изменение осуществляется через транзакции, представляющие собой вызовы методов контрактов.
В блокчейне смарт контракты выполняют функцию манипуляции данными. Каждый смарт контракт имеет свою небольшую базу данных, а также предоставляет способы изменения данных.
Смарт контракты и их базы данных реплицируются по всем нодам (серверам). Всякий раз как пользователь вызывает метод из контракта (таким путем изменяя данные), эта команда реплицируется и повторяется всей сетью. Благодаря осуществлению данной операции создается распределенный консенсус для выполнения обещаний.
Также смарт контракты на платформе Ethereum определяют, какие данные хранить в реестре и какие функции нужны для осуществления операций над этими данными.
Как говорилось выше, изменения данных происходят посредством транзакций, которые требуют наличия трех главных компонентов — отправителя транзакции, ее получателя, а также количества отправляемой валюты.
Если говорить более детально, каждая транзакция также может включать такие элементы как цена за единицу газа (где газ — это плата, которую получает участник сети (майнер) за вызов кода смарт контракта) и лимит газа на транзакцию.
Для выполнения транзакций в первую очередь необходима внутренняя валюта платформы Ethereum, а именно эфир (ETH). Также нужно некоторое время на то, чтобы блок, созданный майнером и содержащий вашу транзакцию и информацию о ней, был включен в общую цепочку.
При отправке транзакции в первую очередь вам нужно будет определить количество эфира, которое вы планируете платить за каждую единицу газа, а также установить максимальную цену, которую вы готовы заплатить.
Следует учесть, что, чем выше цена, которую вы устанавливаете, тем выше оплата работы майнера. И, соответственно, тем приоритетнее для него ваша транзакция и тем быстрее будет ее осуществление.
Как говорилось ранее, смарт контракты создаются на платформе Ethereum. Тем не менее, даже в Биткоин блокчейне (а также других блокчейнах) возможно их написание. Однако возможности тут значительно ограничены, язык Script не Тьюринг-полный и отсутствуют многие другие преимущества.
В свою очередь, на платформе Ethereum есть все необходимые “тулы” для разработки смарт контрактов разных уровней сложности. Для начала вам понадобится какое-то количество эфира и “соединение” с блокчейном.
Чтобы стать участником сети, скачайте какой-нибудь электронный кошелек, например, Mist (далее рассматриваем разработку на его примере).
На сегодняшний день Mist — самый распространенный и известный Ethereum кошелек. Плюс в том, что он довольно удобный и кроссплатформенный.
Что касается функционала, Mist дает возможность пользователям выпускать свои собственные токены, управлять своими аккаунтами, а также использовать децентрализованные приложения для соединения с блокчейном.
Так как на данный момент еще не изобрели кошелек, который позволил бы работать со смарт контрактами (light wallet), после установки Mist у вас будет выбор между синхронизацией с Main network и Test network. Также можно запустить кошелек Mist на приватном блокчейне (при его наличии).
Мы советуем начинать с Testnet: в отличие от Main, она не требует платы за использование. Другое немаловажный плюс работы с Testnet заключаются в том, что тут майнинг занимает меньше времени по сравнению с реальной сетью.
Далее вам нужно будет выбрать между двумя вариантами — Testnet Ropsten и Testnet Rinkeby, где у каждого из них есть свои преимущества и недостатки. Прежде всего, перед началом работы все данные сети будут скачаны на ваш компьютер. В Ropsten они займут приблизительно 7 GB, а в Rinkeby — всего 800 MB. Для сравнения, для реальной сети они будут весить целых 40 GB.
Чтобы получить какое-либо количество эфира в Ropsten, после синхронизации с сетью зайдите в меню и выберете опцию Develop->Start mining.
Если вы решили начать с Rinkeby, то для получения криптовалюты просто зайдите на www.rinkeby.io, Crypto Faucet и следуйте указанным инструкциям.
Как только у вас будет эфир, вы можете приступать к разработке смарт контрактов. Для этой цели оптимальным (и самым популярным) языком является Solidity, представляющий собой объектно-ориентированный язык программирования, довольно похожий на JavaScript (только со статической типизацией) и достаточно простой для изучения. Что немаловажно, Solidity имеет качественную документацию и активную поддержку комьюнити.
Ниже приведен пример простого смарт контракта, который позволяет пользователям отправлять друг другу валюту без регистрации.
pragma solidity ^0.4.0;
contract Coin {
// The keyword «public» makes those variables
// readable from outside.
address public minter;
mapping (address => uint) public balances;
// Events allow light clients to react on
// changes efficiently.
event Sent(address from, address to, uint amount);
// This is the constructor whose code is
// run only when the contract is created.
function Coin() {
minter = msg.sender;
}
function mint(address receiver, uint amount) {
if (msg.sender != minter) return;
balances[receiver] += amount;
}
function send(address receiver, uint amount) {
if (balances[msg.sender] < amount) return;
balances[msg.sender] -= amount;
balances[receiver] += amount;
Sent(msg.sender, receiver, amount);
}
{
Существует множество примеров использования смарт контрактов. Так как высокий уровень защищенности обеспечивается в них не доверием к третьей стороне (например, юридическому лицу) или к репутации другой стороны договора, а математическими законами, на которых основана вся технология блокчейн, смарт контракты имеют значительные перспективы во многих индустриях.
Одна из потенциальных сфер применения смарт контрактов — выборная система (голоса в зашифрованном виде помещаются в распределенном реестре и далее отслеживаются все новые голоса и ведется их подсчет), где благодаря их использованию можно будет исключить всякого рода мошенничество и вмешательство в процесс выборов третьими лицами.
Говоря о разработке смарт контрактов, следует отметить, что они имеют некоторые ограничения. Узнайте, с какими ограничениями вы можете столкнуться и как можно их обойти.
В нашей компании, мы активно развиваем направление блокчейн разработки. На данный момент на нашем счету много успешно завершенных проектов.
В связи с этим мы расширяем нашу команду и ищем специалиста на вакансию блокчейн/node.js разработчика. Мы будем рады предоставить вам все условия для карьерного роста и конкурентную оплату труда. Ждем ваше резюме.) (Добавлено 18 июня, 2018)
looks good!
We will process the request and contact you.
Now fill in information about yourself: