Es el scriptPubKey de un inéditos de transacción en una entrada de bloque comprobado? Si es así, ¿dónde?

Hoy estaba leyendo bitcoind src, y tratando de averiguar dónde scriptPubKey se ejecuta cuando un nodo recibe un nuevo bloque con la transacción, por ejemplo transacción a partir de la nueva bloque no puede existir en mempool.

  1. Encontrar la función que ejecutar una secuencia de comandos:

    https://github.com/bitcoin/bitcoin/search?utf8=%E2%9C%93&q=EvalScript

    • src/script/interpreter.cpp en este archivo de código fuente de EvalScript función

    Usadas sólo en el 2 archivos:

    • src/policy/policy.cpp

    • src/script/sign.cpp

  2. Revisión sign.cpp

    Evalscript -> CombineSignatures -> /src/bitcoin-tx.cpp: MutateTxSign -> MutateTx -> CommandLineRawTx -> principal

    Esta función se utiliza cuando creamos nuevas transacciones

  3. Revisión policy.cpp

    Evalscript -> AreInputsStandard -> /src/main.cpp: AcceptToMemoryPool

    AcceptToMemoryPool

    • src/main.cpp más tarde

    • src/wallet/wallet.cpp -> CommitTransaction - esto es crear propia transacción funcional

    • src/rpcrawtransaction.cpp -> sendrawtrnsaction - rpc función de enviar rawtx

    • src/txmempool.cpp -> no sólo las llamadas comentarios

Último es src/main.cpp

AcceptToMemoryPool -> ProcessMessage en el mensaje de "tx" , nuevo single de tx a la piscina recibido AcceptToMemoryPool -> DisconnectTip

DisconnectTip -> InvalidateBlock invaludate bloque y enviar todas las transacciones de vuelta a la piscina con todas las verificaciones y la secuencia de comandos de eval

DisconnectTip -> ActivateBestChainStep :

 // Desconectar bloques activos que no están en la mejor cadena.
bool fBlocksDisconnected = false;
mientras (chainActive.Tip() && chainActive.Tip() != pindexFork) {
 si (!DisconnectTip(estado))
 return false;
 fBlocksDisconnected = true;
}

Si tenemos huérfano llevará a cabo transacciones de huérfano a la piscina con todas las verificaciones

NO más otros enlaces que se encuentran

A partir de esto puedo concluir que en el caso de que el nodo con bitcoind recibido un nuevo bloque las transacciones que no mempool agregar este tx a blockchain sin scriptPubKey ejecución.

En consecuencia si mismo "honesto" minero incluyen tx con secuencia de comandos no válida, por ejemplo incorrecto de la firma que pasó misma monedas, todas bitcoind nodos añadir a blockchain sin eval secuencia de comandos y no detectar este

No es posible ser verdad! Dónde está mi error?

+241
boyarin80 25 jul. 2018 4:02:51
16 respuestas

Si por el individuo que la media de los usuarios yo diría al contrario como muchos cartera de SPV o basado en tener un sistema centralizado de backend en ejecución un total de nodos (forma de la ligereza como cualquier cliente de no ejecutar una fullnode).
Sólo unos pocos de escritorio bitcoin wallet, como bitcoin core o de la armería ejecutar como fullnode. Fullnode son necesarios para la miner pero aún así es bueno para cualquier persona para que se ejecute como se aplica las reglas en nuevos bloques/transacciones, mientras que SPV nodo no se que resultado con un saludable de la red. SPV nodo necesita nodo de existir, pero vale la pena tenerlo en cuenta que un SPV tiene que confiar en sus compañeros que no se verificar y aplicar las reglas.

Citando A Dominar Bitcoin:

Un SPV nodo sin duda puede demostrar que una transacción existe, pero no puede comprobar que una transacción, como un doble-pasar de la misma UTXO, no existe porque no tiene un registro de todas las transacciones.

[...]

Un completo blockchain nodo comprueba una transacción mediante la comprobación de la cadena de miles de bloques a continuación y comprueba que el UTXO no se gasta, mientras que un SPV nodo comprueba la profundidad del bloque es enterrado por un lado‐ ful de los bloques por encima de ella.

Un típico comerciante aceptar bitcoin no sería 100% que no hay ningún intento de doble gasto, que no es posible con un SPV nodo.

+950
Roberto Alarcon 03 февр. '09 в 4:24

Si desea enrutar un rayo de pago a través de su nodo, su canal(s) deben tener al menos un equilibrio de la a-ser enrutados de cantidad, derecho? Si no, tu nodo, por definición, no puede ser elegido como una potencial ruta de enrutamiento.

si esto es cierto. Si usted no tiene suficiente bitcoin para adelante usted no puede enviar un pago.

Así, en el futuro, cuando soñamos acerca de la adopción masiva: en los mercados financieros espacio, donde muchas de las grandes cantidades serán negociados: Sólo unos pocos "grandes" corporativa nodos con grandes saldos en sus canales, puede ser elegido para el enrutamiento de grandes cantidades, ¿verdad?

Yo creo que la de muchos grandes cantidades es un fuerte de la asunción. Yo creo que los importes de las transacciones financieras deben ser de Zipf distribuido con la gran mayoría de las transacciones de ser pequeño y sólo un par de transacciones de gran tamaño. En el último caso (que es el que usted pregunta acerca de): si desea transact un gran valor acaba de abrir un nuevo canal de pagos para el destinatario (que con wumbo canales será posible en el futuro). Es útil ya que puede pasar de la cantidad a continuación. También se puede hacer offchain pero no es necesario.

O es que hay un algoritmo en el lugar, donde una cantidad de, por ejemplo, 100million todavía podría ser enrutados a través de una lista de canales a cabo por varios nodos (una especie de "salto" a través de múltiples canales hasta llegar a 100million - por ejemplo 10+10+10+10+10+10+10+10+10+10)

También tenga en cuenta que en el futuro APLICACIONES atómica (multi-path) de enrutamiento será implementado de manera que grandes los pagos se pueden dividir en varios pagos. Es bien sabido cómo implementar APLICACIONES y es parte de la SAETA 1.1.

O es el rayo de poner siempre un camino directo a la de UN único canal que tiene la 100million disponible como saldo?

La selección de ruta no es parte de la red de rayos de protocolo. Realmente depende de la aplicación o incluso sobre usted, como usuario, como se le permite especificar una ruta de acceso.

Segundo, me gustaría saber cómo el rayo algoritmo es decidir a través de qué canales/nodos de la ruta de los pagos?

ver arriba. Generalmente la gente trata de encontrar los caminos más cortos que son propensos a tener la suficiente liquidez.

Debido a que muchos artículos que dicen que como el 0,6% de todos los Rayos nodos de enrutamiento como alrededor del 85% del total de los rayos de pagos. Y aquellos 0.6% ocurren a ser los que con mayor "capacidad"

Muchos de los artículos?

La última instrucción no parece demostrable para mí. Desde el encaminamiento de cebolla hace que los pagos privado, lo único que sabemos por nuestra propia nodo de las rutas que hemos tomado y cómo muchos de los pagos que hemos remitido. Si bien es probable que la mayoría de las rutas de ir a través de la alta capacidad de los nodos de los números exactos son pura especulación. Podría ser más podía ser menos.

¿Por qué es eso? Por qué no se distribuye de forma más homogénea?

Yo diría que debido a que actualmente sólo unas pocas personas han sido #lo suficientemente imprudente como para proporcionar gran liquidez a esta tecnología de vanguardia en el que debido a los posibles errores de software uno todavía podría perder los fondos.

Y ¿cuál es el significado de la "capacidad"

La capacidad es la cantidad de bitcoin enviado para el 2-2 multi-sig cartera que se utiliza para anclar un canal de pago. Esto no debe ser confundido con el saldo que son las dos salidas en el secreto compromiso de la transacción de que se 2-2 dirección. El equilibrio se refiere a veces como entrante y saliente de capacidad, pero es sólo para los propietarios de canales.

3) ¿Qué roles desempeñan Torres de vigilancia en el futuro? Y ¿qué influencia podrían tener con respecto a (de)la centralización de los rayos?

