Sumario: En el contexto del Protocolo de Maker, una liquidación es la transferencia automática de colaterales de una vault que no está suficientemente colateralizada, junto con la transferencia de la deuda de dicha vault al protocolo. En el contrato de liquidación (Dog
), una subasta se inicia con prontitud para vender el colateral transferido por DAI en un intento de cancelar la deuda ahora asignada al protocolo.
A diferencia del viejo sistema de Liquidaciones 1.2 que utilizaba subastas Inglesas (en la cual se colocan ofertas en DAI, con el capital remanente del participante bloqueado hasta que la subasta termine), Liquidaciones 2.0 utiliza las subastas Holandesas que son liquidadas instantáneamente. Esto se realiza de acuerdo al precio calculado del precio inicial y el tiempo pasado desde que la subasta comenzó. La curva de 'precio' versus 'tiempo' es explicada más adelante. La falta de un período de bloqueo mitiga mucho del riesgo de volatilidad para los participantes de las subastas y permite un reciclado de capitales más rápido.
Esta característica, permitida por la liquidación instantánea, elimina cualquier requisito de capital para los licitadores (exceptuando el gas) — en el sentido de que incluso un participante con cero DAI (y nada para canjear por DAI) aún así podría comprar desde una subasta al dirigir la venta del colateral de la subasta a otro protocolo para hacer un cambio por DAI.
Por lo tanto, toda la liquidez de DAI disponible a través de DeFI puede ser utilizado por cualquier participante para comprar colateral, sujeto sólamente a los requisitos de gas. Las mecánicas exactas son discutidas más arriba, pero esencialmente, un participante necesita especificar un contrato who
(el cual se ajusta a una interfaz en particular) y calldata
para proveerle, y el contrato de subasta invocará automáticamente cualquier lógica en el contrato externo.
Las curvas de 'precio' versus 'tiempo' están especificadas a través de una interface que trata el precio en el momento actual como una función de precio inicial de una subasta y del tiempo al cual el precio fue fijado. Cómo determinar el precio de curva más efectivo para cierto tipo de colateral es un área que aún se encuentra bajo investigación; algunas opciones iniciales (linear, step-wise exponential, y continuos exponential) han sido implementadas para investigar propósitos y el despliegue inicial. Otros candidatos además de estos incluyen una curva lineal por partes y una curva exponencial por partes. Este módulo es configurable y puede ser reemplazado en el curso de la innovación.
Es importante que los licitadores tomen en cuenta que si bien el precio casi siempre decrece con el tiempo, hay algunas ocasiones infrecuentes en que el precio en una subasta de activos puede incrementarse, y esto podría resultar potencialmente en un colateral siendo comprado a un precio más alto que el pretendido. El tipo de evento en que más comúnmente se suceden estos aumentos de precios en una subasta activa es si la subasta es reseteada (a través de redo
), pero los cambios en los parámetros configurables de un calculador de reducción de precios (o incluso el cambio de un calculador por otro) por parte de la Gobernanza también pueden resultar en un aumento de precio. Se recomienda a los licitadores (o a las UIs -Interfaces de Usuario- licitantes que abstraen este detalle del usuario) que elijan el argumento 'precio máximo aceptable' (max
) para take
de manera cuidadosa, para así asegurar un resultado deseable en caso de que el precio aumente de manera inesperada.
Como fue mencionado anteriormente, las subastas pueden llegar un estado inactivo que requiere reseteo por dos razones:
tail
)cusp
).Cuando es invocada, la función de reseteo primero se asegura que se dan al menos una de esas dos condiciones. Entonces ajusta el tiempo inicial de la subasta al tiempo actual, y fija el precio inicial de exactamente la misma forma que fue hecho al inicializar la función (es decir, el precio actual del OSM aumentó porcentualmente por el parámetro buf
). Este proceso se repetirá hasta que todo el colateral haya sido vendido o hasta que el total de la deuda haya sido recolectado (a menos que la subasta sea cancelada a través de yank
, por ejemplo, durante un Apagado de Emergencia); este comportamiento contrasta con las subastas actuales, las cuales no se resetean hasta que la última oferta haya sido recibida.
Si los keepers deciden utilizar el patrón clipperCallee
, no necesitan almacenar DAI ni colaterales en esa cuenta. Esto significa que un keeper sólamente necesita tener suficiente ETH para ejecutar las transacciones que puedan orquestar la llamada Clipper.take
, enviando el colateral a un contrato que regresa DAI al msg.sender
para pagar por el colateral, todo en una sola transacción. El contrato que implementa la interfaz clipperCallee
puede enviar cualquier colateral o DAI remanentes a través de owe
a la address de una wallet fría inaccesible para el keeper. NOTA: si el keeper elige comportarse como una address EAO, entonces el DAI y el colateral quedarían expuestos como sucede en LIQ-1.2
a menos que se tomen recaudos especiales al crear el contrato proxy.