lunes, 10 de agosto de 2015

Moneda con pagos y créditos P2P sin reserva. Funcionalidades

El propósito y la justificación monetaria de las funcionalidades descritas a continuación se encuentran en:
El diseño funcional esta pensado para programarlo como un “smart contract” para la plataforma ethereum, en su cadena de bloques, y ejecutado como una DAPP en un navegador ethereum o habilitado para ethereum.
Partimos de la funcionalidad básica de una moneda simple descrita como ejemplo en THE COIN, y le añadiremos las necesarias para autorizar y operar con lineas de crédito.

Contrato de moneda básica

La moneda básica es un contrato en la cadena de bloques que incluye una base de datos con un registro que tiene el saldo asociado a cada cuenta. La base de datos se abre con la cuenta del creador y se va ampliando con cada cuenta que recibe o emite una transferencia.
El creador del contrato hace de Banco Central y emite toda la moneda que va a existir. Puede transferir esa cantidad, por ejemplo, al gobierno de esa comunidad, o, por ejemplo, distribuirlo entre todos los miembros.
La gran diferencia con las cripto-monedas de primera generación (bitcoinfaircoin) es que esa cantidad no hay que minarla como monedas. Basta declararla. Se minaran las transacciones y sus cambios a la cadena de bloques.
Un pago se dispara con un mensaje al contrato en la cadena de bloques. El mensaje incluye la cuenta del remitente, la cuenta del destinatario de la transferencia, y la cantidad a pagar. Si el remitente tiene saldo suficiente, su saldo tiene un decremento por el importe del pago, y el del destinatario tiene un incremento igual.

Contrato de moneda con linea de crédito sin reserva

La base de datos de una moneda con crédito es algo mas complicada.
  • Tiene el saldo de cada cuenta, que puede ser negativo.
  • Tiene el acumulado de la reputación de cada cuenta en emitir créditos exitosos. La reputación no se puede transferir, solo ganar. Solo el creador del contrato puede transferir reputación por criterios externos al mecanismo de la moneda.
  • Tiene los parámetros necesarios para manejar los créditos, como son el monto del crédito, su fecha de caducidad, el coste en reputación al prestamista, y la cuenta del prestamista.
El crédito se diseña como una linea de crédito (como una tarjeta de crédito) y no como un deposito (como un crédito bancario). El prestatario, cuando pague, puede llegar a saldos negativos hasta el limite de la linea de crédito.
Por tanto, al pagar, ha aumentado la masa monetaria, ha creado nuevo dinero de la nada. El criterio mas fiable de que la masa monetaria ha vuelto al equilibrio es que el prestamista ha rellenado el hueco, y su saldo ha vuelto a positivo.
El efecto monetario es el mismo que en un crédito tipo deposito, pero hemos preferido este procedimiento al de un deposito porque permite un control mas simple y claro.

Se puede dar a todas las cuentas una linea de crédito por defecto, como en los sistemas LETS. Hay que dar a todas las cuentas una supuesta reputación inicial para que puedan empezar a dar créditos y ganarse una reputación mayor. Hay que fijar un porcentaje en premio al coste en reputación puesto en juego al autorizar un crédito, si resulta exitoso.
El creador del contrato hace de Banco Central y puede añadir una cantidad a la masa monetaria, masa monetaria cuyo total sera igual a la emitida por el creador mas la generada a través de los pagos contra linea de crédito (la suma de saldos negativos).
Un pago se dispara con un mensaje al contrato en la cadena de bloques. El mensaje incluye la cuenta del remitente, la cuenta del destinatario de la transferencia, y la cantidad a pagar. Si el remitente tiene saldo suficiente, contando su saldo, el limite de la linea de crédito mas la cantidad “lets”, su saldo tiene un decremento por el importe del pago, y el del destinatario tiene un incremento igual.
El pago se bloquea si la linea de crédito ha expirado. Antes de proceder hay que cerrar el crédito.
Como decimos, el criterio para saber si se ha pagado el crédito es que el saldo de la cuenta es positivo.
  • En ese momento se anula la linea de crédito y su fecha se lleva a 0. A partir de entonces la cuenta no puede caer en saldos negativos.
  • Se le restituye al prestamista todo su coste en reputación, aumentado por el factor de premio.
Con ello se ha cerrado el crédito y se puede seguir con el procedimiento de pago, que ya solo contara con la cantidad “lets”.
Si el saldo sigue en negativo, al cancelar el crédito, la cuenta bloquea todo pago, hasta que se rellene el hueco con nuevos ingresos.
Por otra parte, se descarta el coste de reputación del prestamista. Ha sido un crédito fallido y no recuperara nada (se podría programar otro diseño mas “tolerante”).
La autorización de un crédito se dispara con un mensaje al contrato en la cadena de bloques. El mensaje incluye la cuenta del remitente, la cuenta del destinatario del crédito, el monto del crédito y el tiempo para devolverlo.
Este primer diseño tiene algunas simplificaciones, que se podrán complicar en versiones posteriores:
  • No se puede cancelar el contrato antes de tiempo. Aunque el saldo sea positivo la linea de crédito sigue activa.
  • No se pueden tener dos lineas de crédito simultaneas. La existencia de una linea de crédito bloquea la concesión de otra.
  • No se pueden programar pagos, es decir una linea de crédito con escalones decrecientes programables.
El procedimiento es el siguiente:
  1. Lo primero es calcular el coste del crédito en reputación del prestamista. Hemos utilizado el área total de la masa monetaria incrementada incluyendo la dimensión temporal. Es decir el monto por el tiempo. Otros diseños pueden usar otros algoritmos.
  2. Luego hay que ver si el prestamista tiene ganada reputación suficiente, añadiendo la reputación que se le supone a cada cuenta por defecto, para autorizar un crédito de tal calibre.
  3. Si es así, se le aparta de momento al prestamista el coste en reputación, hasta que el crédito se devuelva con éxito.
  4. Finalmente, se le rellenan a la cuenta del prestatario todos los parámetros del crédito.
El ultimo procedimiento explica como el creador del contrato puede transmitir reputación a otras cuentas en las que tiene confianza. Seria como nombrar agentes expertos en créditos del Banco Central.  

1 comentario: