Certificados de retribución

Estado: propuesta experimental

Los certificados de retribución no han sido usados por ningún proyecto. Esperamos comenzar a utilizarlos durante 2027. Los detalles podrían ajustarse a partir de esa experiencia.

Los certificados de retribución son documentos públicos, firmados criptográficamente por ambas partes, con los que quien crea una obra reconoce que una entidad que obtiene beneficio comercial de ella la está retribuyendo. No sustituyen a las licencias: operan junto a ellas, en el plano reputacional y cultural, y permiten verificar en público que quien se beneficia compensa a quien creó.

Qué hacen

Cómo funcionan

  1. La autora o proyecto publica una clave pública asociada a su identidad. La entidad beneficiaria hace lo mismo.
  2. Al cierre de un período de referencia, la entidad beneficiaria prepara una solicitud de certificado describiendo la práctica de retribución realizada.
  3. La entidad beneficiaria firma la solicitud con su clave privada y la envía a la autora o al proyecto.
  4. La autora o proyecto evalúa si la práctica es adecuada. Si lo considera así, firma el documento con su clave privada. El resultado, firmado por ambas partes, es el certificado de retribución.
  5. El certificado se publica en un lugar consultable e inmutable, un repositorio git público cumple ambas condiciones.

La firma del autor o del proyecto sobre el mismo documento es el acto de reconocimiento. No se requiere modificar el archivo después de la primera firma: ambas firmas coexisten sobre el mismo archivo.

Formato del archivo de especificación (TOML)

Cualquier proyecto puede adoptar retribución voluntaria sin cambiar su licencia. Agrega este archivo a tu repositorio, y ajusta los valores según corresponda.

# authors.toml - Declaración de autoría para retribución
# Versión del formato: 0.1

[[project]]
project_id = 1
name = "Nombre del proyecto"
url = "https://example.org/proyecto"
retribution_share = 10.0  # Porcentaje de retribución solicitado
retribution_channel = "https://example.org/donations"
public_key = "RWQf..."  # minisign o GPG

[[authors]]
project_id = 1
name = "Nombre del autor"
email = "autor@example.org"
weight = 100.0  # Peso de sus contribuciones en el proyecto

La variable retribution_channel declara por dónde se recibirá el pago de retribuciones, puede ser por autor o para todo el proyecto. Es recomendable que sea solo una por proyecto.

La variable weight en el archivo especifica el peso que las contribuciones del autor tienen en el proyecto. El cálculo para determinar el porcentaje de retribución que el autor recibe es: weight * 100 / total_weight donde total_weight es la suma de todos los weight del archivo.

En forks del proyecto, los valores no deben ser alterados unilateralmente. Salvo que se llegue a un acuerdo con quienes controlan el proyecto original, el fork debe agregar un nuevo elemento [[project]] con su propio retribution_share, que se acumula al anterior.

Formato del certificado (TOML)

# retribution.toml - Certificado de retribución
# Versión del formato: 0.1

[retribution]
project_url = "https://example.org/proyecto"
beneficiary = "Nombre de la entidad"
period_start = 2026-01-01
period_end = 2026-12-31
description = "Donación"
retribution_share = 10.0 # Opcional
amount = 100000.0  # Opcional
currency = "CLP"  # Opcional
proof_url = "https://example.org/comprobante"  # Opcional

Los atributos opcionales son opcionales a criterio del proyecto original.

Los certificados pueden ser firmados usando minisign o GPG dependiendo de la convención establecida por el proyecto.

La entidad beneficiaria firma la solicitud con su clave privada, generando, en el caso de minisign, certificate.toml.beneficiary.minisig. El proyecto, si considera adecuada la práctica, firma el mismo archivo y genera certificate.toml.project.minisig. El certificado de retribución es el conjunto formado por el archivo y ambas firmas.