¿Nueva billetera por cliente o nueva dirección?

Así que estoy en el proceso de iniciar un nuevo servicio, pero quiero asegurarme de construir la base correctamente desde el principio. Cuando los clientes depositan en su cuenta de usuario en mi servicio, necesito entender si debo usar una billetera gigante con una nueva dirección para cada cliente y asignar esa dirección en la base de datos contra su usuario, o si debo generar una nueva billetera ( con, presumiblemente, nuevas semillas) al registrarse para cada cliente, por lo que cada cliente tiene su propia billetera única. ¿Cuál es el mejor curso de acción aquí? Una cosa a tener en cuenta es cómo se desarrollará el proceso de copia de seguridad y cualquier posible condición de carrera (por ejemplo, alguien genera una dirección y envía monedas, pero el servidor se borra y la copia de seguridad no tiene los últimos 10 segundos de actividad, por lo que la dirección que se generó puede '

¿Toma la custodia de los fondos cuando se depositan o está tratando de revender un producto de billetera?

Respuestas (2)

Si está buscando aceptar depósitos de sus clientes, debe crear una billetera determinista utilizando un software como electrum e instalar la clave pública extendida, también conocida como xpub, también conocida como clave pública maestra (MPK) en el servidor. Luego, a partir de eso, puede generar todas las direcciones que necesita.

Lo anterior crea una configuración de solo visualización en la que puede generar direcciones para recibir bitcoins pero no gastar. Entonces, en caso de que alguien comprometa su servidor, aprenderá todo su historial de transacciones, pero no podrá robarle. Para gastar el dinero, necesita usar la billetera sembrada en su PC.

Para asociar direcciones con usuarios, debe anotarlo en la base de datos de su aplicación.

Si desea asociar direcciones con usuarios de forma determinista, puede asignar a cada usuario un número de ID y un contador que servirá como índice de direcciones. Luego, puede idear una ruta de derivación adecuada que incorpore esas dos cosas. Entonces, por ejemplo, Alice podría tener el ID de usuario 5430. Las direcciones de depósito de Alice son m/5430/i, donde i es el contador en la base de datos. La primera dirección de Alice sería m/5430/0, la segunda sería m/5430/1 y así sucesivamente. La ID de usuario no cambiará una vez que un usuario se registre, por lo que incluso con copias de seguridad un poco más antiguas, siempre que tenga la ID de usuario, puede incrementar el contador hasta llegar a la correcta.

Lo mejor es asegurarse de que cada cliente tenga su propia billetera, con una frase recuperable.

Mencionó que está utilizando un servidor, lo cual es imprudente ya que los piratas informáticos lo verán como una gran diana.

Parece que estás haciendo un intercambio.

Entonces, lo que hacen es recibir direcciones que son reales y están en la cadena de bloques. A cada usuario se le asigna una dirección donde puede recibir X cantidad de BTC.

Sin embargo, las direcciones de envío están en la base de datos, y la base de datos realiza un seguimiento de cuántos BTC tiene internamente.

Cuando solicita enviar BTC a alguien, la base de datos verifica si esa persona también está en su base de datos en función de la dirección para, si es así, simplemente reste la cantidad de usted y agregue la cantidad a otra persona. Esto sucede fuera de la cadena.

De lo contrario, le restan el monto y envían el BTC desde una de sus propias direcciones.

Debería conseguir a alguien que construya su sistema por usted, ya que está lidiando con las finanzas de las personas, y un movimiento en falso podría dejarlo como Mt. Gox

¡Buena suerte!

Votó a favor porque a) las direcciones no tienen que ser transmitidas o "en la cadena de bloques" antes de que pueda usarlas b) no puede limitar la cantidad de dinero que alguien envía a su dirección c) no hay direcciones de origen en bitcoin
No utilicé la terminología adecuada como UTXo porque OP no parece saber mucho sobre la cadena de bloques. Además, el OP parece que quiere construir un intercambio. Los intercambios normalmente funcionan haciendo todos los intercambios que ocurren dentro del intercambio a través de su propia base de datos. Si puede decirme dónde me equivoqué salvo la terminología, entonces estaré feliz de cambiar. Blockchain es un concepto difícil y es posible que haya dicho algo fuera de lugar por error, házmelo saber
He explicado dónde te equivocaste arriba.