О применении технологии.
Источник -
https://xakep.ru/2016/04/19/some-facts-about-blockchain/Таинственная технология, на которой основана широко известная криптовалюта Bitcoin, подходит не только для финансовых операций. Покончив с автоматизацией экономики, ее апологеты мечтают децентрализовать бизнес, коммунальные услуги, регулирующие органы и даже само государство. Но для этого нужно преодолеть множеcтво технических и политических проблем.
Сторонники Bitcoin возлагали на первую децентрализованную электронную валюту огромные надежды. Удастся ли их оправдать — большой вопрос, особенно в России. Дело идет к тому, что в нашей стране Bitcoin просто запретят. Но даже в том случае, если сбудутся самые пессимистические прогнозы, Bitcoin рано сбрасывать со счeтов. Самое интересное в нем — это технология, а не деньги.
Бухгалтерия Дикого ЗападаВ основе Bitcoin лежит так называемая цепочка блоков транзакций, или блокчейн (blockchain), — грандиозная база данных, в которой хранятся сведения обо всех операциях, совершенных с этой валютой. Блокчейн можно сравнить с гроссбухом — главной бухгалтерской книгой, где фиксируют приход и расход средств на балансе организации.
В настоящем гроссбухе каждая строка представляет собой проводку — запись об изменении баланса организации. В столбце «Дебет» бухгалтер указывает, насколько уменьшился ее баланс. В столбце «Кредит» — насколько он вырос.
Записи в блокчейне очень похожи. У каждой отраженной в нем проводки, или, если использовать жаргонное наименование, «транзакции», есть «входы» и «выходы». Баланс отправителя транзакции сокращается на сумму, которая указана на ее входах. Выходы сообщают, насколько увеличится баланс получателей.
Похожие базы данных имеются у любой платежной системы или банка. При совершении платежа они проверяют, что на счету клиента хватает средств, а затем снимают деньги с его баланса и прибавляют к балансу получателя.
Отличие сети Bitcoin в том, что она децентрализована. У нее нет верховного сервера, который контролирует внесение изменений в базу данных и следит, чтобы никто не тратил больше денег, чем имеет. Действующая копия блокчейна хранится на тысячах равноправных узлов, и добавлять туда новые записи может кто угодно.
Для банков и платежных систем такая ситуация немыслима. Если бы в их базах данных могли копаться посторонние, этим тут же воспользовались бы мошенники. Ничто не помешало бы им переписать себе средства с чужих счетов или расплатиться деньгами, которых у них нет.
Но блокчейн — это не обычная база данных. Он с самого начала рассчитан на использование в тех ситуациях, когда никому нельзя доверять. Именно это и делает его интересным.
Скованные одной цепьюГлавное свойство блокчейна — его неизменяемость. Если однажды туда попали сведения о проведенной сделке, то они останутся там навсегда. Их нельзя ни удалить, ни отредактировать. И не потому, что это запрещено. Просто блокчейн устроен так, что даже мизерная правка требует невероятных вычислительных ресурсов.
Механизм, обеспечивающий неизменяемость, на удивление прост. Блокчейн похож на башню из детских кубиков. Нельзя вытащить кубик из середины и заменить его на другой, потому что тогда рухнет вся конструкция.
Новые записи добавляют в блокчейн не по одной, а большими блоками. Они в нашей метафоре соответствуют кубикам. У каждого блока есть уникальный идентификатор, которым служит криптографический хеш его заголовка. Вычисление такого хеша — это сложная задача, которая занимает по меньшей мере десять минут.
Поскольку в заголовке каждого блока хранится идентификатор предыдущего, модификация одного блока вызывает цепную реакцию: меняются хеши заголовков у всех блоков, которые добавлены позднее. Злоумышленнику придется пересчитать хеши для каждого из них. Это безумно дорогая и сложная задача, особенно если учесть, что каждый час блокчейн становится длиннее на шесть блоков. Для победы злоумышленник должен догнать и перегнать все честные узлы сети.
Генерацией новых блоков для добавления в блокчейн занимаются майнеры. Ты о них наверняка слышал — это те самые люди со специализированным железом, которые будто бы делают деньги из воздуха. В действительности майнерам отведена роль своего рода распределенной клиринговой палаты. Грубо говоря, их работа гарантирует, что сделка проведена без нарушений, а информация о ней достоверна. Генерация биткойнов — это лишь приятный побочный эффект их деятельности.
Золотая лихорадкаКогда один из участников сети Bitcoin создает транзакцию, он сообщает о ней всем соседним узлам, а те проверяют и передают ее дальше. Спустя несколько секунд о сделке узнают все. Майнеры тоже участвуют в этой эстафете, но для них она важна еще и по другой причине.
Они независимо друг от друга составляют из принятых и проверенных транзакций новый блок, а затем наперегонки выполняют «доказательство выполнения работы» (proof of work). Это самый долгий и трудоемкий этап создания блока, но именно его продолжительность и трудоемкость гарантируют незыблемость блокчейна.
«Доказательство работы» заключается в подборе идентификатора нового блока. Им, как мы знаем, служит криптографический хеш его заголовка. При этом согласно правилам его величина не должна превышать значения параметра под названием «сложность» (difficulty). Для подгона результата под «сложность» в заголовке блока выделено четыре байта (nonce). Туда подставляют различные числа и пересчитывают хеш до тех пор, пока условие не будет выполнено. Значение «сложности» подобрано таким образом, чтобы поиск подходящего числа занимал примерно десять минут.
Это гонка, в которой есть победители и проигравшие. Вознаграждение получит лишь тот майнер, который первым закончил работу, а остальные останутся ни с чем. Сейчас награда составляет 25 биткойнов (около 715 тысяч рублей) плюс «чаевые», прилагающиеся к каждой транзакции. К июлю эта сумма, скорее всего, сократится вдвое.
Когда блок готов, победитель распространяет его по сети. Получив новый блок, другие участники сети проверяют его. Только в том случае, если и с ним, и с образующими его транзакциями все в порядке, они добавят его в свои копии блокчейна.
Неизменяемость блокчейна мешает злоумышленникам отредактировать историю транзакций задним числом, но этого мало. Нужно, чтобы туда попадала только верная информация. Эта задача решается на уровне отдельных транзакций.
Программируемый нотариус
Транзакции не просто сообщают, откуда и куда будут переданы деньги. Они указывают на происхождение этих денег. Входы новой транзакции связаны с выходами предыдущей. Иными словами, они представляют собой ссылки на суммы, заработанные в результате одной из прошлых сделок. Переходя по ссылкам от транзакции к транзакции, можно проследить путь денег от момента создания до текущего обладателя.
Сослаться на чужие деньги не дают замысловатые танцы с электронными подписями и криптографическими ключами. Для нас в данном случае интерес представляет не столько крипто, сколько тот факт, что условия сделки встроены в саму транзакцию и представляют собой программы на примитивном стековом языке, напоминающем Forth. Можно сказать, что в Bitcoin скрипты играют роль контрактов.
Скрипты делятся на два типа: запирающие (scriptPubKey) и отпирающие (scriptSig). Запирающий скрипт находится на одной стороне ссылки, соединяющей выход старой транзакции с входом новой, а отпирающий — на другой. Чтобы ссылка сработала, отпирающий скрипт получателя денег должен подойти к запирающему скрипту отправителя.
Для проверки ссылки запускают сначала отпирающий скрипт, а затем запирающий. Отпирающий скрипт размещает на стеке данные для запирающего скрипта, а запирающий изучает их и определяет, соблюдены ли условия, которые поставил отправитель. Деньги можно использовать только в том случае, если проверка увенчалась успехом.
Обычно отпирающий скрипт предъявляет электронную подпись, которая сгенерирована на основе закрытого ключа создателя новой транзакции. Запирающий скрипт сверяет подпись с открытым ключом получателя и убеждается, что отправитель адресовал перевод именно этому участнику сети. Это не единственный возможный вариант, но примерно так работает большинство транзакций с биткойнами.
А далее - статья платная на сайте. Не реклама, а констатация факта.
Это сообщение отредактировал miralde - 25.04.2016 - 20:46