С многочисленными дискуссиями масштабируемости и предложениями там, мне было интересно, если кто-нибудь когда-нибудь о следующем.
Текущая ситуация.
Блоки принимают в среднем 10 минут (600 секунд) до шахты. Каждый блок имеет размер 1 Мбайт (1.000.000 байт (8.000.000 бит)), и каждая транзакция составляет в среднем 250 байт. Таким образом, каждый блок может содержать около 4,000 операций. В среднем 600 секунд в блоке, генерируемого 4000/600 = 6,6 = 7 транзакций в секунду (TPS).
Допустимые операции сохраняются в mempool. Биткойн сделка распространяется в пределах сети, скажем, от 10 секунд до 90% от сети (http://bitcoinstats.com/network/propagation/).
идея
Теперь, если все узлы создать хэш (SHA256 (каждый хэш составляет 256 бит)) каждую действительной сделку получила. Каждый mempool магазины 1. сделка и 2. его хэш. Горняк создает блок, но вместо того, чтобы собирать фактические операции в блоке теле, блок тело содержит хэш сделок. В среднем каждые десять минут в блоке распространяющиеся в сети, и все узлы, получающие блоки соответствуют хешам в блоке теле с хешами (и их соответствующими сделками) в mempool. Mempool очищаются от этих операций (при условии отсутствия вилков не происходит), и блок добавляются к blockchain, содержащему корпус с обеими хешами и сделками.
Поступая таким образом, каждый блок может содержать (за исключением coinbase сделки) 1 MB = 8.000.000 бит / 256 бит = 31.250 операции. Количество сделок в блоке 7 раз больше (редактирование: 14x с SHA128, почти 100 ТПС без оптимизации дерева), без увеличения размера блока.
Обратная связь
Я думаю, что, подобно IBLT предложению Гэвин Андресен (вhttps://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2) Возможное опасение, что mempools не синхронизируются. В приведенном выше примере, я предполагая, что транзакции из которых хэш включен в блоках, которые хранятся в mempools с учетом времени распространения 10 второй транзакции по сравнению с 600 второго блоком времени добычи.
Есть предположения?