segregated witness что такое

Что такое Segregated Witness?

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

Что такое Segregated Witness?

Что такое софтфорк?

Что в перспективе даст SegWit?

Каковы преимущества SegWit?

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

Для решения проблемы масштабируемости Segregated Witness подразумевает извлечение подписи транзакции и помещение ее в отдельную структуру данных. Когда из транзакции удаляется подпись, размер транзакции уменьшается. Следовательно, каждая транзакция уменьшается приблизительно на 47%. Таким образом, блок, не меняя своего размера, сможет вместить почти вдвое больше транзакций.

SegWit также принесет пользу держателям «полных нод», поскольку может уменьшить количество данных, необходимое для хранения на жестких дисках. Другими словами, Segregated Witness позволит сократить требования для запуска полной ноды и время, необходимое для синхронизации с сетью.

Что нужно для внедрения Segregated Witness?

Насколько сильна поддержка SegWit в биткоин-сообществе?

Какие другие криптовалюты ориентируются на SegWit?

Где можно получить более подробную информацию о SegWit?

Источник

Segregated Witness для чайников

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

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

Segregated witness, или как многие его называют SegWit, это софт-форк, описанный в серии BIP’ов (141, 142, 143, 144 и 145), главной целью которого является оптимизация структуры транзакций и блоков с помощью вынесения подписей (то, что называют ‘scriptSig‘, ‘witness‘ или же ‘unlocking script‘) из транзакции в отдельную струтуру. Это не только позволяет уменьшить размер транзакций, делая блоки более вместительными, но и решает проблему их «изменяемости» (transaction malleability, именно об этой уязвимости мы и говорили выше), что очень важно для технологий наподобие платежных каналов или лайтнинга, пологающихся на строение транзакции биткоина.

How it works

Before we begin

Для начала кратко напомним, что из себя представляет платежная система в биткоине. В ней нет ничего наподобие списка балансов как это может быть реализовано в каком-нибудь банке. Вместо этого, баланс каждого адреса представлен набором транзакций, отправленных на этот адрес, где транзакция — это структура, в которой главными являются входы (inputs) и выходы (outputs). Входы — это транзакции, на которые мы ссылаемся, чтобы потратить (если точнее то это не транзакции полностью, а их конкретные выходы, т.к в одной транзакции мы можем переводить средства на несколько адресов), а выходы — это адреса, на которые мы хотим перевести средства. Вот так выглядит структура транзакции биткоина:

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

Поле PubKey script (далее scriptPubKey) в выходах это то, что называют locking script. Оно нужно для того, чтобы только владелец адреса, на который перечисляются срества, смог воспользоваться этим выходом. Поле Signature Script (далее scriptSig) еще называют unlocking script — оно «отпирает» locking script, предоставляя доказательство владения адресом.

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

Подробнее о транзакциях, а также о работе запирающего и отпирающего скрипта можно почитать здесь.

Backward compability

На самом деле, Segregated Witness меняет не только строение транзакции, но и ее выходы. Это, однако, не значит, что в одной и той же транзакции не могут быть потрачены как традиционные UTXO (unspent transaction outputs), так и сегвитовские — просто первые будут ожидать «доказательства» внутри входа (поле scriptSig), а вторые — снаружи.

Так как Segregated Witness все-таки является софт-форком, его обновления могут быть проигнорированы, а значит более старые системы должны как-то обрабатывать сегвитовские выходы. Дело в том, что для старых нод или кошельков эти выходы выглядят как доступные всем, то есть они могут быть потрачены с пустой подписью, что все еще валидно. Принявшие обновление ноды и кошельки конечно же будут искать все подписи снаружи входов в специальном поле ‘witness’.

Examples

Pay-to-Witness-Public-Key-Hash

Теперь давайте взглянем на примеры транзакций и на то, как они изменятся с Segregated Witness. Мы начнем со стандартной Pay-to-Public-Key-Hash (P2PKH) транзакции.

Нас интересуют выходы, а именно их поля «scriptPubKey». Рассмотрим типичный locking script:

C Segregated Witness он будет выглядеть так:

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

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

Однако, чтобы потратить сегвитовский выход, транзакция должна иметь пустое поле sriptSig и содержать все подписи в отдельном месте:

Warning

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

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

Pay-to-Witness-Script-Hash

Следующим очень важным типом транзакции является P2SH — он позволяет отправлять транзакции на хеш скрипта вместо хеша публичного ключа (обычный адрес биткоина). Чтобы потратить выход P2SH транзакции нужно предоставить скрипт (его называют redeem script), хеш которого совпадает с хешем скрипта на который отправлены средства, а также подписи/пароли/что-то еще в зависимости от скрипта. Используя такой подход можно отправлять биткоины на адрес, защищенный способом, о котором нам ничего не известно, а также сильно экономить место — в случае, например, кошелька с мультиподписью (multisignature wallet) locking script был бы действительно большим, если бы мы хранили все «замки» полностью, а не только их хеш.

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

Чтобы потратить его, нужно предоставить redeem script, определяющий условие мультиподписи 2 из 5, а также 2 подписи и все это должно находится во входе транзакции:

Теперь давайте взглянем, как бы все это выглядело, если бы и отправитель и получатель использовали Segregated Witness.

Locking script выхода:

Опять же, как и в случае с P2PKH транзакцией полученный скрипт намного проще. Здесь 1ое значение это номер версии, а второе — 32 байтный SHA256 хеш redeem script’a (witness program). Эта хеш-функция была выбрана для того, чтобы как-то отличать witness program P2WPKH от оной для P2WSH по длине хеша (32 байта SHA256 и 20 байт RIPEMD160(SHA256(script))).

Транзакция, использующая этот выход:

Embedding Segregated Witness inside P2SH

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

Алиса хочет отправить биткоинов Бобу, но у нее нет сегвит-кошелька, в то время как у Боба он есть. Конечно же, они могут просто использовать стандартную транзакцию, однако Боб хочет использовать segwit для сокращения комиссии.

В таком случае Боб может создать P2SH адрес, содержащий в себе segwit скрипт. Для Алисы он будет виден как самый обычный P2SH адрес и она сможет без каких либо проблем перевести на него средства, а Боб сможет потратить этот выход используя сегвит-транзакцию и получив скидку на комиссию (о новой метрике установления комиссии для сегвит транзакций мы расскажем ниже).

Таким образом оба типа сегвит-транзакций — P2WSH и P2WPKH могут быть реализованы внутри P2SH.

P2SH(P2WPKH)

Для использования P2WPKH транзакции внутри P2SH Бобу нужно создать witness program из своего публичного ключа. Затем результат нужно хешировать и преобразовать в P2SH адрес:

Создаем witness program:

Как обычно — 1ое число это версия и 2ое это 20 байтный хеш публичного ключа. Полученный скрипт затем хешируется SHA256 и потом RIPEMD160, выдавая очередной 20 байтный хеш.

HASH160 от witness program P2WPKH:

И преобразовываем в адрес:

Locking script выхода отправленного на этот адрес будет выглядеть как скрипт для обычного P2SH адреса:

Теперь рассмотрим как Боб может потратить этот выход:

Сначала предоставленный нами redeem script (в нашем случае это witness program) будет хеширован и, если он равен хешу, указанному в locking script’e, то он будет выполнен и будут проверены подписи в поле «witness».

P2SH(P2WSH)

Точно также любой P2WSH скрипт может быть реализован внутри P2SH. Возьмем multisig скрипт 2 из 5, рассмотренный ранее. Все шаги будут практически идентичны случаю P2SH(P2WPKH):

Для начала, опять же, создаем witness program:

1ое число — версия, 2ое — 32 байтный SHA256 хеш нашего скрипта мультиподписи. Далее шаги повторяются — берем HASH160 от witness program и преобразовываем в обычный P2SH адрес. Для использования выхода, отправленного на этот адрес, в scriptSig нужно записать witness program, а все подписи и полный скрипт мультисига в поле witness.

Segregated witness benefits

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

Transaction malleability

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

В традиционном случае подписи, находящиеся внутри транзакции во входах, могут быть изменены третьей стороной без их инвалидации. Это позволяет изменять ID транзакции, являющийся ее хешем, не меняя никаких «фундаментальных» полей вроде входов/выходов/количества средств. Таким образом транзакция все еще валидна, однако теперь имеет другой ID, что создает возможность для разного рода атак, например denial-of-service.

Segwit решает эту проблему, т.к все подписи находятся снаружи транзакции, а значит не хешируются и их изменение никак не повлияет на ID транзакции. Также вводится отдельный идентификатор wtxid — он хеширует не только транзакцию но и всю witness часть, так что если транзакция передается без witness данных, то txid равен wtxid.

Решение данной проблемы позволяет создавать цепочки неподтвержденных транзакций без какого-либа риска — очень важное свойство для таких протоколов как Lightning Network.

Network and Storage Scaling

