3 века денег: наличные, банки, криптовалюты, ч.3

топ 100 блогов zhu_s20.03.2017 3 века денег: наличные, банки, криптовалюты, ч.3 Кто должен проверять подлинность платежа? В частности - то, что я одновременно не разослал тысячи аналогичных сообщений на другие адреса, например, на свои? Ясно, что это не может быть получатель, как это происходит при расчете «физическими» наличными деньгами. Ведь ему в данном случае безразлично, ссылается ли полученная им «монета» на реальный неизрасходованный результат предыдущей транзакции. Но даже если он сподобиться это проверить, то убедиться в отсутствии параллельного «ксерокопирования» денег он попросту не в состоянии. Или не заинтересован, если получателем буду я сам,

Проверка подлинности: Истина всегда то, что считает таковой большинство

Для подтверждения «правильности» транзакции требуется некое «консенсусное» включение её в базу данных, состоящую из последовательности «пачек» (блоков по 1МБ размером, что может включать в себя порядка тысячи) ранее одобренных транзакций (блокчейн), начиная с генезис-блока и доступную всем желающим. (Первое, что начинает делать приложение Bitcoin Core – пытается скачать на ваш компьютер 65 гигабайтов записей обо всех проведенных на сегодня операциях с биткойнами; в лайт-версиях «кошельков», предназначенных для смартфонов, эта функция – участия их в подтверждении транзакций (майнинге) – отключена.)

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

Пользователи стимулированы к тому, чтобы собрать ожидающие подтверждения транзакции в блок, и добавить его в цепь, поскольку первой транзакцией в потенциальном новом блоке будет «generation transaction», адресующая тому, кто это сделает, известное кол-во биткойнов (сейчас 12.5); кроме того, он получит комиссию из отобранных для подтверждения записей. Сама по себе это несложная задача, но, чтобы затруднить работу мошеннику, пытающемуся подсунуть блок с «двойным расходованием», она искусственно сделана вычислительно сложной*. В итоге вероятность, что именно мошенник первым соберёт блок, решающий эту сложную задачу, примерно равна доле его вычислительной мощности от мощности всех пользователей (узлов) сети.

[Прим.] * Технически задача состоит в вычислении (256-битного) хеша блока из хешей всех входящих в него транзакций и хеша предыдущего блока, подбирая дополнительное (само по себе бессмысленное) число (nonce), так чтобы результат начинался, грубо говоря, с определённого количества нулей. Решить эту задачу не перебором невозможно. Целевое число, меньше которого должен оказаться хеш валидного блока, автоматически корректируется раз в 2 недели (через каждые 216 блоков) так, чтобы среднее время его подбора составляло около 10 минут независимо от суммарной вычислительной мощности участников. (Так, в период с 1 марта 2014 по 1 марта 2015гг.  среднее число перебираемых за эти 10 мин. нонсетов для создания нового блока выросло с 16.4 до 200.5 квинтиллионов.)

Поскольку пользователи, проверяющие транзакции и пытающиеся собрать блоки для добавления в цепь, работают независимо, вполне нормальна ситуация, когда сразу 2 юзерам более-менее одновременно удалось подобрать валидные блоки. Цепь блоков на актуальном конце начинает ветвиться. т.е. blockchain в норме представляет собой blocktree – не цепь, а дерево с постоянно отрастающими и засыхающими ветками (т.наз. форками – досл. вилка).

Дальше у пользователей (они же майнеры) есть выбор, какую ветку развивать дальше, а если кто-то еще не скачал обновлённую базу, то он может продолжать пытаться пристроиться к предыдущему блоку. К тому моменту, когда мошенник сформирует и разошлет по сети цепочку блоков какой-либо длины, с повторным расходованием каких-либо биткойнов, большинство пользователей, скорее всего будут видеть в своих базах уже более длинные ветки от той же развилки. Так если кто-то (в частности, злоумышленник) обладает 10% вычислительных ресурсов сети (а на сегодня это колоссальная мощность, требующая инвестиций в десятки миллионов долларов и расхода электроэнергии, сопоставимого с потреблением небольшого
города), то вероятность собрать цепочку блоков раньше, чем это сделают остальные, всего 0.1%.*

[Прим.:] «Длина» цепи блоков рассчитывается как сумма сложностей всех блоков в этой цепи, а не как сумма количества блоков, что помогает избежать получения мошенником контроля над цепью, атакуя её ветками с большим количеством блоков маленькой сложности.

Поддерживать более короткую ветку «честному», не аффилированному с мошенником пользователю нет никакого смысла, когда он «видит» более длинную. Он будет считать, что большинство пользователей так же, скорее всего, будет оставаться на самой длинной ветке, и из-за концентрации там вычислительной мощности она будет расти быстрее. Более короткая ветка при этом будет рассматриваться ими как «орфан», все транзакции в которых будут рассматриваться большинством пользователей как объекты для включения во вновь формируемые блоки. А первые «эмиссионные» транзакции, начисляющие на адрес майнера 12.5 (сейчас) биткойнов за сборку валидного блока, так и останутся при этом неподтвержденными, воспользоваться ими он не сможет.* Дорогие вычислительные ресурсы, затраченные на подбор блоков в тупиковой ветке, будут выброшены на ветер.

[Прим.:] Для защиты «честных приобретателей» вновь сгенерированных биткойнов установлено, что должна выстроиться не менее 100 блоков за ними, прежде чем их первый получатель сможет их куда-либо отправить. Вероятность реорганизации «цепи», при которой ветвь такой длины превратится в висячую (орфанную), ничтожна при сколько-нибудь конкурентном распределении вычислительной мощности среди пользователей.

