Глава 6. Биткойн-транзакции
В этой главе…
• Узнаем все о биткойн-транзакциях
• Важность подтверждений сети
• Разбираемся с комиссией за транзакции
Идею биткойн-транзакции достаточно легко объяснить. Не правда ли, хорошие новости для начала главы?
Прежде всего, и это самое главное, биткойн-транзакция представляет собой передачу цифровых прав владения определенным количеством BTC в сети Биткойна. Например, если изначально вы владеете пятью биткойнами, а затем отправляете два из них на биткойн-адрес пользователя “Джо”, то в действительности вы передаете цифровое право владения этими двумя BTC кошельку Джо. Оставшиеся три BTC остаются в вашем кошельке, и поэтому вы остаетесь полноправным владельцем этой суммы.
В этой главе описываются основные принципы биткойн-транзакций и даются ответы на некоторые из вопросов, часто задаваемых относительно обмена BTC.
Выясняем, как работают биткойн-транзакций
В самом простом смысле транзакция работает так, что в результате ее выполнения вы передаете другому человеку определенное количество биткойнов из числа тех, которыми владеете.
Чтобы биткойн-транзакция считалась “подлинной”, должен быть по крайней мере один вход (input), хотя вариант с несколькими входами также возможен. Вход является ссылкой на “выход” (output), оставленный предыдущей транзакцией. Запомните, что каждый вход, ассоциированный с биткойн-транзакцией, должен быть непотраченным выходом предыдущей транзакции. Помимо этого, каждый вход в биткойн-транзакции должен быть подписан, что происходит посредством использования приватного ключа, ассоциированного с инициирующим транзакцию BTC-адресом.
В случае, когда с одной биткойн-транзакцией ассоциированы несколько входов, это будет означать, что присылаемый получателю объем валюты приходит из нескольких биткойн-адресов, генерируемых одним кошельком. Как было указано в главе 5. любой пользователь криптовалюты может генерировать неограниченное количество биткойн-адресов, каждый из которых может хранить неограниченные суммы в BTC.
Вот пример: если вы снова отправите счастливчику “Джо” 2 BTC, 1 BTC будет отправлен с адреса #2 в вашем кошельке, 0,33 BTC отправится с адреса #7, а остаток – будет взят с адреса #8. В данном примере адреса #1, #3, #4, #5 и #6 не имеют биткойнов на балансе, а следовательно, не могут использоваться в качестве “входов”, так как нет неизрасходованных выходов, ассоциированных с этими адресами.
Однако биткойн-транзакция может иметь не только несколько входов, но и несколько выходов. Как вы могли ожидать, несколько выходов указывают на то, что транзакция осуществлялась с целью разделить сумму между несколькими разными адресами. Например, ваш баланс в 5 BTC вы хотите разделить между богачом Джо (2 BTC) и Мэри (1 BTC), а оставшиеся 2 BTC отправить на один из других кошельков, находящихся под вашим контролем. На блокчейне одна эта транзакция будет иметь 3 разных выхода: один пойдет Джо, другой пойдет Мэри, а третий – на биткойн-адрес вашего другого кошелька.
Сумма отправки в биткойн-платеже может быть выражена совокупностью сатоши, самых мелких частиц биткойн-транзакций (8 цифр после запятой). Так как биткойн столь хорошо делится по сравнению с традиционными фиатными валютами, цена 1 сатоши очень изменчива. Сегодня 1 сатоши практически ничего не стоит, однако он может стоить несколько центов – или даже долларов – в будущем, по мере того, как использование биткойна станет популярным трендом. (О динамике курса биткойна рассказано в главе 4.)
Проведение платежей биткойнами и наличными деньгами происходит схожим образом. Общее количество биткойнов, ассоциированное со всеми входами транзакции, может превышать количество биткойнов, необходимое для заключения сделки, что образует “сдачу”. В случае с обычными фиатными валютами сдача выдается покупателю посредством купюр либо монет. В случае биткойн-валюты сдача выдается в форме цифрового права владения на биткойны, ассоциированные с вашим адресом. Если объем биткойнов, хранящихся на адресах-входах, превышает объем, необходимый для отправки на все адреса-выходы, то будет создан дополнительный выход на адрес отправителя, куда и попадет “сдача”.
Могу ли я получать биткойны, когда мой компьютер выключен?
На биткойн часто ссылаются как на вариант интернет-денег не только потому, что он больше всего используется в Интернете, но и потому, что вам необходимо иметь активное соединение с Интернетом, чтобы осуществить биткойн-транзакцию. Однако нет никакой необходимости поддерживать соединение с Интернетом постоянно, даже с целью получения транзакций.
Как только ваши биткойн-адреса в кошельке были сгенерированы, они остаются активными на протяжении вечности – или по крайней мере пока существует блокчейн биткойна. Есть ли у вас синхронизированный биткойн-клиент – на компьютере или на устройстве, – не имеет значения, потому что это не влияет на механизм, с помощью которого вы можете получать биткойн-транзакции на свой адрес.
А вот когда дело касается траты биткойнов, активное интернет-соединение необходимо и для пользователей компьютеров и для пользователей мобильных устройств, поскольку выполняемая транзакция должна быть распространена по сети. Чтобы это выполнить, необходимо иметь соединение с Интернетом, подойдут как Wi-Fi, так и мобильный Интернет. Соединение даже не должно быть быстрым – вам просто необходимо быть в режиме онлайн достаточно долгое время, чтобы отправить транзакцию другим узлам в сети. Обычно весь процесс занимает менее секунды.
Представьте, что вы – получатель в биткойн-транзакции, но не подключены в этот момент к Интернету. Средства все равно будут переведены с адреса отправителя на ваш адрес, так как ваш биткойн-адрес “живет” (и будет жить) на блокчейне во все времена. Просто вы не сможете узнать, что средства были перемещены на ваш адрес, пока ваше устройство с ПО биткойна снова не будет подключено к Интернету. Когда это случится транзакция появится в вашем кошельке вместе с указанием количества ее подтверждений на текущий момент.
Каждая биткойн-транзакция отслеживается самой сетью и распространяется через разные узлы, чтобы удостоверить свою подлинности. Даже если ваш компьютер или смартфон не подсоединен к Сети на момент осуществления транзакции, трансфер все равно регистрируется блокчейном. Средства от каждого имевшего место перевода отобразятся в вашем кошельке при последующем подключении к Интернету.
Принцип получения биткойн-транзакций офлайн можно сравнить с принципом получения электронных писем, когда вы не за компьютером. Вы не узнаете, что кто-то прислал вам письмо, пока не проверите почту в Интернете с помощью того или иного устройства. Однако, как только вы откроете почтовый клиент – или биткойн-клиент в данном случае, – его информация синхронизируется с сервером (или блокчейном) и любая новая информация, направленная вам, будет получена в считанные минуты.
Существует несколько способов отправить биткойн-транзакцию другому биткойн-пользователю. Прежде всего, вы можете попросить у получателя его биткойн-адрес и отправить деньги через специальное ПО на вашем компьютере или мобильном устройстве. Для пользователей смартфонов есть более простая альтернатива в форме сканирования QR-кода, генерируемого получателем. Любой тип программного обеспечения биткойна позволяет пользователю создавать QR-коды, которые могут включать адреса для отправки средств на них, а также итоговую сумму сделки.
Например, на ваш адрес в кошельке поступило 5 биткойнов на протяжении определенного периода времени, и теперь вы отправляете 2 биткойна Джо. Транзакция будет иметь один вход (нерастраченные выходы той транзакции, через которую вы получили 5 BTC) и создаст два разных выхода во время отправки средств Джо. Первым выходом станет транзакция Джо, ему будет отправлено 2 BTC. Вторым выходом станет транзакция со “сдачей”, которая возвращает неизрасходованные 3 BTC на ваш адрес в кошельке.
Больше информации относительно биткойн-транзакций можно найти здесь: .
Получаем подтверждения
Биткойн-транзакциям необходимы подтверждения – они появляются в сети, как только транзакции включаются в новый блок майнерами. (Читайте главу 4 для получения детальной информации о майнерах; это слово является производным от англ, miner – шахтер. Подсказка: кирка и фонарик вам не понадобятся.) Каждый блок, найденный в сети, включает некоторое количество биткойн-транзакций, произошедших чуть раньше. Эти транзакции затем распространяются по сети среди всех биткойн-узлов с целью определения подлинности.
Каждый блок, найденный в биткойн-сети после того, как транзакция была распространена, сможет – при условии, что транзакция подлинная, – предоставить одно сетевое подтверждение. Как уже упоминалось, минимум шесть подтверждений сети необходимо, чтобы “официально” считать биткойн-транзакцию расходуемой (см. следующий раздел).
Подтверждение в мире биткойна означает, что транзакция была признана действительной узлами сети. Без подтверждений транзакция все еще “происходит между” пользователями, и пока на блокчейне не появится некая форма подтверждения, транзакция представляет собой риск для отправителя и получателя. Определенно, транзакциям на подтверждение понадобится время, но это требование в большей степени – мера безопасности, чем просто досадный раздражитель.
Большинство биткойн-кошельков покажут биткойн-транзакцию как “потраченную” (spent), вне зависимости от количества подтверждений сети. Пользователи ПК могут увидеть статус вида “n/unconfirmed”, где n показывает количество подтверждений, полученных транзакцией. Получение шести подтверждений в большинстве случаев может потребовать до часа времени, хотя бывают и исключения (в сторону увеличения).
Биткойн-клиент не может “заставить” сеть генерировать подтверждения, это действие всецело зависит от майнеров биткойна. Учитывая, что время между появлением биткойн-блоков равняется примерно 10 минутам, не существует способа повлиять на скорость получения подтверждения в период между блоками. Учитывая сказанное, становится понятным, что существует только один решающий фактор, т. е. момент, когда ваша транзакция будет включена в сетевой блок.
Если предположить, что информация о вашей биткойн-транзакция была распространена в сети как раз перед тем, как был найден новый блок, то первое подтверждение может быть получено довольно быстро. Однако, если ваша транзакция будет включена только в следующий блок – а данный процесс является совершенно случайным, – придется ждать чуть больше времени, чтобы получить первое подтверждение.
Главное правило в отношении транзакций следующее: биткойн-транзакция, у которой нет подтверждений, всегда является относительно высоким риском в смысле атаки двойной траты. Говоря упрощенно, двойная трата означает, что биткойн-пользователь может потратить свои средства в биткойн-кошельке дважды (подробнее о двойной трате читайте в главе 10). По факту любая транзакция, у которой еще нет шести подтверждений, несет в себе аналогичный риск. Тем не менее торговцы или платежные процессоры могут устанавливать собственное число необходимых подтверждений. Это правило не касается пользователей, которые пользуются кошельками на ПК, так как средства будут оставаться “неподтвержденными” до тех пор, пока не наберется именно шесть подтверждений сети. Пользователи мобильных устройств, в зависимости от того, какой кошелек они выбрали, обычно могут тратить поступившие им средства значительно раньше.
Обычные шесть подтверждений
Учитывая, что каждое подтверждение транзакции происходит в момент, когда в биткойн-сети найден новый блок – что происходит примерно раз в 10 минут, – шесть подтверждений могут появиться только спустя час. Как только транзакция обрела эти шесть подтверждений, монеты становятся доступными к трате для получателя.
Тот час, за который транзакция будет подтверждена, в общем случае может выступать в роли как благословения, так и проклятья. К тому же ожидание появления шести (или более) подтверждений дает дополнительную уверенность, что транзакция настоящая и что вы не стали жертвой атаки двойной траты на сеть биткойна. В конце концов, транзакции биткойна – не возмещаемые, и согласие на транзакцию, не получившую шести подтверждений, может оказаться финансовой катастрофой для получателя.
Имеются сведения о случаях, когда транзакция набрала шесть подтверждений в течение нескольких часов. Тем не менее подтверждения задерживаются все реже и реже, а время зависит от общей используемой для нахождения блоков вычислительной мощности.
Даже несмотря на то, что транзакция считается “подтвержденной” биткойн кошельком по получении шести и более подтверждений, это совсем не делает ее “подлинной” для протокола биткойна. Когда биткойн был создан, в его протокол была вписана некоторая часть кода, отвечающая за признание новых намайненных монет (найденных блоков) подлинными только после того, как они наберут 100 подтверждений. По факту большинство майнинговых пулов биткойна (как было упомянуто в главе 4) не будут высылать майнерам вознаграждения за блоки, пока не получат 120 подтверждений от сети.
Двойная трата
Сеть биткойна очень безопасна сама по себе, однако всегда присутствует риск двойной траты. С помощью двойной траты, как уже упоминалось, пользователь может потратить одну и ту же сумму дважды. Чтобы уменьшить шансы проведения подобной атаки, сеть биткойна закрепляет каждую отдельную транзакцию с помощью подтверждений.
В общих чертах самый большой потенциал для атак двойной траты появляется, когда торговцы или поставщики выдают товар или деньги сразу, как только транзакция появилась в сети. Эти неподтвержденные транзакции – также известные как транзакции нулевого подтверждения (zero confirmation transactions) – являются основным риском в смысле двойной траты. В результате всем биткойн-пользователям рекомендуется ждать как минимум 6 подтверждений перед тем, как пытаться пересылать полученные средства. Чем больше подтверждений имеет конкретная транзакция, тем выше шансы, что она подлинная и не является двойной тратой.
Шансы на успешное выполнение двойной граты биткойнов практически равны нулю. Нет системы, которая полностью устойчива к взломам, но протокол биткойна – это другая разновидность технологии, которая потребовала бы достаточно больших усилий для обеспечения успешности атаки двойной траты. Ввиду вышесказанного существует пять потенциальных форм атак, связанных с двойной тратой. О них говорится в следующих подразделах.
“Гонка” (Race attack)
Торговцы и поставщики, принимающие платеж незамедлительно после тою, как заметят “0/unconfirmed”-транзакцию в своем кошельке, открыты к атаке двойной траты, если имела место мошенническая попытка успешно переслать торговцу одну транзакцию, одновременно отправив другую транзакцию, которая тратит ту же монету, запись о передаче которой естественным образом должна была первой попасть в блокчейн.
“Атака Финни” (Finney attack)
Атака Финни – это ложная двойная трата, которая требует участия майнера, как только блок был найден. Риск атаки Финни нельзя ликвидировать, вне зависимости от предосторожностей, предпринятых торговцем, однако необходимы участие майнера и особая последовательность обстоятельств. Таким образом, эта атака не тривиальна, не дешева в исполнении и имеет смысл для атакующего только в том случае, если его ждет существенная добыча.
Атака Вектор76 (Vector76 attack)
Вариант Вектор76 также иногда называют атакой одного подтверждения. Это комбинация атак Гонка и атаки Финни, при которой транзакция, имеющая одно подтверждение, все еще может быть потрачена дважды. Те же защитные действия, которые используются против атаки Гонка, заметно уменьшают риск успешности этой операции.
Брутфорс-атака (Brute force attack)
Атака грубой силы заключается в следующем. Атакующий присылает торговцу/сети транзакцию, которая платит торговцу, и в то же время тайно майнит форк (разветвление, создание ложного дубликата) блокчейна, в котором транзакция двойной траты включается вместо настоящей. После ожидания n подтверждений торговец отправляет товар. Если атакующий сможет найти больше чем n блоков к этому моменту, он останавливает свой форк и получает свои монеты обратно: в другом случае он может продолжить расширять свой форк с надеждой, что сможет поспевать за сетью.
Атака >50 (>50 percent attack)
Также известна как атака 51 процента. Если атакующий заполучил контроль более чем над 50 % мощности сети биткойна, вышеописанная брутфорс-атака имеет гарантированный шанс на успех. Так как атакующий может генерировать блоки быстрее, чем остальные участники сети, он может упорно развивать свой личный форк до тех пор, пока его ветка не станет длиннее, чем та, которая ведется честной сетью, преодолев любые препятствия. Больше деталей по этому вопросу можно найти по адресу: .
Нулевые подтверждения
В мире биткойна назрел тренд: продавцы зачастую даже не беспокоятся о шести подтверждениях, сразу помечая транзакцию как завершенную. Такой отказ от ожидания шести подтверждений повышает шанс стать жертвой атаки двойной траты. Пока сама сеть биткойна не покажет подтверждения для транзакции, считать ее “выполненной” рискованно.
Тем не менее торговцы и платежные процессоры имеют право определять количество подтверждений, необходимое для подтверждения подлинности биткойн-транзакции. Тогда как большинство сервисов видят это число в пределах трех-шести подтверждений, остальные сервисы действуют, как только транзакция начинает распространяться по сети в своем неподтвержденном состоянии. Это не только позволяет быстрее завершить покупку на вебстраничке, но и вообще ускоряет завершение заказов.
Большинство торговцев, завершающих сделку при нуле подтверждений, продают недорогие или цифровые активы. Например, большинство баров и ресторанов будут считать транзакцию “завершенной” после нуля подтверждений, так как они защищены платежным процессором на случай двойной траты. Платежные процессоры вроде BitPay, BitKassa или Coinbase предоставляют торговцам некоторый вид защиты от двойной траты, даже если установлено нулевое число подтверждений для завершения транзакции.
Биткойн-транзакции нулевою подтверждения являются хорошим средством для бизнесменов и частных лиц получать биткойны быстро и безопасно, несмотря на риски, ассоциированные с таким подходом. Тем не менее раз получатель может подать в суд на платежный процессор с целью защититься от потери средств из-за атаки двойной траты, у него нет никаких причин не установить для своего сервиса нулевое число необходимых подтверждений.
Считаем биткойн – комисcuu
На биткойн иногда ссылаются как на глобальную сеть платежей, в которой практически нет комиссий за транзакции. До определенного момента это утверждение верно, однако оно не раскрывает данную тему полностью. Да, получателю любой биткойн-транзакции никогда не придется платить комиссию. Но вот отправителю все же необходимо заплатить комиссию за перевод, чтобы майнеры включили его транзакцию в блок, хотя, как правило, речь идет о небольшой сумме (несколько центов).
От размера комиссии (которую пользователь устанавливает самостоятельно) зависит то, насколько быстро майнеры добавят ее в новый блок, а соответственно, и скорость подтверждения данной транзакции. По факту большинство биткойн-кошельков позволяют пользователю регулировать размер комиссии за транзакцию с целью ее ускорения. Под ускорением мы подразумеваем, что транзакция с прикрепленной небольшой комиссией будет приоритетно включена в следующий сетевой блок, тогда как транзакция с низкой или нулевой комиссией получает самый низкий приоритет и может “застрять” в сети, потому что у майнеров не будет никакого интереса включать ее в блоки.
Существуют некоторые исключения, связанные с включением платы за транзакцию, которые не влияют на скорость выполнения транзакции. В клиенте Bitcoin Core, если ваша транзакция имеет размер меньше 1000 байт, все суммы выходов в ней – от 0,01 BTC и выше и ей присвоен достаточно высокий приоритет, сбор за транзакцию не взимается. Чтобы это правило исключения было применимо, должны соблюдаться все указанные условия. В противном случае в операцию будет добавлена стандартная комиссия за транзакцию в размере 0,0001 BTC за каждую тысячу байтов. Пользователи клиента Bitcoin Core получат соответствующее извещение о том, что с проводимой транзакции будет взята комиссия. В подобной ситуации им предоставляется право согласиться с этим или отказаться от уплаты комиссии. Однако отклонение этой платы снижает приоритетность транзакции и в конечном счете влияет на скорость, с которой для нее будут поступать сетевые подтверждения.
Большинство биткойн-транзакций имеют размер 500–600 байт и в зависимости от выходов могут или не могут облагаться комиссией в 0,0001 BTC. Включение транзакции в сетевой блок происходит случайным образом, однако на нега влияет комиссия (если она необходима). Каждый блок оставляет 50 000 байт места для транзакций с высоким приоритетом (вне зависимости от комиссии за транзакцию (ТХ)), чтобы они были включены в него (примерно по 100 транзакций на блок). После этого в блок добавляются транзакции, у которых проставлена комиссия в размере 0,00001 BTC/Кб, при этом первыми транзакциями становятся те, у которых сумма комиссии будет сравнительно выше. Этот процесс повторяется до тех пор, пока размер блока не достигает 1 Мбайт.
Больше информации о размере комиссии за транзакции можно найти здесь:
.
Поговорим о скорости транзакции
Приоритет транзакции определяется достаточно сложной математической формулой. Приоритет считается так: это взвешенная по стоимости сумма возраста входов (насколько транзакция стара), разделенная на размер транзакции в байтах. Для достижения лучшего значения взвешенная сумма должна быть более 57 600 000.
Как вы уже могли догадаться, иногда в очереди на распространение находится больше транзакций, чем можно включить в текущий блок. Любые оставшиеся транзакции будут оставаться в пуле транзакций майнера (это коллекция транзакций, которые еще не были подтверждены сетью Биткойна) и будут включены в следующие блоки с приоритетом, вычисленным согласно их комиссиям (если она взимается).
Распространение биткойн-транзакций также зависит от того, была ли назначена для нее комиссия. Процесс распространения транзакций не учитывает, является ли сумма всех выходов транзакции равной 0,01 BTC или более, а лишь проверяет, была ли транзакция помечена как “бесплатная”. “Бесплатной” транзакция помечается в зависимости от того, была ли добавлена комиссия в 0,00001 BTC. Если нет, транзакция помечается как “бесплатная” и получает низкий приоритет.
Больше информации о ретрансляции транзакций можно найти здесь:
.
Чем комиссия является для майнеров
Биткойн-транзакции включаются в блоки благодаря майнерам (подробно о майнерах – в главе 4). Отсюда следует, что прикрепление комиссии к каждой транзакции служит стимулом для майнеров включить вашу транзакцию в следующий блок.
Каждая комиссия за транзакцию может рассматриваться как небольшая награда всем майнерам, способствовавшим решению блока, включающего вашу транзакцию (или несколько).
Процесс майнинга биткой на подойдет к концу, когда все монеты будут добыты, что запрограммировано на 2140 год. Предполагается, что далее майнеры будут продолжать заниматься добычей блоков сети (они содержат сведения о транзакциях) в обмен на комиссии, прикрепленные к каждой отдельной транзакции. Разгорелось множество споров относительно этих комиссий и того, стоит ли их увеличивать ради стимуляции майнеров. Так или иначе, пройдет еще много лет, прежде чем консенсус по данному вопросу будет достигнут, так что вам сейчас не стоит об этом волноваться.
Кроме комиссий майнерам, для них нет никаких стимулов подтверждать ваши транзакции. Несмотря на то что никто не обязан добавлять комиссию к транзакции – разве что вашим кошельком предусматривается иное, – хорошей практикой было бы всегда включать маленькую комиссию ради поддержки сети биткойна и индивидуальных майнеров.
Разбираемся в транзакциях с мультиподписью
Возможно, вы думаете, что конечный пользователь всегда единолично контролирует свои запасы биткойнов в любое время. Тем не менее, поскольку конечный пользователь является единственным лицом, владеющим приватными ключами от адресов, содержащихся в его кошельке, в общем случае должен был быть разработан и более безопасный вариант. Дело в том, что оставлять одному человеку контроль над одним кошельком – вполне нормально, но все становится немного по-другому, когда речь идет о компаниях, семьях или даже друзьях, вместе работающих над проектом. Доверие может рассеяться очень быстро.
Вот как работает типичный биткойн-кошелек. Один пользователь имеет приватный ключ и полный контроль над биткойн-адресом. В этой ситуации, если два или более людей создают проект вместе, у них будет только одна возможность: доверить одному из пользователей приватный ключ от общего адреса в кошельке. И если этот ответственный пользователь захочет вывести все средства в свою пользу, другие ничего не смогут с этим поделать, поскольку у них нет никакого контроля над кошельком.
Ясное дело, этот вариант – далеко не идеальное решение, необходим иной вариант действий, предоставляющий сразу нескольким пользователям контроль над одним кошельком. Следуя этому принципу, со временем была разработана система мультиподписи, при которой несколько пользователей контролируют один кошелек и никто не имеет полного контроля над его содержимым без согласия хотя бы одного другого человека в группе. Эта система известна как аккаунт с мулътиподписями или Multisig-аккаунт.
В противовес обычному биткойн-кошельку биткойн-адреса с мультиподписями требуют наличия нескольких приватных ключей для того, чтобы можно было потратить хранящиеся в них средства. Получение транзакций в такой кошелек с мультиподписью работает точно так же, как в обычном кошельке, просто потому что приватный ключ не используется в процедуре получения средств. А вот в случае отправки средств из кошелька каждая транзакция снабжается цифровой подписью посредством программного обеспечения биткойна на вашем компьютере.
Биткойн-адрес с мультиподписью требует указания “m–из–n” приватных ключей, чтобы разрешить трату средств, ассоциированных с данным отдельным биткойн-адресом. Например, адрес с тройной мультиподписью потребует по крайней мере двух из трех приватных ключей, относящихся к этому адресу: если трое людей создают кошелек с мультиподписью (m = 3), нужны будут по крайней мере две подписи для отправки транзакции (n = 2).
Неспособность предоставить два приватных ключа для подписи транзакции приведет к отказу в отправке транзакции. Биткойн-адреса с мультиподписью предоставляют более высокий уровень безопасности для бизнеса и групп людей, разделяющих общий адрес в кошельке, при этом для одиночных пользователей нет почти никакой разницы между обычным кошельком и его версией с мультиподписями. Так или иначе, для тех из нас, кто всерьез воспринимает проблему безопасности биткойна, было бы неплохой идеей генерировать себе кошелек с мультиподписями, даже для личного использования.
Armory, один из многих доступных пакетов ПО биткойн-клиента, был первым кошельком, внедрившим в систему мультиподписи. Более года назад компания Armory представила свою новую “фишку” Lock Boxes, которая является практической иллюстрацией того, как генерируется биткойн-адрес с мультиподписью.
Детальное видео руководство представлено здесь: .
Пример использования мультиподписи
В группе из трех человек – Джона, Дилана и Марии – есть три возможные комбинации для достижения согласия двух из трех приватных ключей.
• Джон и Дилан подписывают транзакцию с помощью своих приватных ключей.
• Джон и Мария подписывают транзакцию с помощью своих приватных ключей.
• Дилан и Мария подписывают транзакцию с помощью своих приватных ключей.
Без любой из этих процедур, проведенных правильно, транзакцию вывода биткойнов провести невозможно.