Torres de vigilancia se han propuesto como un servicio en el que un tercero supervisa el estado del canal y le ayuda a asegurarse de que los socios de canal no intenta robar BTC de tu canal mediante la publicación de un viejo estado. En general hace que el rayo de la red más segura. Si que incentive la alta capacidad de los nodos para dar más liquidez o la baja capacidad de los nodos para dar más liquidez, no se puede decir y es pura especulación.

por cierto, por favor, sea específico a lo que te refieres cuando hablas de "centralidad". Mi sensación es que te refieres a nodos con alta liquidez. Me gustaría mucho más prefieren hablar de la intermediación del centralismo.

También hay que tener en cuenta que el mayor problema con el reloj de la torre es que se puede obtener mucha información acerca de los pagos continuos que de la privacidad de la red de rayos está en riesgo.

4) ¿hay algún tipo de "sanción" en el lugar cuando un nodo se retiene un pago o no de la ruta de un pago? O son estos técnicamente no válido escenarios?

Respuesta corta: no, realmente No.

Sin embargo, la celebración de un pago de hasta el máximo CLTV_delta significa que usted puede utilizar que la liquidez en su HTLC salida a la ruta de otros pagos. Lo que significa que el nodo va a ganar menos gastos. Así que, económicamente, un nodo es incentivados para la ruta de un pago tan pronto como sea posible.

Sin embargo, si un nodo quiere actuar en un retrasando la manera de molestar a la red pueden hacerlo. Corresponde a los nodos que están conectados a ese nodo para el seguimiento de este tipo de comportamiento y cerca de sus canales o para el remitente nodos no seleccionar este nodo en particular para el enrutamiento.

Además, tenga en posible que un nodo puede en max hold 483 HTLCs por canal de pagos. Así, sólo se puede retrasar una pequeña cantidad de transacciones si desea retrasar por mucho tiempo.

5) Censura: ¿Cómo es la transacción censura posible en los relámpagos de los ecosistemas? ¿Cuáles son los escenarios de aquí, y cualquier prevención de los mecanismos previstos y ya en el lugar? Un artículo en https://news.bitcoin.com/lightning-network-centralization-leads-economic-censorship/ escribe: "" Un gran minero (o incluso una mayoría cártel de los mineros) efectivamente no se pueden censurar sus transacciones, ya que CUALQUIER minero puede incluir su transacción en un bloque. Pero el mismo no es cierto para LN centros. Que efectivamente puede censurar sus transacciones, debido a que NO cualquier hub ruta de su pago. Ejemplo: Megabanco "A", "B" y "C" todos los decide convertirse en un Rayo de placer. Todos ellos la adquisición de clientes y tienen canales abiertos entre los 3 bancos. Esto permite a los clientes de cualquiera de los bancos para enviar dinero a otros clientes de los 3 bancos. Usted, siendo un amante de la libertad individual, deciden abrir un canal con un anónimo hub conocido sólo como T35G7. Supongo que lo. Megabancos a, B, y C no quiero abrir un canal con T35G7. Así que no puedes enviar a cualquiera de sus clientes, ya que no hay ruta disponible. ""

No, esto no es cierto. Mientras Megabanco a, B y C podrían decidir no la ruta de un pago que usted inicie a T35G7 esto va a ser difícil en la práctica. Primero, cada uno de los "Megabanco" no sabe que este es un pago de usted a este nodo, a menos que la ruta se ve como esta Usted--> a --> B --> C --> T35G7 Y los Megabancos compartir toda su información. En ese caso, se podía ver a los bancos como un nodo y el camino parece que Usted--> MEGABANCO --> T35G7. En ese caso, sí, MEGABANCO podría negarse a transmitir un pago, pero no sabía que quería pagar T35G7 debido a que la ruta en realidad podría tener este aspecto: algunos remitente --> .... --> Usted --> MEGABANCO --> T35G7 --> ... --> algunos receptor.

También, lo que los descritos megabancos, ciertamente, no se puede hacer es evitar que pueda abrir un canal directo con T35G7 que es la cosa que usted debe hacer de todos modos, si usted no puede encontrar una ruta en la red.

