Cómo enviar desde múltiples cuentas a una cuenta en el contrato

Por ejemplo, tengo 3 cuentas con saldos:

1 cuenta - 5 éter

2 cuenta - 15 éter

3 cuenta - 7 éter

Quiero enviar 20 ether, por lo que se utilizará 1 y 2 cuenta. Entiendo, cómo hacer transacciones simples, pero para esto deberá pagar una tarifa por cada transacción. Y para cada transacción, antes de enviarla, necesito desbloquear la cuenta. El contrato no puede desbloquear la cuenta, por lo que no entiendo cómo se retirará ether de estas cuentas y cómo podría tener permiso para hacerlo. Por favor ayuda.

Respuestas (1)

Corto: no puede enviar desde varias cuentas en una transacción.

Largo: cada cuenta está controlada por su clave privada asociada. Eso significa que todos los Ether que salen de esta cuenta deben estar firmados por esa clave y luego la transacción firmada se transmite a toda la red. Por lo tanto, no puede tener una sola transacción que envíe Ether desde tres cuentas controladas por clave privada. Lo que podría hacer es tener un contrato inteligente de múltiples firmas. Este contrato mantendría todo el Ether y usted podría, por ejemplo, hacer que cualquiera de las tres cuentas lo controle. Esto le permite seguir enviando fondos si ha perdido la clave de una cuenta. Tenga en cuenta que, al mismo tiempo, significa que todos los fondos están en riesgo si un atacante obtiene acceso a cualquiera de esas tres claves privadas. Por lo tanto, es mejor que configure un multisig 2 de 3 y necesite 2 de las 3 claves privadas para firmar una transacción. Leer aquímás sobre contratos inteligentes multisig para Ethereum.

@Sebastian, ¿Entonces el contrato multi-sig permite retirar dinero de 3 cuentas y hacer llamadas de transacciones internas? ¿O estas 3 cuentas tienen acceso a ether para cada una?
Lo primero: un multisig es en realidad un contrato inteligente que retiene los fondos (¡no las cuentas controladas por clave privada!). Puede elegir un multisig en el que, por ejemplo, las tres cuentas controladas por clave privada pueden gastar de ese contrato multisig. tenga en cuenta que necesita una (pequeña) cantidad de Ether en cada una de las tres cuentas para pagar los costos de transacción (gas). Por ahora, los contratos inteligentes nunca pagan por la gasolina. Esto podría cambiar a largo plazo, pero no demasiado pronto. Entonces, por ahora, solo necesita mantener suficiente ETH en sus cuentas de clave privada para pagar la gasolina.