Transacciones de Bitcoin

De Bitcoin Wiki
Saltar a: navegación, buscar

Transacción - es la sección de datos confirmada por la firma, que se transmite por la red de Bitcoin y se colecciona en los bloques. Por lo general, contiene referencias a la transacción anterior y asocia una cierta cantidad de Bitcoin con una o más claves públicas (direcciones de Bitcoin). No está cifrado, ya que el sistema Bitcoin, nada está cifrado.

El browser de la cadena de - es un lugar donde todas las transacciones, unidos en una cadena de bloques, pueden ser encontrados y verificados. Esto es necesario no sólo para determinar los parámetros técnicos de la transacción, sino también para revisión de la calidad del pago.

El formato general de las transacciones de Bitcoin (dentro de un bloque)[editar]

Campo Descripción Tamaño
Número de la versión Por ahora 1 4 bytes
Contador de input Entero positivo VI = VarInt 1-9 bytes
Lista de datos de input El primer input de la primera transacción también se llama «coinbase» (base monetaria) <Contador de input> una gran cantidad de datos de input
Contador de output Entero positivo VI = VarInt 1-9 bytes
Lista de datos de output Los datos de output de la transacción primera utilizan bitcoins extraídos para el bloque <Contador de output> muchos datos de output
Tiempo de bloqueo Si no es cero, y los números de serie son menos que 0xFFFFFFFF: altura del bloque o marca temporal (para transacciones finales) 4 bytes

Un ejemplo de transacción de bitcoin con un input y un output[editar]

Los datos[editar]

Input:
Previous tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6
Index: 0
scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10
90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501


Output:
Value: 5000000000
scriptPubKey: OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d
OP_EQUALVERIFY OP_CHECKSIG

Explicación[editar]

El input de esta transacción importa 50 BTC de salida # 0 en la transacción de f5d8..., y luego envía el resultado de 50 BTC a la dirección de Bitcoin (aquí expresado en hexadecimal - 4043 ...). Cuando el destinatario quiere gastar su dinero, se referirá a la salida # 0 de la transacción para introducir sus propias transacciones.

Input[editar]

Input - una referencia a la salida de otra transacción. Una transacción a menudo tiene más entradas. Los valores de estas referencias se suman, y la cantidad total de Bitcoins se pueden utilizar en la salida de la transacción actual. Previousr tx - es un hash de la transacción anterior. Index - es una salida específica de esta transacción. ScriptSig - es la primera mitad del script.

El script se compone de dos componentes: la firma (signature) y la clave pública (public key). La clave pública pertenece a un usuario que utiliza las salidas de las transacciones y confirma que el originador de la transacción tiene derecho a disponer la suma que venía de las salidas. Otro componente - que la firma de ECDSA de hash de la versión simplificada de la transacción. Incorporado con la clave pública, la firma confirma que la transacción ha sido creado por el verdadero propietario de la dirección de Bitcoin.

Output[editar]

Output contiene las instrucciones de envío de bitcoins. El valor (value) es el número de satoshis (1 BTC = 100000000 Satoshi) que es capaz de utilizar la transacción, para la que la corriente es la entrada. ScriptPubKey es el segundo medio de la secuencia de comandos.

Puede haber más de una salida, y compartirán la cantidad que ha venido de las entradas.

Cada transacción de salida puede ser utilizada como insumo para la siguiente transacción sólo una vez, por lo que la suma de todas las entradas para la transacción actual debe ser utilizada en sus salidas. De lo contrario, se perderá la cantidad restante de las entradas de transacción. Por ejemplo, si la entrada es de 50 BTC, y el usuario tiene que enviar sólo 25 BTC, el bitcoin creará dos salidas de 25 BTC: uno irá al destino, y el otro va a ir de nuevo al dueño de los fondos (el llamado "entrega" - una transacción que usuario realmente envía a sí mismo).

Cualquier cantidad de entradas de bitcoins que no está utilizada en las salidas se convierte en la Comisión de una operación que irá a los que generan el bloque.

La verificación de transacción[editar]

Con el fin de comprobar si las entradas registradas para las cantidades especificadas en las transacciones de salida anteriores, Bitcoin utiliza el sistema estándar de scripting. scriptSig de input y de scriptPubKey de output, a cuales se refiere la transacción, evaluados utilizando scriptPubKey con la ayuda de los valores en el conjunto de scriptSig.

Input se confirma si el script scriptPubKey devuelve un valor «verdadera» (true). A través del sistema de escritura, el emisor puede crear condiciones muy complejas que deben cumplir las personas que quieren obtener el valor de output. Por ejemplo, es posible crear input que puede recibir cualquier usuario sin autorización. También es posible solicitar que input sea firmado por 10 llaves diferentes, o sea confirmado no por la clave sino por la contraseña.

El formato general de cada input de transacción — Txin[editar]

Campo Descripción Tamaño
Hash de la transacción anterior Doble hash de SHA256 de la transacción anterior 32 bytes
índece de Txout anterior número entero no negativo, indexación da salida a la transacción anterior 4 bytes
Largo de script de Txin Entero no negativo VI = VarInt 1-9 bytes
Txin-script / scriptSig Script <largo dentro de script>-muchos bytes
sequence_no regularmente 0xFFFFFFFF; sólo funciona sí lock_time de transacción > 0 4 bytes

Sesión de input describe adecuadamente dónde y cómo obtener el número de Bitcoins que su nuevo propietario puede disponer . Si es la única entrada al primer bloque de la transacción, se llama la entrada de transacción de generación y sus contenidos están completamente ignorados.

El formato general de cada output de transacción — Txout[editar]

Campo Descripción Tamaño
value Entero no negativo, que da la suma de satoshis (1 BTC = 10^8 satoshis) necesaria para la transacción 8 bytes
Largo de Txout-script Entero no negativo 1-9 bytes
Txout-script / scriptPubKey Scrypt <largo de script de output> - muchos bytes

Output define las condiciones para el uso de los bitcoins en las siguientes transacciones.

La suma de los valores de output de la primera transacción en el bloque es el valor de los bitcoins extraídos del bloque plus la cantidad de comisión de otras transacciones incluidas en este bloque.

Véase más[editar]

Block chain

Bitcoin-dirección

Bloque

La comisión

Minería

Las vulnerabilidades de Bitcoin

Enlaces[editar]