Por CIERTO, el absurdo de la situación descrita podría ser transferido a Bitcoin mining si tienes un cartel de bitcoin mineros. Debido a que el cartel podría sólo se compromete a no a la mina en la parte superior de los bloques de otros mineros que incluye una transacción de este tipo. Si el cartel es un verdadero cartel con más de 51% de la minería de poder, que efectivamente puede censurar cualquier transacción...

6) por último, al final del día, mi deseo básico es entender en qué medida, dentro de lo ramificaciones, PUEDE Rayo convertido en un altamente centralizada de los ecosistemas, en lugar de un altamente descentralizada.

El rayo de red es un protocolo en la parte superior de bitcoin. Es bien conocido conjunto de reglas para las personas que el consentimiento para el uso de Bitcoin en una cierta manera. En ese sentido, es totalmente opcional y siempre se reduce a Bitcoin. Canales de pago son realmente apenas 2-2 multi-sig carteras en las que sus fondos no están bloqueados ya que pueden (en buenas circunstancias) se mueven sin la necesidad de esperar para Bitcoin, mineros o de la blockchain o y vacío mempool.

Siempre comparo el rayo de la red con la world wide web. Es un permissionless estándar que cualquier persona puede participar. Puede haber algunos "megabancos" proporcionar alta liquidez y la utilidad que se vuelven peligrosas. Sin duda. Lo mismo ocurrió con la Web y la aparición de enormes Web de empresas que han integrado muy profundamente en nuestro diario vivir. Sin embargo, es siempre la elección del usuario la utilización de tales actores. El rayo de la red propia, como la Web es la descentralización de la tecnología. Esto no impide que los servicios centrales a salir, pero como dice que no tiene que ser utilizado y, ciertamente, no de control de la tecnología o el protocolo.

Así que, realmente espero que yo podría aportar algo de luz a toda la paranoia que está siendo difundido por algunas personas...

+918
Debra Kerlin 6 may. 2016 18:12:04

Bitfloor, mtgox y otros me permiten mantener un equilibrio de ambos btc dólares de los ee.uu. y que no se negocian. Así que el usd está aparentemente en manos de la compañía de intercambio en lugar de en mi banco. Esto es una ventaja porque me permite rápidamente comprar en y fuera de btc sin esperar una transferencia bancaria o pagar algo como bitinstant.

Es mi usd a cabo por el intercambio protegido de cualquier forma de piratería u otras pérdidas, de la manera que es en mi banco?

+886
AhmedRana 28 mar. 2018 23:55:26

Por favor, tome el título de propiedad con un grano de sal. No podía hacer que sea más corto y también lo que implica todo lo que estoy a punto de preguntar aquí.

Considere la posibilidad de devaluación del Yen. Los comerciantes de Forex constantemente comprar DÓLARES y vender JPY, o viceversa, basándose en las noticias y acontecimientos en la política y la economía, o la anticipación de la misma.

La devaluación del Yen afecta a los exportadores e importadores y, aunque esto tendrá un efecto sobre los consumidores Japoneses, finalmente, no es que la gente en Japón hoy en día, comprar un sushi de 100 Yenes y mañana para 102.1 yen, basado en los movimientos en el USDJPY en Forex.

Pero, ¿qué es una tienda en línea, que las cotizaciones de las mercancías, tanto en Bitcoin y, a decir de la Ondulación (pero insertar cualquier alternativa crypto moneda aquí), para hacer en esta situación? Tiene que tener un rápido y fiable de acceder a algunas de cambio actual de la oferta y demanda y de la actualización constante de los precios de los bienes.

¿Cuáles son, si las hubiere, soluciones previsibles a esta presión adicional sobre los comerciantes que aceptan cripto-monedas?

¿Cómo afecta a sus clientes que, implícitamente, han de comprobar las citas en este o que la moneda con el fin de, posiblemente, conseguir una oferta mejor?

+868
Preston Wallace 5 ene. 2019 17:58:51

Yo sólo soy un principiante en la iluminación de la red. Algunas preguntas sobre las transacciones en LN cuando estoy haciendo la investigación

  1. Las transacciones en LN que están fuera de la cadena, por lo que las transacciones no podía ser almacenados en la cadena principal, así que ¿cómo podría buscar en el historial de transacciones?
  2. Pago canal es privado para alguien de fuera, y si no hay historial de transacciones, ¿cómo puedo dar la información a los demás a la prueba que acabo de hacer un pago en LN.

Cualquier ayuda, gracias

+804
user377178 2 may. 2018 10:22:02

El blockchain sólo aceptará los bloques que se basan en previamente aceptada, bloques y tiene un valor de hash que satisface la actual dificultad de los requerimientos. Un atacante malintencionado está en la misma posición que cualquier otro minero, por lo que cualquier bloque que él minas deben cumplir las mismas condiciones con respecto a la validez. De hecho, el protocolo bitcoin está diseñado para ser trustless, lo que significa que incluso los mineros con malas intenciones no son capaces de destruir su integridad, a menos que se las arreglan para controlar a la mayoría de la minería de poder.

+792
Hun Somanta 7 nov. 2019 16:35:00

No creo que usted entiende que sitio. Lo 'la' lista de todas las direcciones posibles y usted NO quiere a la búsqueda de su propia dirección en la que hay (incluso si eso fuera posible).

No conozco el sitio es una broma o un troll, pero mejor evitarlo.

+723
Karl Forner 25 ago. 2015 13:01:51

Me gustaría crear una representación 3d de la profundidad del mercado gráfico (de BTC/USD) a lo largo del tiempo. (el gráfico de aquí https://www.bitstamp.net/market/order_book/) creo que sería proporcionar una buena representación de comprar/vender en las paredes y el precio (el canal en el medio) a lo largo del tiempo. Donde puedo descargar estos datos? Una lista de todas las operaciones que no funciona, pero las órdenes abiertas con el paso del tiempo.

+640
Fermuch 17 jul. 2014 14:55:44

Usted puede tratar de http://p2pool.info/

Y P2Pool.info no mantener tasas, que redistribuirlo ;)

En general, usted no tiene que suscribirse a los P2P Piscina (sólo la búsqueda para "p2p bitcoin pool").

+610
davidjoseph1 19 may. 2010 17:25:38

Debido a que el Segwit2x el tenedor ha Segwit activado y que ya no son incapacitantes segwit, usted puede almacenar sus Bitcoin con cualquier dirección que desee. Usted será capaz de gastar tus monedas en ambos lados de la horquilla sin importar como ni el Legado de direcciones ni Segwit direcciones dejarán de ser válidas disponibles ni por nadie.

+369
adamb 28 oct. 2018 2:40:10

Respuesta corta: no.

Respuesta larga:

  1. Los bloques son exactamente 80 bytes de largo. Cuando has visto un 80 caracteres de la contraseña?
  2. Los bloques de inicio con un montón de bytes nulos en el campo de la versión. De nuevo, cuando has visto que una contraseña?
  3. Cada minero es la minería, un bloque diferente. Usted no sabe la merkle raíz de lo que está a la minería debido a que contiene un hash de un secreto de dirección.
  4. Bitcoin utiliza SHA256(SHA256(x)) como una función de hash, que no es muy común en el hashing de la contraseña.
  5. Los mineros no publicar sus resultados, a menos que resolver un bloque. Sólo resolver un bloque si se inicia con 12 ceros (en el momento de la escritura). Las probabilidades de que su hash de partida con 12 ceros es 0.000000000000003034%.
+340
Uday Kaskin 1 feb. 2012 8:26:10

Este experimento por CBC que usa chirrido en la radio para transmitir una cartera de semillas cosquillas de mi interés. Por supuesto, esto no es seguro. Y es también un inconveniente para crear la cartera de la semilla. ¿Qué es una mejor manera de hacer esto de una manera práctica? Chirp es muy accesible y conveniente. La radio de onda corta tiene un rango decente, a cierta distancia sobre el mar.

+305
Tanoh 21 may. 2010 13:34:47

El estándar de bitcoin-qt/bitcoind cliente tiene una opción -checklevel que pretenda realizar varias comprobaciones en el bloque de datos almacenados en el disco. Existe actualmente documentación (distinta de la de origen) en el que describe específicamente lo que se comprueba en los diferentes niveles?

