Donde puedo encontrar el código que me permite calcular Z1 y Z2 de una firma ECDSA?

Siguiendo la Recuperación de Bitcoin claves privadas mediante débil que las firmas de la blockchain, yo soy capaz de hacer otros cálculos, pero no tengo idea de cómo calcular el Z1 o Z2. Había un código pública disponible por Sean Bradley:

http://2coin.org/tx.asmx?op=GetTXExtended

Pero no parece funcionar ahora. ¿Hay algún otro código pública para calcular Z1 y Z2 en cualquier idioma. Puedo convertir a la lengua de mi preferencia. Cualquier ayuda es muy apreciada.

+332
kolyambiza 14 jul. 2017 13:30:18
17 respuestas

El P2SH, como se define en el BIP 16, los estados que

El propósito de pagar-a-script-hash es mover la responsabilidad de el suministro de las condiciones para canjear una transacción desde el remitente de los fondos para el redentor.

El beneficio es que permite un remitente a fondo cualquier transacción, no importa cuán complicado, usando un de longitud fija de 20 bytes hash, que es lo suficientemente corto como para escaneo de un código QR o fácilmente copiado y pegado.

De ahí que permite a cualquier cliente de la aplicación a fondo de una transacción con un guión arbitrario, sin que el cliente necesariamente tener que entenderlo. Se puede ver, hay algunos bastante complicado posibilidades para las transacciones con el estado de su reclamando condiciones, que pueden poner con diferentes implementaciones de los clientes en virtud de un dilema: cada vez que un nuevo tipo de script de las superficies con las que tendría que implementar para que el cliente puede enviar las transacciones que hacen uso de ellos.

P2SH tiene la ventaja de que el cliente no necesariamente tiene que saber cómo construir una secuencia de comandos, sólo tiene que saber cómo (dado un guión arbitrario, o, de hecho, su hash) la construcción de un script que comprueba primero la secuencia de comandos y, a continuación, utiliza esa secuencia de comandos para comprobar la reclamación en sí funciona.

De repente, si me ofrecen con un hash de un alegando la condición (secuencia de comandos) me puedes enviar bitcoins sin tener que saber qué mecanismos de seguridad que he puesto en el lugar para asegurar que sólo me puede pasar a ellos.

Como un bono adicional que realmente mantiene a las direcciones pequeño (25 byte de la secuencia de comandos) que puede ser mostrada en un código QR, o incluso puede ser escrito a mano.

La razón por la transacción 4005d6be se incluye en tantos bloques todos los bloques son huérfanos, para los mineros, que incluyó ellos apoyaron una versión de P2SH pero nunca obtuvo una mayoría. El hecho de que esta transacción aún está por confirmar es probablemente debido a que al no ser una verdadera P2SH secuencia de comandos.

+902
Yoav Henig 03 февр. '09 в 4:24

El bloque de archivos en el mismo formato que el archivo de bootstrap. Su formato es muy simple: sólo tienes que concatenar todos los bloques después de que se inician por el número de red (para evitar la mezcla de la testnets) y la longitud del bloque.

[número de red] [longitud] [encabezado de bloque] [bloque de transacciones]
[número de red] [longitud] [encabezado de bloque] [bloque de transacciones]
[número de red] [longitud] [encabezado de bloque] [bloque de transacciones]
... repita el procedimiento para todos los bloques

Para crear un archivo de bootstrap, todo lo que necesitas hacer es simplemente tomar los datos de blk00001.dat hasta su último bloque del archivo (de aquí que la blk000054.dat) y poner todo en el arranque.dat archivo, preferiblemente organizadas de tal manera que se puede importar todos ellos de una sola vez sin tener que intercambiar los bloques.

Yo creo que incluso podría ser capaz de concatenar los archivos de bloque de sí mismos, porque ellos ya están en el formato correcto, y el formato es compatible con la concatenación.

+901
Dong Ngoc Quang 13 jul. 2018 1:27:37

