Cualquiera puede declarar que generó energía limpia. La diferencia entre una declaración y una prueba son dos medidores independientes, compuertas que fallan cerradas, y una cadena de evidencia que un desconocido puede recalcular sin confiar en nosotros.
Lo que afirma una atestación QWATT, exactamente: entre t₀ y t₁,
una instalación registrada produjo E watts-hora, medidos por dos instrumentos independientes
cuyas lecturas concuerdan entre sí y con la física de ese lugar a esa hora — y este registro no ha
sido alterado desde entonces. Nada más. Todo lo demás es una capa contractual encima.
Abajo corren las mismas cuatro compuertas que el gateway ejecuta antes de emitir, con los parámetros reales del equipo Fase 1. Mueve los controles o elige un ataque: el veredicto se recalcula al instante. Un intervalo rechazado no emite nada, y queda escrito en el registro de rechazos.
Se tokeniza siempre el menor de los dos medidores: una falla puede subestimar, nunca sobreestimar.
Cuatro compuertas corren hoy en el equipo Fase 1. Tres más entran cuando el hardware las soporta — y las marcamos como pendientes en vez de insinuar que ya existen.
Valores finitos, Δt ≤ 900 s, desfase de reloj ≤ 2 h 05 m, y Wh ≈ W × t. Los timestamps son datos del cliente y escalan a las demás compuertas: se acotan en la puerta, y un NaN se rechaza antes de poder derrotar una comparación.
Un panel de 150 Wp no puede superar 0,150 kW × h × 1,15 ≈ 14,4 Wh en cinco minutos. Si cualquiera de los dos medidores pasa el techo, el intervalo cae.
Posición solar NOAA para −33,45 / −70,65: si hay generación, el sol debe estar sobre −2°. La energía nocturna es imposible; los ceros nocturnos son honestos.
Detiene: inyectar corriente después del atardecerDos instrumentos en rutas de señal separadas deben contar la misma historia: |A−B| ≤ 5%, con banda muerta de 2 W. Un sensor tapado o un bus muerto colapsa un medidor y dispara la compuerta.
Una celda de referencia fuera de la ruta de potencia mide la causa, no el efecto. Si el arreglo reporta energía y el testigo está a oscuras, el lote cae.
Pendiente: requiere celda de 5 Wp + INA226Saltos físicamente imposibles, y series demasiado suaves: la irradiancia real siempre tiene ruido, una constante perfecta es sintética.
Pendiente: requiere muestreo intra-intervaloUn reed en la tapa del gabinete: caja abierta → emisión detenida hasta rearme firmado.
Pendiente: requiere reed + GPIOEl nodo firma; la tesorería vuelve a correr las compuertas y recién entonces co-firma. Su clave nunca vive en un nodo.
Un nodo comprometido es un sensor roto, no una impresora de dinero
Un verificador que solo publica lo que pasó está haciendo marketing. Estas cuatro fallas se inducen
físicamente en el equipo y deben aparecer en rejected.jsonl con su razón.
| Prueba | Acción física | Resultado esperado |
|---|---|---|
| Control · sombra honesta | Cubrir el panel completo durante un intervalo | aceptado ≈ 0 Wh — las compuertas rechazan fraude, no clima |
| Sensor tapado | Levantar una punta de sensado del shunt en el PZEM | rechazado: divergencia entre medidores |
| Medidor desconectado | Desenchufar el bus RS485 A durante un intervalo | rechazado: divergencia (el medidor A colapsa a 0) |
| Generar de noche | Inyectar desde fuente de laboratorio aguas arriba del shunt, de noche | rechazado: generación con el sol bajo −2° |
El primer resultado es el más importante: un panel tapado produce cero, y ese cero se acepta. Un sistema que castigara el mal tiempo estaría midiendo otra cosa.
Cada evento carga su nivel de garantía, y el nivel depende de qué instrumentos hay, nunca de si el resultado convino. Hoy el protocolo no tiene ningún evento real — y lo decimos aquí en vez de esconderlo.
El manifiesto del lote es JSON canónico y se publica antes de emitir; su SHA-256 viaja dentro de la transacción que emite. Un revisor recalcula el hash desde el archivo público y no necesita nada de nosotros.
manageData qwatt.anchor.sha256 — digest de 64 hex del manifiesto canónico del lote.
manageData qwatt.cumulative_kwh — total acumulado; siempre la suma exacta de cada pago truncado anterior.
payment — el QWATT del lote desde el emisor a la cuenta de distribución. El pago de vuelta al emisor quema en la redención.
Cada intervalo tokeniza min(A,B). Una falla de medidor puede subestimar, nunca sobreestimar.
Los montos se truncan a los 7 decimales de Stellar en Decimal. El resto simplemente no se tokeniza.
Un registro de intención precede a cada envío; un timeout de Horizon se recupera buscando el hash del ancla.
emitido − redimido = circulante, recalculado en vivo desde Horizon en el navegador del revisor.
La credibilidad de todo lo anterior depende de no venderlo de más.
El procedimiento completo, con herramientas públicas. El paso 6 es el que nos audita a nosotros.
qwatt.anchor.sha256 de esa misma transacción: ahí está el hash de la evidencia.SHA-256. Debe coincidir.qwatt.cumulative_kwh sea la suma exacta de todos los pagos anteriores.El Explorer muestra hoy un estado vacío honesto: todavía no existe ningún evento real. Cuando exista, aparecerá ahí. El modelo completo está en el whitepaper, y el código de los validadores en GitHub ↗.