¿Estrategias para reducir las altas tarifas de transacción en un mercado de criptomonedas?

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.

Limite el alcance de esta pregunta a Bitcoin. Otras monedas están fuera de tema aquí.
@PieterWuille Pensé que si la pregunta principal se relaciona con Bitcoin, puedo incluir altcoins como secundaria: "Las preguntas sobre criptomonedas alternativas están fuera de tema a menos que sean aplicables a Bitcoin"
Entiendo que para cubrir preguntas cuya respuesta es la misma que para Bitcoin.

Respuestas (3)

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.

Gracias por su respuesta. 1) ¿Es la propuesta de "intervalo de tiempo" una solución viable para altcoins como Ethereum que utilizan el modelo de cuenta? 2) La tarifa para transferir $2,500 al proveedor es de aprox. $376.37 (USD) (15% del total) con un marco de tiempo de 60 min según este sitio . Para un marco de tiempo de 400 minutos, el costo se reduce a $ 78.50 (USD) (1.5% del total). La plataforma cobra una tarifa del 1,9% que se comería por el alto costo. ¿Diría que esta es la tarifa más baja que podría esperar pagar usando el protocolo BTC heredado (la API que estoy usando no es compatible con Lighting Network)?
Las tarifas de Bitcoin no están relacionadas con la cantidad que se envía, sino con la cantidad de espacio en bloque que ocupa una transacción. Si puede esperar más tiempo, eventualmente podrá realizar una transacción a 5 sat/vB o menos. Si quieres ser realmente paciente incluso a 1 sat/vB. Para una transacción de tamaño promedio de 500 vB, eso se traduce en 500-2500 satoshi de tarifas, al tipo de cambio actual, menos de un dólar. Si tiene preguntas sobre ethereum, le sugiero que consulte ethereum.stackexchange.com .
Un usuario de SE (@Prayank) comentó sobre otra pregunta mía : "Puedo tener un sitio web, inicio de sesión de usuario, todos pagan a la misma dirección pero actualizados en mi base de datos local con identificación de usuario e identificación de transacción cuando se realiza el pago" ¿Estaría de acuerdo con eso? ¿declaración? ¿Es posible rastrear los depósitos de los usuarios utilizando el ID de transacción (TXID) si todos en el sitio envían a la misma dirección de Bitcoin? no tiene sentido para mi..
Si bien es cierto que cada transacción tiene una identificación única y, por lo tanto, cada salida de transacción no gastada es identificable de manera única, hacer que todos paguen a la misma dirección generará una gran cantidad de gastos generales con el seguimiento de quién pagó y cuándo. Será mucho más fácil asignar una nueva dirección para cada proceso de pago (o al menos para cada cliente). En general, la reutilización de direcciones tiene muchas desventajas y no presenta ventajas palpables en Bitcoin.

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).

Gracias. Si bien la pregunta principal es sobre BItcoin, ¿sería el enfoque de intervalo de tiempo una solución para las transacciones de tipo Ethereum (modelo basado en cuenta)?
@SOS No encuentro a Ethereum tan interesante, por lo que no soy un experto en su funcionamiento, pero supongo que el 'enfoque de intervalo de tiempo' casi seguramente no es una buena solución para tal situación, dado el problema de muchos usuarios potencialmente haciendo depósitos concurrentes. (Y el problema de la confirmación de tx retrasada, etc.)

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

Liquid probablemente no sea un buen consejo para alguien que quiera usar Bitcoin. Es como decir "usar altcoins".
*usar cadenas laterales de bitcoin :)
No creo que sea un buen consejo en general. El modelo de confianza de Liquid se basa en entidades específicas que forman la federación que lo controla. Si aún no tiene una relación de confianza con estas empresas, no hay ninguna razón por la que deba hacerlo.
Mejor que mudarse a algunas altcoins debido a las tarifas en cadena. De todos modos, a nadie le importan las tarifas en cadena, aparte de algunos desarrolladores y usuarios, por lo que siempre será difícil para las transacciones mencionadas por OP. También he mencionado a LN. Si la gente no quiere usar o sugerir cadenas laterales de bitcoin, muchos usuarios se cambiarán a altcoins. El usuario individual se preocupa por su transacción y tarifas. También si la gente pudiera responder a esto: github.com/bitcoin/bitcoin/pull/13990