Новый способ подтверждения блоков в блокчейне Биткоина может повысить эффективность криптовалюты. В оригинальной версии Биткоина при получении блока транзакций узлы подтверждают каждый набор транзакций, несмотря на то, что в большинстве случаев эти транзакции уже подтверждались в процессе движения по сети.
Тем не менее, подтверждение транзакций не используется при подтверждении блоков, что является одной из причин ограниченной скорости распространения блоков по сети Биткоина. Попытки изменить эту ситуацию уже предпринимали многие разработчики. Одно из новых решений этого вопроса называется «Cuckoo Cache» («Кеш кукушки»).
Cuckoo для перехвата подписей
В мае 2012 года ведущий разработчик Гэвин Андресен добавил к Биткоину код, перехватывающий результаты подтверждения подписей.
Изучая кодовую базу Биткоина, Рубин заметил проявления неэффективности в процессе обработки блоков, корень которых идёт из структуры кэша подписи (Signature Cache). Он стал рассматривать структуру с точки зрения упрощения проблемы.
«Представьте, что каждый раз, когда вам нужна какая-нибудь вещь, вам приходится идти за ней домой», — такую аналогию использует Рубин для иллюстрации оригинального процесса верификации Биткоина. «Это на самом деле неудобно, особенно в обеденное время.
Именно поэтому у нас есть рюкзаки. Мы можем сложить туда свой обед, карандаши, книги, и взять всё это с собой, если мы знаем, что эти вещи пригодятся нам в течение дня. Иногда нам всё-таки приходится возвращаться домой, если нам понадобится что-то неожиданное, однако это случается нечасто.
Cuckoo Cache Рубин сравнивает с рюкзаком, в котором есть необходимые отделения и карманы, что помогает коду Биткоина знать, где именно в данный конкретный момент нужно искать то, что необходимо для подтверждения блоков транзакций.
«Отверстия достаточно большие, и вам видно, что находится внутри, когда вы что-то достаёте», — объясняет Рубин, — «Он не переполнен тяжёлыми камнями. Иногда вы что-то забываете дома, и вы всё ещё время от времени теряете вещи, но это происходит не так часто, как если бы использовали дырявый пакет».
Рубин считает, что настройка кода Биткона при помощи обновлений наподобие Cuckoo Cache, интегрированном в готовящейся к выходу версии Bitcoin Core Version 0.14, может намного повысить эффективность сети. Он также утверждает, что улучшенная структура кеша способна оптимизировать и другие аспекты кодовой базы Биткоина.
Повышение эффективности Биткоина
По мнению Рубина, оптимизация этих структур данных будет очень хорошим началом.
Рубин приглашает связаться с ним всех заинтересованных разработчиков.