La verificación de Bitcoin propiedad

Supongamos que Alicia tiene 30 bitcoins de David. Ahora Alice quiere transferir la cantidad de 20 bitcoins a Bob.

Ahora, Alice crea una transacción con Bob dirección bitcoin.
Para demostrar la autenticidad y la integridad, Alice digitalmente señales de la transacción actual.
Para demostrar que Alice posee el dinero, la transacción actual incluye el hash de David de la transacción, que puede ser verificado por el destinatario y de otros nodos en la red.


Según mi entendimiento, las transacciones son recogidos en los bloques que están enlazados para formar un bloque de la cadena. Cada nodo de la red almacena el bloque de la cadena. Para comprobar si Alice posee el dinero, uno tiene que verificar la dirección bitcoin de Alicia en el David de la transacción. Ahora David de la transacción puede ser muy antiguo, en los mayores bloques. Cómo esta comprobación se realiza? Es el hash de David de la transacción para Alicia, la propiedad marcada en cada bloque en el bloque de la cadena?

Es la propiedad verificada por ir de bloque a bloque?

También, ¿qué impide que Alice utilización de David de la transacción y otra vez?

+928
Janet Alexander 21 may. 2019 1:05:11
18 respuestas

La billetera.dat es un archivo de base de datos Berkeley DB. Usted puede analizar mediante el comando siguiente: (necesita instalar Berkeley DB en su entorno unix primero)

db_dump cartera.dat

Me registré para Bitcoin y Litecoin y en ambos casos la cartera.dat se utiliza la misma versión de la base de datos Berkeley DB.

VERSIÓN=3
formato=bytevalue
base de datos=principal
tipo=btree
db_pagesize=4096
HEADER=FINAL

No he de intentar pywallet.py pero supongo que se debe trabajar para todos estos Bitcoin derivados de altcoins.

+902
nika net 03 февр. '09 в 4:24

Dada la trayectoria del relámpago Alice → Bob → Carol → Dave → Emilee (con Alice, siendo el remitente y Emilee ser el receptor), asume Dave y Bob a ser la misma entidad.

Tirando de fondos de Dave a sí misma, Emilee revela el secreto R a Dave. Bob sabe R, también, porque Bob y Dave son la misma entidad, y tira de fondos de Alice.

Bob, a continuación, las emisiones de los canales del estado entre él y Carol a la blockchain. Dave posteriormente tira de fondos de Carol.

En este procedimiento, Carol no se les pagó. Cómo es esto impidió?

+901
Esther Swizzy 24 abr. 2013 11:21:13

Estaba detalles de 61016 cuentas de usuario como un archivo CSV con los campos id de usuario,nombre de Usuario,Email,Contraseña. Las contraseñas son como hash, y la mayoría de ellos salados demasiado, pero algunos (los más antiguos) son simples hashes md5.

He intentado buscar en google por ella y no tuvo éxito.

Yo tengo una copia, y puede hacer que esté disponible para descargar, pero no sé si eso sería legal. Supongo que no.

+870
user15572 10 abr. 2013 2:56:38

¿Alguien puede explicar cuando se hace un script ejecutado exactamente? Hay varias informaciones acerca de "cómo se ejecutan los scripts", pero no hay información acerca de "cuando".

+799
Natalie Jackson 13 may. 2013 3:03:38

Este problema surgió durante un chat en esta respuesta a una pregunta formulada por un nuevo usuario de Bitcoin.

Digamos que soy nuevo en Bitcoin y no quiere pasar por la molestia de cambiar dinero por monedas bastante todavía. No tengo mucho de habilidades comerciales, así que no puedo ofrecer mis servicios. Entonces, ¿cómo puedo ganar Bitcoins con un mínimo de requisitos en materia de calificaciones, sin ningún tipo de compromiso a largo plazo o inversiones de cualquier tipo?

+685
ABISHEK A 1 ago. 2017 21:58:25

Este trabajo demuestra rigurosamente que Bitcoin puede lograr un consenso bajo el supuesto de que delimitadas mensaje de tiempo de entrega:

Mensajes en un buzón de correo puede ser entregado en cualquier orden, y en en cualquier momento, excepto que hay un retraso máximo de ∆

Si he entendido bien, esto sólo demuestra que se trabaja en red síncrona. Si es así, esta hipótesis parece relajado para mí.

Tendermint papel de las reclamaciones que puedan trabajar en el parcial sincrónico de la asunción (a partir de LISTAS de distribución de papel):

Se presume la existencia de algún desconocido límite superior ∆ en el momento de la la entrega de los mensajes.

