Wie ist Pay-to-Pubkey-Hash entstanden? Was ist seine Geschichte?

Wir wissen, dass früher alle verwendeten Pay-to-Pubkey (p2pk) blockiert werden, und irgendwann haben wir meistens auf Pay-to-Pubkey-Hash (p2pkh) umgestellt. Was ist die Geschichte dahinter? Wer hat die Änderungen vorgenommen und wann wurde p2pkh zum Standard?

Hat dies auch etwas mit der Umstellung auf komprimierte Tasten zu tun?

Dieser Beitrag bietet eine teilweise Antwort / einen Zeitplan für Ihre Frage: bitcoin.stackexchange.com/questions/63699/… . Komprimierte Pubkeys helfen, die Größe der Blockchain zu reduzieren, afaik bezieht sich die Ablehnung von p2pk nicht direkt darauf (afaik, ein p2pk-TX, das mit einem komprimierten Schlüssel erstellt wurde, ist tatsächlich kleiner als ein p2pkh-TX, das mit demselben Schlüssel erstellt wurde). Jemand mit einem besseren Verständnis der Entwicklungsgeschichte könnte wahrscheinlich eine bessere Antwort geben als ich.
Diese Frage ist ebenfalls relevant: bitcoin.stackexchange.com/questions/32639/…

Antworten (2)

Pay-to-Public-Key-Hash existiert seit Bitcoins gesamtem Leben. P2PKH-Adressen gibt es seit der frühesten Veröffentlichung von Bitcoin. Das Erstellen von P2PKH-Adressen und das Senden an P2PKH-Adressen war mit Bitcoin 0.1.0 möglich.

Diese frühen Versionen von Bitcoin unterstützten jedoch auch eine Pay-to-IP-Adressfunktion, bei der Ihre Brieftasche die Brieftasche unter einer bestimmten IP-Adresse kontaktieren und einen scriptPubKey zum Senden anfordern würde. Die Antwort wäre ein P2PK scriptPubKey und somit würden Sie P2PK-Ausgaben erstellen.

Auch Blöcke wurden zu P2PK-Ausgängen abgebaut, und tatsächlich tut Bitcoin Core dies immer noch. Der interne Miner von Bitcoin Core (der jetzt nur noch für Regtest und Testnet verwendet wird) erstellt immer noch P2PK-Ausgaben anstelle von P2PKH-Ausgaben.

Pay to IP wurde schließlich in Bitcoin 0.3.13 eingestellt, als seine Verwendung hinter einem Befehlszeilenschalter -allowreceivebyipin Commit verborgen war 172f0060(beachten Sie, dass der Autor Satoshi ist, er scheint jedoch auch Code von jemand anderem eingebaut zu haben). Die Möglichkeit, an IP zu senden, wurde in Bitcoin 0.5.0 entfernt, wobei die letzten Reste des Netzwerkcodes im Zusammenhang mit Pay to IP in Bitcoin 0.8.0 entfernt wurden.

Es war vor der Entfernung von Pay to IP bekannt, dass es unsicher war. Da die einzige andere Möglichkeit zur Transaktion über Adressen war, war P2PKH bereits weit verbreitet, wobei P2PK anscheinend nie viel Verwendung fand, da es nur für Pay to IP und für vom Bitcoin-Client erstellte Blöcke verwendet wurde.

Als externe Mining-Software auf den Markt kam, begannen Blöcke, P2PKH anstelle von P2PK zu verwenden, da es einfacher war, eine Adresse aus Ihrer Brieftasche in einen externen Miner einzugeben, als einen Pubkey zu erhalten und einzugeben. Die Leute waren zu diesem Zeitpunkt auch daran gewöhnt, Adressen zu verwenden, und Adressen funktionieren nur für P2PKH-Ausgaben.

Der früheste Client von Satoshi hatte beides.

P2PK war Standard für Mining und Zahlungen, die über das interaktive IP-zu-IP-Zahlungsprotokoll empfangen wurden; P2PKH war für die Verwendung in nicht interaktiven Zahlungen vorgesehen.

Komprimierte Schlüssel wurden später entdeckt und es war keine Änderung der Software erforderlich, um sie zu unterstützen.