NEM Catapult para uso común de una Cuenta de Multifirma
Integrar la cuenta de blockchain en el sistema de gestión de usuarios existente.
Son muchas las empresas interesadas en integrar blockchain en el sistema actual existente. Lo primero es cómo integrar la cuenta de blockchain (billetera) para emparejarse con su usuario actual.
La solución más común es ayudar al usuario a administrar la clave privada y almacenarla en una base de datos.
En mi opinión, el primer usuario puede no saber cómo cuidar la clave privada, porque la clave privada nunca se recupera como “contraseña”. Otra razón por la que puede ser difícil hacer una forma segura en un contrato inteligente.
Esa no es una buena solución, porque no es la solución descentralizada y la seguridad de la cuenta no está garantizada. El activo de la cuenta blockchain puede ser controlado por la empresa o el administrador del sistema. En cuanto a la seguridad, si el administrador del sistema elimina accidentalmente la base de datos, de lo contrario, la empresa debe gastar un costo adicional para mantener la base de datos.
Introducir NEM Catapult Blockchain
Es un poderoso motor de blockchain, como desarrollador, es fácil de implementar y rápido de integrar en cualquier sistema existente.
Catapult proporcionó muchas características en la cadena, de las cuales la cuenta multigrado es una de ellas, y usaremos la cuenta Multisig para aplicarla a la solución de administración de usuarios.
En este ejemplo, el nombre de la compañía llamado Catapult Academy proporcionó capacitación relacionada con catapulta NEM y permitió participar en el examen de inscripción. Una vez que pase el examen, Catapult Academy certificará al participante.
A la compañía le gusta integrar la cadena de bloques NEM en el sistema existente actual, para hacer que el usuario pueda rastrear, en el futuro, todos los certificados digitales se distribuirán a través de la cadena de bloques NEM.
Integre la cuenta Multifirma al usuario existente en la base de datos

En este diagrama, vinculamos 3 cuentas NEM como cosignatarios a cuentas multigrado. En este ejemplo, tenemos a Catapult Academy Admin, la Administración del manejo del Usuario y el Usuario.
Con esta solucion
- Los usuarios pueden controlar la cuenta Multisig por su propia cuenta.
- Cada detalle de la transacción puede rastrearse usando la cuenta Multisig.
- La condición de cuenta multigrado necesita configurar 1 aprobación mínima y 2 eliminación mínima.
1 aprobación mínima
- El usuario puede interactuar directamente con su cuenta multigrado, sin el permiso de nadie más.
2 remoción mínima
- Solo el administrador de Catapult Academy y el administrador de administración de usuarios pueden eliminar la clave pública del cosignatario del usuario si los usuarios pierden la cuenta.
En la solución, los usuarios controlan libremente la cuenta multigrado, incluso si el usuario pierde la cuenta, puede volver a crear la nueva cuenta NEM y volver a vincularla a la cuenta multigrado.
Flujo de resumen de alto nivel (usuario a bordo)

- El usuario debe enviar la clave pública al sistema.
- Una vez que la clave pública del usuario esté disponible, el sistema generará una cuenta Multisig y preparará la transacción multisig.
- El sistema puede generar aleatoriamente una cuenta multigrado
- Configuración multinivel
3. Anuncie la transacción consolidada agregada a la red.
4. Actualice la cuenta multigrado en la base de datos de usuarios existente.
5. Los cosignatarios relacionados deben cosignar la transacción.
Highlight
// Random account generation
const { Account, NetworkType } = require('nem2-sdk')
Account.generateNewAccount(NetworkType.TEST_NET)
// Convert NEM account to Multisig account
const multisigAccountModificationTransaction = MultisigAccountModificationTransaction.create(
Deadline.create(),
1, // minimum approval
2, // minimum removal
[userManagementAdminAccount.publicAccount, catapultAcademyAdminAccount, userAccount],
[],
NetworkType.TEST_NET,
UInt64.fromUint(200000) // fees
);
Flujo de descripción general de alto nivel (actualización de la clave pública para la cuenta multisig existente)

- El usuario debe enviar una nueva clave pública al sistema.
- El sistema preparará la modificación de la cuenta Multisig.
- Recupere la antigua clave pública del usuario de la cuenta multigrado.
- Remota la clave pública del antiguo usuario y asigne la nueva clave pública del usuario a la cuenta multinivel.
3. Anunciar la transacción consolidada agregada a la red.
4. Los cosignatarios relacionados deben cosignar la transacción.
Highlight
// Retrive cosignatories and fliter old user public key
const multisigHttp = new MultisigHttp(endpoint);
let oldUserPublicKey = await multisigHttp
.getMultisigAccountInfo(MutlisigAccount)
.toPromise()
// Remote `old user public key` and assign the `new user public key` to multisig account
const multisigAccountModificationTransaction = MultisigAccountModificationTransaction.create(
Deadline.create(),
0,
0,
[newUserAccount], // Add
[oldUserAccount], // Remote
networkType,
UInt64.fromUint(200000)); // Fees
Resumen
Como podemos ver, con esta solución, todo es seguimiento descentralizado en cadena. La base de datos de usuarios solo necesita agregar un registro de cuenta multigrado. El beneficio de este diseño, la administración de cuentas descentralizada, sin preocupaciones para los usuarios pierden la clave privada, no afectará la cuenta multigrado. Puede ser costoso crear una cuenta Multisig para cada usuario, pero a largo plazo, es más seguro y obtiene la ventaja descentralizada en la cadena de bloques.
Creo que la solución se puede implementar en muchas áreas, como la votación nacional, la billetera Exchange Catapult, el control de fronteras de identificación digital de extranjeros, etc.
Lee mas :
Fuente: Dev Blog Anthony Law