La instalación es más general en que el límite superior ∆ aquí es desconocido.

Puede Bitcoin protocolo de lograr un consenso parcial en la red síncrona así? ¿Hay alguna teoría de trabajo dedicado a probar que?

+665
moysha 18 jul. 2011 20:20:58

Se debe obtener recogido con el tiempo, pero en sí, el usuario podría doble pasar antes de que.

Eso es exactamente lo que las confirmaciones se para. Pero es muy poco probable que te gustaría ver enormes cantidades de "piratería" debido a esto. Acababa de escribir eso como un costo de hacer negocios. Si lo hace salir de la mano, usted puede ir de nuevo a la espera de confirmaciones o aceptar "verde direcciones".

También hay que tener en cuenta que si los usuarios no son anónimos hacia usted (es decir, que mantienen algún tipo de relación con usted, aunque sólo sea de un registro de usuario), usted tiene el recurso (usted puede negarse a continuar ofreciéndoles acceso hasta que las puntuaciones están asentados).

Se trata de un trade-off entre basarse en la confianza (que paga el usuario) frente a la espera de la cantidad de tiempo que se necesita para las confirmaciones.

+636
oooooo 15 ene. 2011 23:42:48

Idealmente, no debe ser el almacenamiento de la cartera de recibir la minería de pagos en el mismo servidor que aloja su piscina de software.

En general, cuando se trata de seguridad, desea minimizar la superficie de ataque. Cualquier software adicional que correr aumenta la superficie de ataque, ya que ninguna de las vulnerabilidades en la no-demonio de software podría permitir que alguien exfiltrate la cartera o el pasar de los comandos de la cartera.

Una vez que usted tiene la cartera en un aparte, aislado del servidor, se deben seguir las mejores prácticas comunes tales como no tener un público interfaz RPC, IP listas blancas para conexiones entrantes, cambiar todas las contraseñas por defecto, desactivar la contraseña de raíz y de inicio de sesión ssh, tener una contraseña segura en la cartera de sí mismo.

+605
Linas Rinkevicius 30 ago. 2010 3:05:17

El uso de Bitcoin Core en el modo de servidor y utilizar las funciones de notificación:

servidor=1
blocknotify = curl\tu url
walletnotify = curl\tu url

Conjunto de ellos para hacer una llamada a su aplicación.

De esta manera, usted no va a hacer costosas llamadas RPC Bitcoin Core. Usted sólo será de recibir notificaciones de las operaciones que Bitcoin Core de por sí ya está haciendo. Así que no traerá ninguna carga adicional a Bitcoin Core. Estará limitado por su propia escalabilidad.

cómo "grandes jugadores" como Cryptsy recibir los pagos?

La mayoría de los grandes jugadores están confiando en Bitcoin Core escalabilidad que se ejecutan en el modo de servidor, sin llevar carga extra a ella como lo que yo sé.

Pero he oído que es posible cambiar el id de transacción en bloque la cadena, por lo que es una solución segura?

No después de que haya recibido una confirmación. Así que el método que se describe funciona si usted espera para el blocknotify llame para una TX antes de actualizar su balance de los usuarios.

+574
Muthu Ganesh 12 jul. 2014 3:44:10

Estoy tratando de entender qué valores me pide en la configuración.json para instalar el bloque explorer para Iquidus. Sé cómo conseguir la génesis de bloque como he codificado cuando hice un tenedor para crear un nuevo altcoin, sin embargo, estoy seguro de cómo obtener la genesis_tx. Sé que puede convertir, a partir de la génesis de bloque, pero estoy seguro de cómo?

"génesis": { "genesis_tx": "", "genesis_block": ""}

En términos de la API de configuración, que están pidiendo una dirección, blockindex, blockhash, y txhash. El blockindex puede ser cualquier valor dentro de su bloque de altura... así que puedo elegir cualquier valor para el índice con la dirección correspondiente en la lista de transacciones? También, ¿cómo puedo obtener el txhash y la blockhash? Estos valores, a mi entender, están sujetos a cambio y sé que están almacenados en el blockchain... ¿alguien sabe cómo puedo recuperar esta información?

"api": { "blockindex": "", "blockhash": "", "txhash": "", "address": "" },

Les agradezco por su tiempo y consideración.

+550
Okky 30 may. 2012 1:52:09

SPV los clientes deben descargar el blockchain encabezados, por lo que sabe que está siguiendo el blockchain con la mayoría de los trabajos. Cada encabezado es de 80 bytes, y con 474994 bloques (como el de escribir este post), el tamaño de blockchain todos los encabezados de 37999520 bytes que es de ~38 MB.