Witness данные зачастую составляют самую большую часть транзакции. В скриптах наподобие multisig’a они могут занимать до 75% места используемого транзакцией. Благодаря segwit’y передача подписей становится опциональной — нода запрашивает их только если собирается проводить валидацию транзакции. SPV (simple payment verification) клиенты или ноды, не поддерживающие сегвит, в таком случае могут не загружать лишние данные, экономя место на диске.

Block size increase and lower transaction fees

Segwit транзакции обходятся дешевле, нежели традиционные за счет скидки на хранение witness данных. Если быть точнее, то было изменено само понятие «размера» для segwit транзакций. Вместо обычного размера для них было введено понятие «виртуального размера» (virtual size) — все данные, хранящиеся в «witness», учитываются с коэффицентом в 0.25, что также позволяет разместить в блоке больше транзакций. Рассмотрим на примере.

Пусть у нас есть традиционная транзакция размером в 200 байт. В блок размера 1 МB поместится 5000 таких. Теперь возьмем ее segwit эквивалент, где примерно 120 байт это witness данные. Тогда ее vsize = 80 + 0.25 * 120 = 110 и теперь уже 9090 таких транзакций влезут в блок. Также при комиссии, допустим, в 40 satoshi/byte для 1ой транзакции мы получим комисси в 8000 сатоши, а для 2ой 4400 сатоши, что практически в два раза меньше.

Script Versioning

Как вы уже могли заметить, каждый locking script имеет байт, отвечающий за версию скрипта. Использование версий позволяет вносить дополнения и изменения (изменения в синтаксисе, новые операторы и тд.) в виде софт-форков.

Signature Verification Optimization

Segregated Witness также оптимизирует работу алгоритмов с подписями (CHECKSIG, CHECKMULTISIG и тд.). До segwit’a количество хеш-вычислений увеличивалось квадратично от количества подписей, в то время как в обновлении сложность алгоритма понижена до O(n).

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

So what is the problem?

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

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

Conclusion

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

Источник

Что такое SegWit

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

Segregated Witness, или SegWit — это софтфорк сети биткоина, который предназначен для увеличения пропускной способности блокчейна путем удаления данных подписи из транзакций. Софтфорк — это метод обновления блокчейна, который совместим с предыдущими версиями программного обеспечения.

Чтобы понять, как Segregated Witness используется для увеличения пропускной способности блокчейна, необходимо для начала понять, как в блокчейне работает транзакция.

Что такое форк, и что делает форк SegWit

Софт форк — это обновление блокчейна, выполненное без разделения цепочки на две части, и SegWit увеличил количество транзакций в любом блоке биткоина.

Форк — это, в основном, модификация, сделанная для открытого исходного кода. Он вводит отклонения от того, как базовый проект работает с этого момента, и он может быть как софт-форком, так и хард-форком. Жесткие форки заставляют блокчейн делиться на две части, требуя, чтобы участники выровняли блоки, несовместимые с новым программным обеспечением: новая цепочка отделена от старой. SegWit был программным форком, означающим, что всё еще будет один блокчейн Bitcoin для приема блоков от пользователей, которые еще не включили SegWit в своем программном обеспечении.

SegWit устранил проблему, называемую изменчивостью транзакций, которая позволяла изменять данные транзакций BTC до того, как сеть обработала их. Это создало бы бухгалтерский кошмар. Позволяя хранить информацию о подписи (то есть, «свидетель») вне (то есть «отделяя» от) блока релевантных транзакций, но все же проверять их, SegWit позволяет Биткоину сохранять целостность транзакций, в то же время упаковывая больше их в любой 1-мегабайтный блок. Результат — более быстрый и безопасный биткоин.

Что делает Segregated Witness, перевод слова «Segwit»

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

Перевод термина Segwit, или Segregated Witness — это «распределенный свидетель». Имеется в виду, что подписи не хранятся в самом блоке, а распределяются по компьютерам, что позволяет уменьшить размер блока.

Если коротко, Segwit позволяет увеличить эффективность блокчейна без увеличения размера блока. Положительное качество Segregated Witness заключается в том, что исключение подписей из блока в 1Мб может эффективно увеличить размер блока биткоина. Это значит, что в каждый блок можно будет записать большее количество транзакций или, другими словами, повысить пропускную способность блокчейна. Всё это происходит без нарушения существующих правил консенсуса.

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

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

