Wiki de ZooBC
Tokens y mercados

Políticas de reparto y de transacciones

Dos ajustes de la cuenta determinan lo que le llega a una cuenta. Una política de reparto reenvía partes fijas de cada abono entrante, en ZBC o en cualquier token, a hasta diez direcciones más: regalías, ingresos compartidos entre socios o ahorro automático. Una política de transacciones rechaza categorías enteras de transacciones en ambos sentidos, de modo que, por ejemplo, nadie pueda enviar a la cuenta tokens no deseados. Cada una se fija con una transacción y se mantiene hasta que se cambia.

Política de reparto

Una transacción SetSplitPolicy (tipo 54) enumera hasta 10 destinatarios, cada uno con una parte en puntos básicos (100 puntos básicos son un 1 %):

  • cada parte es de al menos 1 punto básico, y todas las partes juntas suman como máximo 10 000 (el 100 %);
  • ningún destinatario puede aparecer dos veces, y la cuenta no puede nombrarse a sí misma;
  • todos los destinatarios deben poder tener fondos.

Un cuerpo 00 borra la política.

Qué se reparte

La política se aplica a cada abono entrante, en ZBC y en tokens: pagos, liberaciones de escrows, disparadores, pagos de flujos, pagos de programaciones en modo de liberación, transferencias de tokens, ejecuciones de operaciones, pagos de apps y recompensas. No se aplica a los reembolsos del propio dinero de la cuenta (como un escrow devuelto a su remitente), a los pagos de programaciones en modo de cobro ni a las acuñaciones del puente.

Cada parte es floor(amount × basis points ÷ 10,000), y lo que no se asigna, redondeo incluido, se queda en la cuenta. Las partes no se encadenan: la política de reparto propia de un destinatario no se aplica a lo que recibe a través de un reparto, así que el dinero no puede entrar en bucle. Un destinatario cuya política de transacciones rechaza los pagos se omite, y su parte se queda en la cuenta.

Llegan 100 unidades a una cuenta cuyo repartidor envía 30 a A y 20 a B y se queda con 50; el repartidor propio de A está desactivado para esta parte: no hay encadenamiento
Llegan 100 unidades a una cuenta cuyo repartidor envía 30 a A y 20 a B y se queda con 50; el repartidor propio de A está desactivado para esta parte: no hay encadenamiento

En un grupo de cuentas, solo el controlador fija la política, y la política del grupo se aplica al dinero enviado a cualquier miembro. Una dirección que tiene una política de reparto no puede entrar en un grupo.

Política de transacciones

Una transacción SetTransactPolicy (tipo 50) guarda una máscara de 2 bytes en la cuenta. Cada bit rechaza una categoría de transacciones en ambos sentidos: la cuenta no las enviará ni las recibirá.

BitCategoría
0Pagos
1Apps
2Tokens
3Intercambio
4Almacenamiento de datos
5Escrow y multifirma
6Infraestructura de nodos
7Puente (AttestEvent)
8Gobernanza

Unos pocos tipos no se rechazan nunca: Empty, SetTransactPolicy, SetSplitPolicy, los tipos de longevidad y los tipos de grupos de cuentas.

Nueve interruptores de categoría con Tokens desactivado; una transferencia de tokens entrante se detiene en la puerta, su comisión va al fondo de recompensas y los tokens rebotan hacia el remitente
Nueve interruptores de categoría con Tokens desactivado; una transferencia de tokens entrante se detiene en la puerta, su comisión va al fondo de recompensas y los tokens rebotan hacia el remitente

Cómo funciona el rechazo

Un nodo rechaza una transacción que prohíbe una política en cuanto se envía. Si un bloque lleva una de todos modos, rebota: el remitente paga la comisión y no se mueve nada. Solo se comprueba el destinatario nombrado en el sobre de la transacción, cuando la transacción se ejecuta. Los pagos que la cadena hace más tarde en nombre de una transacción anterior, como los pagos de programaciones, las liberaciones de disparadores y los pagos de flujos, siguen llegando a un destinatario que se haya excluido.

Una política de transacciones no es un ajuste de comisiones, ya que las comisiones se derivan del suelo de cada transacción, y no elige a los productores de bloques, que sortea la cadena. Para límites de gasto de los miembros de una cuenta compartida, véase grupos de cuentas.

Véase también