#dusk $DUSK DUSK Contrato

El Contrato DUSK ContractDUSK forma la columna vertebral del protocolo de la Red Dusk.

El contrato es responsable de la contabilidad del activo del protocolo nativo llamado

DUSK. DUSK se utiliza como un token de participación resistente a Sybil en el consenso de SBA-

su mecanismo, así como el medio para subsidiar los costos de computación de los

participantes del consenso (es decir, medio para el pago de tarifas de transacción). ContractDUSK

utiliza Phoenix como el modelo de transacción subyacente. El ContractDUSK.F

Ejecutar

la función actúa como el punto de entrada para la iniciación de la transición de estado para no-Coinbase

transacciones. Específicamente, ContractDUSK.F

La función Execute toma lo siguiente en-

entrada:

Entradas, ¿Crossover?, Salidas, Fee, πejecutar

plonk , calldata,

donde las Entradas y Salidas están definidas previamente en la sección Phoenix, Crossover

es una entrada opcional que representa una nota única actuando como puente para DUSK entre

las capas de computación transaccional y generalizadas, Fee es la tarifa asignada como una

reembolso por los costos de computación de la transacción, π

ejecutar

plonk es un conocimiento cero

prueba atestiguando la validez de la transacción y calldata es los datos adjuntos

a la transacción permitiéndole iniciar una llamada de contrato. Definimos Crossover como:

Crossover ← (c, denc),

donde c es el compromiso al valor v de DUSK que se está puenteando y d

enc

son las aperturas encriptadas de compromiso c a la derivada de Fee.pk. Fee es

definido como:

Fee ← (gasPrice, gasLimit, R, pk),

donde gasPrice es el precio por gas en DUSK, gasLimit es la cantidad máxima permitida

de gas para la ejecución de dicha llamada de función y (R, pk) es la dirección sigilosa

a la cual se emitirá un reembolso si no se consume todo el gas asignado. Si, por

por alguna razón, un Crossover no se consume durante la ejecución de la llamada, entonces

entonces se emite una nota de reembolso adicional a (R, pk).

ContractDUSK.F

La función Execute requiere que los siguientes pasos sean enmendados a 3. El paso 10 debe ser sustituido por vin − v − vout − fee.

En total, ContractDUSK está compuesto por las siguientes funciones no espurias:

1. F

SendToContractTransparent, permitiendo a un usuario enviar DUSK de manera transparente

forma a un contrato.

2. F

SendToContractObfuscated, permitiendo a un usuario enviar DUSK en una forma ofuscada

forma a un contrato.

3. F

WithdrawFromTransparent, permitiendo a un contrato retirar DUSK transparente

a un usuario en una forma ofuscada.

4. F

WithdrawFromTransparentToContractTransparent, permitiendo a un contrato retirar

DUSK transparente a un contrato en una forma transparente.

5. F

WithdrawFromTransparentToContractObfuscated, permitiendo a un contrato retirar trans-

DUSK padre a un contrato en una forma ofuscada.

6. F

WithdrawFromObfuscated, permitiendo a un contrato retirar DUSK ofuscado

a un usuario en una forma ofuscada.

7. F

WithdrawFromObfuscatedToContractTransparent, permitiendo a un contrato retirar ob-

DUSK ofuscado a un contrato en una forma transparente.

8. F

WithdrawFromObfuscatedToContractObfuscated, permitiendo a un contrato retirar ob-

DUSK ofuscado a un contrato en una forma transparente.

9. F

Execute, permitiendo a un usuario pagar por la tarifa de transacción, enviar DUSK a

otro usuario e iniciar una llamada de contrato.

7.5.2 Contrato de Oferta

ContractBid se utiliza para permitir a los Generadores prospectivos bloquear sus ofertas en o-

para unirse al consenso, actualizar la altura de expiración de sus ofertas existentes

y retirar las ofertas mencionadas una vez que haya transcurrido la altura de expiración.#DUSK $DUSK @Dusk