Наиболее полное техническое руководство для неспециалистов по пониманию биткойнов

Если у вас нет технического образования и вы впервые читаете технический документ о биткойнах, я думаю, вы согласитесь со мной, что все это чепуха, наполненная техническим жаргоном. Буквально через минуту вы, вероятно, на 80 % потеряетесь и запутаетесь на странице 2.

Я прошел через это и понимаю трудности.

Следовательно, эта статья написана, чтобы объяснить простыми словами, что такое биткойн и как он работает. Поскольку я не технический человек, это может быть не совсем точным и полным. Но я постараюсь объяснить это, основываясь на собственном понимании. Формат этой статьи будет соответствовать формату оригинального технического документа. Чтобы наилучшим образом использовать свой опыт чтения, лучше сначала прочитать оригинальный технический документ, прежде чем ссылаться на это руководство. Ссылку можно найти здесь.

Введение

Во введении Сатоши Накомото описывает, как электронные платежи через границы между различными сторонами облегчаются с помощью финансовых посредников. В этом нет ничего нового для нас, поскольку мы все знакомы с традиционной банковской системой, рынками денежных переводов, PayPal и т. д. Дело в том, что если мы хотим отправить электронные деньги от одного человека к другому, это должно быть сделано через финансовых посредников.

Нынешняя традиционная модель основана на доверии. Доверие к банковской системе и доверие к финансовым учреждениям. Все бы ничего, но есть в такой модели доверия и недостатки.

Во-первых, необратимые транзакции невозможны. Или, с другой стороны, транзакции на самом деле обратимы. Это связано с тем, что эти финансовые посредники несут ответственность за урегулирование споров и устранение любых ошибок. Представьте себе следующие сценарии:

  • Предоставление товаров и услуг, но покупатель отменил платеж
  • Отправка денег не на тот счет
  • Платеж с подозрительного аккаунта
  • Не удается обработать заказы

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

Во-вторых, потому что платежи фактически обратимы. Поставщик услуг рискует предоставить необратимую услугу, но не получить взамен оплату. Это может произойти, когда покупатель, уже воспользовавшийся преимуществами услуг, решил что-то сделать и аннулировать платеж себе.

В-третьих, поскольку существует вероятность того, что платеж не пройдет, возможно, из-за недостаточной проверки клиентов KYC/AML, поставщик услуг будет стремиться получить больше информации, чем требуется, тем самым нарушая конфиденциальность данных.

Все эти проблемы в отношении доверенной третьей стороны в определенной степени сдерживают электронные транзакции. Решение, предложенное Сатоши Накомото, представляет собой одноранговую систему, основанную на криптографическом доказательстве, а не на доверии централизованной третьей стороны. В этой системе транзакции необратимы. Это можно сделать, сделав любые попытки отмены транзакций вычислительно непрактичными. Таким образом, мы можем помочь предотвратить мошенничество продавцов, поскольку сейчас платежи не могут быть отменены. В случае, когда покупатели произвели платеж, а продавцы не выполнили свои обязательства, для их защиты может быть реализовано условное депонирование.

Транзакции

Это та часть, которая меня больше всего смущает. Он углубляется в технические аспекты работы биткойн-транзакций. Все началось с определения электронной монеты (биткойна) как цепочки цифровых подписей.

Эта цепочка цифровых подписей представляет собой базу данных бухгалтерской книги, которая заполнена всеми транзакциями людей, отправляющих биткойны друг другу. Это в основном то, чем является биткойн. В отличие от золотых слитков или фиатных валют, не существует понятия физической природы.

Вы не можете ни удержать его, ни увидеть его.

Когда я говорю, что у меня есть биткойны, мне на самом деле нечего вам показать. Это всего лишь строка кодов в бухгалтерской книге, с помощью которой весь мир может доказать и подтвердить, что я являюсь законным владельцем этих биткойнов.