Toda mi saldo en MultiBit HD aparece como "sin confirmar". MultiBit HD no me permite enviar a otra dirección, por lo que son "atascado". Cuando hago clic en las transacciones individuales en "Pagos", la ventana pop-up que dice "se Desconoce el estado de transacción". Estas transacciones tienen más de un año de edad, y parecen existir y ser completamente válido en blockchain.info (véase, por ejemplo, esta transacción.

Ya he probado la "Reparación de la cartera" opción, pero no tiene ningún efecto. También he intentado usar aceleradores como se describe en esta cuestión , pero también sin efecto. Asimismo, esta pregunta no es útil, ya que se trata de la generel velocidad de confirmaciones - mi problema está relacionado con MultiBit HD, donde mi equilibrio no está confirmado aunque las operaciones necesarias se confirmó en blockchain.info.

¿Cómo puedo obtener mis bitcoins en la espalda?

+894
saleem belto 1 jun. 2019 6:56:58

Suponiendo que todos los Bitcoins que se había descubierto y honorarios fueron pagados en dólares (por favor, ignorar los problemas obvios), lo que sería una adecuada tasa? Sería dependerá del tamaño de la transacción? ¿Cómo es la escala?

+837
stevebouha 23 may. 2018 20:38:46

He usado Base58 de codificación/decodificación de muchas veces. Por el contrario, odiaba el uso de un BIGNUM de la biblioteca. Así que usé de Base-x's base del algoritmo de conversión. (Asegúrese de respetar la licencia MIT) debe ser fácil de traducir a cualquier idioma.

const char * const ALFABETO =
"123456789ABCDEFGHJKLMNPQRSTUVWXYzabcdefghijkmnopqrstuvwxyz";
const char ALPHABET_MAP[128] = {
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, -1,
 -1, 9, 10, 11, 12, 13, 14, 15, 16, -1, 17, 18, 19, 20, 21, -1,
 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
 -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, 44, 45, 46,
 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, -1
};

// resultado debe ser declarada: char resultado[len * 137 / 100];
int EncodeBase58(const unsigned char *bytes, int len, unsigned char resultado[]) {
 unsigned char dígitos[len * 137 / 100];
 int digitslen = 1;
 for (int i = 0; i < len; i++) {
 unsigned int llevar a = (unsigned int) bytes[i];
 for (int j = 0; j < digitslen; j++) {
 llevar += (unsigned int) (dígitos[j]) << 8;
 dígitos[j] = (unsigned char) (llevar a % 58);
 llevar /= 58;
}
 mientras que (llevar > 0) {
 dígitos[digitslen++] = (unsigned char) (llevar a % 58);
 llevar /= 58;
}
}
 int resultlen = 0;
 // cero bytes
 for (; resultlen < len && bytes[resultlen] == 0;)
 resultado[resultlen++] = '1';
 // reverso
 for (int i = 0; i < digitslen; i++)
 resultado[resultlen + i] = ALFABETO[dígitos[digitslen - 1 - i]];
 resultado[digitslen + resultlen] = 0;
 volver digitslen + resultlen;
}

// resultado debe ser declarada (para el peor de los casos): char resultado[len * 2];
int DecodeBase58(
 const unsigned char *str, int len, unsigned char *resultado) {
 resultado[0] = 0;
 int resultlen = 1;
 for (int i = 0; i < len; i++) {
 unsigned int llevar a = (unsigned int) ALPHABET_MAP[str[i]];
 for (int j = 0; j < resultlen; j++) {
 llevar += (unsigned int) (resultado[j]) * 58;
 resultado[j] = (unsigned char) (llevar & 0xff);
 llevar >>= 8;
}
 mientras que (llevar > 0) {
 resultado[resultlen++] = (unsigned int) (llevar & 0xff);
 llevar >>= 8;
}
}

 for (int i = 0; i < len && str[i] == '1'; i++)
 resultado[resultlen++] = 0;

 // Mal codificado, pero garantizado para trabajar.
 for (int i = resultlen - 1, z = (resultlen >> 1) + (resultlen & 1);
 i >= z; i--) {
 int k = resultado[i];
 resultado[i] = resultado[resultlen - i - 1];
 resultado[resultlen - i - 1] = k;
}
 volver resultlen;
}
+835
user249792 18 may. 2012 21:45:09

¿Cómo funciona un nuevo usuario se da cuenta de que es la correcta copia de la contabilidad para ser utilizado cuando inicialmente la actualización(descargar) la contabilidad

Se encuentra la mayor trabajo válido blockchain. Esta no es la misma cosa como el más popular de blockchain - si 999 nodos dígale a su nodo que está en una cadena, pero un nodo le dice a usted acerca de una larga cadena, que se prefiere el largo de la cadena.

Si usted no ve el largo de la cadena de al menos una vez, usted no va a cambiar a él. Sin embargo, incluso si usted comienza a la minería en la cadena más corta, va a cambiar a una más de la cadena después de que aparezca.

¿Cómo entender si los dos libros son el mismo?

Comparar el hash del bloque de la cadena de la punta. Si son iguales, ambos nodos idénticos blockchains. Si no son iguales, los nodos tienen diferentes blockchains.

+792
jpgeek 23 abr. 2015 11:10:18

El minero tiene que suministrar la dirección Bitcoin para el bloque de la recompensa. Entonces, cuando el bloque se extrae, el especial de "crédito" de la transacción se almacena de forma permanente en encontrar el bloque, la creación de una determinada cantidad (25 BTC, fue de 50 BTC) a la dirección dada.

Algunas piscinas (Eligius o P2Pool) utilice esta función y crear una gran cantidad de transacciones de crédito, de modo que cuando se encuentra el bloqueo, todos los participantes recibirán su respectiva cuota.

+769
Alex81 10 abr. 2015 6:34:12

Actualmente pude ver 1418 ldb archivos en mi caja, de 210040.ldb para 215423.ldb (faltan algunos).

  • ¿Por qué están separados de esta manera?
  • Quiero leer el leveldb utilizando golang, pero no sé cuál debo usar.
  • Puedo cargar por completo?
+741
v2r 3 jun. 2018 12:02:58

He buscado ya, pero no pude encontrar nada acerca de la estructura de un bitcoin.

Mi entendimiento es que un bitcoin, que es diferente AFAIK de una dirección bitcoin, puede ser interpretado como una cadena de números y caracteres (alfanuméricos). ¿Cuánto tiempo es un bitcoin cadena (min/max)?

He encontrado aquí (https://blockexplorer.com/block/000000000000000002109f32aeac7a036232b0116f939326651e739a28e6d6b6) ahora un tamaño de: 934325 bytes para un determinado bitcoin. Podría esta ser la longitud de la particular bitcoin?

PS: he buscado siempre de longitud y no por el tamaño de la...

+621
Elsarild 27 oct. 2011 5:17:20

Yo era capaz de conseguir mi Nanofury trabajando en Linux (rPi raspbian) y bfgminer 3.10.0 con un par de cambios de permisos. Usted realmente tiene tres opciones:

  1. Ejecutar bfgminer como root (no deseados)
  2. Agregar el usuario que ejecuta el bfgminer a la "raíz" del grupo:

    usermod -G de raíz de un minero

  3. Cambiar el grupo propietario del dispositivo usb (usted tendrá que determinar cuál es su Nanofury dispositivo):

    chgrp dialout /dev/bus/usb/001/006

La opción 1 es la más fácil, la 3 es la más segura. Me fui con la opción 2 como media-baja.

Yo también volvió de cometer 8383e33 (git revert 8383e33) desde el bfgminer repositorio de git, que se deshace de la "reinicializar" advertencia, y me da un mejor hashrate. No sé el efecto a largo plazo de revertir este commit, aunque...

Para iniciar el minero, que yo uso:

/ruta/a/bfgminer -S NFY:TODOS --set-dispositivo NFY:osc6_bits=54

Una vez que tenemos todo configurado, usted puede escribir su configuración (S, W, en bfgminer) y puede colocar la -S NFY:TODOS. Usted todavía necesita el --set-dispositivo, según lo que yo puedo decir, sin embargo.

Espero que esto ayude!

+620
julie1013 14 dic. 2016 16:02:52

http://coinbase.com

Gran para comprar directamente desde la cuenta bancaria, muy barato de tasas, sino que sólo permite a los 100$ que vale la pena/día en este punto creo.

+601
Martin Carames Abente 11 mar. 2012 5:15:32

Parece que Charles Schumer (D-NY) y Joe Manchin (D-WV) del senado de los estados UNIDOS trató de una ley que penalizaba la que en 2011. Supongo que los medios de comunicación y pasó la ley estancado.

También hay países como Venezuela, que tipifican como delito el intercambio de una "moneda extranjera", en virtud de las divisas de la Ley de Delitos. Esencialmente, esto es así porque se puede pretender que bolívares valen más de lo que realmente son.

Ahora, bitcoin es un 'divisa extranjera'?

"En Moneda extranjera: Cualquier tipo de moneda, ya sea en monedas, billetes de banco, cheques bancarios y en cualquier forma, otros que el bolívar, entendido éste como la moneda de curso legal en la República Bolivariana de Venezuela, así como de títulos valores denominados en moneda extranjera o que puedan ser liquidados en moneda extranjera."

Técnicamente, sí.

Fuente

+490
Yan Anisimov 28 abr. 2018 2:13:50

No gire el volante porque hay una curva en la carretera de 10 kilómetros por delante. Si la carretera es clara y se mueve en la dirección correcta, usted conduzca en línea recta. Cuando y si estas amenazas se materialicen, Bitcoin va a adaptar para cumplir con ellos. Tal vez la solución va a ser sofisticado, descentralizada, off-blockchain sistemas para la transferencia de Bitcoins. Tal vez no.

Si tu punto es justo que Bitcoin podría enfrentar problemas en el futuro que no puede ser resuelto, seguro, es posible. O la gente podría resolverlos. Pero usted realmente no puede resolver un problema hasta que realmente la cara-no hay manera de saber con qué recursos vas a tener que resolver, que el interés será, y así sucesivamente.

+453
Echo Yang 25 mar. 2012 9:28:29

Ya que usted menciona PHP puede instalar un Nodo Bitcoin en su servidor y, a continuación, utilizar EasyBitcoin-PHP: https://github.com/aceat64/EasyBitcoin-PHP

A continuación, utilice el Bitcoin API: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

Lista de todas las transacciones asociadas con una cuenta:

echo $bitcoin->getreceivedbyaddress($btc_address);

"Devuelve la cantidad recibida por transacciones con al menos [minconf] confirmaciones. Se maneja correctamente el caso de que alguien le ha enviado a la dirección en varias transacciones. Tenga en cuenta que las direcciones son sólo he utilizado para la recepción de las transacciones. Sólo funciona para las direcciones en el local de la cartera, direcciones externas mostrará siempre 0."

Así que usted podría ejecutar este y la compara con su base de datos para ver si una nueva transacción parece que no está ya en la DB.

--

Para supervisar un saldo de una cuenta sólo puede comprobar en cada carga de página y actualizar el DB si quería):

echo $bitcoin->getbalance($usuario['id'], 1);

Obtener uno de los usuarios las direcciones de:

echo $bitcoin->getaccount($usuario['id']);

Para verificar las transacciones:

echo $bitcoin->gettransaction($trans_id);

--

Usted también podría usar una API: Cómo obtener la lista de transacciones de entrada y salida para una dirección bitcoin en formato JSON?

--

No estoy 100% seguro de lo que estás pidiendo, pero espero que lo que proporcionan ayuda.

+408
dimka344 5 oct. 2018 10:12:36

Aquí es una solución que no resuelve el problema principal, pero se va a resolver su problema.

Antes de realizar la transacción comprobar si la dirección de destino es también una dirección a la que pertenece el mismo usuario. Si es así, no crear la transacción. Advertir al usuario de que la dirección de destino pertenece a él y que no puede realizar esta transferencia.

Esto también puede suceder si la dirección de B pertenece a otro usuario en su sitio. Hacer la misma comprobación y hacer la transacción fuera de la cadena. Acabo de actualizar a los usuarios' los saldos, pero no crear una transacción bitcoin.

Suponiendo que este escenario que en realidad tiene lugar en un intercambio, yo creo que cómodamente se puede dibujar la línea como esta.

Movimiento de los saldos entre dos direcciones que pertenecen al mismo usuario que suena como una cartera de funcionalidad. Pero está haciendo un intercambio.

Algunos usuarios se quejan, pero bueno, mejor estar seguro que goxed. Van a entender.

+318
Lewis Pankhurst 6 ene. 2013 18:31:08

Flattr recientemente añadido la posibilidad de enviar una sugerencia sin ser un suscriptor, pero que todavía no tienen la capacidad de recibir un consejo sin la pérdida de un fragmento de ella a las cuotas de suscripción.

Para solicitar una punta en bitcoin, solamente tiene que proporcionar una dirección Bitcoin para el remitente para su uso. Porque es una transacción directa, no hay ningún intermediario chuparse los honorarios de la transacción (excepto para el bitcoin costos de transacción, que cuestan alrededor de penny en los niveles actuales).

Aquí es sólo un subconjunto de las personas haciendo exactamente esto: - http://en.bitcoin.it/wiki/Donation-accepting_organizations_and_projects

Sin embargo, si el destinatario no sabe ya de Bitcoin o no aceptar bitcoins en la actualidad, dos servicios pueden ser utilizados para dar una cantidad que es mantenida en custodia por el intermediario y el destinatario puede reclamar los fondos mediante el intermediario del sitio web. Esto es algo de Flattr recientemente añadido-que se refieren a él como "no reclamados de las cosas": http://flattr.com/support/unclaimed

Estos dos servicios que hacerlo con bitcoins son: http://www.YouTipIt.org y http://www.PayBitBack.com YouTipIt permite enviar una sugerencia a cualquier TipIt ya están registrados en su sitio, pero también ofrecen la posibilidad de enviar una sugerencia a cualquier Facebook del usuario. Si el usuario no está registrado con YouTipIt, los fondos serán mantenidos en custodia hasta que sean reclamados por el Facebook del usuario.

PayBitBack sigue el mismo concepto, excepto la suya es una cuenta en Twitter basado en sistema de plica.

+311
Robert Menasse 3 ago. 2010 18:06:20

La manera más fácil de hacer de lo que usted está tratando de hacer es agregar una línea a su bitcoin.conf archivo.

servidor=1

El archivo existe en uno de estos lugares: "¿Dónde está el archivo de configuración de bitcoin qt mantenido"

También es necesario configurar un nombre de usuario y la contraseña al hacer esto mediante la adición de estas líneas adicionales. Utilice siempre un nuevo seguro de contraseña aleatoria que es único sólo a este servicio (no re-utilizarlo en cualquier lugar, y no comprometerse a un repositorio de código fuente)

rpcuser=Ulysseys rpcpassword=YourSuperGreatPasswordNumber_DO_not_use_this_or_you_will_get_robbed_385593

Ahora puede ejecutar el bitcoin-cli.exe comando de cmd.exe (se instala en c:\program files\bitcoin\daemon)

También es digno de mencionar que usted no tiene que correr bitcoin-qt puede elegir ejecutar bitcoind e interactuar con bitcoin-cli.

+16
stevenpearce 21 sept. 2018 15:27:17

Mostrar preguntas con etiqueta