Начать обмен

Конец проблем с масштабированием блоков в сети Bitcoin

Конец проблем с масштабированием блоков в сети Bitcoin
Недавние проблемы с подтверждением транзакций в Bitcoin-сети ускорили процесс запуска четвертого варианта тестового софтфорка Segregated Witness. Еще в феврале, в Гонконге, на конференции Scaling Bitcoin всеми заинтересованными сторонами (разработчики, биржевые команды, майнинговые компании) согласован план обновления и масштабирования сети.

По плану, в апреле запускается тестирование SegWit 4 на 3 месяца, а по окончанию тестового режима применение софтфорка будет обязательным.

Для пользователей, кому не известны понятия софтфорк и хардфорк. Софтфорк – это внедрение изменений в систему сети только майнерами, а хардфорк – изменения внедряются всеми пользователями.

 

Сущность транзакций

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

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

В майнинге присутствует исключительная транзакция – coinbase, ее создают майнеры при открытии нового блока. Она несколько отличается от сделок при майнинге биткоинов на сайтах без вложений. При создании транзакции coinbase майнер получает 25 биткоинов. Вознаграждение майнера может увеличиваться за счет биткоинов, которые остались не запертыми в транзакциях, на разницу между вводами и выводами. Разница является комиссией за проведение транзакции.

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

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

Правила, по которым проверяются сделки, называются правилами консенсуса, и они удовлетворяю все ноды. Скрипт scriptPubKeys, заключенный в выводах необходим для доказательства обладания приватным ключом, соответствующим публичному ключу, который привязывается к биткоин вдресу. Сайты для майнинга bitcoin (краны) в большинстве работают по принципу пирамиды.

Тестовый вариант SegWit 4 обладает кодом CheckSequenceVerify (CSV), улучшающим биткоин-протокол. Этот код позволяет заблокировать часть конкретных виртуальных монет на определенный период времени, после заключения их в блоки. Использование кода CSV позволит запускать более сложные «умные контракты», повысить масштабируемость криптовалюты, выполнять быстрые и дешевые платежи.

 

Приватные ключи

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

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

Получатель может подтверждать наличие приватного ключа, включая его в scriptSigs сделки, но это только теоретически. На практике, такое включение может спровоцировать присвоение приватного ключа, любым пользователем сети. Любой может перехватить транзакцию и забрать себе всю криптовалюту, запертую до попадания в блок первичной транзакции. Еще опаснее если приватный код увидит майнер, потому что для него украсть криптовалюту легче, ведь только он принимает решение подтверждать транзакцию или нет. Чтобы обезопасить транзакции от воровства биткоинов, в scriptPubKeys прописано условие, по которому скрипт scriptSigs должен включать подписи для высвобождения виртуальных монет. Все это относится и к транзакциям по получению виртуальной валюты, заработанной на сайтах майнинга биткоинов.

 

Подпись

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

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

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

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

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

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

Для освобождения площади блоков, из транзакций будет удалена информация о подписях, она будет находиться в дополнительную часть транзакции – SegWit. SegWit – это аддон биткоина, в котором содержатся подписи и некоторая часть других данных. Данные находящиеся в SegWit не хешируются для получения ID транзакции. Но для включения в блокчейн создается 2 дерева Меркля: одно из транзакций, другое из SegWit, полностью идентичное дереву транзакций. Транзакции по выводу сатоши с freebitcoin, обрабатываются по тем же принятым правилам, что и любые другие.

Комментарии: (9)
  • Пользователь #91997545585331 06 Апреля 2016, 13:13
    Всё продолжается время от времени, это имхо.
    • Пользователь #91908044528361 06 Апреля 2016, 21:45
      Я увеличиваю комиссию на транзакцию и все проходит быстро.
      • Пользователь #69172241797994 22 Августа 2016, 12:24
        Биткоин все больше и больше завоевывает мир и умы людей. Это самая удобная и что не мало важно доступная всем система электронного расчета.
        • Пользователь #85461818707378 22 Августа 2016, 12:25
          Конечно я и не сомневался что эти проблемы лишь следствие развития валюты. На сегодня биткойн окреп и тех неполадок уже не встречается.
          • Пользователь #51796517814475 22 Августа 2016, 17:02
            Сбои - это вполне нормальное явление. Даже у авторитетных платежных систем они происходят. Не вижу в этом ничего критичного.
            • Пользователь #54010195757192 22 Августа 2016, 21:13
              если информация о каждой транзакции сохраняется. Не будет ли увеличивается файл и тем самым тормозить при новой транзакции. Что непременно отразиться на скорости обмена или оплаты?
              • Пользователь #43784701718116 22 Августа 2016, 21:30
                То, что проблем с масштабированием блоков в сети Bitcoin станет меньше, это уже неплохо. Можно только надеяться, что таких проблем с подтверждением транзакций в Bitcoin-сети больше не будет.
                • Пользователь #72415431176937 22 Августа 2016, 23:01
                  Все тестят да тестят. Быстрей бы нашли стабильное решение.
                  • Пользователь #13471810957378 23 Августа 2016, 01:19
                    Хорошо, что решаются основные проблемы криптовалюты хоть как-то. Поддерживаю все нововведения, которые способствуют улучшению прохождений транзакций

                    Оставить комментарий *
                    Введите ваше имя
                    Примечание: Поля отмеченные звездочкой обязательны для заполнения
                    Наши клиенты о нас
                    • Моментальный обмен обеспечивает профессиональная команда сервиса. Спасибо вам за такой деловой и ответственный подход к клиентам.Рекомендовать буду всем друзьям
                      Петр, 03 Декабря 2016, 15:04
                    Отзывы транслируются с сайта bestchange.ru
                    Ошибка