Эта база данных распределена по биткойн-узлам или компьютерам по всему миру. Каждый раз, когда Алиса отправляет Бобу 5 BTC, реестр транслируется по всем узлам, и все реестры обновляются одновременно. Когда Боб отправляет Чарли 3 BTC, он снова обновляется.

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

Это краткий обзор того, как работают биткойн-транзакции. Биткойн состоит из входов и выходов. Когда люди отправляют мне биткойны (они выводятся им и вводятся для меня). Когда я отправляю биткойны другим (это ввод для меня и вывод для них). Если я захочу отправить вам 10 BTC, произойдет следующее.

  1. Мне нужен ваш общедоступный адрес (что-то вроде номера вашего банковского счета)
  2. Мне нужно сообщение о транзакции (сколько BTC отправить и на какой адрес?)
  3. Чтобы доказать, что я инициировал транзакцию, я подпишу ее своим закрытым ключом
  4. Будет создана цифровая подпись
  5. Цифровую подпись можно проверить и подтвердить, просто показав мой открытый ключ
  6. Я могу доказать, что владею биткойнами, не раскрывая свои закрытые ключи

Но есть проблема, известная как двойная трата. Как мы гарантируем, что одни и те же 10 BTC не будут потрачены дважды? Без моего разрешения кто-то может просто скопировать и вставить цифровую подпись, которую я подписал, используя свой закрытый ключ, и передать ее узлам биткойнов.

Сервер меток времени

Решение проблемы двойной траты заключается в отметке времени и хешировании.

Криптографический хэш SHA256 подобен уникальной подписи из тарабарских букв и цифр для текстового файла или файла данных. Любые незначительные изменения, такие как заглавная буква или запятая, полностью изменят выходной код. Вы можете попробовать, как работает хеширование здесь. Отметка времени — это дата и время в любой конкретный момент времени.

Так как же метка времени и хеширование решают проблему двойных расходов? Представьте, что я отправляю 2 BTC Алисе и те же 2 BTC на свой биткойн-адрес. По праву должна учитываться только первая транзакция. Любая попытка потратить тот же BTC впоследствии должна быть признана недействительной.

Когда обе транзакции транслируются в сеть биткойнов, они сначала остаются в пуле неподтвержденных транзакций, ожидая, пока майнеры придут и подтвердят их. Когда майнеры проверяли транзакцию BTC для Алисы, блок вместе со всеми другими транзакциями будет иметь временную метку и хэшироваться. Этот вывод хэша будет публично транслироваться, и когда генерируется хэш блока, это означает, что любые транзакции внутри блока не могут произойти дважды.

Этот вывод хэша будет публично транслироваться, и тот же самый вывод хэша будет включен в следующий блок. Именно здесь вводится понятие блокчейна. Это означает, что если я хочу хешировать блок 1, он будет включать пул транзакций внутри блока 1 И предыдущий вывод хэша.

Выходной хэш-код моего текущего блока включает предыдущий хэш в качестве входных данных. Каждый блок связан с предыдущим блоком в хронологическом порядке. По мере того, как все больше блоков получают временные метки, хешируются и связываются, сеть становится более устойчивой к любым злонамеренным атакам.

Это связано с тем, что при подделке данных внутри одного блока весь выходной хеш-код будет изменен, и каждый блок, следующий за ним, будет испорчен. Поскольку каждый блок включает в себя предыдущий хеш, это означает, что если мой предыдущий хэш изменился, это повлияет на все последующие, поскольку вывод хэша будет совершенно другим.

Помните, как мы говорили о хешировании? Любые изменения во входных данных полностью изменят выходной хэш.

Доказательство работы

Доказательство работы — это вычислительная работа, которая пытается найти магический одноразовый номер, чтобы весь выходной хэш соответствовал требуемому количеству нулей. В этом суть майнинга биткойнов. Каждый майнер по всему миру соревнуется за то, чтобы первым найти этот волшебный одноразовый номер. Например:

00000000000000000000 8e367ecc0a8c6455aa0b6e67c9fa760077b8aebed373

Майнер должен начать с одноразового номера 1, хэша SHA256 и посмотреть, соответствует ли выходной хэш необходимому количеству нулей впереди. Если это не так, компьютер попробует использовать nonce 2, nonce 3 и так далее. Это похоже на поиск грубой силы, чтобы найти, что такое число, когда я его хеширую, вывод возвращает необходимое количество нулей впереди. Количество нулей, необходимых перед хеш-выводом, представляет собой уровень сложности. Если нужно больше нулей, значит, это сложнее.

По мере увеличения скорости аппаратного обеспечения и увеличения числа сторон, заинтересованных в том, чтобы стать биткойн-узлом, биткойн-код будет автоматически регулировать свою сложность, чтобы в час не генерировалось слишком много блоков.

Если генерируется слишком много блоков, это означает, что требуется меньше времени, чтобы найти этот волшебный одноразовый номер. Когда это произойдет, протокол потребует больше нулей впереди, чтобы усложнить головоломку. И наоборот, если генерируется слишком мало блоков, это означает, что головоломка слишком сложна, и количество ведущих нулей уменьшится, чтобы упростить ее.

В среднем добыча блока занимает около 10 минут. Уровень сложности (количество нулей впереди) будет автоматически корректироваться после каждых 2016 блоков (примерно 14 дней) . Если один блок занимает 10 минут, то 2016 блоков означают 20 160 минут или 14 дней.

В сети Биткойн должен быть только один единственный блокчейн, и честная цепочка будет самой длинной цепочкой. Это связано с тем, что для злоумышленника экспоненциально невозможно и нецелесообразно изменять цепочку и при этом строить самую длинную цепочку.

Для иллюстрации представьте, что сейчас есть две цепочки:

Злоумышленник пытается отредактировать данные блока, скажем, дважды потратив некоторое количество биткойнов. Он потратил 10 BTC на покупку нового BMW. Транзакция транслируется в сеть биткойнов и проверяется майнерами, блоку присваивается отметка времени, он связывается в цепочку и так далее.

Однако в собственной частной сети (заштриховано красным) он решает не включать и не подтверждать транзакции. Следовательно, 10 BTC НЕ тратятся во вредоносной цепочке. Таким образом, двойная трата происходит, когда он получает BMW, но еще не потратил 10 BTC в своей собственной частной сети.

Решением этой проблемы является создание протокола Биткойн таким образом, чтобы самая длинная цепочка была самой правдивой и честной цепочкой. Если он хочет, чтобы его собственная частная цепочка была правдой, он должен добывать блоки намного быстрее, чем объединенная мощность майнинга со всего мира. Это как сражаться 1 против 100 000. Каковы шансы на победу?

Следовательно, это делает невозможным двойное расходование монет, ЕСЛИ ТОЛЬКО он не получил контроль над майнерами на 51%. По этой причине транзакция биткойнов требует 6 подтверждений блока, чтобы быть подтвержденной и проверенной. Смысл в том, что злоумышленник никогда не выиграет гонку майнинга, поскольку с каждым новым блоком она становится экспоненциально сложнее.

Сеть

В этом разделе кратко излагается весь процесс работы биткойн-транзакций. Многое из того, что обсуждалось в предыдущих разделах, было бы полезно, чтобы помочь соединить точки и сформировать более четкое представление о шагах по запуску сети биткойнов.

Всякий раз, когда мы отправляем биткойны от одного человека другому, это называется транзакцией. Каждую секунду в мире происходит множество транзакций. Все эти транзакции будут транслироваться на узлы и объединяться в блок. Это так называемые неподтвержденные транзакции. Таким образом, каждый блок содержит несколько транзакций.

