Papiere/Bücher, wie bitcoin Werke aus mathematischer Sicht?

Ich bin ein Mathematik-student interessiert in der Kryptographie. Gibt es irgendein Papier oder ein Buch, das erklärt, in Mathematik und Kryptografie Begriffe, wie bitcoin (allgemeiner, ein digitales kryptogeld-system) funktioniert? In meinem Kursbuch gibt es nur über 4 Seiten, wie cryptocurrencies Arbeit, aber ich bin hungrig nach mehr.

+617
Andrew RozarioPhotography 11.08.2016, 22:35:19
20 Antworten

Sie verwendet eine Gebühr-rate von 6 sat/B. obwohl die Gebühren haben sank drastisch im Laufe der Woche, das ist etwa Faktor zehn zu wenig, um zu bestätigen. Darüber hinaus einer Ihrer Ausgaben Kosten wird, seinen eigenen Wert zu verbringen, auf 3 sat/B. Auch beim heutigen Wechselkurs, es ist nur im Wert von etwa 1,5¢, sollten Sie versuchen zu vermeiden, - Ausgaben, die kleiner als Sie sind unspendable verbranntes Geld. Das ist die Ausgabe, die der Auslöser für die Staub-Kategorisierung.

+970
Gwop Siegal 03 февр. '09 в 4:24

Ich bin der überprüfung der Transaktion Signierung wie hier beschrieben Einlösen raw-Transaktion Schritt für Schritt Beispiel erforderlich.

Was ist der Grund für die Schritte 5 und 6: vorübergehend Füllung scriptSig mit scriptPubKey der Ausgabe, die wir einlösen wollen?

Kann das nicht einfach übersprungen werden, als mit txid und Ausgangs-index, die wir eindeutig angeben, die Ausgabe so scriptPubKey und wir bekommen nicht einen beliebigen Wert mit dieser Füllung?

+965
Magnus Engdal 11.02.2012, 15:48:03
+964
Cryt1c 22.02.2018, 03:59:11

Sie erhalten dieses obskure RPC-Fehler, wenn dein tx ist mit Ausgängen, die bitcoind noch nie gehört.

Für txs kommen aus dem p2p-Netz, es ist eine "orphan" - Mechanismus, wo die bitcoind wird warten für die fehlenden Ausgänge.

RPC-txs sind offenbar erwartet, dass Sie kommen in der richtigen Reihenfolge.

Wie @GK wies, einen pull-request ist verfügbar auf https://github.com/bitcoin/bitcoin/pull/5418

+958
Jesse Nelson 08.01.2012, 20:12:26

Hallo, ich arbeite mit einer Beschneidung Knoten auf meinem VPS, und einige der RPC-Aufrufe, wie man Gleichgewicht Minuten dauern, um zu laden. Ich brauche, um das Gleichgewicht zu überprüfen jedes mal, wenn der Benutzer auf die website zugreifen. Ich Frage mich, wenn Sie einen vollständigen Knoten würde diesen RPC-Aufrufe schneller.

Der Befehl zeigt, dass die bitcoin-cli wird lange dauern, aufgrund der I/O-Operationen. Was könnte ich tun?

~$time bitcoin-cli getbalance Gewinn
0.00000000

real 6m16.762s
user 0m0.000s
sys 0m0.000s

+940
skyking 28.09.2019, 06:10:45

In einer Weise, die alle bitcoins ausgegeben wurden, mit dem genesis-block: Die Anzahl wurde festgelegt und die Verteilung Zeitplan definiert die Regeln setzen dann. Allerdings verteilen Sie Sie über einen längeren Zeitraum ermöglicht die bitcoins werden verteilt mehr, schafft Anreize für die Bergleute zu tragen zu arbeiten, um das Bitcoin-Netzwerk und vermutlich auch geholfen weniger von Ihnen verloren während der Entstehung des Bitcoin, wenn viele Menschen, gerade versucht es kurz und wahrscheinlich nicht richtig speichern Sie Ihre Münzen.

+880
mickreeves99 04.09.2014, 13:24:31

Ich habe vor kurzem gelesen, die Schwächen Wiki-Seite auf "Angriff auf die alle Benutzer" und ich kam auf diese Aussage:

Die IP-Adressen der meisten Nutzer völlig öffentlich. Sie können die Benutzung von Tor zu verstecken, aber das Netzwerk wird nicht funktionieren, wenn jeder dies tut.