La función VerifyDB en la fuente de breves comentarios que describen los niveles:

// comprobar el nivel 0: leer el disco
// comprobar el nivel 1: comprobar el bloque de validez
// comprobar el nivel 2: verificar la validez de deshacer
// comprobar el nivel 3: verificación de inconsistencias durante la memoria-sólo desconectar de la punta de los bloques de

Sería agradable ver a estos explicado en términos del protocolo Bitcoin. Por ejemplo, se bloquean los hash verificado? Se comprueba que todos los bloques de la cadena correctamente enlace de vuelta a la una de la otra? Son transacciones de verificación de firmas? Et cetera.

+186
moschkina 19 abr. 2017 20:56:57

Sé que el máximo tamaño de la transacción es de 500Kb.

También sé que hay un máximo para sigop en una transacción (20,000?).

Lo que me interesa es ¿cuál es el número máximo de txouts podría incluir en una sola transacción.

+125
Didi Dvash 29 ene. 2018 7:53:21
Esta etiqueta debe ser utilizado para las preguntas referentes al Líquido inter-cambio de liquidación de red desarrollado por Blockstream.
+109
jtobin 19 sept. 2010 4:03:27

Faro de Preguntas Frecuentes (FAQ) dice:

Actualmente usted no puede aceptar más de 684 promesas para su proyecto. Esto es debido a las limitaciones en el protocolo Bitcoin - el final del contrato que las reclamaciones de las promesas es una sola transacción Bitcoin, y por lo tanto está limitado a 500 kilobytes por el Bitcoin tamaño de bloque y el protocolo de retransmisión de reglas.

Nota: "500 kilobytes" es un error tipográfico---me acaba de confirmar a través de correo electrónico con el Faro de autor Mike Hearn. El tamaño correcto para operaciones estándar es de 100 KB. Mike es también pensar acerca de la elevación del estándar de tamaño en su Bitcoin XT proyecto para permitir a los mineros a participar en el tamaño más grande. (Que difícil limitar, por ahora, es un poco menos de 1 megabyte---todo un bloque.)

De los que 100 KB, una pequeña parte es la salida (TxOut) que paga el receptor de los fondos (que, en su caso). Si utiliza un estándar P2PKH o P2SH clave pública de secuencia de comandos, la salida va a ser de 34 bytes o menos. También hay una pequeña parte dedicada a la transacción de metadatos (tales como la transacción número de versión); el tamaño de los metadatos varía un poco por cómo muchas de las promesas de obtener, por lo que permite alrededor de él hasta 20 bytes. Que deja 99,946 bytes a la izquierda para promesas.

99946 / 684 = 146 bytes por plegde (redondeado hacia abajo). Una promesa es una sola entrada (TxIn) que paga el resultado descrito anteriormente. La entrada (si es necesario) pre-pasó a asegurarse de que tiene exactamente la cantidad de compromiso---eso significa que no hay salida de cambio de qué preocuparse. El Faro de documento de diseño no dicen explícitamente qué tipo de entrada que pasa, pero voy a asumir que sólo gasta P2PKH entradas usando comprimido claves públicas, las cuales son:

... para un total de 144 bytes.

El Faro de preguntas frecuentes también dice en esa misma sección:

Una versión futura de Faro podría optimizar su uso de espacio de transacción para subir el número máximo de promesas por otro par de cientos.

Sospecho que la optimización de Mike está dando a entender que sería el uso de P2PK entradas, que serían:

  • 36 bytes punto fuera
  • hasta 72 bytes de la firma
  • 1-byte firma hash
  • 1 byte de datos empuja

... para un total de 110 bytes. En caso de aplicarse, esto permitiría 99946 / 110 = 908 promesas por transacción, o alrededor de un 30% de aumento. Hay algunas otras maneras de optimizar, tales como exigir más pequeñas firmas, pero estos proporcionan una rápida disminución de los beneficios marginales.

+93
Bryce Snyder 22 jul. 2016 19:09:21

Mostrar preguntas con etiqueta