Сайдчейн-элементы: технические подробности
2015/08/13
Sidechain Elements — это открытый исследовательский проект, имеющий целью подстегнуть экспериментирование с инновационными биткойн-технологиями и ускорить их внедрение. “Элементы” — это функции, исследуемые и разрабатываемые сообществом криптовалютных экспертов. Удачные разработки можно будет реализовать в виде сайдчейнов.
Разрабатываемые элементы
Конфиденциальные транзакцииГлавный исследователь:
Грег МаксвеллКонфиденциальные транзакции — одна из самых мощных и востребованных функций, исследуемых в рамках проекта. Это такие транзакции, которые скрывают информацию о переводимых суммах от всех, кроме участников транзакции (и указанных ими сторон), но при этом криптографически гарантируют, что потратить можно будет только переведенные монеты.
Это укрепляет конфиденциальность блокчейна Биткойна, который предоставляет исчерпывающую информацию о совершенных транзакциях, хоть и псевдонимных. Нарушение финансовой конфиденциальности может иметь плачевные последствия для бизнеса и личной жизни.
Например, без адекватной защиты воры и мошенники могут сосредоточить свои усилия на богатых пользователях, а непорядочные коммерсанты могут узнать детали бизнеса конкурентов, чтобы получить преимущества на переговорах.
Конфиденциальные транзакции требуют введения адресов нового типа (“конфиденциальных адресов”). Они длиннее обычных, потому что включают также “ослепляющий” ключ (blinding key). В альфа-сайдчейне такие адреса используются по умолчанию.
Отделенные свидетелиГлавный исследователь:
Питер ВуйльВ альфа-сайдчейне спецификация результатов транзакции, фиксируемых в сайдчейне, отделена от данных, подтверждающих ее действительность (в криптографии такие данные называют “свидетелем” [“witness”]). Это устраняет все известные формы изменчивости транзакций и позволяет существенно оптимизировать блокчейн за счет удаления ненужных данных.
Биткойн-транзакции содержат как информацию о влиянии транзакции на блокчейн (тратимые UTXO, адреса и суммы), так и данные, подтверждающие, что транзакция действительна (входные подписи). С отделенными свидетелями идентификаторы транзакций переопределяются так, чтобы они зависели только от информации, добавляемой в блокчейн, а подтверждение блоков осуществляется отдельно согласно “показаниям свидетелей”. Это обеспечивает несколько преимуществ:
Для Биткойна уже выдвигались некоторые предложения по “нормализации идентификаторов транзакций”, но все они обобщены в отделенных свидетелях, которые более эффективны и удобны в использовании, потому что предложенные нормализованные идентификаторы транзакций все же требуют перезаписи зависимых транзакций после изменения входов. Нормализация необходима для протоколов более высокого уровня, таких как Lightning.
Поскольку идентификаторы транзакций больше не охватывают подписи, они полностью устраняют изменчивость транзакций — на гораздо более фундаментальном уровне, чем предложено в BIP62. Это позволяет безопасно использовать дополнительные блоки контрактов.
Открывается потенциал для более эффективного подтверждения создания выходов при упрощенном подтверждении платежей (которое используется в облегченных клиентах), потому что подписи можно удалить из транзакций без нарушения структуры дерева Меркла. Узлы, которые не хотят хранить или проверять подписи старых транзакций, могут удалить данные свидетелей с диска или даже вообще не использовать их, что позволяет значительно сэкономить место на диске для хранения блокчейна и пропускную способность для его передачи.
Относительное время блокировкиГлавный исследователь:
Марк ФриденбахВ альфа-сайдчейне подписанный вход транзакции может оставаться недействительным в течение определенного интервала времени после подтверждения соответствующего выхода. Это необходимо, чтобы можно было заменять транзакции по согласию.
У каждой монеты, которая тратится в ходе биткойн-транзакции, есть порядковый номер. Вероятно, первоначальная идея состояла в том, что майнеры должны предпочитать наибольший порядковый номер меньшим номерам. Это никогда не было реализовано, но в частично написанном коде, похоже, предполагается, что майнеры будут честно предпочитать наибольшие порядковые номера, даже если меньшие гораздо более прибыльны.