Edit-2: эта схема полностью сломана, как отметил Майк Хирн ниже (позволяет двойной расходы).
Если это было уже предложено где-то, я буду ценить ссылку.
Проблема: как все больше людей используют Bitcoin, количество расходуемых сделок неизбежно растет (UTXO набор). Сегодня полные узлы должны поддерживать полный набор UTXO ("предыдущие операции") Для проверки входящих транзакций. Это повторяющееся усилие, которое было бы неплохо, чтобы распределить более справедливо. (Кроме того, полный эффективный индекс UTXO сегодня занимает >100 Гб, поэтому шахтеры должны просто сканировать blockchain, чтобы найти родителей.)
Решение:
1. Каждый полный узел хранит только все блочные заголовки, которые он считает действительный (а не просто большинство POW-е изд, но на самом деле действует).
2. Пользователи отправляют не только сделки, но все родительские сделки и их Merkle ветви.
3. Полный узел не нужно для поиска UTXO, чтобы проверить, если родители являются действительными. Эта часть UTXO уже предоставляется отправителем. Узел необходимо только проверить, что Меркле ветви являются действительными и указывают на блок, который уже был утвержден.
4. Горные узлы собирают все входящие транзакции таким образом. Когда блок добыт, они не должны держать эти операции в UTXO.
5. Некоторые узлам еще нужно хранить полные блоки для отправки пользователей - так что пользователи знают, если их операции включены и где. Таким образом, они могут дополнительно отправить родительскую Txs для каждого нового ОГО.
В результате UTXO пропорционально распределяются среди всех пользователей с незначительными накладными расходами на пропускную способность сети. (По крайней мере, теперь пользователи платят за это накладные расходы, не шахтер для сканирования blockchain.)
Это не касается хранения blockchain. Кто-то должно хранить все или некоторые блоки, чтобы пользователи могли знать о Merkle ветви для своих расходуемых сделок. Но хранение блок не требует высокой производительности индексирования, как UTXO.
Хранение Блока может быть дополнительно уменьшено при наличии узлов случайных магазина частей старой истории или не имеющие старые блоки на всех - только блоки за прошлым месяц (так что клиенты, получающие достаточно времени, чтобы догнать и найти их новый расходуемый Txs). Полная история может быть предоставлена для оплаты специализированных услуг.
Edit: это поведение может быть дополнением к протоколу, который может способствовать более низкие операционные издержки. Если шахтер необходимо для поиска ваших родительских сделок, вам придется заплатить за это. Если вы посылаете их по своему усмотрению, это будет дешевле. Другими словами, ваш приоритет ПРД ниже, если она берет на себя дополнительные расходы проверки.
Edit-2: как отметил Майк Хирн ниже, эта схема позволяет двойные расходы как узел не проверяют, если входы были уже потрачены.