В другой нить, я предположил, что предстоящая жесткий вилка для размера блока является возможность представить другие жестко вилочные изменения.
[Править] Я создал проект BIP[/редактировать]
Если они "нет-Brainers", То у них есть реальный шанс быть принятым, если есть сливаться готовый код доступен, и есть мнение, что это полезно и с низким уровнем риска. Спорные изменения гораздо более вероятно, будут переданы.
Сумма на основе Меркл дерева позволяют компактные доказательства того, что шахтеры пытаются раздуть валюту, выплачивая себе более высокую плату, чем правила позволяют.
Это дает возможность для проведения аудита блока цепи и если мошенничество будет найдено, отправив короткое доказательство того, что конкретный блок является недействительным. Клиенты могли бы черный список блока.
Мошенничества доказательство не трудно вилка, но изменяя способ дерево Merkle рассчитывается есть.
Merkle Сумма дерева
Каждый лист дерева является транзакцией. В настоящее время сериализации сделки не позволяет плата должна рассчитываться только глядя на сделку.
Я полагаю, что сериализации транзакций изменяются таким образом, что входные значения включены в транзакции.
Каждый вход содержит
хэш (32): Хэш предыдущего выходного TX
Int (4): индекс
var_int (1+): script_length
символ [script_length]: sigScript
Это может быть изменено, чтобы включать в себя входное значение
хэш (32): Хэш предыдущего выходного TX
длинный (8): значение
Int (4): индекс
var_int (1+): script_length
символ [script_length]: sigScript
Это позволяет обрабатывать транзакции, чтобы вычислить плату, уплаченную этой сделки. Coinbase операция будет иметь входное значение 0.
При 250 байт за транзакцию и 2 входа, это приведет к увеличению размера ОГО на 6,4%. Сделка, которые преобладают по размеру входов приведет к увеличению на 10% (при условии, длиной sigScript 50).
Сделка будет недействительным, если входное значение отличается от значения выходного согласующего и она должна была бы быть в пределах допустимого диапазона денег.
Плата за сделки будет равна сумме выходных значений минус сумма входных значений.
A 36 байт дайджеста должны быть произведены для каждой транзакции в качестве входных данных в хэш-алгоритма суммы Merkle.
Дайджест сделки является {LITTLE_ENDIAN (плата), DoubleSHA256 (сделки)}
Родитель дайджест для двух детей дайджестов является right_digest)
Корень дерева массив из 36 байт. Окончательный корень Меркл затем DoubleSHA256 (сумма корень дерева).
Это дает преимущество суммы дерева без изменения размера корня Merkle.
Затраты на это предложение
увеличение размера блока 6,4%
Вводимое значение должно быть прочитано при проверке операций (но это должно произойти в любом случае)
Дополнительное Дополнительное
Доказывая, что ввод недопустим требует предоставления всей транзакции. Для очень крупных сделок, это делает мошенничество доказательство большим.
Дерево сумма может быть размножен вниз к входам и выходам сделки.
В sigScripts и sigPubKeys могут быть длинные массивы. Они могут быть заменены на хэш, чтобы сохранить размер мошенничества доказательства ограниченно.
Входной имеет вид:
output_hash (32): Хэш предыдущего выходного TX
длинный (8): значение
Int (4): индекс
var_int (1+): script_length
символ [script_length]: sigScript
36 байт дайджеста будет LITTLE_ENDIAN (значение), DoubleSHA256 (Prev_tx
Мошенничества доказательство будет включать в себя только DoubleSHA256 (sigScript). Длина сценария не имеет значения.
Выходы имеют вид:
длинный (8): значение
var_int (1+): script_length
символ [script_length]: scriptPubKey
36 байт дайджеста будет LITTLE_ENDIAN (значение)
Корень суммы Меркла для выходов и входов может быть вычислен. Дайджест для сделки будет
LITTLE_ENDIAN (lock_time)
только (*) Coinbase
Вся сделка еще хэшируются так или иначе. Длины для сценариев должны быть закодированы минимально или кодирование длины также должно быть добавлено в doubleSHA256.