Как только все транзакции превысят лимит размера блока, майнеры начнут находить магический одноразовый номер (Proof-of-Work). таким образом, чтобы хэш блока давал необходимое количество нулей впереди. Первый майнер, который успешно нашел это число, продемонстрировал, что было выполнено достаточное доказательство работы.

Затем он транслирует его всем остальным узлам. Теперь, когда все знают, каков ответ, все узлы соответствующим образом обновят свою книгу, чтобы она представляла последнюю цепочку записей. Хэш текущего блока будет использоваться как часть входных данных для следующего блока. Таким образом, хэш следующего блока будет содержать предыдущий хеш и все остальные транзакции в этом блоке.

Самая длинная цепочка блоков представляет собой самую правдивую цепочку. Возможно одновременное появление двух цепочек. Например, один майнер на востоке и другой майнер на западе вместе нашли волшебный одноразовый номер и приступили к его трансляции. Это нормально, так как следующий блок сбрасывает конкуренцию. В конце концов один станет длиннее другого. Тогда более короткая цепочка будет заменена самой длинной цепочкой.

Поощрение

В этом разделе Сатоши сравнивает процесс добычи биткойнов с золотом. В прошлом вам приходилось покупать горнодобывающее оборудование, буры и нанимать рабочую силу, чтобы копать и добывать золото под ними. Это стоимость. Наградой, если вы наткнетесь на золотую жилу, будет, конечно же, золото, которое вы добыли.

Точно так же процесс майнинга биткойнов — это потребляемая мощность процессора и стоимость электроэнергии. Помните, что процессор для майнинга использует метод грубой силы, чтобы найти этот волшебный одноразовый номер? Это требует огромных вычислительных мощностей и потребляет много электроэнергии. Все это имеет свою цену.

Должно быть вознаграждение за затраты, связанные с добычей биткойнов. Наградой золотодобытчикам будет само золото. Наградой за добычу биткойнов будут биткойны и комиссионные за транзакции. В обращении будет только 21 миллион биткойнов. Предельный предел предотвращает инфляцию и позволяет биткойнам сохранять свою ценность.

Майнер, который успешно найдет это волшебное одноразовое число, будет вознагражден биткойнами. Количество биткойнов будет уменьшаться вдвое каждые четыре года. Изначально было 50, потом 25, потом 12,5. С 2020 года биткойн пройдет еще один халвинг, а вознаграждение за майнинг впоследствии уменьшится с 12,5 до 6,25.

Все биткойны будут постепенно выпускаться в обращение каждый раз, когда победивший майнер находит волшебный одноразовый номер. Это потому, что нет центральной власти для распределения денег. Использование биткойнов в качестве вознаграждения будет стимулировать майнеров к запуску, управлению и укреплению сети биткойнов.

Кроме того, стимулы от зарабатывания биткойнов будут побуждать злоумышленника вести игру честно. Это связано с тем, что для создания самой длинной частной цепочки потребуется тонна вычислительной мощности и миллиарды инвестиций в машины для майнинга ЦП. Кроме того, успешное исполнение последнего приведет к значительному падению цены биткойна.

Следовательно, злоумышленнику будет лучше использовать это количество вложенной мощности процессора для майнинга и заработка биткойнов, а не для организации атаки с двойным расходом. Это связано с тем, что чем выше мощность его процессора, тем выше его шансы найти этот волшебный одноразовый номер и получить вознаграждение в биткойнах.

Освобождение места на диске

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

Суть того, как это работает — просто хэши хэшей. Вы можете видеть, что Tx0 и Tx1 хэшируются в Hash01. Tx2 и Tx3 хэшируются в Hash23. И Hash01, и Hash23 объединяются и хэшируются для формирования корневого хэша. Таким образом, потраченные транзакции подобны ветвям деревьев, которые обрубаются.

Упрощенная проверка платежей (SPV)

Упрощенная проверка платежей или узлы SPV — это облегченные клиенты, которые не требуют от пользователя загрузки всей истории транзакций биткойнов из генезиса. В реестре зарегистрированы миллионы транзакций, и если бы мы загружали все, потребовалось бы очень много времени.

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

