Широко известно, что биткойн имеет ограничение 1 MB
на блок.
Однако средний размер блока в настоящее время составляет около 0.6 MB
:
( исходные данные )
Согласно этой ветке , средний размер биткойн-транзакций составляет 512 B
. Для простоты я не рассматриваю 80 B
заголовок блока.
Учитывая это, сегодня можно уместить 1200
транзакции в блоке. Учитывая, что новый блок будет добываться каждые 10 минут, текущая пропускная способность сети составит 2 tps
:
1200 transactions/block / 10 min/block / 60 sec/min = 2 transactions/s
Это кажется очень низкой пропускной способностью, особенно по сравнению со средней скоростью Paypal и средней скоростью ~115tps
Visa ~2000 tps
.
Теперь представьте, что я хочу построить сайдчейн, способный обрабатывать такой же трафик, как сеть Visa. Я хочу поддерживать большинство параметров блокчейна Биткойна (10 мин/блок, ~512 Б/транзакция), но иметь возможность обрабатывать файлы 2000 tps
.
В этом случае размер моего блока будет следующим:
2000 transaction/s * 512 B/transaction * 60 s/min * 10 min/block = 586 MB/block
Верна ли приведенная выше оценка или я что-то упускаю?
Если это правильно, каковы последствия перехода от 1 MB
размера блока к 586 MB
?
Вот о чем идут текущие дебаты о размере блока, которые ведутся уже более года. Я постараюсь не повторять все это здесь.
Ваши цифры кажутся примерно правильными. Возможны ли блоки размером 600 МБ в вашей боковой цепи, зависит от того, как будет работать ваша боковая цепь. Если вы избавитесь от безопасности Proof-of-Work и от аппаратного обеспечения уровня центра обработки данных и полосы пропускания между сторонами, которые в какой-то степени доверяют друг другу, то проблем не будет. Вероятно, в этом случае также имеет смысл уменьшить время блокировки, например, 60 МБ каждую 1 минуту. На самом деле, блоки, вероятно, больше не имели бы смысла, почему бы просто не добавить базу данных одиночных транзакций с некоторыми контрольными суммами для безопасности?
Сайдчейны могут торговать некоторыми свойствами, чтобы получить другие свойства, что может иметь смысл. В приведенном выше примере вы торгуете децентрализованным без доверия ради высокой эффективности, но при этом пользуетесь доверием (пользователи должны доверять вам и некоторым другим вовлеченным сторонам, а также правительству (ям) и...).
Сам биткойн имеет в качестве основного свойства то, что он децентрализован. Отсутствие цензуры, низкий барьер для входа для майнеров и полных узлов, peer2peer и все эти хорошие вещи очень тесно связаны и переплетены с этим основным свойством. 600 МБ на блок полностью уничтожили бы все это.
Это не значит, что у Биткойна не так много более крутых трюков в рукаве. В настоящее время развертывается SegWit, который позволит уменьшить размер блоков для определенных узлов и сделать их более поддающимися сокращению, а эффективный размер блока составит около 1,75 МБ. А также открывает пути для многих других интересных улучшений эффективности, таких как значительное уменьшение размера транзакций с несколькими подписями.
Еще больший шаг будет сделан с двусторонними платежными каналами и сетями, построенными на их основе. Lightning Network — самое известное имя в этой области. Идея состоит в том, чтобы кэшировать сотни и тысячи (или на порядок больше) небольших транзакций в течение недель или месяцев, не помещая ни одной в блок. Только в самом начале при открытии такого канала и в конце при закрытии канала транзакция действительно попадет в блок. Организация этих каналов в одноранговой сети позволяет любому отправлять и пересылать деньги через несколько переходов, что позволяет каждому платить кому-либо еще, не доверяя ни одному узлу, и даже иметь настоящие мгновенные и ненадежные платежи (нет необходимости ждать подтверждения блока).
Масштабирование редко сводится к простому повороту одной ручки, простому увеличению существующей вещи. Умные решения оказывают гораздо большее влияние, предлагая лучшие компромиссы.
Извините, что я не ответил на ваш точный вопрос о перечислении всех последствий перехода на большой размер блока. Их много, и каждая из них может привести к бесконечной дискуссии о сбрасывании велосипедов и размахивании руками. Наиболее важным является то, что после того, как блок был добыт, он должен как можно скорее распространиться по всему миру, иначе есть риск, что другой майнер найдет другой блок, где один из этих блоков будет «осиротевшим» (потерянным). Больше потерянных блоков приводит к более централизованному майнингу, поскольку у более крупных майнеров больше шансов выиграть такую гонку. Таким образом, "ASAP" в случае 10-минутного интервала имеет порядок секунд. Теперь это не означает, что все 600 МБ нужно будет передать на все узлы по всему миру в течение нескольких секунд, но это все еще довольно сложная задача.
В настоящее время 2 МБ считается максимальным безопасным размером блока, который SegWit в значительной степени покрывает. После дальнейших улучшений и повышения эффективности возможно еще одно удвоение через один-два года.
Верна ли приведенная выше оценка или я что-то упускаю?
Ваши оценки кажутся (более или менее) правильными.
Если это правильно, каковы последствия перехода с размера блока 1 МБ на 586 МБ?
Два основных, которые я вижу, это:
Более подробный список смотрите здесь .
Обратите внимание, что эти проблемы/недостатки увеличения размера блока были подняты для увеличения на 4, 8 или 32 МБ... увеличение на 586 МБ было бы слишком чрезмерным. И если вы сохраните параметры, аналогичные биткойну, у вас будут те же проблемы в боковой цепи.
32 MiB
ограничение размера блока, уменьшив среднее время добычи блока до 30 s
, я смогу обработать ~2200 tps
. Но это может повлиять на безопасность моей цепочки, верно?
Энрике Барселуш
Яннес