Das bedeutet, dass ein Client, eine Verbindung zum Netzwerk über TOR kann nicht erfüllen Sie alle Ihre Aufgaben auf diese Weise. Was sind die Einschränkungen von einem Client, eine Verbindung zum Netzwerk über TOR, im Gegensatz zu einem standard-Anschluss?

+832
Bax Ramspott 14.01.2016, 23:48:35

Ich war in der Lage, eine Anwendung Programmieren in python, sendet gültige Transaktionen, die verbringen 1 Eingang, aber ich kann mich wirklich nicht, dass es funktioniert mit 2 oder mehr Eingänge.

Meine Frage ist also, wie genau ist der hash, der zu unterzeichnen ist, die für jede Eingabe berechnet?

Was habe ich getan, so weit, ist, wenn wir zum Beispiel haben 2 Eingänge, erzeugen wir eine Transaktion, die verbringt, nur, dass die erste Eingabe, und das ist der hash, der unterschrieben werden muss für den ersten input. Und das gleiche mit der zweiten Eingabe, erzeugen wir eine Transaktion, die nur ausgibt, die zweite Eingabe. Beide Transaktionen müssen die gleichen Ausgänge.

Ist das richtig? Zum Beispiel, wir möchten zu verbringen, Eingang aaaa:0 und Eingang bbbb:1 und wir möchten, senden Sie diese an einige Adresse:

Um den hash zu berechnen, dass die erste Eingabe zu unterzeichnen, die wir brauchen, zu generieren, diese Transaktion:

"version": 1,
'Eingänge': (1)
 'output_tx_hash': 'aaaa',
 'output_position': 0,
 'script': das original-Skript, wie: "76a914' + hash + '88ac',
 'Sequenz': ffffffff,
'Ausgänge': (1)
 'Wert' : 100000
 'script' : '76a914' + hash von btc pub key + '88ac'
'locktime': 0

Und um den hash zu berechnen, die den zweiten Eingang hat, um zu unterzeichnen:

"version": 1,
'Eingänge': (1)
 'output_tx_hash': 'bbbb', # diese änderungen
 'output_position': 1, # diese änderungen
 'script': das original-Skript, wie: "76a914' + hash + '88ac',
 'Sequenz': ffffffff,
'Ausgänge': (1)
 'Wert' : 100000
 'script' : '76a914' + hash von btc pub key + '88ac'
'locktime': 0

Wir serialisieren, fügen Sie Sie 01000000 (SIGHASH_ALL), Doppel-sha256, dass, Unterschreiben Sie es, und fügen 01. Auf diese Weise erhalten wir die zwei Signaturen, die wir verwenden, die auf jeder Eingabe jeweils. Meine Anwendung macht genau das und funktioniert nicht. Was bin ich?

+760
xtreme65 11.08.2018, 21:39:07

Teilen Sie diese Zahl durch die Anzahl der Sekunden eines Tages (86400), um die erforderliche Anzahl von hashes pro Sekunde zu lösen, einen block pro Tag im Durchschnitt. Sie erhalten möglicherweise mehr als einen block auf einige Tage und es werden keine Blöcke auf andere. Es ist zufällig.

Aktuell, Sie müssen über 931 TH/s, das ist ein lächerlicher Betrag von mining-power.

+665
Jaquon Rose 20.12.2017, 22:43:59

Bitcoin statisch links in alle seine Abhängigkeiten standardmäßig, weil viele von Ihnen sind Konsens-Kritischer und kann nicht akzeptieren eine andere version. Daher verteilen Sie die Binärdateien, die stellen schafft.

Allerdings würde ich empfehlen die Einrichtung von gitian deterministische baut.

+643
Jordan Schmidt 14.01.2011, 01:42:24

Mein Knoten ist Weg und hinter mir ist aufgefallen das -blocknoitfy angegebene Aktion in bitcoin.conf nicht ausgelöst wird. Das ist OK für jetzt, da der Knoten hat so viel aufzuholen, das Skript würde das nicht tun, keine gute jedenfalls.

Ist dieses Verhalten korrekt? An welchem Punkt hört blocknotify - start-Triggerung wieder? Meine Erfahrung ist, dass nach ein paar Stunden oder sogar einen Tag downtime, es wird ausgelöst für jeden block während der catch-up (so könnte es ein Dutzend löst alle auf einmal, zum Beispiel)

+538
user5608 14.10.2010, 00:07:46

Stromverbrauch pro GH/s ändert sich mit jedem neuen ASIC-Produkt.

