Дополнение s (когда s <порядок кривой /2)

Bitcoinlib ссылается на требование, чтобы, если s > ORDER / 2, затем следует использовать дополнение s, так как он сокращен на один байт

Это похоже на обратное или отрицательное значение s, но я также знаю, что дополнение может быть терминами компьютерной науки.

Соответствующий код можно найти здесь (возможно, кто-то, кто разбирается в коде Bitcoin Core, может перекликаться с тем, что делает код), поэтому , что является дополнением к s, относящимся к ?

5 голосов | спросил Wizard Of Ozzie 25 J0000006Europe/Moscow 2015, 04:56:12

2 ответа


5

В ECDSA s может быть по обе стороны кривой, и подпись все равно будет действительна. Термин «низкий s" относится к значению, буквально находящемуся ниже порядка кривой ( 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 ). Требование низкого s произвольно (высокий s также отлично справился бы) и является одним из новых BIP62 , которые предназначены для борьбы с платежеспособностью транзакций.

При отсутствии этого правила любой человек может выполнить транзакцию биткойнов, flip s в любой из своих подписей и нажать транзакцию снова с другим TXID. Возможность сделать это только изменяет хеш транзакции и никоим образом не изменяет ее действительности. Возможность мутировать транзакции разрывает ряд потенциально интересных типов транзакций в биткойнах, таких как каналы оплаты, где цепочки транзакций внезапно будут аннулированы родительским мутированием и альтернативной формой, включенной в блок.

Заставляя действительные транзакции всегда иметь низкий s, эта способность удаляется, хотя человек с закрытым ключом для транзакции по-прежнему способные мутировать свои собственные транзакции, отстав от них с новым nonce.

ответил eponymous 25 J0000006Europe/Moscow 2015, 05:38:06
2
  

Что такое дополнение к s, ссылающееся на?

Я не слышал, чтобы этот термин использовался раньше, но, прочитав код, он сравнивает s, чтобы узнать, более n/2 округленное (где n - порядок кривой, FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141.)

Если это так, он вычисляет n - s и использует это как s.

ответил Nick ODell 25 J0000006Europe/Moscow 2015, 05:42:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132