Алгоритм блокчейн: Что нам стоит блокчейн построить? / Хабр
Технология Blockchain простыми словами | Технологии | Блог
Технология Blockchain существует с 2008 года, именно тогда некий Сатоси Накамото выпустил собственную валюту Bitcoin, но стоит понимать, что технология Blockchain и Bitcoin это не одно и тоже.
Определение блокчейна из википедии понятно далеко не всем, и его определенно нужно разобрать по частям так, чтобы информация стала доступна всем и каждому.
Простым языком
Для лучшего восприятия обыграем ситуацию:
Давным-давно, когда еще не вышел десятый айфон жили Роман и Антон. У Романа было несколько способов передать денежные средства Антону:
- передать наличку (Роман приходит к Антону и лично передает наличные)
- использование третей стороны (Роман передает деньги банку, почтовой службе или курьеру — которые передают деньги Антону, например, если Антон живет в другой стране).
Обычно третья сторона не бывает одна, и мы имеем целую цепочку посредников, не раскрывающих свою схему работы. Даже если мы зайдем в банк и потребуем рассказать нам технические детали — никто этого делать не станет. Не зная технических подробностей остается лишь слепо доверять банковской системе с их цепочками передачи наших денег.
В тот момент, когда наши деньги из физических становятся электронными — фактически они становятся неким кодом, некими цифрами, символами для взаимодействия.
Теперь Роман может подойти в любой банкомат, засунуть туда наличные денежные средства и произойдет смена реестра, после чего сумма на счету Романа изменится.
Посредники
На специальных компьютерах хранится вся информация о нас, клиентах банков, вся наша подноготная: информация по всем операциям, имя, фамилия, отчество, адрес проживания, номера лицевого счета, информация по всем платежам и переводам.
Когда Роман переводит деньги со своего счета на счет Антона, пользуясь банкоматом или онлайн-банком, он, так или иначе, делает запрос в эту базу данных, в этот реестр, где работает программное обеспечение, которое проверяет:
- А есть ли у Романа эти деньги, чтобы переслать Антону?
- Откуда вообще у Романа возникли эти деньги?
- А не занимался ли Роман какими-нибудь черными способами заработка?
- Чистые ли это деньги?
И еще много подобных проверок, производимых программным обеспечением банков.
После этого, если все хорошо — у Романа списывают необходимую сумму и зачисляют ее на счет Антона.
Эта система централизована, у нее есть свой регулятор, и органы управления. В системе есть обслуживающий персонал, и без него вся эта цепочка проверок просто не будет функционировать.
Это программисты, аудиторы, операционисты, бухгалтера, руководители, и еще два десятка должностных лиц, с помощью которых вся эта система функционирует.
И такое количество персонала нужно для того, чтобы передать деньги от Романа Антону в другую страну или в другой город используя систему онлайн-платежей.
Вернемся теперь к системе блокчейн и посмотрим какие преимущества по сравнению с настоящей финансовой системой у нее есть, чем она интересна и почему стоит к ней присмотреться получше.
Раньше не было банков, и все расчеты были исключительно наличными. Затем появился интернет и онлайн-платежи. Сегодня, в эпоху Web 3.0, все расчеты сети блокчейн происходят между различными людьми, минуя весь обслуживающий персонал, минуя централизацию, где существует вероятность, что какой-то хакер сможет забрать ваши деньги, или, в связи с программной ошибкой, счета обнулятся.
Основные принципы блокчейн
По факту, блокчейн — это некий электронный реестр, в который записывается информация. Но эти данные никогда не могут быть изменены или удалены.
Цепочку, состоящую из блоков, в блокчейне можно представить как книгу, состоящую из страниц. Каждая новая страница пишется в режиме «онлайн», а у остальных страниц нет возможности быть выдранными или поправленными.
Для начала нужно понять из чего состоят блоки.
На сегодняшний день систем блокчейн много, и у каждой есть свои нюансы, но в целом они работают по одинаковому принципу.
Мы разберем блокчейн-биткойн и блокчейн, на котором осуществляются различные денежные операции, переводы и транзакции.
Транзакция — это не только денежный перевод. Под транзакцией вы можете выполнить какой-то скрипт, либо просто записать некую заметку в блокчейне и сохранить какие-либо данные. То есть слово «транзакции» не равно денежному переводу.
Каждый блок имеет параметры nonce (об этом далее), хеш предыдущего блока, хеш текущего блока и сами транзакции. Самое интересное в блоке это транзакции, ведь мы рассматриваем данную систему как замену текущей банковской системы расчетов.
Чтобы понимать, как устроены транзакции, просто представьте страницу книги, где записано к примеру:
- Олег перевел Никите 100 долларов.
- Некто перевел кому-то еще сколько-то денег.
И в одном блоке записана пара тысяч таких транзакций. Когда блок заканчивается — он закрывается, подписывается и переходит на новый блок.
Все транзакции, все хеши формируются по дереву Меркла.
Еще до появления технологии блокчейна многие из нас уже пользовались торрент-клиентами для скачивания файлов на свои носители. Именно там изначально и использовалось дерево Меркла. Когда вы скачивали что-либо к себе на компьютер, вы могли видеть строку, заполняемую некими мелкими кубиками. Когда файл заливается в сеть, он разбивается на множество мелких частей. Эти части хэшируются, и получается дерево Меркла. Нужно оно для того, чтобы очень быстро проверить целостность всей системы, целостность вашего файла.
То же самое происходит и в блокчейне: после того как блок полностью заполняется транзакциями, из каждой транзакции берется некий хеш, то есть это хеш-суммы, цифровые отпечатки от данной транзакции.
Сама транзакция весит гораздо больше своей хеш-суммы.
Хеш — это некий набор символов, несущий в себе отпечаток. Для каждой транзакции отпечаток будет уникален. Что это значит? Если поменять в хеш-сумме какую-либо точку, или другой символ, система будет воспринимать его как совершенно другой хеш.
В процессе транзакции идет проверка нижнего хеша, после чего, по цепи от хеша к хешу, словно по пирамиде, проверка поднимается к последнему верхнему хешу дерева меркла, где и будет получен общий хеш всех транзакций.
Итак, все транзакции записываются в блок, после чего они хэшируются и получается один определенный хеш. Делается это для проверки целостности всей системы (как и в торрент-клиентах).
Если вдруг какой-то злоумышленник в четвертой транзакции зайдет и добавит себе пару нулей (например, не 100 долларов я перевел, а миллион долларов я перевел), тогда хеш этой транзакции уже будет другой. Соответственно если их соединить с хешем третьей транзакции, то и общий хеш четвертой транзакции будет тоже другой, все дерево будет совершенно другим, а итоговый хеш будет сильно отличаться.
То есть — если хоть один байт, хоть одну точку, запятую или нолик где-то изменить, то итоговый хеш изменится, а нам в блокчейне нужно обязательно проверять все эти суммы, для того, чтобы никто это не изменил и не переписал. Конечно это все проверяется не вручную, а программным образом.
Для «сшивания» одной страницы книги с другой — используется хеш предыдущего блока.
Это значит, что берется вся информация из первого блока:
- номер
- хеш
- номер транзакции
Все это хешируется и уже хеш целой страницы складывается с хешем следующей, а дальше все по уже описанной схеме.
Таким образом если хоть один символ книги изменится, что-то добавится или удалится — то это не найдет подтверждения в сети и данный блок просто будет недействителен у тех, кто его пытался подкорректировать. Именно поэтому вся эта система и называется BlockChain — цепочка блоков, которая жестко соединяется цепью хешей по принципу проверки каждого блока. И, если что-то где-то не совпадает, система его не принимает. Блок становится недействителен.
Помимо того, что вся эта информация хешируется целыми блоками и записывается как хеш предыдущего блока, каждый новый блок считается единым целым, что дает ссылку и необходимую защиту от замены какой-либо информации в прошлом. Если заменить какую-то страницу — в блокчейне это будет видно, и в следующем блоке хеш будет другой.
Так как каждую минуту или каждый час, или каждые 10 минут, информация в блокчейне меняется то, чтобы изменить информацию в одном конкретном блоке, придется пересчитывать сумму всех предыдущих. Сделать это сложно за счет параметра nonce.
При чем тут майнинг
Как и у банковской системы — у блокчейна есть свой обслуживающий персонал, но в отличие от банков, обслуживание производится не людьми, а программным кодом, установленным на системах майнеров.
Майнеры собирают себе системы специально для просчета всех этих хешей, закупают мощные процессоры и видеокарты, строят собственные майнинг-фермы.
Для того чтобы провести операцию в блокчейне, необходимо создать эту операцию, после чего она скидывается в некий mempool, некую область где хранятся все транзакции, которые в данный момент хотят совершить люди в блокчейне. По сути без этого система блокчейн не может существовать.
Что делают майнеры? Майнер заходит в этот mempool и составляет список из тысяч этих транзакций. После того как он составил этот блок, он высчитывает данный хеш по дереву меркла, затем в этот блок засовывает хеш предыдущего блока и ему остается вычислить хеш текущего блока чтобы его подписать.
Необходимо понимать, что в блокчейне существует огромное число майнеров.
Для определения необходимого блока как единственно верного, придумали параметр nonce.
Параметр nonce подбирается путем перебора таким образом, чтобы общий хеш, вместе с хешем транзакций, заголовком и номером блока, начинался, например, на определенное количество нулей. Если я ставлю сюда единицу — у меня получается некий хеш, допустим 3456NMKGFDS… После чего понимаю, что единица нам не подошла, и начинаю пересчет уже с двойкой. Пересчитываю и снова получаю хеш без нужных нулей, ставлю тройку и так далее.
Представьте себе, что есть блокчейн, который только стартовал, и есть десять майнеров.
Каждый из этих майнеров заходит в mempool, каждый из них заполняет свои блоки транзакциями. Если 10 человек одновременно зальют в блокчейн новый блок, тогда с каждым блоком будет какое-то разделение блокчейна. То есть нет единственной правильной цепочки, которая была бы согласованна между всеми работниками.
Все это необходимо чтобы несколько майнеров не создали один блок и не добавили его в блокчейн.
Для простоты понимания возьмем такой пример:
Мы — группа из 10 человек, находящихся в одном помещении. Каждому из нас дали задание составить некое предложение из слов. Я составил свое предложение и сообщаю об этом остальным — «у меня вот так вот получилось». Другой человек крикнет — «я тоже составил, и у меня вот так вот получилось».
Нам нужно достигнуть какого-то консенсуса в этом плане и решить — чей блок подходит лучше, т.к. он может быть всего один. Чтобы этого достичь был создан алгоритм Proof of Work. Он позволяет задействовать мощности Асиков (ASIC — аббревиатура от англ. application-specific integrated circuit) и видеокарт, для того чтобы высчитать нужный хеш блока.
Если, например, я единственный майнер, то для меня нет разницы за сколько этот нуль посчитать и подписать. Если майнеров тысяча, то получить тот же нолик при помощи тысячи Асиков будет очень легко. Программа подстраивает сложность сети таким образом, чтобы новый блок появлялся приблизительно раз в десять минут.
Сколько нулей нужно считать — тоже вопрос переменный и зависит от сложности ситуации. Если у нас миллион майнеров — нужно будет считать уже десятки нулей, чтобы найти число, совпадающее с нашими хешами (чтобы этот хеш был подписан десятью нулями). Когда мы находим такой блок — получаем вознаграждение.
Именно поэтому, в момент появления блокчейна, началась «гонка железа». Ведь чем больше у майнера вычислительных мощностей, тем быстрее и больше блоков он обработает.
Также как персонал банка получает зарплату за свою работу, так и майнеры за обслуживание сети блокчейн получают «сатоши» (наименьшая единица биткоина).
Децентрализация и распределенность
Теперь о том, что касается изменения информации.
Мы уже выяснили, что для обозначенных вычислений, пересчета сумм всех блоков требуются колоссальные вычислительные мощности.
На сегодняшний день сеть блокчейн обладает мощнейшим вычислительным ресурсом на планете. Такие гиганты как Google, Amazon и Apple не стоят даже рядом с мощностями сети блокчейн.
Чем больше людей используют блокчейн, тем мощнее и безопаснее он становится.
Вы являетесь полноправным владельцем блокчейн, можете смотреть историю всех транзакций, которые совершались на каждой странице.
В тот момент, когда люди начинают интересоваться системой блокчейн, устанавливают электронные кошельки себе на компьютер — они становятся узлами.
Например, у одного человека на компьютере стоит копия блокчейна. Есть еще один компьютер, на котором стоит своя копия блокчейна, и таких компьютеров десятки тысяч. Если какой-то злоумышленник захочет взломать систему и «нарисовать» себе миллион, мало того, что ему придется пересчитывать все эти блоки, ему еще придется сделать это в каждом компьютере, на каждом узле.
Допустим наш хакер переписал все блоки, пересчитал все суммы и получил идеальный вариант подмены. После того как злодей захочет отправить этот миллион на свои счета, другие «ноды» (узлы) просто не пустят его, потому что все это дело синхронизируется таким образом, что большее количество узлов с одинаковыми хешами преобладает над меньшим.
Если вдруг находится такой человек, у которого что-то не так с хешами, отсутствует какой-то байт, или символ не соответствует, тогда его просто не будут учитывать. Его не пустят в сеть для дальнейших манипуляций до тех пор, пока не будет предоставлена оригинальная, не измененная версия блокчейна.
Для того чтобы взломать эту систему, потребуется взломать все компьютеры, которых с каждым днем становится все больше и больше. Таким образом и растет защита, децентрализация и распределенность.
Вернемся к текущей системе хранения денег банками.
В централизованной системе вся информация хранится на сервере, и, если с этими серверами что-то произойдет — вы попрощаетесь с денежными средствами. Хакеру проще найти какую-нибудь уязвимость, чтобы атаковать эти сервера. По сути сейчас идет постоянная борьба тех, кто пишет защиту и тех, кто ее обходит. На сегодняшний день уже было множество случаев взломов и сливов как банковских счетов и конфиденциальных данных, так и простых соцсетей, использующих ту же систему централизации.
Что касается блокчейна — все это распределено по десяткам тысяч узлов, и вся информация хранится копиями на разных узлах.
Транзакции в блокчейн
Как уже говорилось выше, в отличие от банков и электронных счетов, где от нас требуют указывать всю нашу личную информацию и подноготную, блокчейн не требует от нас ничего: нам не нужно светить своими паспортными данными, не нужно привязывать мобильный номер. Все, что нам нужно, это два ключа, выдаваемых системой.
Транзакции в блокчейне обрабатываются путем подписания их либо публичным, либо приватным ключом, путем шифра и дешифровки. У каждого человека, желающего принять участие в блокчейне есть свой публичный ключ. Также имеется и приватный ключ, служащий одновременно и идентификатором, и логином в системе.
Публичный ключ — это некая фраза из цифр и символов, доступная к просмотру всем желающим. Если брать аналогию с биткойном, то публичный ключ — это номер вашего кошелька, который можно отправить кому угодно для перевода средств.
Приватный ключ — это самое ценное. Если кто-то узнает ваш приватный ключ, то пиши пропало, все ваши денежные средства, весь ваш кошелек можно опустошить за две секунды.
В нашем примере и у Романа, и у Антона есть свои приватные ключи.
- Роман пишет Антону сообщение: Привет, Антон!
- Шифрует его ключом Антона, предварительно позвонив ему и попросив публичный ключ.
- Теперь Антону, чтобы прочесть написанное Романом, нужно дешифровать все это своим приватным ключом.
Проще говоря все, что зашифровано на ваш публичный ключ, расшифровать можете только вы вашим приватным ключом. Это же работает и наоборот: все, что вы подписали своим приватным ключом, любой человек может расшифровать с помощью него.
То есть, когда кто-то отправляет транзакцию в блокчейне, вы ее подписываете своим приватным ключом.
Так как все, что зашифровано вашим приватным ключом, любой человек может расшифровать при помощи вашего публичного ключа. Любой может посмотреть информацию по каждому переводу, по каждой транзакции счета, что обеспечивает полную прозрачность. Единственное, что невозможно доказать — принадлежность вас к вашему кошельку, ведь никакой привязки к чему-то тут нет. Таким образом достигается полная анонимность владельца.
Все мы привыкли видеть балансы своих счетов. Даже сейчас, при регистрации биткойн-кошелька, вы увидите на своем счету нули, либо некую сумму, в случае если кто-то сделает вам перевод.
По факту, понятия баланса в блокчейне нет. Все потому, что блокчейн — это просто записная книга.
- Роман создает кошелек в блокчейне, после чего просит у Антона перевести ему 100 баксов.
- Антон спрашивает у него публичный ключ, Роман передает публичный ключ Антону.
- Создается транзакция для публичного ключа Романа: «Держи 100$»
- Роман хочет передать 100 баксов Марине, блокчейн создает транзакцию для публичного ключа Марины: «Антон мне дал 100 баксов, я хочу 50 перевести Марине, а 50 баксов вернуть себе», и подписывает ее своим приватным ключом.
- Так, как балансов в блокчейне нет, система должна понять, что у Романа есть эти 100 долларов для перевода, и она проверяет историю операций — откуда у Романа появились эти 100 долларов.
- После того как система убедится в том, что 100 баксов были переведены от Антона, и после этого других переводов не было, а, следовательно, у Романа есть 100 баксов, блокчейн разрешит перевести 50$ Марине.
Проще говоря, блокчейн создает майнерам задачу по проверке истории операций кошелька Романа, и, если все в порядке и средств хватает, Роман совершает перевод, а майнер, проверивший историю кошелька, получает свое вознаграждение.
По факту, при проведении каждой транзакции, нужно заново доказывать системе происхождение всех средств за всю историю существования кошелька. Звучит сложно, но на практике все это делается программно, и человеку не приходится заботиться ни о чем.
В блокчейне нет понятия переменных балансов, все записывается в виде транзакций, в ту самую книгу, и представляет собой простой текст.
Вот мы и разобрали эти несколько предложений из википедии.
Блокчейн и его применение
Представьте себе, что все больницы работают через блокчейн. Больше не нужно иметь амбулаторную карту, не нужно таскать с собой кучу бумаг и справок. Достаточно просто сказать врачу — «вот мой публичный ключ, можешь смотреть всю историю, начиная с моего рождения». Врач заходит, просматривает историю и дописывает туда свой диагноз. Он не может исправить, вырвать страницу или потерять вашу карту.
Аналогичным образом может работать страхование, закупки, документооборот, логистика, продажи, ипотечное кредитование, транспорт, сельское хозяйство и множество других отраслей.
Сегодня технология блокчейн применяется в основном для расчетов, но в скором времени данная технология станет повсеместной.
что такое блокчейн / Блог компании Emercoin / Хабр
В 2017 году блокчейн стал предметом научного интереса, когда в Торонто открылся первый институт исследований блокчейна. Около 30 ведущих экспертов приступили к разработке различных проектов, связанных с этой технологией.
Блокчейн — это надёжный способ хранения данных о сделках, контрактах, транзакциях, обо всём, что необходимо записать и проверить. Сегодня блокчейн проник практически во все сферы жизнедеятельности, готов в корне изменить финансовую систему государства и в разы упростить работу среднего и крупного бизнеса. Блокчейн не секретная технология: в сети огромное количество статей о том, как он устроен и по какому принципу работает. Мы собрали самые интересные и нужные факты в одну статью, на которую можно давать ссылку, когда вас спросят: «Что же такое блокчейн?»
Эта технология начала завоёвывать внимание с 2008 года. Поначалу блокчейн ассоциировался лишь с криптовалютой Биткоин. Но кто-то вовремя разглядел его многофункциональность и большие возможности.
Принцип работы
Суть работы блокчейна как цепочки блоков можно сравнить с пазлом. Блок — массив данных, в него вносится информация о транзакциях, которые попали в сеть после создания предыдущего блока (примерно за последние 10 минут). Каждый новый блок данных крепится к предыдущему с помощью сложных математических алгоритмов, что позволяет скрепить эти блоки на века. Чтобы создать новый блок, необходимо вычислить его криптографический отпечаток (хеш), удовлетворяющий определённым условиям.
Этот процесс производится большим количеством разных компьютеров, работающих в одной сети, которые решают некую сложную криптозадачу, в ходе которой необходимо рассчитать хеш (выходные данные) заголовка блока в блокчейне. Другими словами, подобрать особый код, который позволит получить хеш, содержащий определённое количество нулей в начале этого хеша. Процесс поиска блоков называется майнингом. Когда задача решена, формируется новый блок, который нельзя ни удалить, ни изменить. Зато каждый пользователь сети может увидеть всю информацию, находящуюся в блокчейне. Как если бы вы собирали пазлы по онлайн-трансляции перед многомиллионной аудиторией.
На криптографических хешах держится вся надёжность и защищённость блокчейна. Хеш выдаётся системой в формате огромного числа. Для заданного набора данных хэш-функция даёт один хеш, который обладает двумя крайне важными свойствами:
- первое заключается в том, что, даже обладая ключом, нельзя узнать исходный набор данных;
- второе свойство — практически невозможно найти другой набор данных, дающий такой же хеш.
Здесь тот случай, когда у медали две стороны: открытость и защищённость. К тому же при малейших изменениях данных результирующий хеш полностью меняется.
Это одно из главных правил технологии. Все данные блокчейн-блоков открыты для всех и всегда. Их легко проверить, легко отследить любое изменение информации. Поэтому вам не придётся гадать о том, насколько достоверны интересующие вас сведения — проверка их подлинности проста и доступна.
Техническая сторона более-менее понятна. А как это выглядит в реальном действии для обычных пользователей? Всем известно, как работает электронная почта. Представим, что одно письмо равно одной денежной единице, и мы можем отправить эти деньги конкретному адресату. Только, в отличие от электронной почты, у нас есть определённый лимит на письма (наличие денежных средств) и одно письмо мы можем отправить лишь одному адресату. После чего лимит наших писем сразу уменьшится, а информация об отправленном переводе зафиксируется как у отправителя, так и у получателя. При этом все письма надёжно защищены. Информацию о проведённой транзакции нельзя ни удалить, ни изменить. К тому же её видят все пользователи сети — адресаты вашей электронной книги.
Наше «письмо» может быть не только денежной единицей, но и ценной бумагой, акцией. Всем, чем угодно, что необходимо записать и проверить.
Блокчейн полностью децентрализирован, над ним не стоит никакой орган власти, который может запретить транзакции или заблокировать доступ к блокчейну. Не нужна никакая третья сторона для подтверждения передачи информации. Если мы передаем деньги, то необходимо подтверждение банка, если отправляем права на собственность, то требуется участие нотариуса. Блокчейн полностью исключает необходимость участия третьего доверенного лица.
Сегодня блокчейн перестаёт ассоциироваться с биткоином и становится самостоятельной технологией, которая ложится в основу новых приложений и систем. Эксперты уверены: как в своё время конные повозки уступили место автомобилям, так и блокчейн становится логичным эволюционным продолжением традиционных инструментов учёта. К тому же, если раньше о блокчейне говорили, как о хранилище данных, то теперь его возможности становятся гораздо шире, потому что он также может исполнять программы. Некоторые блокчейны позволяют каждому факту содержать мини-программу. В криптовалюте это можно проследить при совершении транзакций с условиями, например: пользователь А передаст пользователю B 12 BTC, если сегодня 15 апреля, 13:30.
В блокчейне нет магии, лишь математика. И всё же одно важное свойство этой технологии не перестаёт удивлять даже самых видных экспертов: возможности блокчейна ограничены лишь человеческой фантазией. Поэтому время покажет, на что ещё способен блокчейн.
Алгоритмы
2002 год. Америка. Агентство национальной безопасности США объявляет о создании хеш-функции SHA-2. Криптография выходит на новый уровень.
Пройдёт шесть лет, и алгоритм SHA-256 (один из видов SHA-2) ляжет в основу самой первой в мире криптовалюты, и до сегодняшнего дня останется той самой классикой, которую не истребят даже новомодные разработки.
Хеширование необходимо для того, чтобы преобразовать входные данные какой угодно длины в битовую или иначе выходную строку определённого размера. Происходит это преобразование благодаря хеш-функции или функции свёртки.
Применяется хеширование в различных приложениях, созданных для защиты информации. Не обошлось без хеш-функции и в блокчейне.
Чтобы закрыть блок, необходимо перебрать различные комбинации и подобрать правильный хэш. На первый взгляд, кажется, что хэш — это случайная последовательность букв и цифр. Но на самом деле это надёжная гарантия того, что, если в блоке изменится хотя бы один бит, каждый узел быстро узнает о попытке фальсификации истории транзакций.
Технически алгоритм SHA-256 работает так: исходное сообщение разбивается на блоки, затем каждый блок делится на 16 слов. Каждый блок сообщения алгоритм пропускает через цикл с 64 или 80 раундами. Результаты обработки каждого блока складываются, полученная сумма и является значением хеш-функции.
Для данного алгоритма необходимо мощное оборудование, тогда процесс будет эффективным. Сильное железо способно вычислять более 2 миллиардов хэшей в секунду. SHA-256 стал прототипом для самого массового алгоритма хеширования.
С целью противодействия вычислениям хеша на специализированном оборудовании (ASIC), был изобретён алгоритм хеширования под названием Scrypt. Его задача та же: найти хеш, только здесь упор сделан не на мощность оборудования, а на оперативную память и время, которое требуется для вычисления хеша.
Данный алгоритм во время производимых операций хранит в памяти более одной тысячи различных значений хэша. На выходе он комбинирует все значения и даёт конечный результат. Поэтому, по сравнению с SHA-256, здесь необходим большой объем памяти для вычисления scrypt-хэшей.
Есть и ещё один довольно популярный вид алгоритмов группы Х, и его разновидности Х15, Х13, Х11. Цифра после Х — это то количество последовательных функций, которые используются для вычисления блока. Эти алгоритмы достаточно часто используют различные форки криптовалют. Такие криптовалюты очень нравятся майнерам-любителям, так как эти криптовалюты можно майнить на видеокартах, без затрат на покупку специализированного оборудования.
Следующий алгоритм называется Blake. Как и SHA-2, BLAKE имеет два варианта: первый использует 32-битные слова, используемые для вычисления хешей длиной до 256 бит, а второй использует 64-битные слова, используемые для вычисления хешей длиной до 512 бит. Преобразование базового блока объединяет 16 слов ввода с 16 рабочими переменными, но между блоками сохраняется только 8 слов (256 или 512 бит).
На этом алгоритмы не заканчиваются, каждый год программисты придумывают что-то новенькое. Постепенно популярность набирают алгоритмы крипто 2.0: N-Scrypt, Scrypt-jane и CryptoNote.
Зачем так много и так часто? Создатели криптовалют стремятся создать алгоритмы, которые было бы трудно перевести на специализированное оборудование, ASIC. Мы в этом подходе видим сразу четыре потенциально слабых места:
- Асики всё равно делают, и уже сделаны асики под Скрипт и N-Скрипт;
- Ошибочно полагают, что таким образом можно избежать централизации. На самом деле в любом бизнесе, а майнинг это бизнес, централизация неизбежна;
- Алгоритмы, выполняемые на процессорах общего назначения, это неиссякаемый источник мотивации для вирусописателя-ботнетовода;
- Новые алгоритмы, созданные «на коленке», серьёзно не тестированы, какие там могут быть уязвимости и дыры, неизвестно.
Что такое PoW и PoS?
Каждому из нас хотя бы раз приходилось отчитываться о проделанной работе. Кто-то это делает постоянно, кто-то — от случая к случаю, но, так или иначе, если хочешь получить зарплату, докажи, что усердно работал. К чему бы вся эта демагогия? Так проще понять, что такое PoW.
Мы уже писали об одном потрясающем свойстве блокчейна — децентрализации. Чтобы подтвердить транзакцию или сделку, не нужна третья сторона. Но необходим особый алгоритм. Proof of Work или доказательство выполнения работы — принцип защиты распределённых систем от хакерских атак или спама. Главное назначение Proof of Work — проверить вычисления, произведённые при создании нового блока. Из-за того, что процесс вычисления блока сложен и случаен, нельзя точно предсказать, какой из майнеров решит задачу и закроет блок. Чтобы блок признали истинным, нужно, чтобы значение его хеша было меньше, чем текущая цель. Таким образом, каждый блок показывает, что была проделана работа по его нахождению.
В первой части мы писали, что все блоки имеют хеш предыдущего блока. Изменить какой-либо блок нельзя, но возможно создать новый. Для этого нужно найти все предыдущие блоки. Высокая сложность этого процесса и защищает блокчейн от хакерских атак и несанкционированных модификаций.
Для более простого понимания приведём пример: какой-то человек совершает сложную и долгую работу, затем результаты этой работы отправляет в систему на проверку. У этой системы есть специальный «шаблон проверок», благодаря которому правильность решения устанавливается за секунды. Важная особенность этого алгоритма заключается в разности затрат времени — большой срок запроса и быстрая скорость ответа. Очень долго что-то вычисляем, но быстро проверяем.
Но, помимо преимуществ, у алгоритма есть и недостатки. Главный минус — огромные затраты вычислительных мощностей. Многие видные обозреватели крипто и блокчейн технологий сравнивали PoW со страшным монстром, который день и ночь пожирает электричество.
Альтернативу долго ждать не пришлось. Многие майнеры возликовали, когда появился новый алгоритм под названием Proof of Stake, или, иначе, подтверждение доли. И здесь важны не мощность вашей техники, не количество затраченного времени, а баланс вашего кошелька. Это тот принцип, когда деньги делают деньги: чем больше денег у вас есть в кошельке, тем большую прибыль вы получите. Если приводить примеры, то PoW-модель — это когда вы идёте на работу и зарабатываете деньги (работник), а PoS-система — это когда вы свои сбережения кладете в надёжный банк и живёте на проценты (рантье).
Степень защиты от атак при PoS гораздо выше. Так как, чтобы провести атаку, нужно хорошенько потратиться. Но если купить 51% монет, то рынок отреагирует быстрым ростом цены. Кроме того, какой смысл делать атаку на сеть, если большая часть ресурсов атакующего вложены в виртуальные монеты этой же сети, и атака ударит по самому больному — по кошельку? Если у атакующего найдётся много средств, и он её произведёт, то он сам же и пострадает от атаки, поскольку это нарушит устойчивость криптовалюты. Минусы у Proof of Stake, к сожалению, тоже имеются.
Поэтому кому-то из гениев блокчейн сообщества пришла в голову идея — найти золотую середину, объединив два алгоритма Proof of Stake и Proof of Work.
Гибридная схема PoW + PoS
Ресурсы, расходуемые на хеширование блоков при алгоритме PoW, огромны и намного превышают мощности крупнейших суперкомпьютеров. К тому же PoW-криптовалюту можно атаковать, временно арендовав огромные вычислительные мощности.
PoS-криптовалюты потенциально уязвимы для других видов атак. К примеру, атакующий захотел создать форк блокчейна — более длинную альтернативную цепочку за счёт траты «несуществующих» ресурсов. К тому же он может получить поддержку других майнеров, ведь им также не придётся расходовать «подлинные» ресурсы.
С помощью форка атакующий может блокировать те или иные транзакции и производить атаки «двойного расхода». Подобные атаки могут делиться на ближние и дальние. При ближних атаках происходит замена большинства последних блоков, а в момент дальней атак атакующий может заменить всю историю сети.
Гибридный же механизм наиболее безопасен, поэтому и лёг в основу проекта Emercoin и ряда других.
При стандартной гибридной схеме блокчейн состоит из двух типов блоков. Одновременно ищутся как блоки PoW, так и PoS. «Доказательство работы» можно сравнить с пропускным пунктом, ведь в основном PoW используется для распределения новых монет. Подтверждение доли необходимо для защиты транзакций, то есть в качестве основного средства для генерации блоков транзакций.
Для успешной атаки на проект с гибридным механизмом атакующий должен иметь 51% всей вычислительной мощности сети и 51% всей денежной массы. Это создаёт для атакующего два барьера разной природы, которые и защищают сеть от компрометации.
Как мы уже упоминали, Emercoin имеет гибридный механизм консенсуса, но в нашем проекте упор больше сделан на PoS. По сути, Emer является PoS-криптовалютой, в которой механизм PoW оставлен по соображениям безопасности, и играет хоть и важную, но вспомогательную роль, а примерно 80% блоков закрываются именно PoS-ом.
Подтверждение доли и доказательство работы / Блог компании Bitfury Group / Хабр
Блокчейн — это распределенная система, в которой могут находиться тысячи участников. В отличие от обычных распределенных баз данных, в блокчейне почти всегда отсутствует центральный администратор, который конфигурирует узлы сети, поэтому получается, что архитектура блокчейна не просто распределена, но децентрализована. В связи с этим для блокчейна является актуальной задача распределенного консенсуса:
«Как узлам сети достичь одинаковой точки зрения на журнал транзакций блокчейна в распределенной сети при условии, что произвольные узлы могут «падать» или зависать, руководствуясь лишь общими правилами обработки сообщений в сети?»
О том, как достигается консенсус в блокчейнах, мы поговорим в нашем сегодняшнем материале.
/ изображение jgbarah CC
Структура и узлы блокчейн-сетей
В любой блокчейн-сети передаются два основных типа сообщений — транзакции и блоки (которые, в свою очередь, являются списками транзакций). Транзакции формируются участниками системы и их алгоритм консенсуса не касается: для того чтобы инициировать, скажем, отправку биткойнов, никакого соглашения не надо, достаточно знать правильный ключ. Блоки — совсем другое дело. Они являются основным продуктом алгоритма консенсуса и определяют, в каком порядке транзакции будут включены в журнал транзакций.
Зачем нужны эти сложности? Оказывается, без согласования между узлами сети возможна повторная трата средств (double spending). Предположим, у Евы есть 1 биткойн. Она может сформировать две транзакции, согласно которым этот биткойн переходит Алисе и Бобу. Если Алиса и Боб никак не согласовывают свою историю транзакций, они оба примут платеж Евы, поскольку транзакции будут подписаны электронной подписью Евы, а до выполнения транзакции у Евы действительно был этот биткойн! Поэтому участникам сети нужно согласовывать журналы транзакций. Тогда успешно выполнится только одна из транзакций Евы, а вторая станет некорректной — средства Евы будут уже потрачены.
Можно ли обойтись без блоков, включая транзакции в журнал по отдельности? Теоретически да, но на практике блоки экономят объем трафика и вычислительные ресурсы узлов сети. Кроме того, у них есть и другие преимущества в контексте конкретных алгоритмов консенсуса — оказывается, что со слишком частыми блоками работа блокчейна становится нестабильной.
Блоки создаются особой категорией узлов сети блокчейна — так называемыми узлами консенсуса. В случае биткойна и других криптовалют эти узлы называют майнерами, поскольку они вознаграждаются за свою работу (майнинг) генерацией новых порций криптовалюты. Майнеры активно участвуют в формировании блокчейна, постоянно группируя входящие транзакции в блоки и распространяя их по сети.
Второй тип — узлы аудита. Они не участвуют в процессе консенсуса, однако имеют у себя полную копию блокчейна. «Аудиторы» регулярно проверяют работу майнеров и занимаются распределением нагрузки по сети, выполняя функцию своеобразной сети доставки контента (CDN) для данных блокчейна.
Третий тип узлов — это легкие клиенты. Легкими они называются потому, что не имеют полной версии блокчейна и содержат лишь те данные, которые важны для узла. По этой причине они являются хорошим вариантом для организации криптовалютного кошелька — всей картины сети такой клиент не даст, но позволит эффективно отслеживать баланс пользователя. Легкие клиенты требуют меньше вычислительных ресурсов и объемов памяти, поэтому могут работать на мобильных платформах.
/ Роли узлов в блокчейн-сети. Узлы консенсуса и конечные клиенты могут быть «отгорожены» друг от друга
Биткойн-блокчейн является одним из крупнейших блокчейнов. По данным сайта bitnodes, 8 апреля 2017 года в биткойн-сети наблюдалось 7025 узлов с полной копией блокчейна. Большая часть из них — это узлы аудита; продуктивных майнеров в сети не так уж много — несколько десятков. Отметим, что количество узлов в несколько раз меньше числа участников сети биткойн (которых более 13 миллионов). Так получается потому, что пользователи не обязаны хранить локальную копию блокчейна для отправки транзакций — достаточно хранить закрытые ключи, при помощи которых транзакции подписываются.
Консенсус
Задача распределенного консенсуса не специфична для блокчейнов и имеет хорошо проверенные решения для многих других распределенных систем (например, баз данных NoSQL). Даже задача консенсуса, в котором узлы могут вести себя «по-плохому», — задача византийского консенсуса — впервые была сформулирована в 80-х годах прошлого века, а методы её решения появились в конце 90-х.
Но биткойн и другие блокчейны от предыдущих наработок отличаются условиями работы сети. В обычных алгоритмах византийского консенсуса у узлов сети есть «личности», выражаемые через цифровые подписи или сходные криптопримитивы, а сам список узлов известен заранее или меняется редко, но предсказуемо. В биткойн-блокчейне все наоборот.
Участники сети не только заранее неизвестны, но и могут свободно подключаться или отключаться от сети. При этом блокчейн, являясь децентрализованной системой, имеет определенные свойства: устойчивость к цензуре (никто не может запретить майнить криптовалюту) и объективность (для определения текущей версии журнала транзакций не нужно доверие неким авторитетным источникам — корень доверия находится в самом блокчейне).
Из-за этого обычные алгоритмы византийского консенсуса для блокчейна не подходят. Поэтому было предложено множество различных алгоритмов, среди которых выделяются две основные категории: алгоритмы на основе доказательства работы (proof-of-work) и алгоритмы на основе подтверждения доли (proof-of-stake).
Доказательство работы — PoW
Доказательство работы было «изобретено» задолго до биткойна еще в начале 90-х и применялось в ином контексте: для защиты от спама. Например, один вариант доказательства работы (Hashcash) был предложен английским криптографом Адамом Бэком (Adam Back), который сейчас является генеральным директором одного из крупнейших блокчейн-стартапов.
В случае доказательства работы хеш сообщения, объединенного со специальным полем (nonce), должен быть меньше определенного значения (или начинаться с определенного числа нулевых битов). Nonce не несет смысла для самого сообщения — это поле перебирается автором доказательства, пока не будет найдено подходящее значение. Название «доказательство работы» отражает тот факт, что для нахождения nonce надо совершить вычислительную работу, ожидаемое количество которой измеримо. Например, если нужно, чтобы первые 16 бит хеша равнялись нулю, то в среднем нужно перебрать 65536 значений nonce.
Проиллюстрировать это можно с помощью программы на Python:
import itertools
from hashlib import sha256
# Интерпретирует последовательность символов как little-endian число
to_long = lambda x: sum(ord(b) << (8*i) for i, b in enumerate(x))
# Комбинирует nonce и сообщение для вычисления хэша.
combine = lambda nonce, msg: str(nonce) + ":" + msg
# Проверяет доказательство работы
def verify_pow(msg, nonce, difficulty):
h = sha256(combine(nonce, msg)).digest()
# Равны ли первые difficulty битов хеша нулю?
return to_long(h) % (1 << difficulty) == 0
# Создает доказательство работы для сообщения
def create_pow(msg, difficulty):
for nonce in itertools.count(0):
if verify_pow(msg, nonce, difficulty): return nonce
msg = "blockchain"
nonce = create_pow(msg, 16)
combine(nonce, msg), sha256(combine(nonce, msg)).hexdigest()
#43952:blockchain 000027b5022f88d2da21bd2802268966050f5a0b031058ce4562939c13727303
Уточнение насчет ожидаемого количества работы является важным. Теоретически, при сильном везении, подходящий nonce можно найти очень быстро. Если программу выше запустить с сообщением «Bl0Ckchain», то получится, что значение nonce равняется 6571, а это в десять раз меньше ожидаемого. Поэтому, глядя на доказательство работы, можно лишь оценить затраченные на него ресурсы, однако для высокой сложности доказательства (то есть ожидаемого количества выполненной работы) эта оценка будет достаточно точна.
Доказательство работы похоже на цифровые подписи — оно обеспечивает целостность сообщения, так как вероятность того, что один и тот же nonce подойдет для различных сообщений, очень мала. Доказательства также легко проверяются — достаточно провести лишь одну операцию хеширования. В отличие от подписей, создание доказательства работы не требует знания секретов, но «потребляет» больше вычислительных ресурсов. Например, в приведенной выше программе на создание доказательства работы для сообщения «blockchain» сложностью 32 бита требуется несколько часов вычислений на обычном персональном компьютере, однако проверяется это доказательство практически мгновенно.
sha256("5263268363:blockchain") = 000000007cf39dfc8fccae534b39b5f362c16891abca02d0e7b1dbd5a129ee17
PoW и консенсус
Использование PoW для консенсуса — пожалуй, самая большая инновация оригинальной статьи о биткойне. Соответствующий алгоритм консенсуса получил вполне академическое название — консенсус Накамото. Сатоши (автор или авторы статьи) предложил «подписывать» каждый создаваемый блок доказательством работы, сложность которого зависит от общей вычислительной сложности сети биткойна. Такой подход дает несколько преимуществ:
- Консенсус Накамото решает главный бич анонимных сетей — атаки Сибиллы, в которых злоумышленник создает кучу фейковых узлов, чтобы «задавить» получившимся большинством мнение честных пользователей. Чтобы обладать мнением в консенсусе Накамото, нужно обладать реальной вычислительной мощностью, которую нельзя подделать, и которая не требует никакой дополнительной аутентификации — она сама по себе привязывает узлы к реальному миру.
- Доказательство нельзя подделать и «перенести» на другие блоки. Таким образом, майнеры не могут воровать доказательства друг у друга.
- Более того, доказательства нельзя заготовить впрок — в каждый блок входит ссылка на предыдущий, поэтому начать работать над доказательством можно только после появления предыдущего блока в сети.
- Доказательства работы обеспечивают честность — награда каждого майнера пропорциональна его вычислительной мощности (хешрейту). Если у майнера есть 10% хешрейта от всей сети, то он будет в среднем создавать 10% блоков и получать 10% награды.
- Поскольку на создание доказательства тратятся реальные ресурсы (которые в случае биткойна измеряются тысячами долларов в минуту), у майнеров возникает совершенно новый стимул действовать в рамках протокола — нечестное поведение немедленно лишает их реальных денег.
Доказательства работы используются узлами биткойна для определения состояния системы. Актуальный журнал транзакций определяется как цепочка блоков с наибольшей суммарной сложностью доказательств работы. Майнеры, соответственно, должны искать блок поверх этой цепочки. Но, теоретически, никто не запрещает создавать новые блоки на основе какого-то старого блока (иногда случаются расщепления — форки — блокчейна, потому что два майнера находят новый блок практически одновременно). Однако намеренные форки невыгодны экономически, потому что блоки из побочных ветвей блокчейна никем не учитываются и не приносят их создателям никакой прибыли — одни затраты на нахождение доказательства работы.
Консенсус Накамото обеспечивает два ключевых требования к блокчейну, которые мы выделили ранее. Из-за того, что доказательство работы не привязывается к личностям майнеров (в отличие от цифровых подписей/сертификатов), обеспечивается устойчивость к цензуре. А за счет того, что доказательства работы быстро проверяются и не требуют для проверки ничего, кроме блокчейна, достигается объективность протокола.
Консенсус Накамото устойчив к атакам на сеть блокчейна, причем его безопасность достаточно хорошо исследована теоретически (в отличие от более новых предложений для блокчейнов). В оригинальной статье отмечено, что сеть биткойна продолжит адекватно функционировать, даже если половина майнеров начнет злонамеренную активность. Если же среди майнеров появится злонамеренное большинство (так называемая атака 51%), они смогут игнорировать блоки от всех остальных майнеров, чтобы забрать себе всю награду в сети, или, например, мошенничать, производя повторную трату средств за счет намеренных форков блокчейна. Однако при этом отметим, даже если все майнеры в сети сговорятся, они не смогут обойти базовые механизмы безопасности биткойна — например, не смогут похитить биткойны пользователей.
Биткойн — самая мощная сеть, использующая доказательство работы. За одну секунду майнеры биткойна вычисляют более трех квинтиллионов (3∙1018) хешей. 32-битное доказательство (которое вычисляется на компьютере несколько часов) — это минимальная сложность в биткойне, которую можно было наблюдать лишь в самом начале работы сети. Это связано с тем, что сложность доказательства автоматически регулируется так, чтобы биткойн-сеть находила в среднем один блок в 10 минут. При увеличении хешрейта сети растет и сложность — сейчас сложность одного доказательства составляет около 70 бит. Соответственно, hex-запись хеша блока должна начинаться с 17 нулей.
/ Мощность биткойн-сети растет по экспоненте. Это обеспечивает высокую стоимость атаки на сеть
Альтернативы для PoW
У консенсуса Накамото есть свойство, которое многими воспринимается как большой недостаток, — для обеспечения безопасности нужно «работать», то есть производить доказательства работы. Вычисления, которые выполняются в рамках PoW, не служат никакой полезной цели, и это архитектурная особенность. Оказывается, очень сложно придумать доказательство работы, которое бы выполняло общественно полезную роль. Поэтому может показаться, что ресурсы (прежде всего, электричество) на майнинг тратятся впустую (если не считать, что они тратятся на обеспечение безопасности).
Помимо этого, майнинг все же подвержен проблеме централизации. Более 70% хешрейта биткойна на данный момент находится в одной стране — Китае. Многие криптовалюты пытаются децентрализовать майнинг за счет использования доказательств работы, которые экономически невыгодно вычислять на специализированном оборудовании, однако с таким подходом возникает другая проблема — если сделать выгодным майнинг биткойнов с помощью домашних компьютеров, то арендовать оборудование для атаки (или создать для нее ботнет) станет существенно дешевле и проще.
Пытаясь решить эти проблемы, сообщество предлагает множество алгоритмов консенсуса, которые не требуют «работы». Самая популярная категория таких алгоритмов основана на доказательствах доли (proof-of-stake, PoS). Доказательство доли похоже на доказательство работы, только вместо совершения определенной работы автор показывает, что у него есть доля в системе (например, в виде ненулевого баланса криптовалюты). Получается, что для майнинга с PoS достаточно «запастись» криптовалютой, после чего просто получать с нее «проценты».
Однако у доказательства доли есть неприятный недостаток в сравнении с PoW: поскольку доказательства доли базируются не на реальном мире (вычислительная мощность), а на чём-то внутри самого блокчейна (баланс криптовалюты), задача построения надежного PoS-алгоритма оказывается нетривиальной.
В простейших вариантах PoS-консенсуса возникают проблемы с базовыми свойствами. Оказывается, что в них самым экономически выгодным поведением является размножение форков блокчейна для повторной траты средств. Были созданы более сложные варианты доказательства доли, без явных дыр в безопасности; такие алгоритмы возвращают в консенсус фактор экономической ответственности за счет обязательного залога, который конфискуется в случае некорректного поведения участника.
У криптографического сообщества все еще остаются сомнения насчет возможности надежных алгоритмов с доказательством доли. Возможно, планируемый переход на доказательство доли блокчейна Ethereum — второго по объему рынка публичного блокчейна — расставит все точки над i.
Кроме доказательства доли, блокчейн-энтузиасты экспериментируют и с другими алгоритмами «proof-of-*». Например, Брэм Коэн (Bram Cohen), создатель протокола BitTorrent, недавно предложил использовать для консенсуса в блокчейнах доказательство локального хранения файлов (proof-of-space), то есть заменить вычислительную мощность в PoW на дисковое пространство. Однако по степени зрелости подобные инициативы еще сильнее отстают от алгоритмов доказательства работы, чем proof-of-stake.
P.S. А вот еще небольшая подборка наших материалов:
Блокчейн для чайников — объясняем «на пальцах» суть технологии
Мир без банков, нотариусов, регистраторов, регуляторов – технология блокчейн заставляет по-новому взглянуть на обмен ценностями, документами, деньгами. Она убирает посредников и позволяет пользователям напрямую отправлять друг другу важные данные. Одни уже называют ее прорывом 21 века, величайшим изобретением, сравнимым с открытием интернета, другие поглядывают с опаской.
Рассмотрим простыми словами блокчейн для «чайников»
Если объяснять на пальцах, то блокчейн часто сравнивают со стандартным дневником или картотекой, куда последовательно в хронологическом порядке вносятся записи о том, что сделано – поспал, поел, постирал, погулял, взял в долг, заплатил 100 долларов за ужин и т.д.
Чтобы никто посторонний не мог внести по своему усмотрению изменения в дневник, вся информация особым образом шифруется, причем шифр продуман качественно. Если дневник в одном экземпляре, с ним всякое может случиться – сгорел дом и он вместе с ним, украли, при огромнейшем желании расшифровали и внесли коррективы.
А потому для надежности дневник имеет множество копий, которые хранятся в разных местах. Причем, когда в дневник вносится новая информация, она после проверки обновляется на всех экземплярах.
На этом лирика закончилась, переходим к делу.
Что такое блокчейн и для чего он нужен
Блокчейн происходит от англ. blockchain (block chain), что дословно означает «цепочка блоков». Иными словами — это база данных, которая в прямом смысле этого слова представляет собой непрерывную цепь из блоков и хранится одновременно на множестве компьютеров.
Новые блоки в этой базе-цепочке создаются постоянно. Каждый вновь созданный блок содержит группу накопившихся за последнее время и упорядоченных записей (транзакций), а также заголовок.
Транзакции – это любые действия, которые пользователи совершают в сети будь-то отправка средств, регистрация прав собственности, покупка игрового предмета и т.д. Когда транзакция сформирована пользователем, она отправляется в так называемый мемпул, где дожидается пока ее добавят в один из блоков и этим подтвердят.
Когда блок сформирован, он проверяется другими участниками сети и затем, если все согласны, подсоединяется к концу цепочки. Как только это произошло, внести в него изменения уже невозможно. Помимо новой информации блок также хранит в зашифрованном виде данные о предыдущих блоках.
База обновляется на всех подключенных к системе компьютерах, а майнеры (валидаторы) приступают к формированию следующего блока.
Основные принципы блокчейн:
- децентрализация и распределенность;
- безопасность и защищенность;
- открытость и прозрачность;
- неизменность уже записанного.
Распределенное хранение
Любая значимая информация, относящаяся к той или иной сфере жизни людей, где-то хранится. Покупка дома или машины, взятие кредита, регистрация брака, переводы денег – все данные об этих операциях фиксируются и размещаются централизовано на серверах госучреждений или частных компаний. Это часто приводит к злоупотреблениям – при желании в любую базу можно залезть и внести в нее коррективы.
Технология блокчейн кардинально меняет такой подход. Ее суть заключается в том, что база данных хранится не в одном месте, а распределенно на тысячах, а то и десятках тысяч, а порой и миллионов компьютеров, разбросанных по всему миру.
Вероятность, что все они будут выведены из строя, ничтожна мала и выглядит фантастической. А пока хотя бы один компьютер сети работает, система, основанная на блокчейн, существует.
Безопасность
Как уже упоминалось, любую централизованную базу данных можно взломать, внести в нее изменения. С блокчейн такой номер не пройдет. Взломать один из блоков и изменить информацию в нем смысла нет, поскольку ломать придется все блоки, а для этого нужны гигантские вычислительные мощности – как мы помним, новые блоки содержат в себе в зашифрованном виде данные о предыдущих блоках. А потому попытка взлома обязательно будет замечена другими участниками сети.
К тому же препятствием к фальсификациям станет и мощный алгоритм шифрования с использованием хеш-функций, а также цифровой подписи. В подписи используется два ключа — открытый и закрытый. Первый необходим для проверки самой подписи, второй используется при ее создании и является секретным. Ключи обеспечивают доступ участникам к той или иной информации.
Хеш-функция выглядит, на первый взгляд, как последовательность случайных цифр и букв. Именно она и обеспечивает неизменность всех записанных данных.
Как видим, работа сети базируется не на мифическом доверии пользователей друг к другу, а на строгих математических вычислениях.
Открытость
Вся база находится в публичном доступе, а потому посмотреть данные того или иного блока может любой желающий. Например, один пользователь перевел другому 10 тысяч долларов – при желании узнать об этом может каждый. Вопрос в другом, кто и кому перевел деньги – остается тайной. Эта информация доступна непосредственным участникам обмена, если они сами не пожелают ее обнародовать.
Взаимодействие без посредников
Немаловажный момент, нам постоянно необходимо иметь дело с посредниками – финансовые операции производим при посредничестве банков, платежных систем, обменников, документы заверяем у нотариусов.
Нередки ситуации, когда деньги могут не дойти до адресата, поскольку банку не понравится транзакция и он заинтересуется ею. Подделка документов также не редкость. Таким образом хоть мы и не доверяем сполна всевозможным посредникам, однако пользоваться их услугами вынуждены, часто на свой страх и риск, поскольку альтернативы нет.
Блокчейн позволяет напрямую обмениваться данными. Подлинность транзакций в системе проверяют непосредственно ее участники.
Устройство сети
Сеть формируют пользователи, заинтересованные в использовании того или иного вида информации. Участников разделяют на два типа:
- простые пользователи;
- строители блоков или, как их еще называют, майнеры, валидаторы.
Обычные пользователи отправляют в сеть новые записи-транзакции. Например, пользователь Х желает перевести пользователю Y 100 условных единиц». А майнеры из этих транзакций уже формируют блоки. Записи подтверждаются и вносятся в блок только если с этим согласно большинство. Остальные игнорируются и не считаются достоверными, пока не попадут в содержимое одного из последующих блоков. Воспользоваться той или иной записью в блокчейне может только владелец ключа, открывающего к ней доступ.
Чтобы стать майнером, достаточно выделить мощности своего компьютера для выработки новых блоков. К сети подключаются с помощью специального софта.
Есть и системы, в которых вместо традиционного майнинга по алгоритму Proof-of-Work используются другие протоколы, например, Proof-of-Stake, когда для подтверждения транзакций валидаторам необходимо зарезервировать на счету определенное количество криптомонет.
Типы систем
На технологии блокчейн строятся разные типы систем. Есть публичные наднациональные системы, к которым присоединиться и стать простым пользователем или майнером может любой желающий. Администрированием такого объединения занимается само сообщество.
Есть и приватные или так называемые эксклюзивные блокчейн-сети, которые поддерживаются и контролируются своими создателями. Чтобы стать их участником, нужно выполнить определенные условия, установленные организаторами. Майнить новые блоки в таких системах может четко установленный сертифицированный круг лиц.
Сферы применения блокчейн
Как видим, платформа blockchain — это распределенная база данных для общего пользования, в которой преимущественно отсутствует централизованный надзор над процессом. С помощью блокчейн вести учет, хранить данные, совершать транзакции можно в любой сфере жизнедеятельности:
- финансовые операции;
- сделки с недвижимостью;
- страхование;
- логистика;
- нарушения ПДД;
- регистрация браков и многое другое.
Первое применение блокчейн на практике произошло в 2009 году, когда на его основе была создана криптовалюта биткоин. Позднее таких криптовалют появилось великое множество на самый разный вкус.
Сегодня государства активно рассматривают способы внедрения blockchain в систему голосования на выборах. Китай на блокчейн хочет перевести работу Национального фонда социального страхования.
Тесно вплетена эта технология будет и в систему «умных городов», которые активно воплощают в реальность в КНР.
На основе блокчейн уже создаются стартапы в сфере медицины, защите интеллектуальной собственности, авторского права. На базе технологии разрабатываются системы идентификации, веб-браузеры, децентрализованные облачные хранилища данных, а также социальные сети.
Мало того, создана уже целая виртуальная нация — BITNATION, которая открывает посольства в разных странах. Стать ее гражданином может каждый.
Все больше на слуху так называемые умные контракты, или иначе говоря смарт-контракты, которые работают на блокчейне и значительно упрощают процедуру подписания договоров. Впервые они появились в сети Эфириума.
В этом случае нет необходимости привлекать к процессу третью сторону, которая выступала бы гарантом соблюдения условий. Здесь программный код на основе заранее прописанных условий автоматически решает, что делать с тем или иным активом. Все заинтересованные участники процесса в любой момент могут провести аудит сделки.
В международной торговле технологию впервые опробовали в начале осени 2016 года. Тогда на платформе Wave британским банком Barclays был проведен аккредитив на 100 тысяч долларов, обеспечивающий экспорт предприятием из Ирландии Ornua крупной партии молочных продуктов в адрес Сейшельской компании. Стандартно такая сделка занимает минимум неделю, здесь на все ушло около четырех часов.
Плюсы и минусы технологии
Как видим, блокчейн – универсальная технология, применимая в разных сферах жизни, что является однозначным ее плюсом. Помимо уже рассмотренных выше открытости, безопасности и защищенности, блокчейн также:
- Уменьшает транзакционные издержки.
- Сокращает время проведения сделок с нескольких дней, а то и недели, необходимых для проверки данных и обмена документами, до нескольких часов.
- Позволяет организациям, учреждениям избавиться от лишних статей расходов.
К минусам стоит отнести масштабируемость. Сегодня блокчейн не способен обеспечивать огромное количество транзакций за короткое время. К примеру, платежные системы MasterCard или Visa обрабатывают около 45 тысяч транзакций в секунду, в то время как у биткоина их всего 7. Также ежедневно растет и вес базы, которая хранится на компьютерах сети.
Не стоит забывать и о нагрузке на электрические сети, когда речь идет о сетях, работающих на основе алгоритма POW. Все эти сложные вычисления заставляют компьютеры потреблять большое количество энергии.
Говоря о неуязвимости блокчейна эксперты указывают также на вероятность так называемой «атаки 51%». Иными словами, если группа участников сети сконцентрирует в своих руках 51% вычислительных мощностей, она может начать действовать в своих интересах, подтверждая только выгодные для себя транзакции. Однако для этого потребуются настолько мощные ресурсы, что осуществить на практике эту идею чрезвычайно сложно.
Блокчейн в России и Украине
В РФ технологию собираются официально узаконить и начать внедрять в 2019 году, приняв к тому времени необходимые нормативно- правовые акты. Пока что крупные банки страны совместно с Центробанком с целью повышения эффективности финансовой системы создали платформу «Мастерчейн».
Интересный проект на блокчейне действует в Москве. Платформа называется «Активный гражданин», и с ее помощью проводят всевозможные голосования, касающиеся улучшения жизни в столице.
В Украине уже сегодня на блокчейн частично перевели Государственный земельный кадастр. В частности, на этой технологии работает процесс проверки выписки. На втором и третем этапе блокчейнизации кадастра на распределенный реестр переведут существующую базу данных, а затем приступят и к хешированию всех проводимых транзакций. На очереди также Государственный реестр вещевых прав на недвижимое имущество.
Save
Save
как он работает, и почему эта технология изменит мир / Блог компании ITI Capital / Хабр
Портал Spectrum, который освещает новости в мире технологий, опубликовал материал о блокчейн. В этой статье рассказано, какие есть подводные камни в работе технологии и почему её нельзя использовать повсеместно. Мы подготовили русскоязычную адаптацию этой статьи.
Развитие технологии
Биткоин был придуман как акт неповиновения. Криптовалюта появилась вскоре после мирового экономического кризиса и рекламировалась, как средство от несправедливости и коррумпированности традиционной финансовой системы. Создатели были уверены, что когда биткоин станет более популярным, он будет конкурировать с реальными деньгами и в конечном итоге вытеснит те институты, которые привели к кризису.
Неофициальный лозунг биткоина: «Верим в криптографию», прямо говорит о том, кто виноват в проблемах экономики: посредники, банкиры, «доверенные» третьи стороны, которым на самом деле нельзя доверять. Эти люди просто создают проблемы другим, уменьшая прибыль и усложняя транзакции.
Биткоин стремился заменить услуги, предоставляемые этими посредниками с помощью специального кода и криптографии. Когда человек оплачивает ипотеку, между его банком и другими финансовыми организациями в фоновом режиме происходит ряд операций, благодаря которым деньги снимаются со счёта пользователя. Банк может поручиться, что с деньгами всё хорошо, так как он хранит информацию о том, куда и как была потрачена каждая копейка со счета.
Биткоин и другие криптовалюты заменяют эти фоновые операции и транзакции при помощи программного обеспечения — распределенной и защищенной базы данных, называемой блокчейном. При этом процесс смены владельцев токена биткоина контролируют множество компьютеров. Право на использование криптовалюты может быть передано абсолютно любому человеку, независимо от его национальности и места проживания.
Спустя 8 лет после создания блокчейна, технологию пытаются применить к процедурам и процессам не связанным с передачей денежных средств.
Может ли блокчейн связать людей, которые сдают жильё, с путешественниками и предложить сторонам прозрачную платформу для оплаты? Может ли блокчейн выступать в качестве хранилища и площадки для воспроизведения фильмов, шоу и других цифровых средств массовой информации, сохраняя при этом отчисления и передавая их создателям контента? Может ли блокчейн автоматически проверять авиарейсы и выплачивать компенсации путешественникам, чьи самолёты не вылетели вовремя?
Если это так, то технология блокчейн поможет избавиться от Uber, Netflix и, например, страховых компаний.
Это не предположения, а лишь некоторые вещи, которые сейчас строятся на Ethereum — блокчейн-платформе, которая дистанционно размещает программное обеспечение на распределенной компьютерной системе, называемой Ethereum Virtual Machine. Блокчейн Ethereum, на котором работает криптовалюта эфир, на данный момент наиболее открыт для экспериментов.
Но эта открытость не всегда играет на руку. Новые схемы блокчейна создаются каждый день, в том числе и крупнейшими техническими корпорациями. Microsoft предлагает своим клиентам инструменты для экспериментов с криптовалютой в своем облаке Azure. IBM, Intel и другие сотрудничают с хабом Hyperledger — открытой платформой для разработки бизнес-ориентированных блокчейнов. Крупнейшие банки, — те самые, которых хотели вытеснить создатели криптовалюты, — придумали свою версию технологии, пытаясь опередить тенденции.
И даже биткоин, который работает на первом и самом успешном блокчейне, модернизируется для приложений, о которых его создатели никогда не мечтали.
Но ни один блокчейн не может похвастаться массовым использованием. Никакая концепция или стратегия еще не привела к революции ни в одной отрасли. Биткоином пользуется не более чем 375 000 человек в мире в день.
Какие блокчейн-платформы сохранятся, а какие начнут медленно опускаться на дно? Чтобы сделать какой-либо прогноз, нужно понять, что такое блокчейн и логически соотнести его с биткоином.
Как работает блокчейн
В 2009 году анонимный хакер (или группа хакеров), под псевдонимом Сатоши Накамото, создал первую цифровую валюту. В этой системе деньги были лишь инструментом учета, методом абстрагирования стоимости, назначения собственности и предоставления средств для совершения сделок.
Для выполнения этих функций исторически использовались денежные средства. Обладание физическими токенами — монетами, позволяет людям лично заключать сделки между собой. Наличные деньги достаточно трудно скопировать, поэтому нет необходимости в полном учете того, кому принадлежит определенная часть денежной массы.
Тем не менее, если создать таблицу, в которой указано, кому и сколько принадлежит денег, монеты и купюры станут ненужными. Банки и обработчики платежей уже частично сублимировали физическую валюту в цифровые записи, отслеживая и обрабатывая транзакции в своих закрытых системах.
Биткоин завершил преобразование, создав единый универсальный цифровой регистр, называемый блокчейном. Эта технология получила такое название, потому что похожа на цепь — внести в неё изменения можно только в конец блоков. Каждое новое дополнение содержит набор новых транзакций. Например, если Саша заплатит Юле за биткоин, эта транзакция появится в конце цепи. А в блоках до этого будет указано, что Саше заплатил Миша, а Мише Оля.
Блокчейн для биткоина, в отличие от книг бухгалтерского учёта, которые ведут традиционные финансовые учреждения, расположен на компьютерах по всему миру. Эти данные доступны для всех, у кого есть подключение к интернету. Майнеры, — владельцы компьютеров, на которых хранится информация блокчейна, — отвечают за обнаружение запросов транзакций от пользователей, их объединение, проверку и добавление в блокчейн в виде новых блоков.
Процесс валидации устанавливает, что человек фактически владеет биткоинами после транзакции, и что он еще не потратил их в другом месте. Собственность в блокчейне определяется двумя криптографическими ключами. Первый ключ находится в блокчейне в открытом доступе. Второй доступен только его владельцу. Такие ключи используются для шифрования электронных сообщений. Когда кто-то отправляет зашифрованное сообщение, он использует открытый ключ. Получатель при открытии письма использует закрытый ключ и расшифровывает сообщение.
В технологии блокчейн транзакции подписываются при помощи закрытых ключей, соответствующих открытым ключам, присвоенным монетам, которые хотят потратить. И когда транзакция обрабатывается, этим монетам присваивается новый открытый ключ.
Когда в оформлении операции участвует несколько лиц, становится важен вопрос необратимости. Если бы блокчейн управлялся одним банком с набором известных валидаторов, работающих в рамках одной юрисдикции, то выполнение транзакций было бы простым делом.
Но для биткоина нет центрального банка, обеспечивающего соблюдение правил. Майнеры работают анонимно во всем мире, несмотря на разнообразие культур, различие правовых систем и нормативных обязательств. Поэтому нет способа привлечь их к ответственности. Необратимость операции обеспечивает код биткоина. Он использует схему, которая называется доказательством работы.
Как доказательство работы делает технологию блокчейн надёжной
Для того чтобы создавать новые блоки, майнерам необходимо владеть всей информацией о транзакциях. Они конкурируют между собой, так как майнер, первым создавший блок, получает оплату за эту услугу. Вопрос в том, что мешает майнеру удалить предыдущие транзакции в блокчейне. Хотя он и не сможет таким образом украсть монеты, зато сможет совершить одну и ту же транзакцию несколько раз. Например, оплатить товар, а после этого удалить информацию о транзакции.
Чтобы это избежать, у всех майнеров в сети должна быть одинаковая копия блокчейна.
Когда майнер, добавляет новый блок, он должен предоставить криптографическое доказательство транзакции. Чтобы получить доказательство, майнер проводит блок через несколько раундов хэш-функции — вычисления, которое берет часть данных произвольного размера и переводит их в бессмысленную буквенно-цифровую строку с фиксированной длиной, которая называется хешем. Чтобы сделать процесс более надёжным, алгоритм блокчейн требует, чтобы полученный хеш начинался с определенного количества нулей. Невозможно заранее предсказать, какой хеш будет выдавать заданный набор данных, поэтому майнеры запускают вычисления снова и снова, каждый раз вставляя случайное число в набор данных. Когда это число изменяется, возникает новый хэш. В итоге майнеры получают правильное количество нулей.
Майнер, который находит правильный хеш, отправляет блок другим майнерам. Они его проверяют и добавляют к полной версии блокчейн, содержащуюся на их компьютерах.
Это можно сравнить с закрыванием двери. Предположим, у человека есть замок, и набор ключей, один из которых может его закрыть. Он должен попробовать все ключи, прежде чем найдёт правильный. И после этого оставить его в замке, чтобы другие могли проверить, что ключ подходит.
Майнеры тратят свои средства на поддержку сети — покупают оборудование и платят за электроэнергию. Чтобы изменить блок в блокчейне и провести одну и ту же транзакцию дважды, им придётся потратить в два раза больше своих денег, поэтому обманывать становится невыгодно.
Кроме того, с каждым новым блоком возрастает стоимость изменения предыдущих. Новые блоки хранят хеш стоящего перед ними блока. Любые изменения в старых блоках приведут к недействительным хэшам для всех последующих блоков. Следовательно, невозможно вставить фиктивные модификации в предыдущий блок без повторения всей работы, которая была выполнена после этого блока. Если провести аналогию с замками, получится, что замок в конце цепи связан со всеми предыдущими. Если изменить замок в середине цепи, придётся искать новые ключи для каждого замка после него.
Получается, что майнеры предоставляют дорогостоящие доказательства, а затем получают деньги за свою работу. Таким образом Сатоши создал первую жизнеспособную одноранговую цифровую валюту. Но он также решил более общую проблему, которая на протяжении десятилетий беспокоила ученых. Биткоин, который за 8 лет ни разу не отключался от сети на длительный период, надежно стимулирует майнеров выполнять работу добросовестно, обеспечивая единую сеть. В итоге получается защищённая, постоянно растущая цепочка данных, которую любой, у кого есть подключение к интернету, может проверять и дополнять.
Как использовать блокчейн в других сферах
Технология блокчейн может быть полезна не только для совершения транзакций. Практически сразу после появления биткоина, люди начали думать, как применить эту технологию в других сферах. Когда майнеры проверяют транзакции, они запускают небольшие программы, которые обрабатывают и предоставляют необходимые для транзакции данные. Но что, если запустить более сложные программы, например, программное обеспечение для социальных сетей? Или использовать блокчейн для предоставления данных для онлайн-форумов?
Эти идеи появились сразу после создания биткоина, но только спустя несколько лет, девятнадцатилетний студент из Торонто внёс вклад в их развитие. В 2013 году Виталик Бутерин разработал совершенно новую технологию под названием Ethereum. Благодаря ей блокчейн можно было использовать не только для совершения транзакций.
В отличие от биткоина, Ethereum использует мини-программы, называемыми смарт-контрактами. Они могут быть написаны с неограниченной степенью сложности. Пользователи могут взаимодействовать с программами, отправляя им транзакции с инструкциями, которые затем обрабатывают майнеры.
Это означает, что любой может встроить программу в транзакцию и быть уверенным в том, что она останется неизменной и доступной для цепочки блоков. Теоретически, с Ethereum можно заменить Facebook, Twitter, Uber или любую другую цифровую службу новыми версиями, которые были бы прозрачны, неуязвимы для цензоров и не требовали вмешательства человека.
Что такое распределённый реестр
Параллельно с попытками Бутерина использовать технологию для создания компьютера, охватывающего весь мир, развивалась идея закрытой и контролируемой версии блокчейна. В сентябре 2014 года группа финансовых институтов, в том числе Barclays, Goldman Sachs и JP Morgan сформировала консорциум под названием R3 для изучения того, как блокировки могут повысить эффективность расчётов между банками.
Открытая структура блокчейнов, таких как биткоин и Ethereum, противоречит потребностям этих организаций. В первую очередь вызывает вопросы анонимность пользователей, данные которых представлены буквенно-цифровыми общедоступными адресами, без указаний их реальной идентичности. Банковское законодательство в США и других странах запрещает такую анонимность. «Мы должны знать, кто участники и контрагенты находящиеся на этих платформах», — говорит Тим Свансон, директор по исследованиям рынка в R3.
Финансовые учреждения также юридически обязаны защищать данные о клиентах и контролировать их экспорт по национальным или региональным линиям. Учитывая, что публичные блокчейны содержат всю информацию о транзакциях на многих компьютерах в сети, невозможно ограничить цепочку хранения при их использовании.
Таким образом, появился подход распределённого реестра к технологии блокчейн. В распределённом реестре известна идентификация людей, добавляющих блоки, а данные в системе доступны только для избранных сторон. Поскольку право создавать новые блоки назначается людьми, которые запускают код, а не лотереей, нет необходимости проверки работы майнеров.
Такая система предназначена для ситуаций, когда все участники блочной цепи уже имеют небольшую степень доверия, но хотят выполнить услуги для нейтральной третьей стороны, как это может быть в случае с банками при урегулировании международных банковских переводов.
В прошлом году проект R3, который недавно привлек $107 млн из более чем 40 учреждений, выпустил свой первый распределённый реестр Corda. И у него уже появился конкурент: JP Morgan, который покинул консорциум R3 прошлой весной, выпустил свой собственный реестр, получивший название Quorum.
Подход работы с распределённым реестром также распространяется в другие отрасли, которые хранят конфиденциальные данные клиентов. Многие из этих проектов построены с помощью инструментов, предоставляемых Hyperledger. Он создает продукты для компаний, которые хотят работать со смарт-контрактами, но не решаются использовать открытые блокчейны, такие как Ethereum и биткоин.
«Люди должны понимать фактические проблемы и нормативные требования, которых должны придерживаться такие организации, как банки, страховые компании и отрасли здравоохранения. Они не могут позволить себе риск и неопределенность, которые внедряются некоторыми открытыми системами», — говорит Джонатан Леви, создатель системы управления доступом к блокчейнам Hacera.
Как будут работать смарт-контракты
Независимо от того, какой вариант блокчейна победит, смарт-контракты потребуют целого ряда поддерживающих технологий. Эти дополнительные технологии в настоящее время разрабатываются. И они будут очень важны для расширения технологии блокчейн.
«Как только у нас появятся смарт-контракты, возникнет целый ряд проблем», — говорит Ари Джуэлс, содиректор IC3 Корнеллского университета. Эти проблемы делятся на несколько категорий.
Во-первых, блокчейны не смогут хранить много данных. Это будет проблемой для многих проектов, которые, например, предлагают хранить и передавать потоковое видео. Им просто напросто не хватит места для хранения.
Технология блокчейн записывает входы и выходы каждой монеты в сеть, а также содержимое дополнительного поля, которое позволяет провести до 40 байтов метаданных для каждой транзакции. Это все.
Еще одна проблема блокчейна заключается в том, что технология сама по себе не знает, что происходит в реальном мире. Это важно в случае, если смарт-контракт — это система страхования авиабилетов. Блокчейн должен знать, когда самолет взлетает или приземляется, а для этого нужно запрашивать данные веб-сайтов.
В идеале разработчики будут создавать блокчейны для хранения и доступа к данным с учётом слабых сторон — уязвимости к цензуре и возможности отмены блокировок. Для этого нужно тщательно рассмотреть, каким «доверенным сторонам» можно фактически доверять.
Проблема хранения данных может быть решена с помощью распределенных служб обмена файлами, таких как децентрализованная система облачных хранилищ, протоколов Labs Interplanetary Database или Storj Labs. Это системы, которые позволят людям во всем мире получить дополнительное пространство на своих жестких дисках. Такие схемы будут работать для системы смарт-контрактов на основе блокчейна, поскольку данные будут храниться на нескольких компьютерах по всему миру и всегда будут доступны.
Импортировать данные в режиме реального времени можно будет при помощи «оракулов». Это службы, которые получают оплату за надежный запрос данных в реальном времени и подачу их на смарт-контракты блокчейн.
В IC3 Джелус разработал систему обеспечения защищенного датафида для смарт-контрактов Town Crier. Она защищает вводимые в блокчейн данные от подделки. Процесс работы построен на использовании доверенного программного обеспечения на процессорах Intel.
Финансирование
Чтобы перевести все современные услуги на технологию блокчейн, нужны большие деньги на технику и исследования
Вопрос в том, как получить финансирование на проект, который уничтожит многие крупные корпорации. В идеале нужно создать открытые блокчейны, как Ethereum, и доверить хранение данных тем людям, которые его создали. В таких условиях компания не может выжить из бизнес-модели, которая собирает и продает поведение браузера, историю покупок или данные о местоположении. Также компании блокчейн не могут полагаться на ограниченное владение своей интеллектуальной собственностью, поскольку программы находятся в открытом доступе.
Тем не менее, уже появился потенциальный механизм финансирования для блокчейнов — Initial coin offering или ICO. Он оказался чрезвычайно прибыльным, хотя и юридически сомнительным.
Например, человек решил использовать приложение. Но он не может расплатиться обычной валютой, ему нужно купить специальные монеты для этого приложения, которые заранее выпустили на рынок, и расплатиться ими.
В реальном мире это бы работало так: кто-то открыл прачечную и выпустил билеты, которыми можно оплатить стирку. Владелец заранее продаёт все билеты людям, а они потом, при необходимости, перепродают их другим.
На сегодняшний день более полумиллиарда долларов вложено в продажу токенов, и в последнии месяцы эти цифры только растут. Например, блокчейн Tezos в июле установил рекорд, собрав более 200 миллионов долларов через ICO.
Из-за таких огромных инвестиций появились жалобы пользователей на лицемерие создателей биткоинов. «Создатели блокчейнов, которые продвигают эти схемы, на самом деле демонстрируют всю скупость и алчность, приписываемую ими стандартным финансовым услугам и поддерживаемым правительством валютам, — говорит Престон Бирн, соучредитель Monax Industries — открытой платформы для разработчиков блокчейнов, — когда деньги начинают течь в их направлении, они становятся такими же небрежными в отношении общественности, которой они когда-то были».
Другие утверждают, что ICO, как новый класс инвестиционных инструментов, столь же разрушителен, как и финансируемые приложения.
«Деньги не являются корнем зла. Равенство является корнем зла», — говорит Джоэл Монегро — создатель Placeholder — нового фонда, посвященного технологиям блокчейн.
Он считает, что предоставление основателям и сотрудникам капитала компании побуждает их накапливать богатство, а не использовать его для улучшения своих продуктов.
С другой стороны ICO — не только финансовый инструмент, но и средство доступа к технологии блокчейн. Из этого следует, что чем больше людей используют услугу, тем больше будет спрос на токен, необходимый для доступа.
«Мой стимул заключается не в том, чтобы извлечь больше прибыли, а в том, чтобы больше людей использовали приложение, потому что стоимость токена зависит от стоимости использования услуги. Вы полностью переворачиваете стимулы», — говорит Монегро.
В Соединенных Штатах использование ICO, вероятно, подходит к концу. В конце июля Комиссия по ценным бумагам и биржам США предупредила о том, что многие ICO попадают в категорию ценных бумаг и поэтому должны работать по определённым правилам.
«Времена изменились и очень быстро. Некоторые из ранних последователей биткоина испытывали трудности с финансами три и четыре года назад, но держались за свои убеждения и свои монеты и очень хорошо сейчас себя чувствуют, — говорит Джонатан Леви, создатель Hacera, — нам по-прежнему необходимо, чтобы биткоин и Ethereum работали в более крупных масштабах, поэтому предприятиям необходимо децентрализовать данные и обеспечить их конфиденциальность. Сейчас мы сталкиваемся с новой задачей: учитывая огромные суммы вложенных денег, еще предстоит выяснить, сколько старожилов и новичков останется верными делу и продолжат работать, чтобы изменить мир с помощью технологий, которые уже изменили их».
Другие материалы по теме финансов и фондового рынка от ITI Capital:
Блокчейн технология, Применение Blockchain, Проекты – BitcoinWiki
Это утверждённая версия страницы. Она же — наиболее свежая версия.
Понравилась статья? Поделись:
Блокчейн (blockchain или block chain – «цепочка блоков») – публичная база всех транзакций, когда-либо совершенных в системе Bitcoin. Используя эту базу, каждый пользователь имеет возможность узнать, какое количество Bitcoin принадлежало какому-либо конкретному адресу в определенный отрезок времени. База поддерживается с помощью распределённых усилий множества майнеров.
Технология Блокчейн[править]
Каждый созданный блок содержит хэш предыдущего. Таким образом создается цепочка блоков, которая берет начало от так называемого genesis block (первый блок в системе Bitcoin) до последнего найденного системой блока. Редактировать информацию в блоке, который находится в цепи уже продолжительное время – не практично, так как в таком случае так же пришлось бы редактировать информацию во всех последующих блоках. Благодаря этим свойствам double-spending атака (повторная трата уже израсходованных средств) в системе bitcoin практически не выполнима.
Честные майнеры всегда строят свой блок на последнем существующем, ссылаясь на него. Продолжение цепи считается действительным только если в нем есть информация о всех предыдущих звеньях цепи и начинается оно с genesis block.
Принцип работы технологии блокчейн можно сравнить с работой сети Интернет. Вы размещаете в сети какую-либо информации, и пользователи Интернета могут получить к ней доступ независимо от места своего нахождения. Так и здесь: информацию, содержащуюся в блоке цепочки, могут получить все пользователи сети, которые имеют к ней доступ, в любой точке мира. Чтобы получить доступ к этой информации, вы должны иметь специальный закрытый ключ, который создан согласно криптографическому алгоритму. Это делает хранение данных в цепочке блокчейн защищённым и полностью безопасным.
Чтобы передать кому-либо денежную сумму, хранящуюся в блоке цепочки, достаточно передать пользователю системы этот закрытый ключ. В обороте биткоинов такой закрытый ключ открывает доступ к адресу, по которому хранится определённая сумма в криптовалюте и представляет собой финансовую ценность. По сути это способ регистрации произведённых в криптовалюте транзакций, которую в обычной жизни производит банковская система.
Посредством внедрения технологии блокчейн между пользователями сети устанавливаются доверительные отношения, ведь не имея соответствующего ключа никто не сможет внести изменения в цепочку из блоков. Любые неподтвержденные закрытыми ключами изменения отклоняются системой. Теоретически, закрытый ключ может быть украден. Но защитить его от такой вероятности с помощью нескольких строчек компьютерного кода не представляет особой сложности. Защитить же от кражи физическую валюту гораздо сложнее.
Алгоритм Blockchain[править]
Блокчейн – что это такое? Для чего нужна технология Blockchain, проекты на цепочке блоков
Алгоритм работы системы блокчейн заключается в процессе шифрования данных (хешировании), который осуществляет компьютерная сеть, состоящая из большого количества компьютеров. Данные распределяются между участниками сети по принципу торрентовой раздачи файлов.
Компьютеры производят расчёты, получают определённый результат и присваивают блоку данных уникальную подпись (сигнатуру) – это что-то вроде отпечатка пальца. Реестр обновляется и образовывается новый блок данных, изменить которые в дальнейшем будет невозможно. А значит, невозможно будет их подделать. Единственная возможная в блоке операция – это добавление в него новых записей. Реестр обновляется одновременно на всех компьютерах сети.
История[править]
Концепция блокчейна была предложена Сатоши Накамото в 2008-ом году. Впервые реализована она была в 2009-ом году в качестве компонента криптовалюты – биткоина. В этом случае с помощью технологии блокчейн регистрировались все транзакции, производимые с биткоинами. Именно блокчейн позволил исключить из системы оборота биткоинов третью сторону – центральный сервер, банк или другой авторитетный орган.
У любого блока из цепи есть только один путь к genesis block. В свою очередь от genesis block цепь может разделятся на несколько, образуя таким образом форк (англ., «fork»). Форки, состоящие из одного блока, — это довольно распространенное явление. Они образуются, если несколько узлов «нашли» блок с разницей в несколько секунд. Когда такое происходит, остальные узлы начинают строить дальнейший block chain на блоке, который пришел им первым. Когда какой-либо из двух блоков получает продолжение — его цепочка считается главной в block chain, поскольку она становится длиннее.
Блоки, которые не являются частью главной block chain, не используются. Так же за них не начисляется награда. Такие блоки называются «orphan-блоки» («орфаны»). Так как в блоке может быть ссылка только на один предшествующий блок, объединить 2 различные цепи невозможно.
Блокчейн-проекты[править]
- Ethereum — распределенная вычислительная платформа с открытым исходным кодом, основанная на блокчейне с функциональными возможностями использования смарт контрактов. С ее помощью можно создавать децентрализованные онлайн-сервисы. Концепцию единой децентрализованной виртуальной машины в 2013 году предложил российско-канадский программист Виталик Бутерин. Сеть работает с 30 июня 2015 года после краудфандинговой кампании, которая позволила привлечь $18,439 млн.
- Waves Platform — это криптовалютный проект, запущенный российским предпринимателем Александром Ивановым в 2016 году. Кампания по запуску Waves blockchain platform собрала 16 миллионов долларов, войдя в число крупнейших по привлеченным средствам через краудфандинг.
Классификация блокчейнов[править]
Изначально блокчейн-технология предполагает полную свободу и независимость цепи, в которой нет единого администратора. Однако интерес к новой технологии со стороны крупных компаний и финансовых институтов привел к появлению более централизованных форм блокчейна, когда при сохранении распределенных данных присутствует централизованная система контроля.
Такие трансформации позволяют говорить о разных видах блокчейна:
- публичный блокчейн;
- блокчейн, который принадлежит консорциуму;
- полностью частный блокчейн (классификация создателя платформы Ethereum Виталика Бутерина).
Они отличаются уровнем доступа к информации участников блокчейн-сети, а также их возможностью влиять на ее развитие.
Публичный Blockchain[править]
К публичному блокчейну (public blockchain) может получить доступ любой человек в мире. Это означает, что он может отправлять транзакции и ожидать их включения, если они действительны, а также участвовать в процессе консенсуса, то есть определения того, какие блоки добавятся в цепочку.
В отличие от обычных экономических систем, которые жестко регламентированы и так или иначе управляются централизованно, публичные блокчейны защищены принципами криптоэкономики. Криптоэкономика основана на сочетании экономических стимулов и криптографической проверки данных. Согласно этим принципам, влияние на консенсус при принятии решения пропорционально объему экономических ресурсов.
Такие системы обычно считаются «полностью децентрализованными».
Блокчейн, принадлежащий консорциуму[править]
Консорциумные блокчейны (consortium blockchains) контролируются заранее выбранным набором узлов. Виталик Бутерин в качестве примера приводит систему из 15 финансовых учреждений, каждое из которых управляет узлом, и 10 из которых должны подтвердить каждый блок, чтобы его признали действительным и добавили в цепь.
Право читать блок-цепочку может быть общедоступным, либо ограничено участниками. Возможны «гибридные» системы, когда корневые хэши блоков являются общедоступными, но все члены блокчейна могут совершать лишь ограниченное число запросов и подтверждений транзакций некоторых частей блокчейна.
Такие цепи можно назвать «частично децентрализованными».
Частный блокчейн[править]
Полностью частный блокчейн (fully private blockchains) — это цепочка блоков, в которой запись новых блоков закреплено только за одной организацией. Разрешение на чтение может быть общедоступным или ограничено в той или иной степени.
Возможны дополнительные опции, как управление базами данных, аудит и т. д. внутри одной компании, когда во многих случаях общедоступность окажется не нужной. Хотя без нее не обойтись, когда требуется публичный отчет о деятельности.
Применение технологии[править]
Блокчейн – это база данных, которая представляет собой цифровой реестр осуществлённых сделок, транзакций, выполненных контрактов. Иными словами, с помощью сети блокчейн можно хранить любые данные, которые нуждаются в отдельной записи и возможности проверки в будущем – начиная от кредитов и заканчивая учётом заключения и расторжения браков.
Преимущество хранения данных таким образом заключается в том, что реестр данных распределён по сотням и тысячам компьютеров всего мира, а не хранится на каком-то одном сервере. Благодаря этому информация, хранящаяся в реестре, остаётся прозрачной и всегда актуальной для всех пользователей этой сети.
Прежде всего, технология блокчейн применяется на рынке криптовалют. Но сегодня её использованием заинтересовались и традиционные финансовые учреждения. С помощью блокчейн основные банковские функции – подтверждение личности и регистрацию сделок — осуществлять особенно удобно. Также блокчейн можно широко использоваь для финансирования стартапов и проведения различных сервисных операций.
Ещё один способ использования сети блокчейн – это заключение контрактов и договоров, которые не требуют участия юристов и бюрократической волокиты. Кроме того, с помощью этой технологии очень удобно подтверждать авторские права художникам и творческим людям. Иными словами, применить технологию блокчейн сегодня можно в самых различных сферах – от торговли до голосований на выборах.
Технология распределенного реестра уже сегодня активно используется многими компаниями в разных государствах. С помощью блочной цепи решаются самые серьезные задачи, и очень скоро мы окажемся свидетелями ее глобального продвижения. Ведь некоторые отрасли благодаря внедрению блокчейна уже сегодня преобразовались, став более эффективными и безопасными.
В первую очередь, блокчейн был испытан в сфере государственных услуг и документооборота. В штате Флорида ведомство, занимающееся сборами налогов, совместно с платформой BitPay начала осуществлять прием транзакций в Биткоинах и Bitcoin Cash. Таким образом, граждане США могут оплатить сборы за водительские права, имущество и другие документы в цифровых монетах.
Национальное агентство публичного реестра Грузии, на своем сайте, предложило посетителям ряд блокчейн-опций, среди которых есть возможность заказывать выписку по существующим объектам недвижимости. В течение нескольких месяцев данная услуга успешно предоставляется и имеет спрос среди населения, что доказывает эффективность применения технологии блокчейн.
Крупную сделку осуществили голландский банк ING Bank и международный финансовый конгломерат HSBC. При доставке товара из Аргентины в Малайзию была применена технология блокчейн в рамках платформы R3 Corda. Это позволило исключить необходимость оформления каких-либо разрешений и документов. В России подобную сделку осуществили Альфа-банк и авиаперевозчик S7. Благодаря мгновенному обновлению информации в сети финансовые операции станут быстрее и безопасней.
Делиться информацией в сети Интернет сегодня привычное дело для каждого. Однако, когда дело касается осуществления валютных операций или передачи каких-либо других ценностей, мы обращаемся к централизованной финансовой системе – банкам. И, несмотря на то, что сегодня существуют различные электронные способы оплаты (PayPal, WebMoney, ЯндексДеньги), использовать их в отрыве от банковской системы не представляется возможным – для обналичивания денежных средств вам всё равно понадобится кредитная карта или расчётный счёт.
Благодаря технологии блокчейн можно избавиться от участия в финансовых операциях третьих сторон (в данном случае, банков). В системе блокчейн успешно реализована возможность подтверждения подлинности личности, регистрации сделок и заключения контрактов. На сегодняшний день самым большим рынком по капитализации является рынок финансовых услуг, поэтому данные функции блокчейна имеют огромное значение. Если переложить на блокчейн хотя бы часть работы этой системы, эффективность финансовых услуг значительно повысится.
Возможность заключения контрактов принесёт большую пользу в нефинансовую сферу. С помощью блокчейн можно будет вводить в оборот новые криптовалюты, хранить любые виды информации, а также контролировать использование интеллектуальной собственности. Всё это делает возможности применения механизма блокчейн в будущем очень перспективными и практически бесконечными.
См. также на BitcoinWiki[править]
https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/
https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/492972/gs-16-1-distributed-ledger-technology.pdf
http://www.coinfox.ru/novosti/obzory/5473-kakie-byvayut-blokchejny-i-pochemu-vazhno-ikh-razlichat
https://24paybank.org/news/blokchejn-mir-gde-primenjajut-decentralizovannuju-tehnologiju-na-segodnjashnij-den-.html
Как запустить свой блокчейн: выбираем алгоритм консенсуса
Перед разработкой собственного блокчейна ваша команда должна четко понимать, для чего необходим блокчейн и какой бюджет вы сможете выделить на его содержание.
Проектирование и запуск блокчейна имеют свои нюансы. Их можно легко упустить при планировании, если вы неверно оценили объем и сложность задачи.
Чтобы помочь проектам избежать таких ошибок, руководитель отдела исследований MixBytes Сергей Прилуцкий подготовил пошаговое руководство по запуску блокчейна.
Данная статья поможет вам определиться с выбором алгоритма консенсуса для построения собственного блокчейна, исходя из его технических свойств и ограничений (они подробно описаны в предыдущей статье).
***
Я буду исходить из того, что блокчейн предназначен для достаточно сложных сделок. Все рассматриваемые решения подходят для работы с кодом, размещенным в блокчейне.
Я намеренно не включил в перечень решения, которые находятся на ранних этапах развития, неизвестны широкому кругу программистов или не имеют важных механизмов, обеспечивающих безопасную работу блокчейна: неустойчивы к византийскому поведению нод (non-BFT) или могут быть успешно атакованы с единственного аккаунта. Без этих свойств блокчейн не имеет ценности и превращается в медленную, дорогую и неудобную в использовании базу данных.
Чтобы определиться, строить ли новую систему или использовать готовое решение, в первую очередь необходимо определиться с консенсусом — главным алгоритмом, обеспечивающим блокчейну BFT-свойства.
Консесусы: proof-of-work, proof-of-stake, proof-of-authority
Для начала рассмотрим разные типы консенсуса с точки зрения запуска и эксплуатации сети. Любой BFT-консенсус в блокчейнах должен удовлетворять как минимум два важных свойства распределенных систем: safety и liveness.
Safety гарантирует, что алгоритм никогда не придет к неверному консенсусу, если большинство узлов честно следуют протоколу, а liveness — что алгоритм никогда не «застрянет», не имея возможности выбора пути.
Эти свойства должны гарантированно выполняться при наличии в сети byzantine-участников, намеренно действующих наихудшим образом.
Proof-of-work (PoW)
Преимущество этого типа консенсуса — отсутствие необходимости регистрировать в сети валидаторов. Принимается любой блок, удовлетворяющий требования, без подтверждения других участников. Это позволяет оставить лишь часть логики, отвечающую за изменение сложности майнинга.
В теории этот вид консенсуса допускает любое число валидаторов — ведь соревноваться за блок может сколько угодно валидаторов. В реальных сетях, если валидаторов (майнеров) много, а сложность сети высока, то шансов получить награду за блок у отдельного майнера крайне мало. Для такого консенсуса необходимо сразу планировать работу майнинговых пулов, объединяющих майнинговые мощности, и соответствующее ПО.
При старте сети валидаторы должны сразу же установить серьезные вычислительные мощности. Это часто упускают из вида, надеясь на постепенное увеличение сложности сети и количества майнеров. Невысокий хешрейт открывает двери для недорогих атак 51%, когда атакующий на очень короткое время арендует много серверов, чтобы получить 51% хешрейта сети, и проводит атаку двойной траты.
Поэтому для PoW-сети придется планировать более сложную процедуру запуска. Сначала команда запускает сеть с собственными валидаторами, а потом постепенно «уступает» производство блоков майнерам, которые в этом случае могут плавно наращивать мощности.
Proof-of-authority (PoA)
PoA-консенсусы — это алгоритмы, использующие заранее назначенный набор аккаунтов, которые могут производить блоки и голосовать за принятие и исключение новых членов. Этот вид консенсуса — естественный выбор для корпоративных блокчейнов и тестовых сетей. Здесь может вообще не быть внутреннего токена, а при голосованиях за блоки и при выборах валидаторов 1 валидатор = 1 голос.
Это семейство алгоритмов представлено фундаментальным алгоритмом pBFT. В измененном виде он является базой для большого числа консенсусов, позволяя договориться о любых данных со всеми гарантиями безопасности.
В предыдущей статье я уже говорил о том, что не существует гарантированно безопасных консенсусов, в которых требуется менее, чем 2/3 + 1 сообщений от валидаторов. pBFT это доказывает математически. В разных консенсусах эти сообщения, подтверждающие, что валидатор принимает блок, собираются в разные моменты времени.
Процесс сбора подтверждений и в дальнейшем признание блока окончательным получил отдельное название финализации. Блоки, на которых достигнут общий консенсус называются финальными. Для уменьшения числа сообщений в части алгоритмов финальность достигается не на всех блоках, а только на некоторых, «заверяющих» сразу несколько блоков. Таким образом сильно уменьшается число сообщений между валидаторами и существенно ускоряется консенсус.
Из-за разделения процедур валидации блоков и финализации присутствует некоторая путаница, из-за которой оценивать скорость консенсуса становится непросто.
Например, алгоритм pBFT, используемый в консенсусе Tendermint (Cosmos), требует консенсуса на каждый блок, т.е. мгновенно финализирует его, а алгоритм EOS финализирует лишь один из множества блоков, финализируя сразу цепочку.
Aura — популярный алгоритм для POA-сетей на базе Ethereum — использует псевдослучайный выбор валидатора для каждого блока и параллельно договаривается о финализированных блоках с использованием алгоритма GRANDPA, ожидая > 2/3 подписей-подтверждений от других валидаторов. Такой параллельно работающий алгоритм финализации получил название finality gadget.
Похожим образом работает консенсус EOS, создающий «расписание» для валидаторов на некоторый период времени (epoch) и требуя финализации блоков в конце каждой epoch.
Proof-of-stake (PoS)
Почти все существующие реализации этих алгоритмов включают в себя алгоритмы из POA-консенсусов, что добавляет путаницы. Современные PoS-алгоритмы работают следующим образом: при помощи балансов участвующих в выборах валидаторов (стейков) формируется список валидаторов (например, голосованиями, заморозкой депозитов и т.д.). В течение некоторого времени, до момента изменения списка валидаторов, сеть работает, используя PoA-алгоритм, например pBFT.
Наиболее распространенными стали алгоритмы, названные Delegated Proof-of-Stake (DPoS), где аккаунты в сети различными способами голосуют своими балансами за валидаторов, формируя топ из N валидаторов.
Выбирая консенсус для своего блокчейна, стоит в первую очередь рассмотреть процесс финализации блоков. От нее будет зависеть время, через которое клиент получит подтверждение своих транзакций. Токеномику, процедуру «выборов» валидаторов и получение наград за блоки лучше рассматривать отдельно. В этой части может быть применено большое число разных экономических механизмов.
Отмечу, что корпоративным сетям не стоит пренебрегать экономическими механизмами и PoS-алгоритмами, даже если в сети нет никакой экономики и токена. Любые бесплатные транзакции — это почти всегда вектор атаки на систему с единственного аккаунта. Наличие баланса «технического» токена на аккаунте может служить удобным ограничителем, когда у атакующего просто не хватит средств на полномасштабную атаку, а также позволит более гибко регулировать доступ и нагрузку на сеть.
Варианты имплементации
Планируя свой блокчейн, надо понять, можно ли использовать готовое решение или стоит создать все с нуля, полностью контролируя код.
Блокчейн — это мир открытого ПО. Закрытый код в нем практически невозможен — криптографические протоколы давно создаются на открытых международных конкурсах, а реализациям с закрытым кодом мало кто доверяет из-за больших рисков.
Используйте то, что создали программисты до вас. Крайне велика вероятность, что ваши задачи уже решали, обсуждали и проверяли, поэтому не стоит тратить на них лишние усилия.
Если же вы решили делать свой консенсус, связанный с сетевым взаимодействием, или вы используете новые криптографические концепции, которые архитектурно не укладываются в традиционный дизайн блокчейнов; если вы собираетесь обойти все существующие решения по производительности, экономя каждый бит; если транзакции в вашем блокчейне настолько специфические, что ничего подобного в мире не существует… Тогда ваш путь — блокчейн с нуля.
Подписывайтесь на канал Forklog в YouTube!
Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER
Обзор: алгоритмы консенсуса в блокчейне
Одним из наиболее важных функций криптовалютного проекта алгоритм является алгоритмом нового консенсуса. Консенсусный алгоритм предотвращает проблему с двойными расходами, так как крипто-конверсии реализуются в форме общедоступных децентрализованных регистров, блокчейн — децентрализованная система, в которой нет центральной власти, но есть вопросы по принятию решений.
Консенсусные алгоритмы обеспечивают тестирование транзакций через точность проведенных действий. В рамках блокчейн-проектов выделяют четыре алгоритма консенсуса, каждый из которых имеет свои уникальные преимущества.
Proof-of-Work (PoW) был первым успешным децентрализованным алгоритмом консенсуса в блокчейне. PoW используется в Bitcoin, Ethereum (Ethereum может перейти на Proof-of-Stake), Litecoin, ZCash, Monero и на многих других платформах.Самый известный алгоритм следующим образом: в начале сети отправляют друг другу цифровые токены, затем все произведенные транзакции собираются в блоках и записываются в распределенный открытый реестр — блокчейн.
В PoW все транзакции доказаны с помощью трудных математических вычислений, достоверности может перепроверить любой пользователь сети. Майнеры решают задачу, формируют новый блок и подтверждают транзакции. Задачи с каждым разом становятся сложнее, так как количество пользователей растет.Хэш каждого блока содержит хэш — выходные данные предыдущего блока. Это повышает безопасность системы, и порядок созданных блоков нарушить невозможно. Пользователь должен первым числом правильно определить «nonce» — добавленное в конец строки для того, чтобы создать хеш, который начинается с необходимого количества нулей. Если майнер сумел решить задачу, формируется новый блок: в нем размещается очередной комплект транзакций, и они считаются подтвержденными.
Консенсусные алгоритмы обеспечивают тестирование транзакций через точность проведенных действий.В рамках блокчейн-проектов выделяют четыре алгоритма консенсуса, каждый из которых имеет свои уникальные преимущества.
Этот алгоритм является честным и понятным, ему можно доверять. Однако у PoW есть главный недостаток — потребление огромного количества энергии. В 2017 году на полное оформление одной транзакции в системе Биткойн требовалось затратить в среднем 163 кВт / ч энергии. Таким образом, можно в течение пяти с половиной дней полностью обеспечивать нужды семьи из трех человек, проживающая в небольшом одноэтажном доме.Кроме того, те майнеры, которые обладают более быстрыми и мощными ASIC, получают больше, чем остальные. В результате этого биткоин оказывается не таким децентрализованным, как задумывалось изначально.
Proof-of-Stake для всех реализаций транзакций транзакций требует от участников группы монет, которые они хранят в сети. PoS является альтернативным механизмом PoW, впервые реализованным в 2012 году в криптовалюте PPCoin (переименована в PeerCoin). Идея Proof-of-Stake заключается в решении проблемы Proof-of-Work, используемой большими затратами на электроэнергию.
Достоверность произведенных транзакций подтверждают валидаторы. Преимущество PoS заключается в том, что он более эффективно предотвращает атаки, чем PoW.
Валидаторы ставят свои монеты на транзакции путем блокировки монет. Микшер, который используется для завершения блока, выбирается измено значению, поставленному в сети. Proof-of-Stake предотвращает плохое поведение в сети с помощью перекладывания полномочий по проверке самых активных и интересующихся пользователей.Алгоритм консенсуса доказательства владения используется в Peercoin, Decred и вскоре будет функционировать на Ethereum, в котором заранее прописывался переход с одного алгоритма на другой.
Делегированное подтверждение доли Делегированное доказательство доли участия (DPoS), которое было разработано Дэниелом Ларимером в 2014 году, только внешне похоже на имя Proof-of-доли, поскольку детали реализации двух алгоритмов отличаются друг от друга. В DPoS вместо ставок на монеты для транзакций держатели токенов в ходе голосования выбирают валидаторов транзакций, которые будут формировать блоки.Вес каждого голоса определяется суммой активов голосующего. Держатели монет, могут перевыбирать кандидатов. Благодаря этому можно достичь высокой устойчивости сети. Если большая часть исполнителей вышла из строя, то сообщество тут же проголосует за их замену.
DPoS остается децентрализованным в том смысле, что все пользователи в сети участвуют в выборе тех нодов, которые проверяют транзакции, но централизован этот алгоритм консенсуса из-за, что все решения принимает небольшую группу.Реализации DPoS постоянный процесс голосования и систему перетасовки, которая выбирает рандомных валидаторов. Работоспособность системы заключается в отборе ценных бумаг для сети участников и в удалении бесполезных, поэтому весь алгоритм зависит от активности участников.
DPoS используется Steemit, EOS и BitShares. Новый крипто-проект Minter от блокчейн-сообщества DeCenter основан на алгоритме консенсуса делегированного подтверждения подтверждения.
Византийская отказоустойчивость (византийская отказоустойчивость) носит весьма технический характер (как и другие консенсусные алгоритмы).Целью BFT является установление доверия между несвязанными сторонами сети. Концепция данного алгоритма консенсуса была представлена в научной работе Лесли Лэмпорта, Роберта Шостака и Маршала Писа еще в 1982 году.
BFT позволяет валидатора совершать быстрые транзакции, выполнять каждую транзакцию друг с другом, чтобы получить правильную запись и обеспечить честность. Данный алгоритм реализует компанию Ripple, где валидаторы выбираются фондом Ripple, и Stellar, где любой может быть валидатором — доверие сообществом.В отличие от блокчейнов, основанных на PoW, блокчейны BFT не подвергают нападению, если только сами пользователи сети не координируют атаку. BFT действует выгодным алгоритмом, поскольку он масштабирует транзакции с низкой стоимостью, но, как и DPoS, внедряет компонент централизации.
Проблема алгоритмов консенсуса и транзакций очень сложна и имеет много нюансов. Более согласованные алгоритмы, которые находят разные комбинации компромиссов, скорее всего, будут представлены в будущем и заменят текущий набор алгоритмов.
Например, сейчас набираютность направленного ациклического графа (DAG), и, возможно, в ближайшем будущем будут включены в блокчейн-проект, потому что они могут выступить в качестве потенциального решения проблем, связанных с масштабируемостью. DAG — ориентированный граф с данными на основе топологической сортировки. Его развитие идет только в одном направлении — от ранних блоков к поздним. Из-за безблочного устройства транзакций совершаются в сетях DAG, поэтому этот процесс занимает намного меньше времени, чем в случае блокнов, основанных на PoW и PoS.В сети DAG нет майнеров. Подтверждение происходит непосредственно в транзакциях, которые происходят почти мгновенно.
Интересным с точки зрения экономики платформы является доказательством важности (PoI). Алгоритм консенсуса используется в блокчейне NEM. Значимость пользователя каждого в сети определяет средства, указанные в его проводимых транзакциях. В отличие от PoS, который учитывает платежные средства у пользователя, PoI принимает в расчет количество средств и активность пользователя в блокчейне.Такой подход побуждает активно использовать те средства, которые хранятся на счет.
Большинство представителей, несмотря на обилие алгоритмов консенсуса, по-прежнему используют Proof-of-Work, Proof-of-Stake и их модификации. Одним из наиболее оптимальных алгоритмов консенсуса Delegated Proof-of-Stake, плюсы которого заключаются в увеличенной скорости подписания блоков и большей энергоэффективности за счет ограниченного количества подписантов.
В настоящее время алгоритмы консенсуса должны находить компромисс между масштабируемостью и степенью централизации.Остается наблюдать за тем, как приспособятся к реалиям, а сообщества адаптируются к внедрению технологических разработок. Кто сможет лучше всех остальных простимулировать широкомасштабное участие и стабильное управление проектами — покажет время.
Адаптация материала с Hackernoon.
.
Блокчейн технология, Применение Blockchain, Проекты — BitcoinWiki
Это утверждённая версия страницы. Она же — наиболее свежая версия.
Понравилась статья? Поделись:
Блокчейн ( blockchain или blockchain — «цепочка блоков» ) — публичная база всех транзакций, когда-либо совершенных в системе Bitcoin. Используя эту базу, каждый пользователь имеет возможность узнать, какое количество биткойнов принадлежит какому-либо конкретному адресу в определенном отрезке времени.База данных с помощью распределенных данных майнеров.
Технология Блокчейн [править]
Каждый созданный блок содержит хэш предыдущего. Таким образом создается цепочка блоков, которая берет начало от так называемого блока генезиса (первый блок в системе Биткойн) до последнего найденного системы блока. Редактировать в блоке, который находится в цепи уже продолжительное время — не практично, так как в таком случае пришлось редактировать информацию во всех блоках.Благодаря этим свойствам атака с двойным расходом (повторная трата уже израсходованных средств) в системе биткойн практически не выполнима.
Честные майнеры всегда строят свой блок на последнем существующем, находясь на него. Продолжение цепи считается действительным, если в нем есть информация о всех предыдущих звеньях цепи и начинается оно с генезис-блоком.
Принцип работы технологии блокчейн можно сравнить с работой в сети Интернет. Вы размещаете в сети какую-либо информацию, и пользователи Интернета могут получить к ней доступ независимо от места своего нахождения.Так и здесь: информацию, содержащуюся в блоке цепочки, могут получить все пользователи сети, которые имеют доступ к ней, в любой точке мира. Чтобы получить доступ к этой информации, вы должны иметь специальный закрытый ключ, который создан согласно криптографическому алгоритму. Это делает хранение данных в цепочке блокчейн защищенным и полностью безопасным.
Чтобы передать кому-либо денежную сумму, хранящуюся в блоке цепочки, достаточно передать пользователю системы этот закрытый ключ.В обороте биткоинов такой закрытый ключ открывает доступ к закрытой доступной сумме в криптовалюте и представляет собой финансовую ценность. По сути это способ регистрации произведенных в криптовалюте транзакций, которые производит в обычной жизни банковская система.
Посредством внедрения технологии блокчейн между пользователями сети устанавливаются доверительные отношения, за предоставленный ключ не внес изменения в цепочку из блоков.Любые неподтвержденные закрытые ключими изменения отклоняются системой. Теоретически, закрытый ключ может быть украден. Защита его от такой вероятности с помощью нескольких строчек компьютерного кода не представляет особой сложности. Защитить же от кражи физическую валюту намного сложнее.
Алгоритм Блокчейн [править]
Блокчейн — что это такое? Для чего нужна технология Blockchain, проекты на цепочке блоков
Алгоритм работы блокчейн заключается в процессе шифрования данных (хеширование), который осуществляет компьютерная сеть, состоящая из большого количества компьютеров.Данные распределяются между участниками сети по принципу торрентовой раздачи файлов.
Компьютеры производят расчёты, получают определенный результат и присваивают блоку данных уникальную подпись (сигнатуру) — это что-то вроде отпечатка пальца. Реестр обновляется и образовывается новый блок данных, изменить который невозможно в дальнейшем. А значит, невозможно их подделать. Единственная возможная в блоке операция — это добавление в него новых записей. Реестр обновляется одновременно на всех компьютерах сети.
История [править]
Концепция блокчейна была предложена Сатоши Накамото в 2008-ом году. Впервые реализована она была в 2009-ом году в качестве компонента криптовалюты — биткоина. В этом случае с помощью технологии блокчейн регистрировались все транзакции, производимые с биткоинами. Именно блокчейн позволил исключить из системы оборота биткоинов третью сторону — центральный сервер, банк или другой авторитетный орган.
У любого блока из цепи есть только один путь к блоку генезиса.В свою очередь, цепь генезиса может разделиться на несколько, образуя таким образом форк (англ., «Вилка»). Форки, состоящие из одного блока, — это довольно распространенное явление. Они образуются, если несколько узлов «нашли» блок с разницей в несколько секунд. Когда такое происходит, остальные узлы начинают строить дальнейший блокчейн на блоке, который пришел им первым. Когда какой-либо из двух блоков получает продолжение — его цепочка считается главной в цепочке блоков, поскольку она становится длиннее.
Блоки, которые не являются главной главной цепочкой блоков, не используются. Так же за них не начисляется награда. Такие блоки называются «orphan-блоки» («орфаны»). Так как в блоке может быть ссылка только на один предшествующий блок, объединить 2 различные цепи невозможно.
Блокчейн-проекты [править]
- Ethereum — распределенная вычислительная платформа с открытым исходным кодом, основанная на блокчейне функциональных возможностей смарт-контрактов.С ее помощью можно создать децентрализованные онлайн-сервисы. Концепцию единой децентрализованной виртуальной машины в 2013 году российско-канадский программист Виталик Бутерин. Сеть работает с 30 июня 2015 года после краудфандинговой кампании, которая позволила привлечь $ 18 439 млн.
- Waves Platform — это криптовалютный проект, запущенный российским предпринимателем Александром Ивановым в 2016 году. Кампания по запуску Блокчейн-платформа Waves собрала 16 миллионов долларов, достигнув крупнейшего по привлечению средств через краудфандинг.
Классификация блокчейнов [править]
Изначально блокчейн-технология предполагает полную свободу и независимость цепи, в которой нет единого администратора. Однако интерес к новой технологии со стороны компаний и финансовых институтов привел к появлению более централизованных форм блокчейна, когда при сохранении распределенных данных присутствует централизованная система контроля.
Такие трансформации позволяют говорить о разных блокчейна:
- публичный блокчейн;
- блокчейн, который принадлежит консорциуму;
- полностью частный блокчейн (классификация создателя платформы Ethereum Виталика Бутерина).
Они обладают уровнем доступа к информации участников блокчейн-сети, а также их влиять на ее развитие.
Публичный блокчейн [править]
К публичному блокчейну (публичный блокчейн) может получить доступ любой человек в мире. Это означает, что он может транзакции транзакций и ожидают их включения, если они действуют, а также участвуют в процессе консенсуса, то есть определения того, какие блоки добавляются в цепочку.
В отличие от обычных экономических систем, которые жестко регламентированы и так или иначе управляются централизованно, публичные блокчейны защищены принципами криптоэкономики.Криптоэкономика на основе экономических стимулов и криптографической проверки данных. Согласно этому принципам, влияние на консенсус при принятии решения пропорционально объему экономических ресурсов.
Такие системы обычно считаются «полностью децентрализованными».
Блокчейн, принадлежащий консорциуму [править]
Консорциумные блокчейны (блокчейны консорциума) контролирует заранее выбранным набором узлов. Виталик Бутерин в качестве примера приводит систему из 15 финансовых учреждений, которые подтверждают каждый блок, чтобы его признали действительным и добавили в цепь.
Право читать блок-цепочку может быть общедоступным, либо ограничено участниками. Возможны «гибридные» системы, когда корневые хэши блоков являются общедоступными, но все члены подтвержденных блокчейнов могут совершать ограниченное число запросов и транзакций некоторых частей блокчейна.
Такие цепи можно назвать «частично децентрализованными».
Частный блокчейн [править]
Полностью частный блокчейн (полностью частные блокчейны) — это цепочка блоков, в которой запись новых блоков закреплена только за одной организацией.Разрешение на чтение может быть общедоступным или ограниченным в той или иной степени.
Возможны дополнительные опции как управление базами данных, аудит и т. д. внутри одной компании, когда во многих случаях общедоступность достигнута не нужной. Хотя без нее не обойтись, когда требуется публичный отчет о деятельности.
Применение технологии [править]
Блокчейн — это база данных, которая представляет собой цифровой реестр выполненных сделок, транзакций, выполненных контрактов.Иными словами, с помощью сети блокчейн можно хранить любые версии, которые нуждаются в отдельных записях и возможности проверки в будущем — начиная с окончательного учёного заключения и расторжения браков.
Преимущество хранения данных таким образом заключается в том, что реестр данных распределён по сотням и тысячам компьютеров всего мира, а не хранится на каком-то одном сервере. Благодаря этой информации, хранящаяся в реестре, остаётся прозрачной и всегда актуальной для всех пользователей этой сети.
Прежде всего, технология блокчейн применяется на рынке криптовалют. Но сегодня ее использование заинтересовались и традиционные финансовые учреждения. С помощью блокчейна основных банковских функций — подтверждение и регистрацию — осуществлять удобно. Также блокчейн можно широко использовать для финансирования стартапов и различных сервисных операций.
Ещё один способ использования сети блокчейн — это заключение контрактов и договоров, не требующих участия юристов и бюрократических волокиты.Кроме того, с помощью этой технологии очень удобно подтверждать авторские права художникам и творческим людям. Иными словами, применить технологии блокчейн сегодня можно в самых различных сферах — от торговли до голосований на выборах.
Технология распределенного регистра уже сегодня активно используется в разных государствах. С помощью блочной решимости самые серьезные задачи. Ведь некоторые отрасли внедрения блокчейна уже сегодня преобразованы, более эффективными и безопасными.
В первую очередь, блокчейн был испытан в сфере государственных услуг и документооборота. Флорида ведомство, занимающееся сборми налогов, с платформой BitPay начала осуществления транзакций в Биткоинах и Bitcoin Cash. Таким образом, граждане США могут оплатить сборы за водительские права, имущество и другие документы в цифровых монетах.
Национальное агентство публичного реестра Грузии, на своем сайте предложило посетителям ряд блокчейн-опций, среди которых есть возможность заказывать выписку по существующим объектам недвижимости.В течение нескольких месяцев услуга предоставлена и действует спрос среди населения.
Крупную сделку осуществили голландский банк ING Bank и международный финансовый конгломерат HSBC. При доставке товара из Аргентины в Малайзию была применена технология блокчейн в платформе R3 Corda. Это разрешить исключить оформление каких-либо разрешений и документов. В России подобную сделку осуществили Альфа-банк и авиаперевозчик S7.Благодаря мгновенному обновлению информации в сети финансовых операций быстрее и безопасней.
Поделиться информацией в сети Интернет сегодня привычное дело для каждого. Однако, когда дело осуществления валютных операций или передачи каких-либо других ценностей, мы обращаемся к централизованной финансовой системе — банкам. И, несмотря на то, что сегодня существуют различные электронные способы оплаты (PayPal, WebMoney, ЯндексДеньги), использовать их в отрыве от банковской системы не представляется возможным — для обналичивания денежных средств вам всё равно потребуется кредитная карта или расчётный счёт.
Благодаря технологии блокчейн можно избавиться от участия в финансовых операциях третьих сторон (в данном случае, банков). В системе блокчейн личности успешно реализована возможность аутентификации, регистрации и заключения контрактов. На сегодняшний день самым большим рынком по капитализации является рынок финансовых услуг, поэтому данные функции блокчейна имеют огромное значение. Эффективность финансовых услуг улучшится.
Возможность контрактов принесёт большую пользу в нефинансовую сферу. С помощью блокчейн можно будет вводить в оборот новые криптовалюты, хранить любые виды информации, а также использовать управление интеллектуальной собственности. Всё это делает возможности применения механизма блокчейн в будущем очень перспективными и практически бесконечными.
См. также на BitcoinWiki [править]
https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/
https: // www.gov.uk/government/uploads/system/uploads/attachment_data/file/492972/gs-16-1-distributed-ledger-technology.pdf
http://www.coinfox.ru/novosti/obzory/5473-kakie-byvayut-blokchejny-i-pochemu-vazhno-ikh-razlichat
https://24paybank.org/news/blokchejn-mir-gde-primenjajut-decentralizovannuju-tehnologiju-na-segodnjashnij-den-.html
.
о хеш-функциях, ключах и цифровых подписях / Блог компании Bitfury Group / Хабр
Криптография — это сердце блокчейна, которое обеспечивает работу системы. Архитектура блокчейна предполагает, что доверие между участниками сети базируется на принципах математики и экономики, то есть формализованным. Криптография также гарантирует безопасность, основанную на прозрачности и проверяемости всех операций, а не на традиционном для индустрии ограничении видимости системы (безопасность периметра).
Различные криптографические техники гарантируют ввод данных журнала транзакций блокчейна, решают задачи аутентификации и контролируют доступ к сети и данным в блоке в целом. В сегодняшнем материале мы поговорим о хеш-функциях, ключах и цифровых подписях.
/ изображение BTC Keychain CC
Хеш-функции
Хеширование — это процесс преобразования входных данных произвольной длины в (выходную) битовую последовательность установленной длины.Например, хеш-может функция принимать строку с любым числом знаков (одна буква или целое литературное произведение), а на выходе получать строку со строго определенным числом символов (дайджест).
Хеш-функции имеются практически на любом языке программирования. Например, они используются для реализации хеш-таблиц и множеств (HashMap / HashSet в Java, dict и set в Python, Map, Set и объекты в JavaScript и так далее). Отдельная категория хеш-функций — криптографические хеш-функции. К ним представлены более строгие требования, чем к функциям, обычно используемым в хеш-таблицах.Поэтому и применяются они в более «серьезных» случаях, например для хранения паролей. Криптографические хеш-функции вырабатываются и проверяются исследователями по всему миру.
Поэкспериментировать с хеш-функции, написав простую программу на Python:
import hashlib
def hash_hex (сообщение):
вернуть hashlib.sha256 (message.encode ()). hexdigest ()
Функция hash_hex () рассчитывает представление хеша в шестнадцатеричной записи для строки.В приведенном примере используется функция SHA-256 — та же, что и в битке.
Хорошая хеш-функция обеспечивает защиту от коллизий (получить два одинаковых хеша при разных начальных данных) и обладает так называемым эффектом лавины, когда малейшее изменение входных данных значительно преобразует выходное. Эффект лавины в хеш-функциях SHA-256 выглядит следующим образом:
>>> hash_hex ('Blockchain')
'625da44e4eaf58d61cf048d168aa6f5e492dea166d8bb54ec06c30de07db57e1'
>>> hash_hex ('блокчейн')
'ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1'
>>> hash_hex ('Bl0ckchain')
'511429398e2213603f4e5dd3fff1f989447c52162b0e0a28fe049288359220fc'
Хеш-функции в блокчейнах гарантируют «необратимость» всей цепочки транзакций.Дело в том, что каждый новый блок транзакций упоминается на хеш предыдущего блока в реестре. Хеш самого блока зависит от всех транзакций в блоке, но вместо того, чтобы передать двоичные функции хеш-функции, они собираются в одно хеш-значение при помощи дерева с хешами (Меркла). Таким образом, хеши используются как замена указателям в обычных структурах данных: соответствующих списках и двоичных деревьях.
За счет использования хешей общего состояния блокчейна — все когда-либо выполненные транзакции и их последовательность — можно выразить одним-единственным числом: хешем самого нового блока.Поэтому свойство неизменности хеша одного блока гарантирует неизменность всего блокчейна.
Ниже приведена рекурсивная реализация дерева Меркла, используемая в биткойне, на языке Python (по ссылке вы найдете примеры работы). На вход функции предлагается список хешей транзакций. На каждом этапе последовательные пары хешей склеиваются при помощи хеш-функции; если хешей нечетное число, то последний дублируется. В результате остается единственным хешем, который является конечным хеш-значением для всего списка.
импорт hashlib
def merkle_root (lst):
# Биткойн использует для склеивания хешей два прогона SHA-256 и изменение
# порядка байтов. Зачем, не до конца понятно.
sha256d = лямбда x: hashlib.sha256 (hashlib.sha256 (x) .digest ()). digest ()
hash_pair = лямбда x, y: sha256d (x [:: - 1] + y [:: - 1]) [:: - 1]
если len (lst) == 1: вернуть lst [0]
# Дублирование элементов в дереве приводит к интересной уязвимости -
# получается, что различные списки транзакций иметь один и тот же хеш.# По этой причине в биткойне есть специальный комментарий,
# предостерегающий разработчиков новых криптовалют:
# https://github.com/bitcoin/bitcoin/blob/master/src/consensus/merkle.cpp#L9
если len (lst)% 2 == 1:
lst.append (lst [-1])
return merkle_root ([hash_pair (x, y)
для x, y в zip (* [iter (lst)] * 2)])
Хеш-деревья имеют много применений помимо блокчейнов. Они используются в файловых системах для проверки целостности файлов, распределенных БД для синхронизации копий и в управлении ключами для надежного журналирования выдачи сертификатов.Git использует обобщение хеш-деревьев — деревья ациклические графы на основе хешей. В блокчейне хеш-деревьев продиктовано соображениями производительности, как они делают существование «легких клиентов», которые обрабатывают лишь малую часть транзакций из блокчейна.
Цифровые подписи
Цифровые подписи в блокчейнах базируются на криптографии с открытым ключом. В ней используются два ключа. Первый — закрытый ключ — нужен для формирования цифровых подписей и хранится в секрете.Второй — открытый ключ — используется для проверки электронной подписи. Открытый ключ вычислить на основе закрытого ключа, а вот обратное преобразование требует невозможного на практике объема вычислений, сравнимого с брут-форсом.
Существует множество различных криптографии с открытым ключом схем. Две самые популярные из них — это схемы на основе разложения на множители (RSA) и схемы на основе эллиптических кривых. Последние более популярные в блокчейнах из-за меньшего размера ключей и подписей.Например, в биткойне используется стандарт эллиптической криптографии ECDSA вместе с эллиптической кривой secp256k1. В ней закрытый ключ имеет длину 32 байта, открытый — 33 байта, а подпись — около 70 байт.
Общая идея выглядит подписей с открытым ключом следующим образом. Предположим, что Алиса хочет перевести Бобу один биткойн. Для этого она формирует транзакцию, где записывает, откуда его брать (указание на предыдущую транзакцию, в которой Алиса получила биткойн от кого-то еще) и кому отправить (открытый ключ Боба).Алиса знает открытый ключ Боба из сторонних источников — Боб может послать его Алисе через мессенджер или даже опубликовать его на сайте.
Затем Алиса подписывает транзакцию, используя свой секретный ключ. Любой узел в биткойн-сети может проверить, что транзакция подписана определенным открытым ключом (аутентификация), с которым для выполнения транзакции был ассоциирован один биткойн (авторизация). Если эти условия выполнены, то переведенный биткойн начинает ассоциироваться с открытым ключом Боба.
в блокчейне нет центрального узла, может авторизовать произвольные транзакции, безопасность системы децентрализованной, вероятность успешного вмешательства в работу блокчейна снижается практически до нуля.
Таким образом, блокчейн использует цифровые подписи для аутентификации и обеспечения целостности транзакций (и иногда блоков). В случае криптовалюты процесс аутентификации означает, что они были посланы другим, более ранней, транзакцией.Особенность блокчейна состоит в том, что информация об аутентификации «вшита» в каждой транзакции, а не отделена от бизнес-логики, поэтому блокчейн считается более защищенным. В обычной системе можно взломать или административно обойти механизм аутентификации и провести манипуляции с бэкэндом, а в блокчейне этого сделать не получится по определению.
П.С. В наших следующих постах мы планируем затронуть такие моменты, как смарт-контракты и алгоритмы консенсуса, а также поговорить о том, что будет означать распространение квантовых компьютеров для блокчейна .
P.P.S. Немного дополнительных источников:
.
что это простыми словами. Обзор и описание
Блокчейн — это одна из главных технологических разработок 21 века, способная в корне перевернуть процедуры управления деньгами, документами, ценностями. Она стирает границы, убирает посредников и комиссии. Что же это за чудо-изобретение?
Содержание статьи
Технология Блокчейн — что это?
По своей сути Блокчейн напоминает картотеку, в которую строго последовательно добавляются новые записи обо всех произведенных действиях.Только здесь эта информация надежно зашифрована, исключая постороннее вмешательство.
А чтобы еще больше обезопасить «картотеку», ее многократно копируют и размещают в разных местах. Тогда даже при утере одной копии, ее легко восстановить из остальных. А кроме того, новая вносимая информация, пройдя проверку правильность, тоже мгновенно добавляется в копию. Подробнее о принципе работы смотрите в соответствующем разделе.
Посмотрите интересную лекцию о технологии Blockchain от основателя платформы Ethereum Виталика Бутерина:
История возникновения Blockchain
Блокчейн впервые был применен в системе Биткоин, изобретенной в 2008 году, хотя первые наработки появились за 17 лет до этого .Авторские первоначальные идеи приписывают У.С.Шторнетту и С.Хаберу, которые в 1991 году проводят эксперименты с использованием закрепленных крипт цепочкой блоков, а также пробовали объединить эти файлы в блоки.
Однако до 2008 года особого интереса не вызывало. Так что именно Сатоши Накамото, создавался Биткойн, подтолкнул технологии к активному развитию, а следом подхватила масса других программистов.
Принцип работы технологии
В переводе с английского языка Blockchain означает «цепь блоков» .Это некая база данных, представляющая собой неразрывную цепочку блоков, расположенная одновременно на тысячах устройств. В цепи постоянно добавляются новые блоки, содержащая информацию о произведенных за последнее время действиях (называемых сообщениями) и заголовок.
Под транзакциями понимают любые действия, совершаемые участники сети. Это отправка денежных средств, установление прав собственности, покупка виртуального контента и пр.
Видео о том, как Блокчейн от биржи Binance:
Когда транзакция только создана, она ставится в очередь (мемпул) и ждет там, пока ее правильность подтвердят путем добавления в блок.Сформированный блок проверяется остающимися участниками системы, и, если нарушения не найдено, встает в конец цепочки. После этого момента его уже невозможно изменить.
Кроме новой информации, в блоке хранятся зашифрованные данные о предшествующих блоках. База автоматически обновляется на всех переходных устройствах, находящихся в составе системы, после чего валидаторы (то есть майнеры) в генерации следующего блока.
Ключевые принципы технологии блокчейн:
- Распределенность и децентрализация;
- Высокий уровень безопасности и защиты от мошеннических действий;
- Прозрачность;
- Неизменность внесенных данных.
Блокчейн обещает множество проблем оборота денег в современном мире. Ведь по сути открытая распределенная бухгалтерская книга, умеющая регулярно и высокоэффективно вносить в себя информацию о популярных используемых действиях.
Применение технологии Блокчейн
С Blockchain мы можем вообразить себе мир, где все операции производятся на цифровом уровне и хранятся в прозрачных общедоступных базах данных. Они защищены от подделки или удаления. В таком мире каждый процесс и каждая сделка, каждый платеж и каждая задача обзавелись цифровой подписью, доступной для идентификации и проверки.Больше не понадобятся посредники, такие как банкиры и брокеры. Огромный потенциал блокчейна заключается в возможности для отдельных лиц и свободно взаимодействовать напрямую между собой.
Только ленивый не слышал о том, что Блокчейн произвел революцию в сфере бизнеса и перевернет всю мировую экономику с ног на голову. Однако в этом есть не только плюсы.
В первую очередь опасения вызывают вопросы безопасности. Известно во многих случаях хакерских атак на блокчейн-проекты.И виновата в этой не технология, а ее неправильная или неполноценная реализация. К сожалению, из-за молодости самой идеи, пока очень мало блокчейн разработчиков, тем более с опытом.
Мировое внедрение блокчейна разом обрушит десятки барьеров — организационных, управленческих, технических, социальных. Поэтому каждый шаг должен быть осмысленным.
Практическое использование
Наиболее известное применение Blockchain — это криптовалюта. Но на самом деле диапазон не ограничивается только финансовыми инструментами.Несколько эффективного использования технологий:
- Распределенное хранение файлов. Облачное хранение информации сейчас очень актуально, многие пользуются Google или Яндекс дисками. Но на основе технологии блокчейн есть возможность хранить данные в p2p сети на распределенной основе. Так файлы надежно защищены от хакерских атак. Работа осуществляется по принципу торрентов. Пример такой системы —
- Идентификация. На основе блокчейн любая компания может разработать свой личный тест для идентификации пользователей.Таким образом ID сможет заменить логины и пароли для различных сервисов, а также с помощью его можно будет оставить электронную подпись. Проекты, уже представившие такие наработки: ShoCard, Keybase, Onename.
- Верификация и регистрация. Таким же образом, как сохраняются транзакции в сети Биткоин, может сохраняться любая другая информация. Образуется надежное хранилище данных, свободное от управления единым центром передачи третьим лицам. Подобные услуги есть у Factom, Tierion. А потенциал безграничен: ведение больничной документации, подтверждение авторских прав, регистрация транспортных средств, запись гражданских состояний (таких как рождение брак, бракосочетание) и многое-многое другое.
- Использование смарт-контрактов. В блокчейне Эфириум активно используется смарт-контрактов — программно, автоматически отслеживая выполнение событий и закрывающихся в момент. В сочетании с блокчейном такой функционал подходит для множества видов сделок купли-продажи, сдачи в аренду, оплаты интеллектуальной собственности. На практике к использованию такой схемы обратилась английская певица Imogen Heap.
- Отслеживание доставки, определение происхождения.Любой производственный процесс связан с доставкой сырья или продукции из разных мест. Образуется цепочка поставки, зачастую сложная для установки. Блокчейн помогает и здесь. Некоторые компании (Everledger, Provenance) уже используют им для проверки сырья. Это уменьшение использования шанс подделки.
- Услуги нотариуса. Блокчейн позволяет значительно облегчить и удешевить нотариальные услуги. С его помощью можно без проблем формировать новые записи и точность любого документа.Подобным образом организована работа компаний Blockverify и Stampery, которые занимаются проверкой многих вещей — от фармацевтических препаратов до сообщений электронной почты.
- Интернет-голосование. Одна из проблем открытых голосований в Сети — отсутствие должного уровня анонимности. Другой нюанс — возможность зайти с другого аккаунта или IP-адрес и проголосовать повторно, то есть имеет место накрутка голосов. Блокчейн разом решает обе проблемы, а кроме того, исключает подтасовку голосов владельцами ресурса.Метод уже был использован датской партией Либеральный альянс в процессе внутренних выборов (2014 год).
- Независимый рынок электроэнергии. Есть возможность разработать систему, в которой каждый отдельно взятый дом для вырабатывать свое электричество, а излишки пускать на продажу. В мире уже довольно много зданий, которые обзавелись собственными возобновляемыми источниками энергии вместо того, чтобы зависеть от услуг электрической компании.
- Страхование. Блокчейн + смарт-контракты + IoT (интернет вещей) = революция в сфере страхования.Достаточно зарегистрировать договор в форме смарт-контракта и вставить его в блокчейн автоматически при наличии заданных условий. Так дома, машины и другие вещи, подключенные к сети посредством IoT, смогли сами определить случившееся с их происшествием, проанализировать и произвести нужную выплату страхователю.
- Усовершенствование работы интернета. В настоящий момент все DNS-серверы планеты контролируются правительством и крупными компаниями, крайне уязвимы перед лицом цензуры, шпионажа, злоупотребления властью.Экспериментальный проект NameCoin пробует разворачивать собственную децентрализованную версию DNS, свободную от какого-либо управления.
Использование технологий Блокчейн в криптовалютах
В сфере криптовалют Blockchain помогает грамотно распределять цифровые силы между людьми или компаниями. Чтобы в полной мере понять его роль, давай представим, что Биткойн работает не на блокчейне.
Допустим, у пользователя есть монета с уникальным идентификатором. Она привязана к своему владельцу.Далее человек захотел пойти и купить за 1 BTC телевизор в магазине, принимающем оплату криптой. А еще — дать 1 BTC в долг своему другу. Однако на счету у него лишь одна монета. Теоретически, он мог бы перечислить ее и магазину, и другу. Такой вид мошенничества называется «двойными тратами».
В случае с блокчейном такое событие исключено — блоки собирают записи о проведенной транзакции, и дальнейшее использование уникального денежного актива возможно только после закрытия блока.
Пока блокчейн не массово распространен, мы вынуждены проверять транзакции на основе банков и других финансовых посредников. Это сопряжено с большими операциями и замедлением операций.
Как функционирует Блокчейн Биткоина, Эфириума
Рассмотрим более детально процесс работы блокчейна Биткойн, Эфириум , а также функцию умных контрактов.
Блокчейн Биткойн
Для примера возьмем короткий блокчейн из пяти блоков.Каждый следующий хранит в себе информацию о хэше предшествующего. Предположим, что в третий по счету блок внесены изменения. Тогда он, как и все последующие, стал недействительным. Следовательно, беспрепятственно внести изменения мы можем только в блок №5. Чтобы он после этого действительным, необходимо подобрать соответствующий хэш. Для этого нужен майнинг.
Таким образом Блокчейн оказывает сопротивление внедрению посторонней информации. Со временем цепочка удлиняется, и с каждым новым блоком будет всё труднее изменить старые блоки.
Блокчейн Биткоина сформирован из узлов, каждый из которых являет собой точную копию всей цепи. Чтобы определить, верна ли наша копия цепочки, нужно произвести сравнение с другими узлами. В соответствии со всеми принципами демократии, каких одинаковых узлов будет больше, тот вариант и верен.
Блокчейн Ethereum
Блокчейн Эфира по сути представляет собой систему состояния транзакций. Такое понятие существует в информатике, и подразумевает систему, которая анализирует входящие данные и на основе последней единицы информации совершает преобразование в новое состояние.
Все процессы в так называемой машине состояний Ethereum на старте находятся в «солнечном состоянии». Это состояние до того момента, как в сети начнутся какие-либо действия и транзакции. Тогда первоначальное состояние меняется на «конечное», и, взглянув на конечное состояние в каждый момент времени, можно определить текущее состояние сети Эфира.
Общее состояние Ethereum включает в себя миллионы транзакций, объединенных в блоки. Блокчейн строится по тому же принципу, что и в Биткоин.Корректность транзакций подтверждается путем майнинга. Стать майнером может любое устройство, подключенное к сети. Тот, чьему устройству решить математическое, подобрав хэш, получает награду в виде цифровых монет ETH.
Кошелек Блокчейн
Под понятием «Блокчейн кошелёк» в большинстве случаев имеется ввиду онлайн сервис blockchain.com. Он позволяет хранить и совершать операции с криптовалютой: Bitcoin, Ethereum, Stellar, Bitcoin Cash. Также, он является обозревателем блокчейн-блоков сети.
Вы можете узнать информацию о любом адресе, проверить статус транзакции, узнать комиссию, сложность майнинга, курс криптовалюты, хэшрейт и т.д.
Сервис Blockchain зарегистрирован в Люксембурге и работает с 2011 года. За всё время число созданных криптовалютных кошельков превысило 30+ млн.
Смарт-контракты
Смарт-контракт — это протокол, служий для помощи в реализации сделок и их проверки. Умные контракты предоставляют собой удобный способ совершения безопасных сделок без привлечения посредников.В смарт-контракте содержится подробная информация об условиях договора и запрограммировано автоматическое выполнение. Транзакции, совершенные при помощи этой технологии, необратимы.
Впервые идея увидела свет еще в 1994 году, придумал ее криптограф-программист Ник Сабо. Он сформулировал основные принципы работы, однако на тот момент мир были технически не готов к их использованию. Все изменилось с изобретением блокчейна. Биткоин впервые объединил две технологии, заставив смарт-контракты работать в цепочки блоков.Однако в Bitcoin функционал контрактов довольно сильно урезан, так что можно сказать, что они были введены в эксплуатацию только с созданием Ethereum.
Принцип работы можно сравнить с функционированием торговых автоматов. Смарт-контракты на основе заданных инструкций. Сначала задействованные денежные активы и условия сделки размещаются в блокчейне, а его копии распространяются по узлам. Как только сработал триггер, контракт выполняется, программа автоматически контролирует выполнение обязательств.
Преимущества технологии:
- Безопасность. Программа зашифровывается и распространяется по узлам. Это гарантирует защиту от утери или нежелательной корректировки.
- Скорость и экономичность. Посредники не нужны, всё происходит на автомате.
- Стандартизация. Гибкости смарт-контрактов, существует возможность выбрать вариант, идеально подходящие потребностям компании или проекта.
Есть и минусы:
- Человеческий фактор.Программы пишут люди, а им свойственно ошибаться. Некоторые недостатки могут проявиться не сразу, а в самый ответственный момент, и привести к потере денежных средств.
- Отсутствие четкого правового статуса. По состоянию на 2019 год ни в одной стране мира смарт-контракты не регулируются официально.
- Дороговизна внедрения. Умные контракты специальные программисты, специализирующиеся на этой теме. А такие есть не в штатном. Нанимать же сотрудника на аутсорс обойдется в ощутимую сумму.
Преимущества и недостатки технологии Блокчейн
Специалисты считают блокчейн самой перспективной на сегодняшний день технологией. Основные плюсы технологии блокчейн :
- Децентрализация хранения данных. Блокчейн хранится сразу у всех участников сети, что сводит к нулю вероятность взлома или похищения.
- Все данные прозрачны, благодаря чему каждый желающий может отследить информацию о переводе средств, чтобы убедиться, действительно ли они отправлены.
- Отсутствие возможности транзакции. Плательщик не имеет возможности заморозить или отозвать платеж.
- Отсутствие посредников и излишних комиссий за их работу.
Тем не менее, на текущий момент блокчейн не идеален. Его еще предстоит дорабатывать, и над этим усердно трудятся программисты из многих стран мира. Наиболее заметные минусы:
- Проблемы с масштабируемостью. Когда база данных становится слишком большой, то проверка информации занимает много времени.Соответственно, платежи проходят намного медленнее. В Биткоине сейчас среднее время передачи платежа составляет 4-5 часов, а максимальное — 2 суток. При том что еще недавно это время не превышало 10 минут.
- Статус «вне закона» для многих государств. Использовать проблему приходится на свой страх и риск. Хотя намечается явный прогресс, ряд стран уже с интересом поглядывает на перспективы блокчейна в тех или используемых сферах.
- Как и со смарт-контрактам, высокая стоимость внедрения.
Перечисленные недостатки не критичны и вполне поправимы, на это нужно лишь время.
Перспективы и развитие технологий Blockchain
Чтобы оценить текущий уровень развития блокчейн-технологий, следует обратить внимание на три фактора:
- Появление новых технических разработок, направленных на усовершенствование Blockchain,
- Появление новых проектов, новизна их идей,
- Признание обществом и правительством.
Нужно помнить, что технология практически совсем новая.Это одновременно дает энергию для развития, и заставляет сталкиваться с разного рода ошибками. Работы по стабилизации предстоит еще много.
Другая проблема заключается в недостаточном понимании Blockchain. Для подавляющего многих информация все еще звучит слишком сложно, как бы автор текста не старался упростить ее. Это нормально для инновационной разработки. Сообщается о каждом шагу «блокчейн-гуру», обещающих обучить всем нюансам за определенную сумму денег.Часто с этим сталкиваются компании, которым очередной мошенник предлагает внедрить блокчейн, в действительности ничего не понимает в этой технологии. Допуск такого горе-специалиста в свой бизнес чреват его развалом.
О бурном развитии Blockchain говорит активность экосистемы. Начиная с 2013 года, регулярно появляются новые обменники, биржи и прочие сервисы. Не говоря уже об огромном количестве новых проектов с разными целями и перспективами. В этой связи не будет лишним будет скрыть и вопросы управления.
Управление — важнейший фактор функционирования механизмов публичных блоков, в том числе технических протоколов. Управленческие механизмы всегда комплексные, поскольку блокчейн представляет собой единую систему с множеством участников, и мнения этих участников не всегда совпадают. Возникает угроза для ясности принятия решений, следом — для децентрализации. Образует блокчейн с центральной точкой контроля, то он крайне уязвим, и в целом противоречит всему смыслу технологии.Поэтому возникают такие проекты, как, например, Tezos — в основе которых лежит цель по усовершенствованию схемы управления и приведению его к децентрализованному виду. Со временем будет видно, насколько такой сценарий осуществим.
.