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