Неожиданно: SegWit может вызвать юридические проблемы
Сообщество Биткоина все еще обсуждает, улучшит ли Segregated Witness масштабирование сети или создаст еще больше проблем. При этом SegWit поднимает не только технические, но и правовые вопросы, потому что он позволяет полностью исключить данные подписи (witness data) из данных транзакции, а это, в свою очередь, подрывает способность цифровых подписей биткоина также использоваться в качестве электронных подписей в контрактах (например, для умных контрактов).
Еще одна ключевая юридическая проблема – это доказательная идентификация транзакций блокчейна. При идеальном стечении обстоятельств мы попадаем в ситуацию, когда сеть Биткоина может использовать умные контракты и использоваться для различных видов транзакций данных. Однако в этом случае стоит задуматься, что же произойдет, если компании и потребители не смогут легко аутентифицировать и доказать эти транзакции позже, при возникновении юридических споров?
Как SegWit меняет Биткоин
В разделе 2 оригинальной Белой книги Биткоина, написанной Сатоши Накомото, «электронные монеты» определяются как «цепочки цифровых подписей». Каждый владелец передает управление владением монеты следующему владельцу путем цифровой подписи хэша предыдущей транзакции и открытого ключа следующего владельца, добавляя их в конец монеты. Получатель может проверить подписи, чтобы проверить цепочку владения. Данные транзакций передают входы и выходы монет, которые расходуются, а также могут переносить дополнительные данные, которые должны быть записаны в транзакции биткоина.
Обычная транзакция биткоина хранит как данные транзакции, так и данные подписей (witness) в блоке, причем подписи составляют примерно 60% от общего размера данных. Это означает, что подписи транзакций в биткоине могут удовлетворять требованиям законов электронной подписи, которые часто требуют, чтобы подпись электронного контракта была «привязана или логически связана» с условиями контракта – например, она может быть добавлена в данные транзакции биткоина.
Разумеется, не все цифровые подписи в биткоине должны также являться электронными подписями контрактов, однако они изначально могут быть созданы таким образом, чтобы удовлетворять требованиям закона об электронной подписи договоров, если стороны хотели использовать их для этой цели.
Например, пользователь А смог подписать свою биткоиновую транзакцию – или на более продвинутом уровне – умный контракт, чьи условия закодированы в данных транзакции – с использованием своей цифровой подписи в биткоине, которая служит двум целям: (1) проверить транзакцию, которая должна быть отправлена ??и подтверждена в сети Биткоина, а также (2) подтвердить свое согласие на транзакцию или условия умного контракта, в соответствии с законом об электронных договорах.
Как SegWit меняет ситуацию? Вместо того, чтобы напрямую увеличить размер блока, SegWit косвенно увеличивает вместимость блока для хранения большего количества транзакций, отделив данные подписей (witness) от данных транзакции. Затем он создает два хэша: (1) «обычный» хэш, содержащий только данные транзакции, без подписей и (2) «хэш с подписями», включающий в себя хэш как данных транзакции, так и подписей. Для хранения в блоке протокол биткоина уже использует криптографический приём под названием “дерево Меркла” (Merkle tree) для эффективного хранения данных транзакции, и помещает корень Меркла в заголовок каждого добытого блока. SegWit создает второе “дерево Меркла” для раздельного хранения хэша данных подписей, но важно то, что он не требует от узлов хранения данных подписей.
По сути SegWit предполагает, что данные подписи нужны только тогда, когда транзакции проверяются при получении и валидации блока, а впоследствии они могут быть удалены как несущественные. Как отмечает Петер Вюлле (Pieter Wuille), один из авторов SegWit – «эти подписи нужны только во время проверки», и SegWit рассматривает «подписи не как часть транзакции», ее «изменение» позволит вам отказаться от данных подписей». Вюлле – сооснователь стартапа Blockstream, в котором работает несколько ключевых разработчиков Bitcoin Core.
Более того, со временем от узлов Биткоина не будет требоваться хранение данных подписей. Как пояснил Вюлле, «SegWit позволяет отказаться от подписей всякий раз, когда вы обращаетесь к узлу, который на самом деле не выполняет полную проверку блоков. Это также позволяет нам удалить эти данные из истории, однако по всей видимости нам доступны не все узлы в сети, которые фактически продолжают обслуживать эти гигабайты подписей, сейчас похороненные под годами работы доказательств proof-of-work». Это ключевой момент, потому что SegWit делает возможным то, что большинство узлов сети не будут хранить данные подписи, потому что это не очень эффективно и дорого.
Если большинство узлов перестанут хранить данные подписей (что скорее всего и произойдет), блокчейн сможет оставаться надежным реестром данных для бизнеса по всему миру, только если:
-
Некоторые узлы выберут своей специализацией хранение полного блокчейна, включая данных подписей. Полный блокчейн даст этим узлам определенные возможности (как доверенному источнику) по проверке и аутентификации транзакций биткоина и подписей. Но это противоречит идее того, что Биткоин – децентрализованная сеть.
-
Компании и заказчики, работающие в блокчейне, должны будут хранить собственную копию записей транзакций (или иметь собственные узлы, хранящие все транзакции блокчейна с данными подписей) – в этом случае они будут иметь возможность обратиться к своим данным подписей в будущем, если такая необходимость возникнет ввиду юридической необходимости или аудита. Однако, для этого необходимо создание большого количества дубликатов данных и это снижает эффективность использования блокчейна в качестве децентрализованного реестра.
Идентификация доказательств
Согласно доказательственному праву, SegWit затруднит идентификацию транзакций, записанных в блокчейне, как для бизнеса, так и для частных лиц. В гражданском и уголовном судопроизводстве доказательства должны быть идентифицированы перед тем, как рассмотрены. Согласно Кодексу доказательственного права 901 США «для удовлетворения требований идентификации предмета доказательства, защитник должен предоставить доказательства, достаточные для подтверждения того, что этот пункт является тем, о чем утверждает заявитель». Это требование необходимо для того, чтобы защитники не пытались представить фальсифицированные или подделанные доказательства.
Как это работает на практике? Возьмем для примера судебный процесс об автомобильной аварии. Водители часто пытаются представить фотографии сцены аварии. Они могут только на словах рассказать, что они использовали свои смартфоны для съемки сразу же после аварии, для подтверждения подлинности изображений. Аналогичным образом, транзакция и другие деловые документы могут быть допущены к судебному разбирательству, но свидетель обычно должен дать показания для проверки подлинности записей.
Например, если вы участвуете в споре с фондовой биржей по предмету биржевой торговли, фондовая биржа может представить свои электронные записи о вашей учетной записи и сделках, но один из ее сотрудников должен давать показания о верности этих данных. Аналогичным образом вы можете создавать собственные печатные копии своей истории торговли активами и давать показания, касающиеся верности этих распечаток.
Таким образом, записи транзакций обычно требуют, чтобы свидетель объяснил, что такое запись транзакции, как она хранилась или была сгенерирована, и что она собой представляет.
Как идентифицировать транзакции в блокчейне без подписей?
Как же все это будет работать в среде блокчейна? Если данные подписей сохранены, то гораздо легче впоследствии идентифицировать запись транзакции, обратившись к цифровой подписи биткоина, использующейся для подтверждения транзакции. Это поможет привести доказательство в соответствие с законодательными требованиями, другими словами, эти данные – своеобразный “чек” транзакции.
Однако SegWit позволяет исключить данные подписи из данных транзакций, что затрудняет задачу проверки доказательств. Если никакие узлы не хранят данные подписи, то кто может подтвердить, что данные подписи соответствуют данным транзакции? И все это – одновременно с тем, что прямые участники не сохраняют (или теряют) свои собственные записи о транзакциях?
Появятся ли специализированные узлы, хранящие данные подписей для судопроизводства (например, утвержденные правительством поставщики услуг)? Или же просто доказательства того, что подпись была необходима во время транзакции биткоина, удовлетворят суд, в том случае, если подпись не может быть воспроизведена?
Во многом все будет зависеть от властей конкретного государства. Чем больше технология блокчейна набирает популярность, тем больше регуляторы обращают на нее внимание и стремятся ее контролировать. В 2016 году в штате Вермонт был принят закон, обеспечивающий юридический статус для основанной на блокчейне информации. Однако он действителен только в том случае, если запись подтверждается письменно уполномоченным лицом.
При этом вовсе не факт, что другие страны также примут аналогичные законы, если SegWit способствует отмене хранения данных подписей. Для принятия подобных законов сторонники блокчейна должны убедить регуляторов в надежности и неизменяемости записей в блокчейне. Но даже если их усилия увенчаются успехом, то вряд ли законодатели поспешат дать записям в блокчейне юридический статус, зная, что данные подписи в любой момент могут перестать быть частью транзакции.
Почему нужны данные подписи
Если данные подписей не хранятся никакими узлами биткоина или хранятся только некоторыми из них, то это ставит под вопрос возможность адекватной идентификации транзакции биткоина из блокчейна кем-либо.
Для идентификации транзакции свидетель в суде должен будет опираться на «надежность и верность данных» сети Биткоина как механизма для хранения бизнес-данных. Такими свидетелями смогут выступать пользователи биткоина, программисты, эксперты по криптовалютам, или инвесторы.
Однако если SegWit позволит отказаться от данных подписей, то сама концепция «надежности и верности данных», хранящихся в блокчейне, может стать предметом спора.
Мысленный эксперимент о юридических рисках
Питер Ризан (Peter Rizun) из Bitcoin Unlimited на конференции Future of Bitcoin, прошедшей в 2017 году в Нидерландах, делал доклад на тему «SegWit Coin – это не биткоин». Чтобы проиллюстрировать утверждение, он представил свой мысленный эксперимент:
«Представьте себе, что у вас есть 100 BTC, которые хранятся на segwit адресе, и через несколько дней вы обнаружили, что они были переведены на адрес, который вы не контролируете. Вы пытаетесь найти подпись, которая авторизовала перевод для подтверждения факта воровства (при этом вы уверены в том, что ваши закрытые ключи находятся в сохранности, соответственно подпись была фальшивой), однако ни у кого эти данные не сохранились. Как вы подтвердите, что ваши средства были украдены?»
Исходя из мысленного эксперимента Ризана предположите, что вы подали в суд на своего оператора кошелька по факту исчезновения 100 BTC, которые, по вашему мнению, были украдены из вашего кошелька. Как отмечает Ризан, вам нужно найти подпись, связанную с транзакцией, чтобы доказать, что она была поддельной и не авторизована вами. Но, конечно, ее у вас нет, потому что вы не инициировали транзакцию. И если ваш провайдер кошелька и узел не сохранили подпись по спорной транзакции, то вам не повезло.
В лучшем случае, вы или ваш оператор кошелька можете доказать, что: (а) транзакция произошла в конкретную дату и время для 100 BTC, и (б) есть строка хэшей, указывающая, что транзакция была авторизована в это время. Достаточно ли этого, чтобы подтвердить эту запись транзакции для доказательства? И что еще более важно, даже если эта ограниченная идентификация записи транзакции и приемлема в суде, то данные подписи все равно отсутствуют, и подтвердить факт воровства невозможно.
В случае с проблемами, касающимися электронных контрактов, правовые системы могут найти способы решить подобные проблемы с доказательствами. Однако SegWit сильно усложняет дело, создавая дополнительные препятствия для идентификации записей блокчейна и их использования в качестве доказательств на суде. Подобные риски могут препятствовать распространению блокчейна в бизнес-среде и мешать утверждению идеи сети Биткоин 2.0, позволяющей пользоваться умными контрактами и имеющую гораздо больше функциональных возможностей.
Участникам сообщества придется доказать суду, регуляторам и правоохранителям, что записи биткоина, в частности подписи – надежны и аутентичны. Подобные усилия только начинают предприниматься и не должны быть убиты на корню предложениями, подобными SegWit, которые могут серьезно изменить суть Биткоина.
Однако SegWit имеет и немало преимуществ, о которых не раз говорили ведущие эксперты индустрии, такие как Марек Палатинус из SatoshiLabs, Адам Бэк из Blockstream и многие другие. Помимо этого, SegWit станет ключом
к эффективному и безопасному запуску сети Lightning Network. У SegWit, как и у любого другого решения, есть свои плюсы и свои минусы – это невозможно отрицать.