Ich glaube, dass die Antminer S9 ist wahrscheinlich immer noch die state-of-the-art im Dezember 2016. Batch-23 dieser miner hat 14 TH/s mit 1372W +10% (an der Wand, mit Bitmain ist APW3 Netzteil,93% Wirkungsgrad bei 25°C Umgebungstemperatur)

Der Preis für mining-hardware-änderungen die ganze Zeit. Aber jetzt im Dezember 2016 um 0.12-0.13 USD pro GH/s sollte erwartet werden. Das ist auch die notwendige Stromversorgung, aber nicht einschließlich Verschiffen.

Natürlich gibt es auch Leute, die auf ebay, verkaufen Sie ein 1 GH/s USB-stick für 10 USD. Nicht nur, dass Sie Kosten zu viel pro GH/s, aber der Stromverbrauch pro GH/s werden auch sehr hoch sein.

Der Preis für Strom natürlich variiert der ganzen Welt.

Einige Bergleute bekommen gute Angebote, Kauf-mining-hardware in großen Mengen und haben spezielle deals mit der macht der Unternehmen, für sehr Billigen Strom. Diese Angebote werden wahrscheinlich nicht offenbart werden. So wissen wir nicht die tatsächlichen Kosten, die für einen großen miner produzieren eine bitcoin.

Beachten Sie, dass einige große Bergleute sind auch die Hersteller von bitcoin-Minern. Wenn Kunden kaufen die hardware von Ihnen, die Zahlung für die Kosten, die die chips entwickelt und in Betrieb genommen, dann können Sie einige zusätzliche Maschinen, die für sich selbst sehr Billig. Wenn Sie kombinieren diese mit einem guten Angebot auf Strom, dann können Sie mir extrem Billig. Leider Bergbau wird push-up die Schwierigkeit, das wiederum schadet dem Kunden, die gekauft Bergleute von Ihnen.

+477
mirxasahib 15.09.2016, 12:21:48

Wenn Sie schauen, blockchain , werden Sie sehen, dass Ihre Transaktion enthält 0.0001 BTC, die nicht null Gebühr, so ist es sehr wahrscheinlich, dass Ihre Transaktion bestätigt wird.

Sie haben verschiedene Optionen, wenn die Transaktion nicht die Bestätigung bekommen:

Zurücksetzen Ihre blockchain und warten, bis es wieder auf dem Laufenden (halten Sie Ihr Gerät auf macht und mit dem internet verbunden). Nach dem rescan, stecken Transaktionen Weg sein sollte und Ihr BTC frei, um wieder zu verbringen.

ODER

Relais stecken Transaktionen an einen Bergmann, der akzeptiert nicht-standard-Gebühren. Sie können die Vertrauenswürdige peer - option für diese, denken Sie daran, zu deaktivieren, die option, nachdem das problem behoben ist. Siehe auch https://en.bitcoin.it/wiki/Free_transaction_relay_policy.

Von: UnstickLowFeeTransactions

Hinweis: Es existiert eine gewisse Zeit nach blockchain.info löscht die Transaktion, wenn es nicht genommen von jedem Bergmann +- 72 Stunden. Ich würde Ihnen empfehlen, warten dieser Zeit.

ODER

  1. Herunterladen electrum oder jeder bitcoin-client
  2. Dump Ihre privaten Schlüssel von blockchain.inf und importieren Sie Sie. Verwenden Pywallet zu löschen, die Transaktion aus Ihrer Brieftasche.
  3. Ganz neue bitcoin-wallet an blockchain.info und schickte gesamten transacion wieder. (Geldbeutel darf nicht erstellt werden, die unter dem gleichen Konto).
  4. senden Sie Ihre Transaktion erneut.

Bedingungen für die Bestätigung der null-Transaktionen:

  1. Die Transaktion ist kleiner als 10 tausend bytes.
  2. Alle Ausgänge werden mit 0,01 BTC oder größer.
  3. Seine Priorität ist groß genug (siehe die Technische Info-Bereich unten)

https://en.bitcoin.it/wiki/Transaction_fees

Quelle meiner post:

https://bitcointalk.org/index.php?topic=274185.0

https://bitcoinarmory.com/download/troubleshooting/

+451
Zlatan Ibrahimpasic 12.09.2018, 07:20:51

Adressen gruppiert werden können, die zu den gleichen Benutzer (oder, besser, gleich "account") durch das gruppieren der Adressen teilnehmen, die als Eingänge zu einem einzigen Transaktion, und Sie tun es transitiv. Dies geschieht in der neueren Arbeit von Shamir und Ron, durch einige frühere Forscher und getan werden kann, indem znort den parser. Dies ist nicht 100% genau, da ist es möglich, für verschiedene Benutzer anmelden verschiedene Eingänge, um die gleiche Transaktion, aber derzeit tun Sie das nicht sehr oft. (Aber das kann sich ändern in der Zukunft.)

