Arquitecturas de billetera escalables: una configuración simple en caliente / en frío para intercambios

Un intercambio de criptomonedas en ciernes tiene varias opciones cuando se trata de proporcionar a sus usuarios carteras de criptomonedas. Pueden generar y proporcionar carteras segregadas para cada usuario o pueden utilizar carteras agrupadas para lograr un nivel de escalabilidad. Las billeteras se pueden guardar en un servidor en línea o en una máquina fuera de línea, respectivamente llamadas billetera caliente y billetera fría.

Compensación

Carteras segregadas:

Carteras agrupadas:

Preocupaciones generales

Cuando analicemos la mitigación del riesgo, debemos tener en cuenta las siguientes consideraciones:

Un término medio cómodo

Una arquitectura popular que permite carteras agrupadas mientras mitiga los riesgos que implica tener carteras en línea es utilizar una combinación de carteras frías y calientes para reducir la exposición de los fondos en línea. Cada billetera tiene un propósito diferente. Hablemos de los diferentes estilos de billeteras:

Ambas billeteras están alojadas y administradas en servidores en línea. Debido al hecho de que ambas son billeteras en línea, queremos minimizar la cantidad de fondos que tenemos en estas billeteras, lo que nos ayudará a reducir el riesgo de pérdida de fondos si existe un compromiso. La billetera fría tiene el propósito de administrar la mayoría de los fondos para que un compromiso de cualquiera de los servidores no resulte en un compromiso de la mayoría de los fondos.

¿Cómo se conectan?

Supongamos que la billetera receptora solo tiene una dirección y todos los fondos que ingresan al intercambio ingresan a esa billetera. Querremos enviar algunos de esos fondos fuera de línea para reducir la exposición de los fondos en línea. También tendremos que enviar algunos fondos de la billetera receptora y la billetera fría a la billetera de envío según sea necesario. Esto es para garantizar que la billetera de envío pueda cumplir con un nivel razonable de servicio en los retiros. Si nos quedamos sin dinero en la billetera de envío y los fondos no llegan de manera confiable a la billetera de recepción, entonces existe la opción de mover fondos del almacenamiento en frío a la billetera de envío.

Apliquemos algunas lógicas básicas para ayudarnos a mitigar el riesgo. Como ejemplo, digamos que el intercambio tiene en promedio 100 BTC en activos disponibles y que en cualquier momento, no queremos arriesgar más del 30% de nuestros fondos. Podemos establecer nuestros umbrales mínimos y máximos generales por billetera para ayudar a tomar en cuenta este riesgo. Así es como se desarrollaría la lógica:

Escalabilidad

Abordemos rápidamente la escalabilidad. Usar una sola billetera entrante no es la mejor decisión. Lo que podemos hacer para abordar esto simplemente es usar una billetera determinista jerárquica para generar una dirección única por usuario. Esto permite la capacidad de crear direcciones públicas únicas sin tener que generar y administrar pares de claves adicionales para cada usuario. Si alguna vez ha creado una aplicación con BitcoinD, sabe cómo se siente.

Supongamos que la operación se está ampliando ahora y nos preocupa tener nuestros fondos en una sola billetera. Se puede generar un umbral superior de 2³²-1 claves desde una sola billetera HD. También es posible escalar horizontalmente. Si los fondos ingresan a un ritmo rápido, más allá de lo esperado, se podría agregar una segunda billetera receptora que se instala en un almacenamiento en frío o la billetera de envío. Este concepto se puede aplicar ampliamente a todas las carteras. Si necesitamos más billeteras de envío, agregar billeteras para escalar horizontalmente para limitar la cantidad expuesta en una sola billetera o servidor es una solución.


Esta arquitectura de billetera fue muy popular a partir de 2015 debido a su simplicidad para la opción que proporciona para escalar. Una preocupación común sobre las distintas cadenas de bloques es la capacidad de escalar; sin embargo, la mayoría de los intercambios emplean un modelo de carteras agrupadas, como el que se describe aquí, que permite que la arquitectura se enfrente mejor a las altas tarifas de transacción en cadena. Además, permite a las organizaciones elegir su perfil de riesgo e incorporar los parámetros necesarios para cumplir con ese perfil de riesgo.