BitCoin was ist es?

Über Bitcoin lernte ich vor kurzem, aber er hat mir einmal seine Idee p2p bestochen. Je tiefer begraben ich in ihrem Wiki, desto mehr durchdrungen dieser Idee. Ihre Umsetzung ist eine schöne und elegante aus technischer Sicht.
Suchen Bitcoin gibt eine Reihe von Themen. Am auffälligsten kommentiert, dass viele Menschen, vor allem diejenigen, die nicht mit Bitcoin direkt, gibt es viele Fragen darüber, wie es funktioniert. Auch viele Mutmaßungen, oft falsch. Um die Situation irgendwie zu klären, wurde beschlossen, diesen Artikel zu schreiben.
Echtes Geld?
die Liste der großen Missverständnisse über Bitcoin Ganz oben ist die Idee, dass die Bitcoin die neuen "Papiere" ist, wenn auch in elektronischer, die nur "echtes" Geld darstellen, dass Art sind Schuldscheinen. Es stammt die meisten der verbleibenden Fehler: Wenn dieses Stück Papier, sie sind nichts wert; Sie können sie beliebig viele drucken oder zu zerstören; können sie gefälscht werden; Sie können sie kopieren
Wieder - all dies ist nichts anderes als eine Täuschung. Die Grundlage der Idee von Bitcoin lag der Wunsch zu schaffen nicht nur ein weiteres "Stück Papier", die echtes Geld darstellen, wie Gold, und ein Analogon des Goldes. Holen Sie sich die Eigenschaften von Gold, dank derer es ein perfektes Geld ist, und zwar E-Währung auf sie.
Die Komplexität des Herstellungs
Gold kann nicht kopiert werden - es ist nur bekommen kann. Dies ist jedoch ein sehr kostspieliges Verfahren, sowohl in Zeit und Ressourcen. Teilweise aus diesem Grund, Gold ist so hoch geschätzt. Um es klarer, lassen Sie uns ein Beispiel betrachten.
Lassen Sie die Menschen den ganzen Tag hart, um mein Gold und als Ergebnis von 1 kg erhalten. Für ihn ist der Wert des Goldes zu einem Tag harter Arbeit gleich. Nach einem anstrengenden Tag der Arbeit, entschied er sich, ins Kino zu entspannen und zu gehen. Durch einen glücklichen Zufall gab der Kassierer die Tickets im Austausch für Gold. Warum? Da der Kassierer wie Gold, aber nicht gerne den ganzen Tag arbeiten zu holen. Deshalb ist er bereit, behilflich zu sein - um das Ticket zu bezahlen - im Austausch für eine 1 kg Gold. In der Tat, tauscht er seinen Dienst für einen Tag harter Arbeit.
Stellen Sie sich jetzt eine andere Situation. Wir erfanden den Kopierer, die mit Gold arbeitet. Und jeder kann in einer Minute von einem einzelnen 1 kg Gold 10 kg zu machen. In dieser Situation wird der Kassierer nicht mehr für Gold Karten ausgetauscht werden, denn jetzt ist er einfach, wie viele zu drucken zu können, wie Sie möchten. Gold wird haben keinen Wert mehr, und es kann nicht als Geld verwendet werden.
Die Bitcoin Münzen Produktionsprozess erfordert auch Zeit und Ressourcen. Aber in diesem Fall ist es nicht menschlichen Ressourcen und Computer.
Relativ begrenzte Ressource
Je mehr Gold produziert wird, desto schwieriger (teure Ressource) wird seine Produkte. Dadurch wird sichergestellt, dass die Inflation unter Kontrolle sein wird.
Die Bitcoin ähnliches Verhalten wird durch die Einführung einer Funktion der Geschwindigkeit insgesamt erzeugten Münzen von Zeit zu Zeit erreicht. Diese Funktion ist umgekehrt proportional, das heißt. E. Mit der Zeit und der Geschwindigkeit auf Null fällt. Wenn wir das Integral der Funktion in Bezug auf Zeit in Anspruch nehmen, erhalten wir die Aussteller. Über diese:

