Bitcoin Forum
May 08, 2024, 03:51:33 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Manipulación de las transacciones de bitcoin.  (Read 176 times)
seoincorporation (OP)
Legendary
*
Online Online

Activity: 3150
Merit: 2931


Top Crypto Casino


View Profile
July 27, 2019, 06:30:36 PM
Merited by DdmrDdmr (2), d5000 (1), paxmao (1), bbvedf (1)
 #1

La mayoría de las transacciones se efectúan de la manera simple, abrimos nuestra cartera, escogemos la dirección destino, escogemos la cantidad a enviar y la cartera se encarga de escoger el fee adecuado para la transacción.

Sin embargo hay mucha gente que no entiende como se efectúa una transacción así que voy a dividir el proceso para ustedes.

Bitcoin core es la cartera que nos permite efectuar una transacción de la forma mas pura, y esto se hace en 3 pasos:

1.- Creamos la transacción
Code:
a=$(./bitcoin-cli createrawtransaction '[{"txid":"d42065fea1331ecc8e05d4f2d07d12b3b56d61a749e1db8cf56ab7b3ab0aedbc","vout":1}]' '{"1QzkZdiuodaAXoB1XJc3YmihQe7v6bAfxJ":0.17960000}')

2.- Firmamos la transacción
Code:
b=$(./bitcoin-cli signrawtransaction $a)

3.- Enviamos la transacción
Code:
./bitcoin-cli sendrawtransaction $(echo $b | cut -d " " -f4 | sed 's/,//g' | sed 's/"//g')

En el paso 1 tenemos que escoger los inputs y outputs, para los inputs colocamos el TxId y el vout (Es como cuando tomamos nuestra cartera real y escogemos con que billetes vamos a pagar), y para el output escogemos la cantidad destino. Pero esta parte tiene truco por que si se dan cuenta no especificamos los fees y esto es debido a que el cambio se utiliza de fees, Asi que si nosotros escogemos un input que contiene 0.18 btc y enviamos 0.1796, entonces 0.0004 btc serán gastados como fees.

Y algunos se estarán preguntando:

1.- ¿Como obtengo la lista de inputs?
Para esto usamos el comando 'listunspent'

2.-¿Que pasa si mi input es 1 btc y solo quiero gastar 0.1?
En este caso especificas 2 outputs, el primero es con la dirección a la que quieres hacer el pago con la cantidad de 0.1 y el segundo es una dirección que este bajo tu control con la cantidad de el cambio menos el fee.

3.-¿Por que es esto importante?
Porque una mala manipulación de inputs se resume en elevados costos de fees, ya que lo que hace que las transacciones sean pesadas son los inputs y no los outputs. Así que varios inputs se resume en una transacción pesada con elevados fee.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
1715183493
Hero Member
*
Offline Offline

Posts: 1715183493

View Profile Personal Message (Offline)

Ignore
1715183493
Reply with quote  #2

1715183493
Report to moderator
1715183493
Hero Member
*
Offline Offline

Posts: 1715183493

View Profile Personal Message (Offline)

Ignore
1715183493
Reply with quote  #2

1715183493
Report to moderator
"I'm sure that in 20 years there will either be very large transaction volume or no volume." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715183493
Hero Member
*
Offline Offline

Posts: 1715183493

View Profile Personal Message (Offline)

Ignore
1715183493
Reply with quote  #2

1715183493
Report to moderator
1715183493
Hero Member
*
Offline Offline

Posts: 1715183493

View Profile Personal Message (Offline)

Ignore
1715183493
Reply with quote  #2

1715183493
Report to moderator
1715183493
Hero Member
*
Offline Offline

Posts: 1715183493

View Profile Personal Message (Offline)

Ignore
1715183493
Reply with quote  #2

1715183493
Report to moderator
bbvedf
Member
**
Offline Offline

Activity: 588
Merit: 61


View Profile WWW
July 28, 2019, 07:24:43 AM
 #2

...

Muy ilustrativo. Felicidades amigo Grin

                                                 BetFury                                                
🐥Twitter | 📩 Telegram | 🎲 You play - We pay 🎲 |YouTube 🍿|Reddit 🕹 
                                                Free BTC 1 800 Satoshi every day                                               
DdmrDdmr
Legendary
*
Offline Offline

Activity: 2310
Merit: 10759


There are lies, damned lies and statistics. MTwain


View Profile WWW
July 28, 2019, 03:55:43 PM
 #3

Lo explicado por @seoincorporation es de esas cosas que son comprensibles para el ducho en la materia, pero mirado bajo el punto de vista del gran consumo (o gran uso en este caso), resulta de difícil asimilación.

Si intentamos explicar lo citado en el OP a un neófito en BTC, pero conocedor de los costes de las TXs bancarias convencionales, verá que el esquema de costes es netamente distinto, e incluso potencialmente ventajoso a favor de BTC en términos de fees. No obstante, asimilar que el envió de un importe determinado va a variar en base a unos parámetros (tamaño de la TX, que a su vez de correlaciona con el número de inputs, fee , etc.) que no tienen que ver con el importe BTC enviado no es trivial. Explicarles que pueden intentar consolidar inputs cuando es coste minero de las TXs BTC esté bajo, a fin de ahorrar ante un eventual envío posterior a un tercero suena demasiado técnico y complejo.

Este factor, el de la comprensión y asimilación de la confección de los costes de una TX, junto con la posibilidad de esperar días (o peor) según el TX fee que propongamos en la TX, complica la extensión del uso del BTC más de lo que podríamos pensar. Hay más factores relacionados claro está (la no reversibilidad, la posibilidad de errar en la TX sin colchón, etc.), cuyo cúmulo hace que BTC sea más complicado de lo deseable para una gran masa de gente.


Como para explicar que:
<...>
El tamaño aproximado de la TX (puede variar dependiente de diversos elementos técnicos) sería: (180 bytes * Nº Inputs) + (34 bytes * Nº Outputs) + 10 bytes
En la fórmula se observa el peso que tienen el número de inputs en el tamaño. También dependerá de si tu dirección es SegWit (más económico) o Non-Segwit.
<...>
seoincorporation (OP)
Legendary
*
Online Online

Activity: 3150
Merit: 2931


Top Crypto Casino


View Profile
July 28, 2019, 10:17:40 PM
 #4

Otro tema interesante con respecto a los inputs son las conocidas como 'Dust transactions' y esto se refiere a inputs muy pequeños, cosa de satoshis, y hay muchas veces que es importante ignorar estos inputs ya que aveces es mas caro incluirlos en las transacciones que ignorarlos.

Por lo que entiendo blockchain wallet ya no nos permite gastar inputs pequeños por la misma razón, pero empresas grandes como casinos o exchanges se ven orillados a idear formas de recuperar btc a través de cientos de dust inputs.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
d5000
Legendary
*
Offline Offline

Activity: 3906
Merit: 6216


Decentralization Maximalist


View Profile
August 02, 2019, 10:26:15 PM
 #5

Gracias, este método todavía no lo conocía y es interesante para fácilmente armar transacciones semi-automatizadas. He manipulado transacciones a través de scripts pero con un método mucho más complicado (y con código BTC pre-segwit).

Otro tema interesante con respecto a los inputs son las conocidas como 'Dust transactions' y esto se refiere a inputs muy pequeños, cosa de satoshis, y hay muchas veces que es importante ignorar estos inputs ya que aveces es mas caro incluirlos en las transacciones que ignorarlos.
Si uno tiene muchos "dust inputs", lo mejor es aprovechar días en los que la cadena no está llena y "consolidarlos" mandándolos todo a una dirección. Es justo un buen ejemplo para usar tu método: Seleccionas todos los inputs menores a cierto número (para esto necesitarías algun script o una secuencia de ordenes que los filtre) y luego armás la transacción mandándolos todos a una sola dirección con una comisión de 1 sat/byte. De manera alternativa, para no gastar la comisión, se pueden usar siempre cuando la transacción no sea urgente.

Edit: Pensándolo bien, creo que es mejor realizar el filtrado de los dust inputs con Python, ya que es mucho más fácil procesar el formato JSON de la salida de bitcoin-cli.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
seoincorporation (OP)
Legendary
*
Online Online

Activity: 3150
Merit: 2931


Top Crypto Casino


View Profile
August 03, 2019, 03:53:01 PM
 #6

...(para esto necesitarías algun script o una secuencia de ordenes que los filtre)...

Edit: Pensándolo bien, creo que es mejor realizar el filtrado de los dust inputs con Python, ya que es mucho más fácil procesar el formato JSON de la salida de bitcoin-cli.

Acomodar los inputs no es algo complejo, si no me equivoco el mismo comando 'listunspent' nos da la opción de ordenarlos por tamaño. Pero como mencionas, algún otro lenguaje de programación nos ayuda a crear la transacción de una forma automatizada.

Dejo aquí un script de python creado para tratar con los dust inputs: https://github.com/petertodd/dust-b-gone

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!