¿Por qué usaría Metamask en lugar de solo usar Web3.js en el navegador?

Tengo entendido que Metamask brinda una forma conveniente para que el usuario interactúe con DApps al almacenar sus billeteras y al proporcionar una interfaz que le da al usuario el control de lo que está haciendo la DApp. ¿Es esto correcto?

Si al usuario no le importa en absoluto insertar la dirección de la billetera y la contraseña, y confía plenamente en la aplicación, ¿hay alguna razón para usar Metamask? Web3.js también permite hacer todo lo que Metamask hace en el navegador, ¿verdad?

Respuestas (3)

En tu primera pregunta, tienes toda la razón. Hay más otras características de metamask, por favor excave.
Ok, ahora desde el lado de web3js podemos hacer mucho trabajo relacionado con la billetera.

web3.eth.cuentas

Contiene web3.eth.accountsfunciones para generar cuentas Ethereum y firmar transacciones y datos. consulte otra función relacionada con la cuenta.

Puede crear en la billetera de memoria desde web3js

web3.eth.accounts.wallet: contiene una billetera en memoria con varias cuentas. Estas cuentas se pueden usar cuando se usa web3.eth.sendTransaction().

Ahora el punto es que puede crear su propia billetera usando la biblioteca web3js. No necesitas metamáscara para

Generar cuenta
implementar contrato
Llamar contrato
Cifrado
Descifrado
firmar Transacción

Tiene razón al decir que puede usar web3para construir cualquier cosa en lugar de Metamask.Y es posible que no conozca las ventajas de la meta-máscara además de usar como billetera:

  • Desbloquee MyEtherWallet.com rápidamente, haga clic en abrir
  • Cuando visite sitios falsos, mostrará una alerta roja
  • Clave de inicio de sesión antirrobo

Como es un desarrollador, solo le interesa iniciar sesión en la billetera ethereum y ofrecer funcionalidad. Pero los usuarios necesitan una experiencia sencilla en el sistema Dapp. Creo que Metamasklo hizo muy bien. Vitalik ButerinUna vez dijo que uno de los grandes desafíos de Ethereum es la experiencia de usuario limitada, por lo que debe tenerlo en cuenta al desarrollar su aplicación.

Correcto. Pero eso anularía el punto de usar una aplicación descentralizada y sin confianza.

¿Cuál es la diferencia entre ejecutar Web3.js en el navegador y usar Metamask?
Metamask realiza toda la firma de transacciones, sin exponer la clave privada del usuario al sitio web