«Адам Смит был неправ…» (ц, к/ф Игры разума)

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

На той же идее – постоянно «голосующего» тратой своих энергоресурсов для достижения собственных эгоистических целей большинства, и попутно - отсекающего этим поползновения жульнического «меньшинства», замешаны и все альткойны, предлагающие обычно незначительные вычислительные модификации исходного протокола Биткойна. Напр., в Лайткойне достаточно ресурсоемкая процедура 256-битного хеширования заменена более легкой. Кое-где вместо «бессмысленного» перебора сотен квинтильонов хэшей блоков для поиска попадающего в мишень, решается «полезная», но столь же трудоемкая задача типа разложения больших чисел на простые множители.  В протоколе Ethereum генерация и подтверждение транзакций (включение их в блокчейн) может быть поставлено в зависимость от выполнения определенных условий (смарт-контракта), например, наступления страхового события и т.п.

Как и всё в этом мире, блокчейн не является 100%-ной защитой от хакерских атак, в частности, атаки «повторного расходования», против которой он и был, главным образом, заточен. Потеря денег их получателем может произойти, если этим довольствуется слишком малым числом подтверждений (длиной цепочки после первого подтверждения, недостаточной для отторжения блоков, включающих транзакции с повторным расходованием).

Либо, если требуемое число подтверждений достаточно велико (принято считать безопасной транзакцию, если она остается подтвержденной в течение часа, т.е. за содержащим её блоком выстроилась цепочка из 6 блоков), но мошенник обладает достаточной вычислительной мощностью, для установления «тоталитарного контроля» в сети, позволяющему ему в одиночку выстраивать цепочку блоков (содержащих повторно отправленные им биткойны) такой длины, опережая другие ветви.

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

В утешение можно заметить, что установление «тоталитарного режима» в сети Блокчейн может опираться только на грубую вычислительную силу (>50% мощности всех участников), создание которой в настоящий момент весьма затратно и экономически неэффективно. В социуме положение в этом смысле гораздо печальнее, и малочисленной кучке мошенников обычно без особых усилий удается установить тоталитарный контроль над многомиллионными массами, прибегая к одной и той же, отработанной веками схеме: (i) поддержание этих масс в невежестве; (ii) постоянная промывка мозгов; (iii) жесткое цензурирование информации (ц, к/ф «Враг», оно же Ж. Сарамаго «Двойник»).

Полезные ссылки:

1. «Почти официальный» сайт сообщества: введение, FAQ, скачать приложения https://bitcoin.org/ru/
2. Русская страничка в фейсбуке https://www.facebook.com/bitcoinru/
3. Bitcoin Wiki, англоязычная и русское зеркало, а также русский почти аналог
4. Как протокол Биткойн на самом деле работает, by Michael Nielsen on December 6, 2013. (неформальное, легко читаемое введение с небольшими неточностями).
5. Пара интервью о дальнейших приложениях и развитии протокола Биткойн 1, 2, а также старые, но возможно ещё не утратившие актуальность соображения Б. Делонга о возможностях «заякоривания» цен биткойнов.
6. Ранее в тему в данном блоге: 1; 2; 3; 4; 5; 6; 7
P.S. Запись составилась путём выстраивания в цепь «блоков», из которых я собирался сделать статью 3 года назад, когда тема была еще достаточно свежей. Но, тогда как-то не сложилось, забросилось, а за 3 года не только тема утратила прелесть новизны, но и сам жанр журнальной статьи (а не только бумажные журналы) и журналистика как профессия (т.е. распространение поверхностных сведений о разнообразных предметах) умерли, уступив место более современным коммуникационным транзакциям. Примерно, как когда-то, к концу 19 века умер классический русский роман, превратившись в музейный экспонат и инструмент для пытки школьников. Так что - «захороним останки» тут. Тем более, что и сам ЖЖ тоже давно умер.

Оставить комментарий

Архив записей в блогах:
Америку охватила оргия доносительства Современные Павлики Морозовы ищут спонсоров После четырехчасовой оккупации вашингтонского Капитолия превосходящими силами трампистов, унесших восвояси ноутбук Нэнси Пелоси и множество селфи, в стране разразилась вторая подряд эпидемия, на сей раз ...
дело в том, что я не люблю принцип «один фильм — один жанр — один стиль». ну, скучно же.однако, обычно кино снимают именно так.следстием всего этого являтеся то, что я — совершенно, увы, безуспешно — ищу другое кино. ну вот, скажем, представьте ...
 А вчера мистер президент не выдержал . Открыл всему миру военную тайну , да такую , сто у всех колени затряслись . То ли на грудь хорошо принял , то ли просто вожжа под хвост попала , но вдруг как выпрямился во весь рост , да как гаркнет в пространство :" Вот я вас , всех !!!", ...
Небесное преследование / Heavenly Pursuits [1985] Страна: Великобритания Время: 92 мин. Жанр кино: драма, комедия Год выхода: 1985 Название фильма: Небесное преследование - Heavenly Pursuits Режиссер: Чарльз Гормли В фильме снимались: Юэн ...
Мне очень нравятся  старые танцевальные мелодии 30-50ых годов. Мои родители любили ставить магнитофонную кассету с ней  под занавес своих встреч с друзьями. Музыка, которая была модной и популярной в пору их молодости.. А у меня она связана с о сложным миксом праздника, светлой ...