Термин «упрощенная проверка платежа» означает, что конкретная транзакция может быть проверена без необходимости знать все другие транзакции, которые произошли в блоке.

Для иллюстрации:

Предположим, мы хотим узнать, действительна ли транзакция K. Хэш транзакции K – это HK (заштриховано зеленым цветом). как видно на диаграмме в нижнем ряду.

Если мы продолжим хешировать HK со всеми остальными хэшами (заштриховано синим цветом) и в конечном итоге приводит к корневому хэшу (HABCDEFGHIJKLMNOP) под деревом Меркла, то мы можем быть уверены, что транзакция K действительно включена и проверена внутри этого блока. Таким образом, если хэш транзакции указывает на корневой хеш Merkle, а основной блок включен в цепочку блоков, то можно сказать, что транзакция проверена и подтверждена.

Объединение и разделение значений

Это еще одна важная часть работы биткойн-транзакций. По сути, это говорит о том, что было бы проблематично совершать несколько транзакций. Допустим, цена недвижимости составляет 10 BTC. Было бы проблематично отправлять несколько отдельных транзакций.

Представьте, что для совершения платежа требуется три транзакции. Первая транзакция на 4 BTC, вторая транзакция на 5 BTC и третья транзакция на 1 BTC. Это будет трансляция трех отдельных транзакций, и майнерам потребуется время, чтобы вычислить и решить магический одноразовый номер.

Решение этой проблемы состоит в том, чтобы разрешить несколько входов и один или максимум два выхода. Таким образом, в приведенном выше случае будет три входа (4 BTC, 5 BTC и 1 BTC) и один выход 10 BTC для продавца недвижимости.

Но что, если у меня нечетные числа, такие как 3 BTC, 9 BTC и 5 BTC? Здесь появляются два выхода. Один для продавца, а другой выход в виде сдачи для себя. Таким образом, входы будут 9 BTC и 3 BTC. На выходе будет 10 BTC продавцу недвижимости и 2 BTC обратно на ваш биткойн-адрес.

Следовательно, в биткойне может быть несколько входов, но только один или максимум два выхода для сдачи себе. Всякий раз, когда вы хотите отправить биткойны кому-то другому, он соберет все выходы биткойнов, которые другие отправили вам. Помните, что когда другие отправляют вам биткойны, они выводятся для них и вводятся для вас. Когда вы отправляете биткойны другим, эти выходы становятся входами, а мои выходы другому человеку становятся его или ее входами.

Конфиденциальность

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

Несмотря на то, что транзакции биткойнов общедоступны для всех. Определенная степень конфиденциальности все еще поддерживается на индивидуальном уровне, поскольку все это просто тарабарщина, коды и цифры. Например, возьмем последние транзакции, которые произошли в сети биткойнов 4 сентября.

Только что в 19:39 произошла транзакция на 53 биткойна или 563 625 долларов США. Что мы знаем об этом человеке? Единственная доступная нам информация — это его публичный биткойн-адрес. Личность неизвестна, и конфиденциальность этого человека сохраняется, хотя все транзакции биткойнов общедоступны.

Однако возможность привязки одного и того же публичного адреса к конкретному человеку все же есть. Сатоши советует использовать разные пары ключей для каждой транзакции. Представьте себе этот биткойн-адрес:38vjCt6KppEHhQcU6cY8fzxEWYJZwQwpwR — это моя учетная запись.

Я использую этот биткойн-адрес для отправки нескольких транзакций на вечеринку Алисе, Бобу, Чарли и так далее. Если правительство запустит проверку KYC и раскроет личность человека, стоящего за 38vjCt6KppEHhQcU6cY8fzxEWYJZwQwpwR, то все другие транзакции, которые я совершил, можно будет отследить до меня.

Расчеты

Это статистическая математическая часть, которую я не понимаю. Если вы спросите меня, что означают уравнения и формулы, я ничего не понимаю. Однако в этом разделе есть только два основных момента.

Во-первых, возможности злоумышленника ограничены. Он не может создавать новые биткойны из воздуха и не может совершать платежи в биткойнах от кого-то самому себе. Это выходит за рамки стандартов протокола биткойн. Единственное, что он может сделать, это отредактировать собственную транзакцию, исключив ее в блоке для отмены платежа. Это называется проблемой двойных расходов.

Во-вторых, злоумышленник не может выиграть гонку по добыче биткойнов быстрее, чем коллективные честные узлы. Шансы на победу становятся экспоненциально малыми по мере того, как количество подтвержденных блоков увеличивается и выстраивается в цепочку один за другим.

Чтобы дать представление о шансах на разгадывание магического одноразового числа в сети биткойнов, давайте возьмем общую скорость хеширования биткойнов.

Общая скорость хеширования составляет около 88 000 TH/s на 19 сентября. Помните, что каждый блок хешируется после того, как найдено волшебное одноразовое число? Скорость хэширования — это мера общей вычислительной мощности хеширования для нахождения магического одноразового числа. Скорость хеширования — это количество вычислений, которые может выполнять данное оборудование или сеть.

Допустим, мы приобрели 100 таких машин для майнинга биткойнов ASIC за 30 000 долларов. Моя мини-ферма по добыче биткойнов будет генерировать хэш-мощность 140 TH/s. Если мы возьмем общую скорость хеширования биткойнов, разделенную на мою мини-ферму майнинга биткойнов (88 000 / 140), то получим около 630.

Это означает, что шансы на то, что я найду магический одноразовый номер для блока, составляют 1/630 или 0,001. За мной должно пройти 630 блоков, прежде чем я смогу успешно добыть свой первый блок. Допустим, я злоумышленник и хочу построить цепочку длиннее, чем честная цепочка, мне нужно связать 6 подтверждений блоков быстрее, чем они. Так что моя вероятность была бы 0,001 в степени 6. Это невозможно статистически, математически и астрономически.

Заключение

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

Мы начали с концепции цифровых подписей. Цифровая подпись генерируется, когда я подписываюсь, используя свой закрытый ключ, чтобы доказать, что я владею биткойнами, и я инициировал транзакцию по отправке биткойнов другому лицу. Это обеспечивает право собственности на то, кто владеет биткойнами в любой момент времени. Однако существует проблема двойной траты. Если я подпишу транзакцию и отправлю биткойны на покупку недвижимости, но все же я решил исключить транзакцию в своем приватном блокчейне.

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

Сеть биткойнов никем не управляется. Биткойн не имеет сервисной поддержки и политической партии. Любой может присоединиться и выйти в любой момент времени. Самая длинная цепочка будет принята за единственность истины для всей истории имевших место транзакций.

На этом официальный документ о биткойнах заканчивается. Мы надеемся, что эта аннотированная версия поможет вам лучше понять, что такое биткойн и как работают биткойн-транзакции.

Примечания редактора :Ну, это был огромный кусок! С материальной точки зрения, понимание этого документа должно дать вам некоторую возможность продвинуться вперед в том, как инвестировать и пожинать плоды биткойнов.

Если вы не уверены, Кристофер Лонг проведет бесплатный мастер-класс. Если вам нужно руководство или просто поговорить с экспертом в мире инвестирования в биткойн/альтернативные активы, вы можете начать отсюда. Я настоятельно советую вам рискнуть и поковыряться в его мозгах.

Статья предоставлена ​​ Древние вавилоняне <эм>
Фейсбук: https://www.facebook.com/thebabylonianss/ <эм>
Веб-сайт: https://www.theancientbabylonians.com/


Блокчейн
  1. Блокчейн
  2. Биткойн
  3. Ethereum
  4. Обмен цифровой валюты
  5. Добыча полезных ископаемых