Author

Topic: Dudas puntuales en la arquitectura de bitcoin (Read 267 times)

full member
Activity: 398
Merit: 107
LONG BITCOIN, SHORT BANKS, DUMP FIAT FOR BITCOIN
September 02, 2018, 01:09:43 PM
#8
Bitcoin por su naturaleza escasa por tener un maximo de 21 millones de monedas hace que su poder adquisitivo sea en teoria cada vez mayor. Contrario a las monedas fiat que entre mas se imprime su poder adquisitivo cae todos los años, Conclusión, Bitcoin es la pildora salvadora a muchos de los problemas economicos que hay en el mundo. Es totalmente lo contrario a el sistema exclavizante y manipulado que tenemos en esta epoca
legendary
Activity: 1623
Merit: 1608
Quisiera partir del primer bloque que mencionas... imagino ese momento donde satoshi puso una maquinita a minar, y encontró el nounce que hacia válido el hash del bloque... la pregunta es: el coinbase queda registrado en ese primer bloque?, si es asi, al registrar esa transacción en el primer bloque, eso no cambia el hash que ya se había encontrado? me pregunto eso porque al validar en el explorador el hash del primer bloque, se puede evidenciar el primer coinbase.  
Los mineros añaden todas las transacciones que quieren confirmar en ese bloque, incluyendo el coinbase, y a partir de ahí se ponen a trabajar para encontrar el nonce correcto para que el hash del bloque tenga un valor inferior al del objetivo de dificultad.


Quote from: januco
Por otra parte, lo que estoy entendiendo es que constantemente se están registrando transacciones en el bloque actual sin sobrepasar el 1MB que tiene de tamaño el bloque, y estas son confirmadas cada que se encuentren los siguientes bloques, y cada que pasa el tiempo, cada 10 minutos se están confirmando las transacciones de los bloques de toda la historia. Si estoy en lo correcto, entonces los que confirman las transacciones son los que están encontrando los bloques, entonces quienes se ganan las comisiones de las transacciones? y quienes registran en el bloque la transacción? o eso es automático? porque una cosa es encontrar el nounce, y otra es verificar que el gasto se haya realizado desde el set de UTXO ademas de una firma digital donde se compruebe que todo esta correcto.
Es el minero el que se lleva la suma de la recompensa por generar el bloque (12,5 BTC en estos momentos) más la suma de todas las comisiones de las transacciones incluidas en ese bloque.

La validación va aparte: el resto de los mineros y nodos completos verificarán que todas las transacciones sin excepción incluidas en el bloque (salvo la transacción coinbase, que generará 12,5 BTC nuevos) consumen de los UTXO. Si la verificación es correcta, añaden ese bloque a la cadena.
newbie
Activity: 21
Merit: 1
Por otra parte, no he encontrado la opción para enmarcar en un cajón algún comentario anterior para dar respuesta, disculpas por el anterior post que se nota un poco desorganizado.
newbie
Activity: 21
Merit: 1
Simplificando mucho, los mineros y también los nodos completos hacen los siguiente para verificar si las transacciones de un nuevo bloque son válidas:
1. Parten del bloque génesis, el primer bloque de Bitcoin, cuyo hash es perfectamente conocido por todo el mundo: 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
2. A partir de aquí, solicitan los bloques que apuntan al hash anterior, y así sucesivamente hasta conseguir la cadena con mayor trabajo acumulado.
3. Cada nuevo bloque encontrado incluye una transacción, llamada de coinbase, que añaden al set UTXO (Unspent Transaction Output, Salida de Transacción No Gastada). El gasto de un UTXO genera nuevos UTXO asociados a las direcciones de destino de la transacción. Los UTXO podrán gastarse de nuevo en el futuro por quien sea capaz de desbloquear su script de bloqueo. En general, se requiere un firma digital asociada a una clave privada para conseguir ese desbloqueo.
4. Cuando se llega a lo más alto de la cadena de bloques, los mineros y también los nodos completos habrán obtenido el set UTXO completo. A partir de ese momento, solo aceptarán transacciones incluidas en bloques que consuman de ese set UTXO, además de la única transacción de coinbase de cada nuevo bloque. Si existe alguna transacción incluida en un bloque que no cumple con el requisito anterior, ese nuevo bloque sería desechado.

Para poder comprender los 4 puntos que acabas de mencionar, primero quisiera aclarar otras cosas y poder entender luego esto, por lo que hablarè en un lenguaje muy plastilina para poderlo asimilar:
Quisiera partir del primer bloque que mencionas... imagino ese momento donde satoshi puso una maquinita a minar, y encontró el nounce que hacia válido el hash del bloque... la pregunta es: el coinbase queda registrado en ese primer bloque?, si es asi, al registrar esa transacción en el primer bloque, eso no cambia el hash que ya se había encontrado? me pregunto eso porque al validar en el explorador el hash del primer bloque, se puede evidenciar el primer coinbase. 
Por otra parte, lo que estoy entendiendo es que constantemente se están registrando transacciones en el bloque actual sin sobrepasar el 1MB que tiene de tamaño el bloque, y estas son confirmadas cada que se encuentren los siguientes bloques, y cada que pasa el tiempo, cada 10 minutos se están confirmando las transacciones de los bloques de toda la historia. Si estoy en lo correcto, entonces los que confirman las transacciones son los que están encontrando los bloques, entonces quienes se ganan las comisiones de las transacciones? y quienes registran en el bloque la transacción? o eso es automático? porque una cosa es encontrar el nounce, y otra es verificar que el gasto se haya realizado desde el set de UTXO ademas de una firma digital donde se compruebe que todo esta correcto.
legendary
Activity: 1623
Merit: 1608
Muchas gracias por responder, aunque continuo con las mismas dudas.  En el punto 1 la duda es sobre el proceso de verificación, es algo que quisiera aclarar como lo hacen.

Simplificando mucho, los mineros y también los nodos completos hacen los siguiente para verificar si las transacciones de un nuevo bloque son válidas:
1. Parten del bloque génesis, el primer bloque de Bitcoin, cuyo hash es perfectamente conocido por todo el mundo: 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
2. A partir de aquí, solicitan los bloques que apuntan al hash anterior, y así sucesivamente hasta conseguir la cadena con mayor trabajo acumulado.
3. Cada nuevo bloque encontrado incluye una transacción, llamada de coinbase, que añaden al set UTXO (Unspent Transaction Output, Salida de Transacción No Gastada). El gasto de un UTXO genera nuevos UTXO asociados a las direcciones de destino de la transacción. Los UTXO podrán gastarse de nuevo en el futuro por quien sea capaz de desbloquear su script de bloqueo. En general, se requiere un firma digital asociada a una clave privada para conseguir ese desbloqueo.
4. Cuando se llega a lo más alto de la cadena de bloques, los mineros y también los nodos completos habrán obtenido el set UTXO completo. A partir de ese momento, solo aceptarán transacciones incluidas en bloques que consuman de ese set UTXO, además de la única transacción de coinbase de cada nuevo bloque. Si existe alguna transacción incluida en un bloque que no cumple con el requisito anterior, ese nuevo bloque sería desechado.

Quote from: januco
Sobre el punto 2 creo que no es del todo como dices y por eso es mi inquietud.   La dirección que das a alguien para que te transfiera no es la cave publica como tal, sino una dirección que se deriva de la clave publica. Es decir, a la clave publica pasa por unos procesos matemáticos y es transformada a una direccion con menos bytes, y con el prefijo que indica que tipo de cartera es....   Sabiendo esto, la pregunta es porque no sacan la direccion directo de la clave privada, no le veo el uso a la clave publica.

Bitcoin utiliza criptografía ECDSA. A partir de una clave privada se obtiene la clave pública. No es posible obtener la clave privada si solo tienes la clave pública. La dirección es un hash de la clave pública: así se reduce el espacio en la cadena de bloques, puedes añadir checksums de integridad y limitas las repercusiones de posibles futuros ataques con criptografía cuántica, por ejemplo, mediante el algoritmo de Shor.
newbie
Activity: 21
Merit: 1
Hola Zarg0n,

Muchas gracias por responder, aunque continuo con las mismas dudas.  En el punto 1 la duda es sobre el proceso de verificación, es algo que quisiera aclarar como lo hacen.

Sobre el punto 2 creo que no es del todo como dices y por eso es mi inquietud.   La dirección que das a alguien para que te transfiera no es la cave publica como tal, sino una dirección que se deriva de la clave publica. Es decir, a la clave publica pasa por unos procesos matemáticos y es transformada a una direccion con menos bytes, y con el prefijo que indica que tipo de cartera es....   Sabiendo esto, la pregunta es porque no sacan la direccion directo de la clave privada, no le veo el uso a la clave publica.
full member
Activity: 448
Merit: 170
Buenas noches,

Agradezco me ayuden a resolver las siguientes inquietudes que no me dejan dormir.   Siendo tantas las preguntas empezaré con algunas y continuaré luego de ir resolviendo:

1) Sobre las confirmaciones de las transacciones: Entiendo que los  mineros deben validar que el input de la transacción aun no se ha gastado. Y por otra parte, validar que la transacción si sea autorizada por la clave privada, imagino que se realiza mediante una firma. Esta afirmación es correcta?    En caso de ser correcto, validar una transacción es lo mismo que validar un mensaje?

2) Me genera confusión la terminología de mucha gente de la comunidad que habla sobre la llave pública como si fuera la dirección donde reciben los bitcoin.  Lo que tengo entendido es que la dirección se obtiene luego de un proceso matemático que se deriva de la llave pública,  y esta a su vez se deriva de la llave privada. Mucha gente dice que la llave publica es donde recibes los btc, pero según lo dicho anteriormente, no es correcto.    Por otra parte, para qué sirve la llave pública?  porque no sacar la dirección directamente de la llave privada?

Sobre el punto 1 , al hacer una transaccion los fondos son descontados de tu cuenta y inmediatamente aparece la transaccion en la blockchain pero sin confirmaciones, ahi luego de unos mintos cuando los mineros validan la transaccion la operacion se completa. No estoy muy seguro como es el proceso de validacion en la parte técnica , pero para la verificacion los datos los da tu wallet sin entregar la clave privada.


Sobre el punto 2 , comparandolo con una cuenta bancaria tu clave publica de bitcoin seria como el numero de cuenta bancaria , es el dato que le pasas a otra persona para que te transfiera dinero y no hay peligro de que otra persona lo conozca ( por eso se llama publica ) , la clave privada es lo que te da acceso a tus fondos, seria en el banco tu numero de pin , y si bien estan matematicamente ligadas la clave publica y la privada son 2 cosas muy diferentes. Teniendo la clave publica y privada de una cuenta de bitcoins tenes acceso completo a sus fondos.
newbie
Activity: 21
Merit: 1
Buenas noches,

Agradezco me ayuden a resolver las siguientes inquietudes que no me dejan dormir.   Siendo tantas las preguntas empezaré con algunas y continuaré luego de ir resolviendo:

1) Sobre las confirmaciones de las transacciones: Entiendo que los  mineros deben validar que el input de la transacción aun no se ha gastado. Y por otra parte, validar que la transacción si sea autorizada por la clave privada, imagino que se realiza mediante una firma. Esta afirmación es correcta?    En caso de ser correcto, validar una transacción es lo mismo que validar un mensaje?

2) Me genera confusión la terminología de mucha gente de la comunidad que habla sobre la llave pública como si fuera la dirección donde reciben los bitcoin.  Lo que tengo entendido es que la dirección se obtiene luego de un proceso matemático que se deriva de la llave pública,  y esta a su vez se deriva de la llave privada. Mucha gente dice que la llave publica es donde recibes los btc, pero según lo dicho anteriormente, no es correcto.    Por otra parte, para qué sirve la llave pública?  porque no sacar la dirección directamente de la llave privada?
Jump to: