Питер Тодд и Экспансия Биткойна

Питер Тодд

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

Главные предложения по развитию формулируются в BIPS, или Bitcoin Improvement Proposals. Это список формальных предложений насчет того, как можно улучшить Биткойн-сеть и внести модификации в базу кодов. Консенсус данного документа выражается в одобрении разработчиков, соответствующих тестах, а также исследовании возможных рисков.

Иногда есть конкурирующие «вкрапления» кода, которые призваны решать одну и ту же проблему: например, есть решение включить P2SH – вот тут все «За» и «Против» будут взвешены для выбора лучшего кандидата. С одной стороны, долгий процесс принятия идей в BIPS тормозит Биткойн, с другой – исследование с открытым исходным кодом позволит получить вклад от многих разработчиков, провести стабильные тесты и установить безопасность по всей базе кодов. Что поможет избежать потенциальные риски пользователям Биткойна.

BIPS обычно начинается с дискуссии на Github, либо в почтовой рассылке разработчиков. Такие дискуссии иногда вдохновляет и Питер Тодд — давнишний активист мира Биткойн и связанных с ним проектов. Он на данный период занят проектом BIP 65 под загадочным для непосвященных названием OP_CHECKLOCKTIMEVERIFY. Данный код добавляет дополнительные возможности во встроенный скриптовый язык Биткойна.

Такие функции как мульти-подпись адресов хорошо иллюстрируют коды операций, создаваемые майнерами, считающими Биткойн программируемыми деньгами. Идея появилась из лимитов nLockTime, транзакционный параметр отвечающий за минимальное количество времени, которое должно пройти перед включением транзакции в блок (что выражается либо в Unix Time, либо в порядковом номере блока (blockheight). Функционал 65-го «бипа» еще и в том, что предлагаемая к включению операция уже была ранее обкатана в альткойне названный Viacoin, в котором Питер Тодд играет роль советника и главного ученого (что усиливает позиции тех, кто утверждает, что альткойны — полезны как площадка для технологических экспериментов).

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

Также как в nLockTime, предложение 65-го «бипа» позволит установить временной лимит, по истечении которого средства становятся доступными, но с большей гибкостью. Например, можно использовать такую технологию как Escrow с мультиподписями, которые указывают на время и комбинации ключей, с помощью которых можно освободить средства. Если дать простой пример — посмотрите на это как на процесс передачи наследства. Например, двое заботливых родителей дарят ребенку 13 биткойнов, после чего посылают их на мульти-подписанный адрес с тремя подписями. Они оба имеют по ключу и один дают малышу. Чтобы потом можно было потратить эти деньги, мама и папа дают ребенку свое согласие. Чтобы транзакция прошла успешно, оба родителя должны ее подписать.

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

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

Мультисиг

Очень интересное чтиво Hard Fork Wish List, которое детально показывает что разработчики хотели бы изменить в коде, в случае если придется делать «тяжелый форк», то есть изменение в коде биткойна, которое нарушает совместимость с предыдущими версиями (примером такого изменения являются, скажем, сайдчейны). Когда-то мы, может, и увидим такую «тяжелую вилку», но функционал BIP 65 можно включить в виде «легкого форка» (изменение, которое нуждается только в одобрении большинства майнеров). Поэтому у него будет куда больше шансов быть включенным в код Биткойна уже в ближайшее время.

Предложения по Биткойну

Есть много вопросов, которые мы просто должны были задать Питеру Тодду, что и сделали.

Гевин Найт (Gavin Knight): Как у вас впервые возникла идея такой функциональности?

Питер Тодд (Peter Todd): Смешная штука этой функции в том, что они всегда описывалась как «Что ты ожидал от функционала nLockTime до тех пор, пока не стал пользоваться им». Именно так, мы можем ожидать, что временной запрет на транзакцию сработает, а в реальности он срабатывает, но — по-другому! Так что не могу провозгласить заслугу создания главной идеи за собой.

ГН: Как думаешь, как используют функционал твоего кода?

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

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

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

Есть и другие пути делать подобные вещи с пре-подписанными транзакциями, но она все пока не безопасны и сложны из-за изменчивости транзакций. CHECKLOCKTIMEVERIFY делает процесс простым и защищенным.

ГН: Вы можете описать процесс общения разработчиков в BIP?

ПТ: Есть софт форк P2SH/OP_EVAL/OP_ CHECKHASHVERIFY — это отличный пример. Он получал целых 3 соперничающих между собой предложения от двух групп насчет того, как делать мульти-подпись — а другие приложения — более жизнеспособными. Что тут интересно так это как происходит весь процесс — Гэвин Андресен строго требовал быстро завершить работу, приводя в качестве довода потенциальные улучшения безопасности. Каждое из предложений имело свои компромиссы, которые улучшали или ограничивали некоторые приложения. Конечно, «жаркие дебаты» тут обеспечены.

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

Когда приложения были написаны некоторые серьезные ограничения P2SH — выбранного решения — проявили себя.

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

ГН: Какие потенциальные риски софт-форк представляет для системы если бы его выбрали для использования?

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

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

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

Источник: CoinTelegraph



Categories: Безопасность, Приложения, Разработчикам, Стандарты

Tags:

Leave a Reply

4 Комментарий на "Питер Тодд и Экспансия Биткойна"

Notify of
avatar
trackback
MAST: Следующий шаг к улучшению гибкости, масштабируемости и конфиденциальности Биткойна – Bit•Новости

[…] д-ра Питера Велле (Pieter Wuille), и Core-разработчика Питера Тодда (Peter Todd). Она была недавно описана в предварительном […]

trackback
Стоит ли увеличить размер блока биткойна? | Bit•Новости

[…] важен, потому как он играет ключевую роль в будущей масштабируемости сети. На данный момент установлен жесткий лимит в 1 Мб, […]

Анонимно
Гость

Крутое обновление. С его помощью можно реализовать много новых функций, которые пока не возможны на уровне блокчейна.

trackback
Питер Тодд и Экспансия Биткойна | Menaskop Service News

[…] ценности и самым защищенным средством с… Read More › Источник: Питер Тодд и Экспансия […]

wpDiscuz