+366
ArwaSh 2 sept. 2014 0:17:05

En el protocolo Bitcoin, para establecer el resultado de una transacción que usted necesita un scriptPubKey que está en el siguiente formato.

scriptPubKey = OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

Es <pubKeyHash> la dirección del receptor de bitcoin o es el hash de la dirección del receptor?

+354
Troy GoodLife 22 nov. 2012 13:34:58

Yo soy la construcción de analytics a partir de blockchain datos en bruto (blk**.archivos dat).

He leído en la wiki de bitcoin que una vez las entradas han sido elegidos para una transacción, deben ser utilizados: para que un cambio se genera al remitente original (a través de la misma dirección o en otra cambiar , dependiendo de la configuración del cliente).

Mientras que la construcción de analytics, me gustaría excluir estas salidas de cualquier tipo de métrica, ya que deja la moneda en el trabajo, pero no representan ningún tipo de inteligencia.

Es allí una manera de mirar los resultados de una transacción y dividirlos en significativa enviado cantidades y cambiar?

+335
Matthew Freeman 3 ene. 2010 0:50:49

Respuesta corta

Tus preguntas, en fin: Sí. Sí. No.

Respuesta larga

Cuando el gasto de la salida de una transacción, esto no es suficiente para conocer el txid. Usted también necesita saber el índice de la salida. (En otras palabras, si es la primera, segunda, tercera, etc. en la producción).

El hash de la transacción que se está gastando y el índice de la salida que estamos gastando se conocen colectivamente como un punto fuera.

Citando a la wiki de Bitcoin:

El punto fuera de la estructura consta de los siguientes campos:

  • Tamaño Del Campo: 32
    Descripción: hash
    Tipo de datos: char[32]
    El hash de la referencia de la transacción.


  • Tamaño del campo: 4 bytes
    Descripción: índice
    Tipo de datos: uint32_t
    El índice de la salida específica en la transacción. La primera salida es de 0, etc.


Véase también el bitcoin.org docs.

+268
Cliff Weitzman 13 mar. 2013 19:00:01

Me gustaría crear una transacción Bitcoin con una sola entrada y una sola 2-de-3 multisig de salida que se paga 1 BTC a 2 de los 3 siguientes claves: 02983a79d2de8e504d00ddd2343b582acef7e17ed91b308ade8dff027a92e7716d, 03548ca1916957bc06dd1c6e3639ebf7b2c3c8b1715915433c1d37cab56fb26ef0, y 0218a240a599ba437cb1458966eb456d9f848e5bdef45ea0ee4ec31fc40aa4ffa8.

Yo sólo quiero una sintácticamente válida la transacción, la referencia a la UTXO no tiene que existir.

Podría usted por favor me guía a través de los pasos?

+262
npo100napeHb 14 dic. 2015 23:15:46

simplemente no puedo entender si bitcoin.org desarrollador de referencia es obsoleto o no. por ejemplo, aquí (https://bitcoin.org/en/developer-reference#raw-transaction-format) podemos ver: "Como de Bitcoin Core 0.9.3 (octubre de 2014), todas las transacciones en el uso de la versión 1 formato que se describe a continuación. (Nota: las transacciones en el bloque de la cadena se permite a la lista un número de versión superior para permitir suave horquillas, pero son tratados como de la versión 1 de transacciones mediante software actual)." es correcto o es una vieja realidad? o aquí (https://bitcoin.org/en/developer-reference#serialized-blockspodemos leer en el primer 2 de la línea que los bloques deben ser serializado en virtud de 1MB de tamaño o menos, pero sé que en la versión actual de los bloques puede ser de hasta 2 mb por lo que no puedo entender cual es la respuesta correcta. Gracias por la ayuda

+240
Groncal 13 may. 2012 23:06:23

De acuerdo a los estados de la propuesta de implementación de los BIPs en Bitcoin Core #62 se encuentra en estado de Borrador. Esto significa que ninguno de los siete propuesta de "correcciones" se han implementado aún.

Fuente: https://github.com/bitcoin/bips

+95
windowspersonforcedonmac 14 jun. 2019 15:07:40

Yo no conozco el lenguaje python, pero el algorihtm para blockchain de análisis es muy simple. Tomar algunas pseudocódigo:

for ( i = 0; ; i++ )
{
 openBlkFile ( i );
 mientras ( readBlock ( bloque ) )
 parseBlockForTransactions ( bloque );
}

Por supuesto, usted necesita tener sincronizado nodo.

+86
RaMin0 17 jul. 2018 7:55:03

Mostrar preguntas con etiqueta