Die Integration von Bitcoin in den Internet Computer ermöglicht eine direkte und vertrauenslose Interaktion mit dem Bitcoin-Netzwerk, wodurch Smart Contracts Container Bitcoin-Adressen erstellen und Bitcoin direkt senden und empfangen können. Dies eröffnet neue Möglichkeiten für dezentrale Anwendungen und Dienste, wie DeFi, die die Liquidität und Sicherheit von Bitcoin nutzen können, ohne auf zentralisierte Brücken angewiesen zu sein, was die Sicherheit und Effizienz verbessert.

Um die Smart Contracts von Bitcoin in ICP zu aktivieren, war es notwendig, zwei fortgeschrittene Ingenieurherausforderungen zu lösen:

Eine Protokollintegration von ICP mit dem Bitcoin-Netzwerk.

Schlüsselketten-Signaturen basierend auf neuen ECDSA- und Schnorr-Schwellenwertprotokollen.

Protokollintegration von ICP mit der

Das Internet Computer Protocol (IPC) wurde mit dem Bitcoin-Protokoll integriert, um eine direkte technische Integration zwischen beiden Netzwerken zu erreichen. Diese Integration kann in beliebig vielen IPC-Subnetzen aktiviert werden. Derzeit gibt es nur ein Subnetz, das Bitcoin gewidmet ist, und die Anfragen an die Bitcoin-API von Containern in jedem Subnetz werden über die XNet-Kommunikationsfähigkeiten von ICP an dieses Subnetz geroutet. Die Integration erfüllt zwei zentrale Ziele:

Holen Sie sich das UTXO-Set von Bitcoin und halten Sie es im replizierten Zustand des Internet-Computers in Kette, um Anfragen zu UTXO-Sets und Bitcoin-Konten zu beantworten, die von Containern ausgegeben werden.

Signierte Bitcoin-Transaktionen von Containern akzeptieren und an das Bitcoin-Netzwerk senden.

Bitcoin-Integration

von Schlüsselketten

Die Container können ECDSA- und Schnorr-Schlüssel mithilfe der neuartigen ECDSA- und Schnorr-Signaturprotokolle von Schlüsselketten besitzen und somit Bitcoin und andere Vermögenswerte empfangen und speichern. Sie können auch Bitcoin-Transaktionen erstellen und über die Bitcoin-API an das Bitcoin-Netzwerk senden. Sie nutzen die Funktionalität von ECDSA und Schnorr von Schlüsselketten, um Schwellenwertsignaturen zum Ausgeben von UTXOs in einer Transaktion anzufordern, die dann an das Bitcoin-Netzwerk gesendet wird. Schlüsselketten-Signaturen sind weit mehr als eine einfache Implementierung von ECDSA und Schnorr mit Schwellenwert, da sie beispielsweise auch Protokolle für die sichere Generierung und Rotation verteilter Schlüssel umfassen, die aus systemtechnischer Sicht entscheidend sind, damit die Schwellenwertsignatur sicher und praktisch umsetzbar ist. Details zum Schlüsselketten-Signaturprotokoll von ICP finden Sie auf der entsprechenden Dokumentationsseite.

Die Schlüsselketten-Signaturprotokolle stellen eine API im Management-Container bereit, während die Integrationsendpunkte für Bitcoin über den Bitcoin-Container verfügbar sind. Die Low-Level-APIs sind um die Konzepte von UTXO und Bitcoin-Transaktionen herum gestaltet, sind komplex in der Anwendung und erfordern ein tiefes Verständnis der Funktionsweise von Bitcoin. Die ECDSA- und Schnorr-Signatur-APIs von Schlüsselketten sind ebenfalls nützlich für jeden Anwendungsfall, beispielsweise Integrationen mit anderen Blockchains wie Ethereum.

Diese Seite bietet einen Überblick über die zuvor erwähnte Technologie, die die direkte Integration von Bitcoin unterstützt. Für weitere Details wird dem Leser empfohlen, die Bitcoin-Seite im Internet Computer Learn Hub sowie die Dokumentation zu Schwellenwertsignaturen zu konsultieren.