Точное количество дополнительного пространства, предоставляемого Segregated Witness, зависит от типов транзакций, входящих в новые блоки. Если больше транзакций хранят большее количество данных в Segregated Witness, как происходят в транзакциях с мультиподписью, эффективный размер блока увеличивается. Это добавляет около 1,75 Мб в максимальный размер блока для нормальных транзакций, и размер в 4 Мб устанавливается в качестве жесткого ограничения, которое невозможно превысить, даже если в Segregated Witness вместились (почти) все данные.

Проблемы, которые решает SegWit

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

SegWit совершенствует процесс переводов, создавая условия для увеличения размера блока. Вот основные проблемы, которые позволяет решить обновление:

Таким образом, SegWit улучшает многие аспекты в сети Биткоин, в частности улучшает взаимодействие с новыми протоколами, улучшает масштабируемость и уровень защиты.

Почему SegWit все еще не завершен

SegWit не был полностью принят всеми участниками сети Биткоин, потому что это не обязательно, но также из-за различных стимулов между пользователями в экосистеме.

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

Например, Биткоин не просто «модернизирует» — он зависит от кошельков, бирж и компаний, которые используют его для обновления и соответственно вносят изменения в сеть. Поскольку никто не насаждает внедрение SegWit, инженерные команды должны подталкивать свои организации в правильном направлении, и это не всегда получается так, как ожидалось.

К тому времени когда появился SegWit, в биткоин уже не вкладывались миллиарды, поэтому только небольшая часть этих компаний действует сколько-нибудь проворно. Окончательное решение о том, «качать ли лодку» с помощью новых обновлений программного обеспечения и экономики или сохранить статус-кво, остается за неохотно действующими руководителями, а не энтузиастами. Другим несбалансированным стимулом является стимул майнеров, которые предпочли использовать прошивку AsicBoost, несовместимую с SegWit, но якобы помогающую им проверять транзакции на 20% быстрее.

Выбор между Segwit и Legacy, положительные стороны технологии Segwit

Внедрение SegWit в Биткоин имеет ряд качеств:

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

Главные недостатки SegWit

Технология SegWit до сих пор не интегрирована в Биткоин в полной мере. Многие аналитики считают, что на это уйдут годы, поскольку количество нод в сети превышает 10 000.

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

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

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

Некоторые разработчики заверяют, что внедрение SegWit обусловлено исключительно финансовой заинтересованностью компании Blockstream. По техническим причинам Lightning Network невозможно внедрить без SegWit, поэтому разработчики так активно агитировали за обновление.

Небольшая часть сообщества заняла еще более жесткую позицию, отделившись от сети и создав новый блокчейн Bitcoin Cash, где размер блока равен 8 мегабайтам. Форк удачно дебютировал на криптовалютном рынке и составляет конкуренцию BTC за лидерство по показателям капитализации.

Таким образом, недостатками SegWit считаются:

Есть также мнение, что интеграция SegWit может вызвать юридические вопросы, но на данный момент это только домыслы.

Получаем SegWit-адрес биткоин в Bitcoin Core. Segwit или Native Segwit?

Создать собственный SegWit-адрес биткоин в Bitcoin Core можно через консоль программы. Для этого нужно ввести всего лишь одну команду:

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

SegWit-адрес биткоин в Bitcoin Core может иметь один из двух форматов на выбор:

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

Кошельки с Segwit: список и настройка Segwit Address

segregated witness что такое. Смотреть фото segregated witness что такое. Смотреть картинку segregated witness что такое. Картинка про segregated witness что такое. Фото segregated witness что такое

Segwit популярна, что во многом обусловлено добавлением его в Bitcoin Core. Далее рассматриваются другие кошельки с Segwit, а также инструкции по созданию новых адресов для некоторых из них.

Кошельки с Segwit: Ledger Wallet

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

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

Кошельки с Segwit: Trezor

Аппаратный кошелек Trezor был вторым из тех, кто поддержал Segwit. При этом новые аккаунты генерировались для пользователей автоматически с момента внедрения протокола. Для их использования достаточно зайти в приложения Trezor Wallet и перевести свои биткоины или лайткоины на новый счет.

Кошельки с Segwit: Electrum

Electrum – один из самых популярных криптовалютных кошельков с поддержкой Segwit. Но, в отличие от других вариантов, он генерирует Bech32-ключи, поэтому ваш адрес будет начинаться с bc1. Для его получения необходимо:

Теперь ваш новый Segwit-адрес готов к работе.

Другие кошельки с Segwit

Доступно использовать и другие кошельки с Segwit, например, Samourai Wallet. Он менее популярен, чем остальные предложения, но позволяет создавать новые адреса прямо с мобильного устройства.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *