Некоторые системы подписывания ECC может сделать группировку операций, где вы можете создавать все ключи и все данные, подписанные и подтвердить все это с пренебрежимо малой вероятностью принятия если были признаны недействительными и нулевой возможности отказа, если все были признаны действительными. Но AFAIK ECDSA не такая схема, и те, которых я знаю, имеют большие подписи. (Ну, хотя, если вы должны были использовать его, чтобы всегда объединить все подписи в виде блок-, которые могут быть интересны).
Может быть, мы говорим о разных вещах, но не ECDSA позволит создать составной ключ, просто добавив две закрытые ключи вместе. Подпись (которая будет иметь тот же размер, как отдельные клавиши) можно проверить, выполнив ту же ECC арифметики на открытых ключах. Например сказать, гипотетические транзакции (не в сети Bitcoin и не обязательно в том же формате) имеют следующую информацию в сделке. На данный момент формат / структура не очень важно.
Сделка на теле:
Версия
NumInputs
ArrayOfInputs []
NumOutputs
ArrayOfOutputs []
Каждый вход в следующем формате:
PrevTxHash
PrevTxIndex
Публичных
До сих пор это очень похоже на Bitcoin однако нет никаких сценариев в входах TX. Каждый вход просто состоит из информации, необходимой для идентификации и аутентификации его (ОГО идентификатора, индекса, и открытого ключа). На этом этапе позволяет игнорировать формат выходов, как это не особенно важно для обсуждения этого вопроса. Теперь в отличие от Bitcoin, где каждый вход имеет подпись (упрощенный ТХ подписан ж / закрытый ключ, соответствующий Публичную перечисленные для входа) мы могли бы вместо того, чтобы иметь одну подписи для всей сделки. Также позволяет игнорировать ТЕ coinbase / поколения на данный момент.
Так что для сделки с более чем одним открытым ключом входов мы сначала создать составной ключ, выполняя ECC арифметики. Назовое составной ключ ключа ОГО. Мы бы список входов, удаление дубликатов закрытых ключей и создать ключ ОГО, добавив частные ключи вместе.
tx.privkey = privkey [0] + privkey [1] + ... privkey [2]
Тогда мы подпишем весь ТХ раз с ключом ОГО. Сингл АЯ подпись будет добавлена к ОМУ.
Версия
NumInputs
ArrayOfInputs []
NumOutputs
ArrayOfOutputs []
Подпись
Для проверки мы бы список входов, удалить дубликаты pubkeys и создать композитный материал таким же образом, как и privkeys.
tx.pubkey = Публичные [0] + Публичный [1] + ... Публичных [2]
ТЙ (композитный) Публичный будет проверять подпись, созданную ОЕ (композитным) privkey.
Этот метод будет более ограничивающим, чем система Bitcoin сценария, однако это будет (с некоторыми другими изменениями) приводит к до 50% экономии с точки зрения требований к пропускной способности и хранения. Требования к мощности вычислительных должны быть примерно одинаковыми. Учитывая, что более 99% + сделок на сегодняшний день в сети Bitcoin являются "стандарт" платить pubkeyhash мы значительные сбережения. При использовании версий других более продвинутых ТХ будет по-прежнему возможно, и было бы возможным альтернативным крипто-валюты, чтобы иметь лучшее из обоих миров. Для "просто" Операции значительного сокращения потребностей в ресурсах, при этом имея возможность создавать более сложные операции.
Есть ли риск для безопасности в формате, как это? Любое сокращение ключевой силы? Я не могу найти ничего, что указывало бы на это дело, но это на самом деле не моя область знаний.... его, конечно, можно в to-одном transaction- выставить кучу открытых ключей, компоновать их и подписать с составом. Но сокращение пространства уменьшается необходимость разоблачить ключи ... и было бы сделать анализ порча более мощным, потому что вы несколько сторон не может безопасно входить в этой модели. Это также несовместимо с sighash синглом. Если вы хотите, несовместимый ECC конкретных change- вы могли бы вместо того, чтобы добавить восстановление открытого ключа. Это получить аналогичные экономии пространства, но и сэкономить на операции с одним входом, а не нарушая способность запутать анализ заражать с совместными сделками, или нарушения альтернативных sighashes.
Я предполагаю, что по "составить" вы имеете в виду ECC добавление закрытых ключей (а также отдельный ECC сложение pubkeys). Правильно? Я согласен есть необходимость открытого ключа для каждого входа для проверки подписи, однако подпись значительно больше. Для Bitcoin Публичный составляет 34 байт для сжатого Публичных (66 байт для несжатой pubkeys). Альтернатива CC может просто санкционировать использование сжатых открытых ключей в протоколе. Подпись 72 байта.
Bitcoin Tx Входной формат
TxOutHash - 32 байта
TxOutIndex - 4 байта
ScriptLength - переменная (1-9 байт, 1 наиболее распространенные)
Подпись - 72 байта (в том числе кодирование)Публичный - 34 байт (сжатые ключи)
Последовательность - 4 байта
Всего: 147 байт (Подпись составляет 48% от размера входного)
и было бы сделать анализ порчи более мощным, потому что вы несколько сторон не могут безопасно входить в этой модели. Это также несовместимо с sighash синглом.
Согласовано.
Если вы хотите, несовместимый ECC конкретных change- вы могли бы вместо того, чтобы добавить восстановление открытого ключа. Это получить аналогичные экономии пространства, но и сэкономить на операции с одним входом ...
Интересно. Можете ли вы предоставить информацию или ссылки на восстановление открытого ключа?
Одна вещь, которую я иногда хочу, что сделки были сами хэш-деревья внутри. Было бы очень хорошо, чтобы быть в состоянии дать кому-то все данные, необходимые для создания тока UTXO надежно (и, таким образом, также убедитесь, что нет допускается инфляция в цепочке), не посылая им кучу глубоко заусениц данных подписи, которые ISN «т лично им интересно, и которые они считают, имеет достаточную безопасность hashpower только сделать рандомизированные выборочные проверки.
Я прочитал это несколько раз и до сих пор не может осмыслять как хэш дерева в транзакции добавит безопасности. Я закладка его, хотя.