In einem Bitcoin-aktivierten Subnetz stellt ein Bitcoin-Container, der als von NNS verwalteter Wasm-Container implementiert ist, die Integrationsendpunkte für Bitcoin bereit. Der Bitcoin-Container enthält den Bitcoin-Zustand in der Kette: das UTXO-Set, die neuesten Bitcoin-Blöcke, um die Lösung von Forks (instabile Blöcke) zu ermöglichen, und die ausgehenden Transaktionen.

Ein Bitcoin-Adapterprozess auf der Netzwerkschicht verbindet sich mit den Knoten des Bitcoin-Netzwerks, sehr ähnlich wie ein normaler Bitcoin-Knoten.

Wartung des

Der Bitcoin-Container und der Adapter sind integriert und kommunizieren über den ICP-Protokollstapel. Der Bitcoin-Container fordert aufeinanderfolgende Blöcke von den letzten empfangenen Bitcoin-Blöcken des Adapters an. Der Adapter jeder Subnetz-Replik erhält die angeforderten Blöcke vom Bitcoin-Netzwerk, und der Adapter einer Blockgenerierungsreplik stellt den angeforderten Block dem Bitcoin-Container durch Konsens zur Verfügung. Der Bitcoin-Container verarbeitet Blöcke, indem er die Arbeitsnachweisprüfung validiert, die Transaktionen aus dem Block extrahiert, die UTXOs aus den Transaktionen extrahiert und das gehaltene UTXO-Set im replizierten Zustand aktualisiert, um die verbrauchten UTXOs und die durch die Transaktionen geschaffenen UTXOs widerzuspiegeln. Sowohl das UTXO-Set als auch eine Menge von kürzlich noch nicht absorbierten Blöcken (instabile Blöcke) werden verwendet, um auf Anfragen zu UTXOs und Salden zu reagieren.

Die signifikante Komplexität der Implementierung liegt in der sicheren Lösung von Forks und dem Schutz gegen verschiedene Arten von Angriffen. Zum Beispiel muss der Bitcoin-Container eine bestimmte Anzahl von Bitcoin-Blöcken, die noch nicht zum gehaltenen UTXO-Set hinzugefügt wurden, aufrechterhalten, um Forks lösen zu können, aber die enthaltenen UTXOs müssen effizient betrachtet werden, um die UTXOs einer bestimmten Adresse sowie die des UTXO-Sets zu berechnen.

Versand von

Die Container können Bitcoin-Transaktionen an den Bitcoin-Container über einen dedizierten Endpunkt senden. Dies stellt die Transaktionen zur Übermittlung an das Bitcoin-Netzwerk bereit. In jeder Subnetz-Runde erhalten die Adapter die ausstehenden Transaktionen vom Bitcoin-Container und stellen sie zur asynchronen Übermittlung an das Bitcoin-Netzwerk bereit. Dies ermöglicht eine effiziente und schnelle Verteilung der Transaktionen im Bitcoin-Netzwerk, da jede Replik des Subnetzes Transaktionen über mehrere Knoten, die mit dem Bitcoin-Netzwerk verbunden sind, sendet.

von Implementierung

Die Funktionalität von Bitcoin wird in einem einzigen ICP-Subnetz aktiviert, und die API-Aufrufe von den Containern zur Bitcoin-API werden über die XNet-Kommunikation geroutet; daher entsteht eine zusätzliche Latenz. Wenn erforderlich, könnte der Bitcoin-Container in Zukunft zusätzlich in einigen Subnetzen (von Anwendungen) aktiviert werden, um die zusätzliche Latenz von XNet zu vermeiden und mehr Anfragen pro Zeiteinheit zu beantworten.

Die Anfragen für ECDSA mit Schwellenwert werden ebenso von einem aktiven Signatur-Subnetz beantwortet; ein anderes Subnetz sichert den privaten Schlüssel im geheimen gemeinsamen Format für die Katastrophenwiederherstellung.

von Entwicklung, Vorproduktion und Produktion

Die Funktionalität von Bitcoin, einschließlich der Schwellenwertsignaturen, ist in allen Phasen des erforderlichen Entwicklungszyklus in ICP verfügbar:

Das IC-SDK für die lokale Entwicklung von Containern.

Unterstützung von ICP als Vorproduktionsumgebung für abschließende Tests im Bitcoin-Testnetz (v4).

Unterstützung von ICP als Produktionsumgebung für den Launch unter Verwendung des Bitcoin-Mainnet.

lokal

Im typischen Arbeitsablauf der Containerentwicklung werden diese im lokalen Umfeld unter Verwendung des IC-SDK während ihrer Entwicklung kompiliert und ausgeführt. Daher stellt das IC-SDK die erste Phase oder Umgebung des Entwicklungsarbeitsablaufs dar. Das IC-SDK ist in der Lage, die Integration von Bitcoin und die API von ECDSA mit Schwellenwert zu unterstützen.

Im Gegensatz zu den ICP-Implementierungen dieser Funktion, die mit dem Bitcoin-Testnetz und dem Bitcoin-Mainnet integriert sind, integriert sich das SDK mit einem lokalen bitcoind-Knoten im Rückregressionstestmodus (regtest). Die Verwendung von bitcoind im regtest-Modus ist der bevorzugte Weg für die Bitcoin-Entwicklung. Mit dieser Konfiguration erfolgen sowohl die Entwicklung als auch die automatisierten Tests der Smart Contracts zunächst im lokalen Umfeld.

Der Bitcoin-Adapter, der im lokalen Umfeld des SDK ausgeführt wird, verbindet sich mit dem lokalen bitcoind-Knoten anstelle von mehreren Knoten im Testnetz oder dem Bitcoin-Mainnet. Bitte sehen Sie die Ausgabe von dfx start --help für die relevanten dfx-Flags.

Die Bitcoin-Integration im Internet Computer ermöglicht eine direkte und vertrauenslose Interaktion mit dem Bitcoin-Netzwerk, wodurch Container-Smart Contracts Bitcoin-Adressen erstellen und Bitcoin direkt senden und empfangen können. Dies eröffnet neue Möglichkeiten für dezentrale Anwendungen und Dienste wie DeFi, die die Liquidität und Sicherheit von Bitcoin nutzen können, ohne auf zentralisierte Brücken angewiesen zu sein, was die Sicherheit und Effizienz verbessert.

Um die Bitcoin-Smart Contracts in ICP zu aktivieren, war es notwendig, zwei fortgeschrittene Ingenieurchallenges zu lösen:

Eine Protokollintegration von ICP mit dem Bitcoin-Netzwerk.

Schlüsselketten-Signaturen basierend auf neuen ECDSA- und Schnorr-Schwellenwertprotokollen.

Protokollintegration von ICP mit der

Das Internet Computer Protocol (IPC) wurde mit dem Bitcoin-Protokoll integriert, um eine direkte technische Integration zwischen beiden Netzwerken zu erreichen. Diese Integration kann in beliebig vielen IPC-Subnetzen aktiviert werden. Derzeit gibt es nur ein Subnetz, das Bitcoin gewidmet ist, und die Anfragen an die Bitcoin-API von Containern in jedem Subnetz werden über die XNet-Kommunikationsfähigkeiten von ICP an dieses Subnetz geroutet. Die Integration erfüllt zwei zentrale Ziele:

Holen Sie sich das UTXO-Set von Bitcoin und halten Sie es im replizierten Zustand des Internet-Computers in Kette, um Anfragen zu UTXO-Sets und Bitcoin-Konten zu beantworten, die von Containern ausgegeben werden.

Signierte Bitcoin-Transaktionen von Containern akzeptieren und an das Bitcoin-Netzwerk senden.

Bitcoin-Integration

von Schlüsselketten

Die Container können ECDSA- und Schnorr-Schlüssel mithilfe der neuartigen ECDSA- und Schnorr-Signaturprotokolle von Schlüsselketten besitzen und somit Bitcoin und andere Vermögenswerte empfangen und speichern. Sie können auch Bitcoin-Transaktionen erstellen und über die Bitcoin-API an das Bitcoin-Netzwerk senden. Sie nutzen die Funktionalität von ECDSA und Schnorr von Schlüsselketten, um Schwellenwertsignaturen zum Ausgeben von UTXOs in einer Transaktion anzufordern, die dann an das Bitcoin-Netzwerk gesendet wird. Schlüsselketten-Signaturen sind weit mehr als eine einfache Implementierung von ECDSA und Schnorr mit Schwellenwert, da sie beispielsweise auch Protokolle für die sichere Generierung und Rotation verteilter Schlüssel umfassen, die aus systemtechnischer Sicht entscheidend sind, damit die Schwellenwertsignatur sicher und praktisch umsetzbar ist. Details zum Schlüsselketten-Signaturprotokoll von ICP finden Sie auf der entsprechenden Dokumentationsseite.

Die Schlüsselketten-Signaturprotokolle stellen eine API im Management-Container bereit, während die Integrationsendpunkte für Bitcoin über den Bitcoin-Container verfügbar sind. Die Low-Level-APIs sind um die Konzepte von UTXO und Bitcoin-Transaktionen herum gestaltet, sind komplex in der Anwendung und erfordern ein tiefes Verständnis der Funktionsweise von Bitcoin. Die ECDSA- und Schnorr-Signatur-APIs von Schlüsselketten sind ebenfalls nützlich für jeden Anwendungsfall, beispielsweise Integrationen mit anderen Blockchains wie Ethereum.

Diese Seite bietet einen Überblick über die zuvor erwähnte Technologie, die die direkte Integration von Bitcoin unterstützt. Für weitere Details wird dem Leser empfohlen, die Bitcoin-Seite im Internet Computer Learn Hub sowie die Dokumentation zu Schwellenwertsignaturen zu konsultieren.

In einem Bitcoin-aktivierten Subnetz stellt ein Bitcoin-Container, der als von NNS verwalteter Wasm-Container implementiert ist, die Integrationsendpunkte für Bitcoin bereit. Der Bitcoin-Container enthält den Bitcoin-Zustand in der Kette: das UTXO-Set, die neuesten Bitcoin-Blöcke, um die Lösung von Forks (instabile Blöcke) zu ermöglichen, und die ausgehenden Transaktionen.

Ein Bitcoin-Adapterprozess auf der Netzwerkschicht verbindet sich mit den Knoten des Bitcoin-Netzwerks, sehr ähnlich wie ein normaler Bitcoin-Knoten.

Wartung des

Der Bitcoin-Container und der Adapter sind integriert und kommunizieren über den ICP-Protokollstapel. Der Bitcoin-Container fordert aufeinanderfolgende Blöcke von den letzten empfangenen Bitcoin-Blöcken des Adapters an. Der Adapter jeder Subnetz-Replik erhält die angeforderten Blöcke vom Bitcoin-Netzwerk, und der Adapter einer Blockgenerierungsreplik stellt den angeforderten Block dem Bitcoin-Container durch Konsens zur Verfügung. Der Bitcoin-Container verarbeitet Blöcke, indem er die Arbeitsnachweisprüfung validiert, die Transaktionen aus dem Block extrahiert, die UTXOs aus den Transaktionen extrahiert und das gehaltene UTXO-Set im replizierten Zustand aktualisiert, um die verbrauchten UTXOs und die durch die Transaktionen geschaffenen UTXOs widerzuspiegeln. Sowohl das UTXO-Set als auch eine Menge von kürzlich noch nicht absorbierten Blöcken (unstabile Blöcke) werden verwendet, um auf Anfragen zu UTXOs und Salden zu reagieren.

Die signifikante Komplexität der Implementierung liegt in der sicheren Lösung von Forks und dem Schutz gegen verschiedene Arten von Angriffen. Zum Beispiel muss der Bitcoin-Container eine bestimmte Anzahl von Bitcoin-Blöcken, die noch nicht zum gehaltenen UTXO-Set hinzugefügt wurden, aufrechterhalten, um Forks lösen zu können, aber die enthaltenen UTXOs müssen effizient betrachtet werden, um die UTXOs einer bestimmten Adresse sowie die des UTXO-Sets zu berechnen.

Versand von

Die Container können Bitcoin-Transaktionen an den Bitcoin-Container über einen dedizierten Endpunkt senden. Dies stellt die Transaktionen zur Übermittlung an das Bitcoin-Netzwerk bereit. In jeder Subnetz-Runde erhalten die Adapter die ausstehenden Transaktionen vom Bitcoin-Container und stellen sie zur asynchronen Übermittlung an das Bitcoin-Netzwerk bereit. Dies ermöglicht eine effiziente und schnelle Verteilung der Transaktionen im Bitcoin-Netzwerk, da jede Replik des Subnetzes Transaktionen über mehrere Knoten, die mit dem Bitcoin-Netzwerk verbunden sind, sendet.

von Implementierung

Die Funktionalität von Bitcoin wird in einem einzigen ICP-Subnetz aktiviert, und die API-Aufrufe von den Containern zur Bitcoin-API werden über die XNet-Kommunikation geroutet; daher entsteht eine zusätzliche Latenz. Wenn erforderlich, könnte der Bitcoin-Container in Zukunft zusätzlich in einigen Subnetzen (von Anwendungen) aktiviert werden, um die zusätzliche Latenz von XNet zu vermeiden und mehr Anfragen pro Zeiteinheit zu beantworten.

Die Anfragen für ECDSA mit Schwellenwert werden ebenso von einem aktiven Signatur-Subnetz beantwortet; ein anderes Subnetz sichert den privaten Schlüssel im geheimen gemeinsamen Format für die Katastrophenwiederherstellung.

von Entwicklung, Vorproduktion und Produktion

Die Funktionalität von Bitcoin, einschließlich der Schwellenwertsignaturen, ist in allen Phasen des erforderlichen Entwicklungszyklus in ICP verfügbar:

Das IC-SDK für die lokale Entwicklung von Containern.

Unterstützung von ICP als Vorproduktionsumgebung für abschließende Tests im Bitcoin-Testnetz (v4).

Unterstützung von ICP als Produktionsumgebung für den Launch unter Verwendung des Bitcoin-Mainnet.

lokal

Im typischen Arbeitsablauf der Containerentwicklung werden diese im lokalen Umfeld unter Verwendung des IC-SDK während ihrer Entwicklung kompiliert und ausgeführt. Daher stellt das IC-SDK die erste Phase oder Umgebung des Entwicklungsarbeitsablaufs dar. Das IC-SDK ist in der Lage, die Integration von Bitcoin und die API von ECDSA mit Schwellenwert zu unterstützen.

Im Gegensatz zu den ICP-Implementierungen dieser Funktion, die mit dem Bitcoin-Testnetz und dem Bitcoin-Mainnet integriert sind, integriert sich das SDK mit einem lokalen bitcoind-Knoten im Rückregressionstestmodus (regtest). Die Verwendung von bitcoind im regtest-Modus ist der bevorzugte Weg für die Bitcoin-Entwicklung. Mit dieser Konfiguration erfolgen sowohl die Entwicklung als auch die automatisierten Tests der Smart Contracts zunächst im lokalen Umfeld.

Der Bitcoin-Adapter, der im lokalen Umfeld des SDK ausgeführt wird, verbindet sich mit dem lokalen bitcoind-Knoten anstelle von mehreren Knoten im Testnetz oder dem Bitcoin-Mainnet. Bitte sehen Sie die Ausgabe von dfx start --help für die relevanten dfx-Flags.

Bitte beachten Sie, dass die Gebühren für den Aufruf der Endpunkte bitcoin_get_utxos und bitcoin_get_block_headers von der Anzahl der Wasm-Anweisungen abhängen, die der Bitcoin-Container beim Verarbeiten der Anfragen verbraucht, um eine faire Abrechnung sicherzustellen.

Um zu beginnen, Ihre eigenen Anwendungen mit Bitcoin zu erstellen, konsultieren Sie die folgenden Tutorials:

Implementierung ihrer ersten Bitcoin-DApp.

Lokale Entwicklung

Bitte beachten Sie, dass die Gebühren für den Aufruf der Endpunkte bitcoin_get_utxos und bitcoin_get_block_headers von der Anzahl der Wasm-Anweisungen abhängen, die der Bitcoin-Container beim Verarbeiten der Anfragen verbraucht, um eine faire Abrechnung sicherzustellen.

Um zu beginnen, Ihre eigenen Anwendungen mit Bitcoin zu erstellen, konsultieren Sie die Tutorials:

Implementierung ihrer ersten Bitcoin-DApp.

Lokale Entwicklung

Att x39#icp #sol #DOLO