Mit dieser Methode, die oben genannten Untersuchungen festgestellt, dass bestimmte bitcointalk Nutzer gespendet, um WikiLeaks nur aus Ihrer selbst-veröffentlichten Spende-Adressen (event, obwohl Sie möglicherweise nicht die gleichen Adressen für die Spenden).

Für diese Analyse, will man auch nicht unbedingt wissen müssen, eine Transaktion, die Sie erstellt haben, könnte es genug, um zu wissen, nur eine der öffentlichen Adressen.

Se auch diese Frage.

+351
Nagaraj Hubli 31.12.2014, 23:46:33

Ich arbeite auf dem bitcoin-Protokoll und genau das will ich zum extrahieren von raw-Skript von der Ausgabe-Skript zu erlangen Adresse von tx-Botschaften.

für gängige Skripte, wie z.B. Skripte starten mit 0x76(bedeutet OP_DUP), können wir den Zugriff zu einer Adresse mit diesen Schritten:

  1. hinzufügen von Nullen zu Beginn der raw-Skript.
  2. hash mit sha256.
  3. Hash mit sha256 wieder.
  4. schnappen Sie sich die ersten 4 bytes aus und kleben Sie Sie auf das Ende der raw-Skript mit führenden Nullen
  5. dann encodieren mit base58.
  6. am Ende, fügen Sie "1" zum starten der letzten Ausgabe gewinnen Ausgabe-Adresse.

diese Schritte sind geeignet für gängige Skripte, aber für Skripte wie dieses

410498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750ac

was bedeutet:

PUSH(0x41) 0498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750 ac

es hat nicht funktioniert und die generierte Ausgabe ist nicht gültig.

+276
meegle84 30.03.2011, 03:02:40

Ich weiß, dass es einem öffentlichen github-repo, aber ich bin nicht zu sehen, eine Lizenz-Datei. Der Android client ist GPL3. Wer weiß über die Lizenzvergabe für die Haupt-Website ist code?

+199
Bil Gate Junior 25.02.2019, 11:08:21

Es wird nicht einen Unterschied machen. Alles was ich sagen kann ist, es zu kaufen aus einer seriösen Quelle, wenn es das erste kaufen. Verstehen, dass eine Menge Volatilität dürfte in den nächsten paar Wochen.

+122
Kevin from Canada 01.06.2017, 16:27:50

Ich habe eine Maschine mit 1 R9 X280 läuft auf Intensität 13. Es lief 2 Wochen ohne Probleme, und jetzt ist es schon abstürzt, jeden Tag, oder sogar bis zu 4-5 mal am Tag. (Absturz wie im Neustart ohne tatsächlichen Grund in der Ereignisanzeige.)

Die Karte läuft bei 73-76 Celsius; es ist in einem offenen Gehäuse.

Ich habe versucht, das deaktivieren der CCC, aber das hat nicht geholfen.

Was kann ich testen um nach dem problem zu suchen? Es ist ein ganz neues computer.

Details

CGMiner 3.7.2

Bergbau-Befehl:

cgminer --scrypt -o x -u x -p x --gpu-platform-1 -I 13 -g 2 -w 256 --gpu-memclock 1500 --gpu-engine 1080 --gpu-powertune 20 --thread-concurrency 8192 --auto-fan --gpu-fan 30-75 --temp-cutoff 90 --temp-überhitzen 85 --temp-target 70
+75
user1751 18.11.2015, 17:32:28

