¿Por qué los xpubs de electrum y trezor no coinciden al crear una billetera multisig?

Para un poco de información, estoy tratando de configurar una billetera multisig 2 de 3 con 2 trezors y una tarjeta fría. Estoy tratando de verificar que mi configuración sea correcta antes de poner una cantidad significativa de dinero allí, pero descubro que las claves públicas maestras para los trezors no coinciden con mis expectativas.

Al crear una billetera p2wsh estándar en electrum usando un trezor, la ruta de derivación predeterminada es m/84'/0'/0'. Inmediatamente después de elegir el tipo de script y la ruta de derivación, electrum muestra la clave pública maestra. Para asegurarme de que electrum está usando la clave pública maestra correcta, ejecuté el siguiente comando : trezorctl get-public-node -n "m/84'/0'/0'" -t segwit. Efectivamente, las claves públicas maestras mostradas por electro y trezorctlemparejadas.

Sin embargo, al intentar hacer la misma verificación al crear una billetera multisig, los xpubs no coinciden. Electrum utiliza por defecto la ruta de derivación de m/48'/0'/0'/2'las billeteras nativas multisig de segwit. La ejecución trezorctl get-public-node "m/48'/0'/0'/2'" -t segwitgenera una clave pública maestra diferente a la que se muestra en electrum. ¿Es esto un error en electrum o hay una razón para la discrepancia? Creo que estoy malinterpretando algo porque, aunque estas claves públicas maestras no coinciden, electrum puede firmar y transmitir transacciones válidas utilizando trezor como uno de los cosignatarios.

Respuestas (1)

En mi caso, las claves públicas maestras coinciden, simplemente están codificadas de manera diferente, con una (ab) usando el prefijo de versión xpub y la otra Zpub, y los bytes de suma de comprobación correspondientes al final. Los puntos reales de la curva y todas las derivaciones de esto coinciden.