Es ist ersichtlich, dass die Gesamtzahl der Münzen, verpflichtet sich, 21 000 000. Details der Operation werden später Bitcoin diskutiert. In der Zwischenzeit müssen Sie zwei Dinge wissen: Münzen erscheinen im System in den Reihen etwa alle 10 Minuten, die Anzahl der Münzen in einer Packung - 50, und es wird alle 4 Jahre halbiert.
Stofflichkeit
Diese Eigenschaft wird nicht so viel Gold wie jede nicht-elektronische Währung haben. Ein Goldbarren kann nicht für den doppelten Dienstleistung oder ein Produkt ausgetauscht werden. E. Zu einer Zeit, oder es kann der Verkäufer oder der Käufer.
Dieses Verhalten estesstvenno für Materialaustausch, aber nicht für E-Mail. Um dieses Verhalten von virtuellem Geld zu erreichen, müssen Sie eine Menge Einfallsreichtum zu setzen. Das Bitcoin dieses Verhalten Transaktionsmechanismus zur Verfügung gestellt. Alle Transaktionen in der Kette vereint. Jede Transaktion nimmt Münzen von einem oder mehreren bestehenden Transaktionen und geben an, die sie bestimmt sind. Daher können Sie immer die Gültigkeit der gesamten Kette überprüfen.
Die Komplexität der Produktion, eine begrenzte Ressource, das Material - diese Eigenschaften, sowie die Verwendung von Kryptographie für die Sicherheit, können Sie Bitcoin als Geld zu verwenden. Sie basieren Bitcoin Kern. Dies ist nicht nur eine Vereinbarung. Alle von ihnen sind im System durch Design und in einer anderen Art und Weise eingebaut wird es nicht funktionieren. Es ist Zeit, das beste Design zu berücksichtigen.
Kettenzüge
Jede elektronische Zahlungssystem muss irgendwo und irgendwie speichern die Transaktion. Die Bitcoin alle Informationen in der Blockkette gespeichert. Die Blöcke werden im JSON-Format übertragen werden. Jeder Block enthält einen Header und eine Liste von Transaktionen. Der Header besteht aus mehreren Eigenschaften, unter denen ein Hash des vorhergehenden Satzes ist. So ist die gesamte Kette Einheit speichert alle Transaktionen für alle Zeiten Bitcoin.
Die aktuellen Versionen der Software Bitcoin Block-Kette vollständig von jedem Kunden heruntergeladen, die das System vollständig dezentral macht. Die Daten werden in keiner Weise verschlüsselt und jeder kann alle Transaktionen manuell verfolgen. Es gibt sogar eine spezielle Website - Bitcoin Block-Explorer, wo man leicht alle Informationen über die Einheiten und Transaktionen sehen können.
Zum Zeitpunkt des Schreibens dieses Artikels, ist die Anzahl der Blöcke in der Kette gleich 110 968 und, wie ich bereits sagte, diese Zahl in etwa alle 10 Minuten, erhöht sich um 1. Das bedeutet, dass einige der Teilnehmer in der Lage war, einen neuen Block zu erstellen.
Es funktioniert wie folgt. Einem Kunden erstellt eine neue Transaktion und sendet sie an andere Kunden, die in der Erzeugungseinheit im Eingriff sind. Sie fügen hinzu, diese Transaktion zu seiner Einheit und weiter zu erzeugen. Früher oder später wird jemand einen Block erstellen. Diese Einheit wird verschlossen (es wird nicht hinzugefügt mehr auf die Transaktion), und über das Netzwerk gesendet. Als nächstes überprüfen Sie die Einheit Kunden und Transaktionen innerhalb es für die Gültigkeit. Wenn es keine Probleme gibt, dann wird die Transaktion genehmigt. Zu diesem Zeitpunkt hat eine neue Einheit jeden Kunden erreicht und zu der Kette. Danach wird der Vorgang wiederholt - wenn Kunden beginnen Einheit zu erzeugen und in seiner neuen Transaktionen sammeln.
Block
Betrachten Sie den Inhalt des Blocks und seiner Erzeugungsprozess detaillierter. Beispiel Block kann bei allen das gleiche finden die Bitcoin den Block - Explorer . Die Box besteht aus einem Kopf und trantsaktsy Liste. Der Header besteht aus den folgenden Eigenschaften:
- Hash - SHA-256 Hash des Block - Header. Dieser Hash ist ziemlich zufällig, und seine Rechenzeit ist vorhersehbar. Ich stelle fest, dass Titel ohne Transaktionen nur gehasht. So daß die Zahl der Transaktionen wird nicht viel Einfluss auf die Rechenzeit des Hash sein.
- ver - Version Blockdiagramm. Im Moment sind alle Blöcke eine Version - 1.
- prev_block - Der Hash des vorherigen Blocks in der Kette. Aufgrund dieser Eigenschaft kann nicht Kette geschmiedet werden, ist es in einem der Blöcke zu ersetzen, da der Block-Hash auf dem vorherigen Block in der Hash-Kette immer abhängig ist. Ändern eines haben alle nachfolgenden Blöcke neu zu erstellen.
- mrkl_root - Merkle Wurzel - eine Liste von Hashes Transaktionen. Hash-Einheit muss notwendigerweise bei der Transaktion abhängen, können sie nicht gefälscht werden. Aber Abbildung direkt auf eine lange Zeit, wenn die Zahl der Transaktionen groß ist. So gehasht ersten Transaktionen selbst, und dann werden ihre Hashes verwendet, um einen Hash des Blocks zu berechnen.
Es mag absurd erscheinen - warum doppelte Rechen ein Hash-Wert des gleichen. Aber die Tatsache, dass die Transaktion Hash nur aktualisiert, wenn Sie eine neue Transaktion zu dem Block hinzufügen, und der Block-Header Hash tausende Male pro Sekunde neu berechnet. Darüber hinaus ist die näher an der Header-Größe konstant ist, desto genauer kann seine Zeit zum Berechnen des Hash vorherzusagen.
- Zeit - uint32_t die Schaffung der Einheit darstellt. Maximal zulässige Jahr - 2106.
- bits - Eine der wichtigsten Eigenschaften. Es ist eine verkürzte Form des Ziel Hash-Wert. Ein Block erzeugt (gültig), wenn dessen Hash-Wert kleiner als dieses Ziel. Der Zielwert bestimmt die Komplexität eines Blocks zu schaffen. Was es ist, desto weniger wahrscheinlich ist eine geeignete Hash in einer einzigen Iteration finden. Diese Eigenschaft wird alle zwei Wochen aktualisiert.
Dies geschieht wie folgt. Er zählt die Anzahl der erzeugten Blöcke in den letzten zwei Wochen und im Vergleich mit dem Standard (1 Einheit alle 10 Minuten). Wenn die Blöcke zu viele sind, erhöht die Schwierigkeit. Wenn der Block zu klein ist - reduziert wird. Somit wird das System die Anzahl der Benutzer zu erhöhen angepasst und als Folge wird die Gesamtleistung des Computers.
- Nonce - Eine Zahl , die, ausgehend von Null erhöht wird , nach jeder Iteration der Hash berechnen. Tatsächlich, da es zu viel ist, und als der Hash nicht kleiner als der Zielwert. Jedem neuen Hash unterscheidet sich von dem vorherigen muss mindestens eine der Eigenschaften des Bausteinkopfes verschieden sein.
Beispielsweise ändert eine Version nie. Der Hash des vorherigen Blocks aktualisiert wird, wenn jemand vor uns und wird einen neuen Block erzeugen. Merkle Wurzel wird mit dem Zusatz von Transaktion aktualisiert. Time - alle paar Sekunden. Bits (Zielwert, Komplexität) - alle zwei Wochen. All dies ist zu lang. Um nicht zu warten, für eine der Eigenschaften aktualisiert und dort Nonce.
Betrachten wir eine hypothetische Situation. Alle Nonce Werte wurden geprüft und keine von ihnen ist geeignet. In dieser Zeit hat keine andere Eigenschaft geändert. Es Nonce Überlauf, und es beginnt wieder von vorne. Es stellt sich heraus, dass eine weitere Hashes wiederholt. Zur Vermeidung solcher Situationen nach dem Überlauf der Nonce, wechselnde besondere Eigenschaft eine der Transaktionen. Danach wird aktualisiert Merkle Wurzel und Block-Header-Hashes nicht mehr wiederholt werden.
- n_tx - Die Zahl der Transaktionen auf der Liste.
- Größe - die Blockgröße in Byte.
Transaktionen
Die Transaktionen werden in den Blöcken in Form einer Liste enthalten. Sie, wie auch die in der Kette angeordneten Blöcken. Jede Transaktion sollte angeben, wo es Geld braucht (aus einer aktuellen Transaktion), und wo zu senden.
Für das Ziel mit seinen öffentlichen Schlüssel angeben. Um die Empfänger das Geld verwenden können, muss es eine neue Transaktion erstellen, die Geld aus dem vorherigen nehmen und leiten sie an eine andere Adresse. Um zu beweisen, dass eine Person genau, ihr Geld zu übersetzen verwendet, nicht jemand anderes, muss er seine digitale Signatur in ihre Geschäfte verlassen. Dann jederzeit können Sie sicherstellen, dass alle Transaktionen in dem System gültig sind.
In der Praxis wird dies alles mit den folgenden Eigenschaften realisiert:
- Hash - Hash der gesamten Transaktion. Es stellt sich heraus, dass die Transaktion zweimal gehasht. Zum ersten Mal während der Berechnung des Hash der Transaktion. Zum zweiten Mal während der Berechnung des Hash-Block. Darüber hinaus bezieht sich jeder Block mit dem Hash-Wert des vorherigen Blocks, und jede Transaktion - ein Hash-Wert des vorherigen Transaktion (oder Transaktionen). Wenn Sie die Transaktion und wie durch ein Wunder seinen Hash ist nicht gebrochen zu ändern, dann alle anderen Hashes gebrochen und modifizierte Kette von Blöcken wird von allen Kunden abgelehnt werden.
- ver - Version Transaktionssysteme. Während sie sich nie verändert, so ist es auf 1 überall gleich.
- vin_sz - Die Anzahl der bisherigen Transaktionen, von denen Geld an die neue Adresse übertragen wird. Ein oder mehrere.
- vout_sz - Anzahl der Adressen , an die Geld zu übertragen. Ein oder mehrere.
- lock_time - zwar nicht überall gleich 0. Die Idee verwendet wird , eine anstehende Transaktion zu erstellen, so dass sie dem Strom nicht hinzugefügt werden durch die Einheit erzeugt , sondern, beispielsweise in sleschuyuschy. Es versteht sich, dass diese Eigenschaft auf die Anzahl von Blöcken festgelegt ist, die vor dem Hinzufügen der Transaktion fließen sollte. Dies macht es möglich, dass einige Zeit, um die Transaktion zu ändern und neu zu unterschreiben.
- Größe - Transaktionsgröße in Byte. Es ist die Größe der Transaktion im JSON-Format zu verstehen.
- in - Enthält eine Liste der Eingänge (Quellen) Transaktion. Da die Eingänge Ausgänge früherer Transaktionen (prev_out). Jeder Ausgang verfügt über die folgenden Eigenschaften:
- Hash - Hash der vorherigen Transaktion.
- n - Da die Transaktion mehrere Ausgänge sein können, müssen Sie aus dem von ihnen von Geld kommen , um anzuzeigen. Zu diesem Zweck, und es ist diese Eigenschaft. Es enthält die Sequenznummer der Ausgang der vorherigen Transaktion, mit 0 beginnen.
- scriptSig - Diese Eigenschaft des Absenders muss nachweisen , dass er verwandelt ist ihr Geld, nicht jemand anderes. Dazu ukazavaet er öffentliche Schlüssel der vorherigen Transaktion des Empfängers, t. E. Ein Schlüssel, da es der Empfänger sein muss. Darüber hinaus fügt er hinzu ECDSA Signatur der gleichen Transaktion, die seinen privaten Schlüssel gemacht. Dies beweist, dass er von ihrem eigenen Geld verfügt, nicht jemand anderes.
Nach der Transaktion Listeneinträge (in) zeigt eine Liste der Ausgänge (Out), t. E. Mailing. Jeder Ausgang verfügt über die folgenden Eigenschaften:
- Wert - Enthält die Menge an Geld , die an die neue Adresse übertragen werden. Sie werden aus der vorherigen Transaktion übernommen. Daher sollte diese Zahl nicht die Summe nicht überschreiten. Zum Beispiel wollen wir 10 Münzen pro Transaktion herauszunehmen und 20 der anderen 25 und eine neue Adresse zu senden. Um die restlichen 5 Münzen in nicht gewesen sein, senden wir sie als Veränderung für sich. So ist in unserer Transaktion zwei Ziele sein, von denen wir sind. Der Wert wird immer in nanomonetah angegebenen Bruchzahlen zu vermeiden.
- scriptPubKey - Diese Eigenschaft, zusammen mit scriptSig up - Skript auf dem modifizierten
Der Gesamtbetrag der Geldeingabetransaktion ist immer gleich der Gesamtzahl der Ausgabe. Ansonsten kam das Geld oder aus der Luft oder aus dem Verkehr verschwinden. Aber am Anfang war ein Graph, der zeigt, dass die Anzahl der Geld exponentiell wächst. Also, wo sind das neue Geld im System?
Für meinen Geschmack ist die Frage des Geldes einfach und elegant realisiert. Jeder Block der ersten Transaktion in der Liste eine bestimmte Transaktion. Sie hat immer ein Eingang, der stattdessen eine Eigenschaft von Eigenschaften scriptSig coinbase ist. Diese Eigenschaft kann alles enthalten.
Die Stabilität des Systembetriebs basiert auf der Anzahl von Benutzern basieren, die die offiziellen Client gestartet. Während die meisten von ihnen ist Bitcoin nicht in Gefahr.
Abschluss
Work of Proof (Nachweis der Arbeit) - das Ergebnis der Arbeit, die nur schwer zu erreichen, aber es ist leicht zu überprüfen. Bitcoin Netzwerk auf diesem Prinzip basiert. Überprüfen Hash (Ergebnis der Arbeit) kann ein Bruchteil einer Sekunde. Und um es zu holen, dauert es eine Menge Arbeit.
Hier können wir die Analogie der Goldgewinnung erinnern, die viel Zeit und Ressourcen nimmt. Aber verstehen, dass Gold vor Ihnen, können Sie fast sofort. In diesem Sinne hat Bitcoin auch seinen Wert. Aber es ist nicht notwendig, es als Preis in Dollar oder in den Konten der Elektrizität zu verstehen, die einen Computer bei der Auswahl des Hash verwendet.
Preis in US-Dollar - ist ein wenig anders. Es ist nicht im Bitcoin eingebaut und wird allein durch den Markt bestimmt. Schließlich ist Gold in sich auch einen Preis in US-Dollar nicht garantieren. Es garantiert einzige Person, die Gold gegen Dollar zu tauschen will.
Der ursprüngliche Preis des Goldes wird allein durch diejenigen bestimmt, die sie beschafft. Für die abgebaute Gold als er gefragt für die Bemühungen seiner Produktion zu kompensieren zu können. Und danach in der Goldpreis beginnt, den Markt zu beeinflussen.
Sobald Bitcoin auf den Markt kommen, wird dessen Wert allein durch den Grad des Vertrauens in das System bestimmt. Je mehr Menschen vertrauen, kaufen je mehr die Bitcoin ist, desto mehr Dollar in ihr, und als Folge zu investieren, desto teurer wird es Bitcoin sein.
Bevor die Menschen die Bitcoin vertrauen können, benötigen sie, ob das System ein ausreichendes Maß an Sicherheit hat, um herauszufinden, wie und ob kann es als Geld verwendet werden, t. E. Ob es um die Eigenschaften von Geld hat, die ich am Anfang aufgeführt haben. Finden Sie heraus, sicher, können Sie nur dann funktionieren, in der Prinzipien razobravshit Bitcoin.
Ich hoffe, dass nach diesem Artikel mit Habarhabar Niveau des Vertrauens in Bitcoin zumindest ein wenig wachsen.
Kommentare
im Auge kommentierte halten , dass der Inhalt und der Ton Ihrer Nachrichten , die Gefühle von echten Menschen verletzen können, Respekt und Toleranz gegenüber seinen Gesprächspartnern, auch wenn Sie Ihr Verhalten in Bezug auf die Meinungsfreiheit und die Anonymität des Internets, ändert ihre Meinung nicht teilen, nicht nur virtuell, sondern realen Welt. Alle Kommentare werden aus dem Index, Spam - Kontrolle versteckt.