Ist es normal, dass das Netzwerk zu arbeiten, ohne jede Regel AKZEPTIEREN? Da nun meine iptables INPUT DROP FORWARD DROP und OUTPUT DROP nur port wie ssh, http(s), 53 es ist offen. Ich glaube nicht, fügen Sie eine Regel für port 8333 und 9333 aber es funktioniert und wenn ich mit telnet (mit diesem tool http://www.adminkit.net/telnet.aspx- ) port 8333 oder 9333 ich habe eine Fehlermeldung

Verbindung fehlgeschlagen: Ein Verbindungsversuch ist fehlgeschlagen, da der verbundene Partei hat sich nicht richtig reagieren nach einen Zeitraum von Zeit, oder die hergestellte Verbindung war fehlerhaft, da der verbundene host nicht reagiert

Ich füge hier alle iptables-Regeln http://notes.io/qZkF

Ich habe versucht, das senden der btc von der externen Quelle, und ich erhielt es. In bitcoin.conf habe ich

rpcport=9333

Netstat -tulpn

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19626/nginx.conf
tcp 0 0 127.0.0.1:9333 0.0.0.0:* LISTEN 3537/bitcoind
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2446/sendmail: MTA:
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 19626/nginx.conf
tcp 0 0 0.0.0.0:5565 0.0.0.0:* LISTEN 2416/sshd
tcp 0 0 0.0.0.0:11111 0.0.0.0:* LISTEN 8575/php
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2936/mysqld
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 2446/sendmail: MTA:
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 2440/memcached
tcp 0 0 0.0.0.0:8333 0.0.0.0:* LISTEN 3537/bitcoind
tcp6 0 0 ::1:9333 :::* HÖREN 3537/bitcoind
tcp6 0 0 :::5565 :::* HÖREN 2416/sshd
tcp6 0 0 :::8333 :::* HÖREN 3537/bitcoind
udp 0 0 127.0.0.1:11211 0.0.0.0:* 2440/memcached

Letzte debug.melden

2015-11-22 16:33:33 empfangen-version Meldung: /bitcoinseeder:0.01/: version 60000, Blöcke=230000, us=[xxxx:xxxx:x:xxxx::]:8333, peer=304
2015-11-22 16:34:01 FEHLER: AcceptToMemoryPool: Kostenlose Transaktion abgelehnt rate limiter
2015-11-22 16:34:01 keypool reserve 47
2015-11-22 16:34:01 keypool zurück 47
2015-11-22 16:34:11 empfangen-version Meldung: /bitcoinseeder:0.01/: version 60000, Blöcke=350000, us=[xxxx:xxxx:x:xxxx::]:8333, peer=305
2015-11-22 16:34:11 FEHLER: AcceptToMemoryPool: Kostenlose Transaktion abgelehnt rate limiter
2015-11-22 16:34:12-FEHLER: AcceptToMemoryPool: Kostenlose Transaktion abgelehnt rate limiter
2015-11-22 16:34:31 FEHLER: AcceptToMemoryPool: Kostenlose Transaktion abgelehnt rate limiter
2015-11-22 16:34:38-FEHLER: AcceptToMemoryPool: Kostenlose Transaktion abgelehnt rate limiter
2015-11-22 16:34:44 FEHLER: AcceptToMemoryPool: flippig Transaktion: Staub
2015-11-22 16:34:53 empfangen-version Meldung: /bitcoinseeder:0.01/: version 60000, Blöcke=350000, us=[xxxx:xxxx:x:xxxx::]:8333, peer=306

Mit PHP verwende ich diese

$server = new jsonRPCClient("http://$user:[email protected]:9333/");

Update: ich denke, es ist, weil ich diese Regeln

iptables -A INPUT-m state --state RELATED,ESTABLISHED -j ACCEPT
iptables-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Ist es eine gute Idee, um in der Nähe von port 8333 und 9333?

+62
adiazcarranza 07.07.2011, 03:42:26

Wahrscheinlich beides, obwohl der Effekt sehr gering.

Wohl, die meisten umsichtige Einsatz von Optionen ist das Risiko zu reduzieren. Zum Beispiel, ein Kaufmann mit Forderungen in Bitcoins würde schützen wollen, den Wert des festen Betrag an BTC wird er erhalten. Optionen kann begrenzt seine Risiken. Derzeit sind die Preis-Volatilität der Bitcoins erschwert deren Einsatz für den Handel, da der Wert von einem Preis in BTC variiert so viel von Tag zu Tag. Mit Optionen, das Risiko zu reduzieren, dass mehr Unternehmen bereit sein werden zu akzeptieren Bitcoins, bringt mehr Liquidität für das Bitcoin-ökosystem".

Erhöht die Akzeptanz von Bitcoins und die erhöhte "Geldmenge", sind eher als Optionen, die Preise zu stabilisieren. Sie würden Preisschwankungen verringern verursacht durch dünne Handel. Der gleiche Effekt wird gesehen in der Börse, wo relativ unbekannte Aktien zu Unterziehen drastische Kursausschläge aufgrund der etwas kleinen trades. Umgekehrt ist die weithin gehandelt werden Bestand Exponate viel weniger Volatilität.

+52
Ankit Agrawal 08.02.2016, 07:50:24

Fragen mit Tag anzeigen