No hay ningún saldo guardado en ninguna parte
Una billetera muestra un número, así que es natural suponer que ese número está guardado en algún lado: una fila en una tabla, un campo en una cuenta, una cifra que los nodos debitan y acreditan. No lo está. Nada en las reglas de consenso de Bitcoin guarda un saldo, y nada en ellas guarda una identidad.
Lo que la red guarda es un conjunto de salidas de transacción no gastadas, que suele abreviarse como UTXO. Cada satoshi que existe está dentro de exactamente una de ellas. Una billetera produce el saldo buscando las salidas que puede firmar y sumando sus montos. Por eso dos billeteras restauradas desde la misma seed pueden informar honestamente saldos distintos: escanearon hasta profundidades de derivación diferentes. El saldo nunca fue un hecho sobre la red. Es un hecho sobre lo que encontró un programa determinado.
Este texto da por sabido qué es una transacción y cómo se confirma. Trata sobre el estado que una transacción modifica.
Una salida es un monto y una condición, y es indivisible
Una salida tiene dos partes y ninguna más: un valor en satoshis y un scriptPubKey, la
condición que hay que satisfacer para gastarla. No hay campo de propietario ni etiqueta.
Una transacción consume salidas existentes como entradas y crea salidas nuevas.
La propiedad de la que cuelga todo lo demás es que una entrada consume su salida por completo. No existe el gasto parcial ni un mecanismo para hacerlo. La documentación para desarrolladores de Bitcoin lo dice directamente: "el valor completo de las UTXO incluidas debe gastarse o entregarse a un minero como comisión de transacción" (documentación para desarrolladores de Bitcoin, Transactions).
De ahí sale el cambio. Con una sola salida de 0,4 BTC, pagar 0,1 BTC a alguien no permite partirla. Se gasta la salida entera de 0,4, se crea una salida de 0,1 para quien recibe, y se crea una segunda salida que devuelve el resto a una condición bajo control propio. La salida de cambio no es una comodidad. Es la única forma de no regalarle el resto a un minero.
La definición de moneda del whitepaper es la misma idea vista desde el otro lado: "una cadena de firmas digitales" ("a chain of digital signatures"), donde cada dueño la firma y la pasa al siguiente (Bitcoin: A Peer-to-Peer Electronic Cash System, sección 2). Una UTXO es un eslabón de esa cadena, sin gastar.
El conjunto de UTXO es el estado de consenso
Validar una transacción plantea dos preguntas: ¿cada entrada referencia una anotación que está ahora mismo en el conjunto, y el testigo satisface la condición de esa anotación? Nunca pregunta si una cuenta tiene suficiente. Conectar un bloque borra las anotaciones que sus transacciones consumieron e inserta las que crearon, y esa es toda la transición de estado.
El conjunto no es entonces un índice que alguien mantiene por comodidad. Es el estado, y
cada nodo completo que uno corre guarda una copia en su base de
datos chainstate. Bitcoin Core lo reporta mediante gettxoutsetinfo, cuyo campo txouts
es "el número de salidas de transacción no gastadas" (referencia RPC de Bitcoin Core
31.0.0). Al 17 de
agosto de 2026 esa cuenta rondaba los 167 millones
(Blockchain.com, tamaño del conjunto
UTXO, una cifra que se mueve a
diario).
La comisión es lo que no se reclamó
No hay campo de comisión en una transacción de Bitcoin. Al serializar una aparecen una versión, una lista de entradas, una lista de salidas, los testigos y un locktime. La comisión es una resta:
comisión = suma(valores de entrada) - suma(valores de salida)
Todo lo que no se asigna a una salida se lo lleva un minero. Gastar una salida de 1 BTC y crear una sola salida de 0,01 BTC para quien recibe equivale a pagar una comisión de 0,99 BTC. La transacción es perfectamente válida, y nada dentro de ella la distingue de una comisión deliberada, porque no hay nada que distinguir.
El caso mejor documentado tiene exactamente esa forma. En el bloque 807.057, minado el 10 de septiembre de 2023, una transacción gastó una única entrada de 19,89514072 BTC, creó cinco salidas que sumaban 0,0740544 BTC, y ahí se detuvo. Los 19,82108632 BTC restantes fueron al minero (transacción d5392d47...). Paxos reconoció que la transferencia era suya, y F2Pool, que minó el bloque, decidió devolver la comisión el 15 de septiembre (Cointelegraph, 15 de septiembre de 2023). Nada en el protocolo exigía esa devolución, y nada en él habría evitado la pérdida.
Bitcoin Core trata esto como un riesgo permanente. Su billetera se niega por defecto a
enviar una transacción cuya comisión absoluta supere 0,1 BTC, el valor por defecto de
-maxtxfee
(src/wallet/wallet.h),
y sendrawtransaction rechaza una tasa superior a 0,10 BTC por kvB salvo que se anule
maxfeerate
(src/node/transaction.h).
Esas barandas existen porque la comisión es implícita y una lista de salidas mal armada
falla en silencio.
El costo depende del número de entradas, no del monto
Los mineros venden espacio de bloque, así que la comisión que necesita una transacción es
su tamaño multiplicado por una tasa. El tamaño lo determina cuántas entradas se gastan, y
una entrada es mucho más cara que una salida. El cálculo de polvo de Bitcoin Core deja los
números por escrito: una salida P2WPKH gastable se serializa en 31 bytes y necesita una
entrada de al menos 67 bytes virtuales para gastarse, una vez aplicado el descuento de
testigo definido en
BIP 141
(src/policy/policy.cpp).
Los montos no aparecen en ese cálculo. Gastar una salida de 0,5 BTC y gastar una de 20.000 satoshis cuesta lo mismo. Una transacción que barre cuarenta salidas pequeñas es aproximadamente cuarenta veces el tamaño de una que gasta una sola grande, y paga aproximadamente cuarenta veces la comisión para mover el mismo dinero.
Eso es el polvo, dicho con precisión y no como una sensación. El mismo archivo: "Si
pagaras más en comisiones que el valor de la salida por gastar algo, entonces lo
consideramos polvo." Con el dustRelayFee por defecto de 3.000 satoshis por kvB, una
salida P2WPKH por debajo de 294 satoshis es polvo y los nodos no retransmiten una
transacción que cree una. Ese umbral es un piso de política, no la línea económica. La
línea económica se mueve con el mercado de comisiones: a 50 sat por byte virtual, gastar
una entrada cuesta unos 3.350 satoshis, así que cualquier cosa por debajo vale menos que el
acto de moverla.
Consolidar salidas pequeñas mientras las tasas están bajas es la respuesta habitual. También es un canje, y lo que se entrega a cambio es la sección siguiente.
Combinar entradas es una afirmación sobre quién las controla
La sección 10 del whitepaper admite el problema en una frase: "Algo de vinculación sigue siendo inevitable con las transacciones de múltiples entradas, que necesariamente revelan que sus entradas pertenecían al mismo dueño."
Esa frase es la base de casi todo el análisis de cadena en Bitcoin. Se la conoce como heurística de propiedad común de entradas: cuando varias salidas se gastan como entradas de una misma transacción, se asume que una sola parte controlaba todas. Es una heurística y no una regla, y CoinJoin existe justamente para falsearla, pero en transacciones corrientes se cumple lo bastante seguido como para montar un negocio encima. Meiklejohn y sus colegas la usaron en 2013 para colapsar millones de direcciones en unos pocos miles de grupos (A Fistful of Bitcoins, IMC 2013).
El coin control, elegir qué salidas gasta una transacción en lugar de dejar que decida la
billetera, existe por eso. Si una salida vino de un exchange que guarda documentos de
identidad y otra no, gastarlas juntas vincula las dos de forma permanente, y ninguna acción
posterior lo deshace: la blockchain es pública y no olvida.
Bitcoin Core incluye -avoidpartialspends, que agrupa salidas por dirección y toma todas o
ninguna, y su propio texto de ayuda nombra los dos lados: "La privacidad mejora porque las
direcciones se barren en su mayoría con menos transacciones y las salidas se agregan en
direcciones de cambio limpias. Puede resultar en comisiones más altas"
(src/wallet/init.cpp).
Conviene ver la forma del canje. Consolidar sale barato después y vincula las monedas ahora. Mantener las salidas separadas preserva la privacidad y cuesta más gastarlas. Ninguna configuración da las dos cosas, y una billetera que no expone la elección la está tomando por el usuario.
Lo que el modelo no hace
No otorga una cuenta. No hay ningún objeto en Bitcoin que acumule una posición, y por eso "mi saldo" es una abstracción del lado de la billetera y no un hecho de consenso.
No rastrea identidades. El consenso trabaja con condiciones de gasto. Una dirección es una codificación de una de esas condiciones pensada para personas, producida por el software de la billetera, y el código de validación nunca la ve.
No registra de dónde vino una moneda ni si dos monedas pertenecen a la misma persona. Las heurísticas que adivinan lo segundo funcionan por cómo se arman las transacciones, no porque el protocolo guarde la respuesta.
La abstracción es buena, y esconde cuatro cosas: las salidas se gastan enteras, el sobrante es la comisión, la cantidad de salidas es lo que se paga, y gastar dos juntas dice que están relacionadas. Cada una de esas llega tarde o temprano, casi siempre el día en que la comisión supera al pago, o el día en que una empresa con la que nunca se trató sabe qué monedas son de quién. El conjunto es el libro contable. El saldo es un resumen que alguien escribió por comodidad.
