Estoy construyendo un mercado de criptomonedas donde los usuarios compran y venden principalmente artículos de precio reducido (con un valor de $10 - $50) usando criptomonedas. Sin embargo, las "tarifas de los mineros" hacen que su funcionamiento sea prohibitivamente costoso.
GUIÓN:
Tengo un mercado de vendedores y compradores donde un usuario puede ser tanto vendedor como comprador. Un comprador debe depositar fondos en su cuenta (recargar el saldo de la cuenta) antes de poder gastar criptomonedas en la plataforma. Para cada nuevo usuario, generaríamos una dirección única para que los fondos depositados en esa dirección se acreditaran a ese usuario. Facilita saber a quién acreditar cuando detectamos un depósito en una dirección específica. Mi principal dilema es con respecto a los desembolsos al proveedor y la tarifa de la plataforma (ver más abajo).
Después de que el comprador compra un artículo (utilizando el saldo de la cuenta), el pago se mantiene en depósito hasta que el artículo se entrega al comprador. Una vez que se entrega el artículo, el pago se "transfiere" al proveedor menos una "tarifa de transacción de plataforma" del 1,9% (que se paga al propietario de la plataforma). Un vendedor puede retirar sus ganancias en cualquier momento después de pagar una tarifa fija de retiro de $5. De manera similar, un comprador puede retirar su depósito (saldo de cuenta) en cualquier momento por la misma tarifa fija de $5. Tenga en cuenta que un retiro por parte de un proveedor generalmente incluye el pago recibido de cientos de transacciones (todas las cuales se originan en numerosos compradores y numerosas direcciones). También puede incluir un ingreso realizado por el propio vendedor para recargar su saldo.
Cuando se completa un solo pedido (es decir, se entrega un producto), obviamente no es viable transferir el pago de la billetera del comprador a la billetera privada del proveedor, ya que esto incurriría en una "tarifa de extracción" cada vez que se realiza un pedido en el sitio. En su lugar, confiaríamos en el concepto de libro mayor interno descrito en esta respuesta .
En resumen, según el concepto del libro mayor, si un producto se vende por $ 25, "acreditaríamos" al vendedor con un valor de $ 25 de un tipo específico de criptomoneda sin transmitir la transacción a la cadena de bloques. Del mismo modo, "deduciríamos" los $ 25 de criptografía del saldo de los compradores (usando una base de datos interna, sin transmitir nada a la cadena de bloques). Ahora digamos que un proveedor completa 100 transacciones * $25 cuando Bitcoin vale $10,000 por BTC. Así que ahora le deberíamos al proveedor $2500 USD o 0,25 BTC (menos el 1,9 % de la tarifa de la plataforma).
EL PROBLEMA
Cuando el vendedor elige retirar sus ganancias, los 0,25 BTC se originarán en 100 direcciones diferentes (100 compradores), lo que obviamente generará tarifas excesivas para los mineros. Del mismo modo, dado que el propietario del sitio cobra una tarifa del 1,9% por cada transacción, si el propietario del sitio quisiera consolidar toda la pequeña criptomoneda obtenida de 100 direcciones en 1 dirección, implicaría un proceso similar (y el costo relativo sería mucho mayor para el propietario de la plataforma).
ENFOQUE DE RANURA DE TIEMPO
Una solución a este problema podría ser hacer que todos los usuarios del sitio depositen fondos en una sola dirección de criptomoneda. Por supuesto, esto dificulta el seguimiento de quién es quién al realizar un depósito, ya que todos envían a la misma dirección. Es posible dedicar la dirección a un solo usuario por un período de tiempo ("intervalo de tiempo") y luego acreditar al usuario que tiene el "intervalo de tiempo" dedicado, pero este enfoque no es ideal ya que necesitaríamos rastrear qué usuario tuvo acceso a la dirección en un período de tiempo específico. Además, es posible que los usuarios no recuerden que la asignación de direcciones depende del tiempo y pueden realizar depósitos en esa dirección en un momento futuro en el "intervalo de tiempo" de otra persona. También es muy confuso para el usuario y aún requeriría docenas de direcciones únicas si el sitio tiene muchos usuarios. Sin embargo,
Presumiblemente, hay otras soluciones a este problema, ya que hay muchos sitios con una funcionalidad similar. ¿Cuál es la solución estándar de la industria para este problema? ¿Cuáles son algunas formas de abordarlo? Cualquier idea es muy apreciada.
Nota: El mercado admitirá depósitos/retiros en Bitcoin, Ethereum, Bitcoin Cash, Ripple, Litecoin, USDC y USDT.
Nota: Estoy abierto a una solución nativa que se base en el cliente de cadena de bloques o una solución API de una empresa de confianza.
Como @chytrik ya describió, la reutilización de direcciones no resuelve su problema para las monedas basadas en UTXO, cada salida de transacción debe referenciarse individualmente independientemente.
Cuando sus usuarios depositan en su sitio, desea darles direcciones separadas, para que pueda rastrear el saldo interno de quién debe acreditarse. Sin embargo, después de eso, los fondos están bajo su custodia. Lo que significa que puede y debe administrar su grupo UXTO. Un buen comienzo sería consolidar regularmente cantidades más pequeñas en UTXO más grandes durante las horas de menor actividad cuando las tarifas son bajas. Puede encontrar interesante este artículo sobre la administración de UTXO para billeteras empresariales .
En general, los pagos en cadena de Bitcoin no se prestan a micropagos rápidos; como observó, las tarifas son una parte demasiado grande del valor. La respuesta de Bitcoin a eso es Lightning Network, una red de pago instantáneo que aprovecha los canales de pago basados en firmas múltiples.
Una solución a este problema podría ser hacer que todos los usuarios del sitio depositen fondos en una sola dirección de criptomoneda.
Esto definitivamente no es una solución al problema que ha descrito. Al crear una transacción, no hay diferencia entre consolidar muchos pagos que se realizaron a la misma dirección y consolidar muchos pagos que se realizaron a direcciones únicas. Cada pago que incluya representará una entrada única para la transacción.
Por lo que parece, está confundiendo el concepto de un modelo basado en cuenta para transacciones y un modelo basado en UTXO para transacciones (que es lo que emplea bitcoin).
Estoy construyendo un mercado de criptomonedas donde los usuarios compran y venden principalmente artículos de precio reducido (con un valor de $10 - $50) usando criptomonedas. Sin embargo, las "tarifas de los mineros" hacen que su funcionamiento sea prohibitivamente costoso.
Use segwit para transacciones en cadena, procesamiento por lotes siempre que sea posible, consolidación de UTXO durante los fines de semana una vez que tenga muchas entradas pequeñas y use las últimas tecnologías cuando estén disponibles como taproot
Trate de usar menos soluciones en cadena y más de capa 2 como LN y Liquid
Compensaciones que incluyen diferentes niveles de descentralización y suposiciones de confianza al usar Liquid o cualquier cadena lateral de bitcoin
pieter wuille
LLAMADA DE SOCORRO
muro