Snapshot-Datum
BTC
Rücklagen-Verhältnis*
100.3 %
ETH
Rücklagen-Verhältnis*
101.3 %
SOL
Rücklagen-Verhältnis*
101.1 %
USDC
Rücklagen-Verhältnis*
105 %+
USDT
Rücklagen-Verhältnis*
105 %+
XRP
Rücklagen-Verhältnis*
100.6 %
ADA
Rücklagen-Verhältnis*
102.2 %
Verantwortlichkeit, regelmäßige Überprüfungen
Bei Kraken bieten wir nicht nur die Möglichkeit, mit innovativen digitalen Assets zu traden, sondern arbeiten auch daran, die Transparenz der Open-Source-Blockchains, auf der sie basieren, zu nutzen.
Mit unseren regelmäßigen Überprüfungen zum Nachweis von Rücklagen können Kunden mit nur wenigen Klicks in ihrem Konto überprüfen, ob ihre Guthaben durch echte Assets gedeckt sind.
Mit dem fortschrittlichen kryptografischen Buchhaltungsverfahren Nachweis von Rücklagen, das regelmäßig von vertrauenswürdigen Wirtschaftsprüfern durchgeführt wird, kannst du überprüfen, ob Kraken strenge Standards für die Rechenschaftspflicht einhält und die von alten Finanzunternehmen gebotene Transparenz übertrifft.
Häufig gestellte Fragen
Worum handelt es sich beim Nachweis von Rücklagen?
Eine Überprüfung des Nachweis von Rücklagen (PoR) ist ein Verfahren, das von einem unabhängigen externen Wirtschaftsprüfer durchgeführt wird. Zweck dieser Bestätigung ist es, nachzuweisen, dass der Verwahrer die im Namen seiner Kunden ausgewiesenen Assets tatsächlich hält. Dieser Wirtschaftsprüfer erstellt einen anonymisierten Snapshot aller Guthaben und fasst sie in einem Hash-Baum zusammen (eine datenschutzfreundliche Datenstruktur, die alle Kundenguthaben zusammenfasst).
Von dort erhält der Wirtschaftsprüfer eine Merkle-Root, einen kryptografischen Fingerabdruck, der die Kombination dieser Guthaben zum Zeitpunkt der Erstellung des Snapshots eindeutig identifiziert.
Der Wirtschaftsprüfer sammelt dann von Kraken erstellte digitale Signaturen, die den Besitz der On-Chain-Adressen mit öffentlich überprüfbaren Guthaben belegen. Abschließend vergleicht und überprüft der Wirtschaftsprüfer, ob diese Guthaben die im Hash-Baum dargestellten Kundenguthaben übersteigen oder mit ihnen übereinstimmen und ob die Kunden-Assets daher der Kontrolle von Kraken unterliegen.
Jeder Kunde kann unabhängig überprüfen, ob sein Guthaben in das Verfahren zum Nachweis von Rücklagen einbezogen wurde, indem er ausgewählte Daten mit der Merkle-Root vergleicht. Alle an den übrigen Daten vorgenommenen Änderungen – egal wie klein sie sind, wirken sich auf die Root aus – und legen Manipulationen offen.
Unseren Bericht zum Nachweis von Rücklagen findest du hier.
Was wird mit dem Nachweis von Rücklagen abgedeckt?
Spot-Guthaben
Die Überprüfung umfasst all deine Guthaben in den betreffenden Assets, die zum Zeitpunkt des Snapshots gehalten wurden. Die folgenden Assets sind in der neuesten Überprüfung enthalten: Bitcoin (BTC), Ether (ETH), Solana (SOL), USD Coin (USDC), Tether (USDT), und Ripple (XRP).
Staking-Guthaben
Wenn du zum Zeitpunkt des Snapshots Guthaben im On-Chain-Staking gehalten hast, wird der Wert deines gestakten Guthabens mit deinem Spot-Guthaben zu einem einzigen Guthaben zusammengefasst.
Margin-Trading
Wenn du zu dieser Zeit Margin-Positionen hattest, verändert sich dein Gesamtguthaben um die positiven Positionswerte.
Beispiel 1
Wenn du 1 BTC/USD zu 30.000 USD auf Margin gekauft hast und deine Position offen ist, spiegelt das Guthaben deines Nachweis von Rücklagen eine positive Anpassung deines BTC-Guthabens von +1 BTC wider. Es gibt keine negative Anpassung deines USD-Guthabens. Dein BTC-Asset-Guthaben, das von Kraken verwahrt wird, umfasst dein aktuelles BTC-Guthaben, angepasst um die positive Anpassung von +1 BTC für deine Margin-Position. Dein USD-Asset-Guthaben bleibt gleich.
Beispiel 2
Wenn du 1 BTC/USD zu 15 ETH auf Margin verkauft hast und deine Position offen ist, spiegelt das Guthaben deines Nachweis von Rücklagen eine positive Anpassung deines ETH-Guthabens von +15 ETH wider. Es gibt keine negative Anpassung deines BTC-Guthabens. Dein ETH-Asset-Guthaben, das von Kraken verwahrt wird, umfasst dein aktuelles ETH-Guthaben, angepasst um die positive Anpassung von +15 ETH für deine Margin-Positionen. Dein von Kraken verwahrtes BTC-Asset-Guthaben bleibt gleich.
Hinweis: Die oben beschriebene Futures-Methodik tritt mit den Überprüfungen des Nachweis von Rücklagen im Mai 2023 in Kraft.
Futures-Guthaben
Wenn du zum Zeitpunkt der Überprüfung Guthaben in deiner Futures-Wallet hattest, gibt es einen separaten Bericht für den Nachweis von Rücklagen deiner Futures-Sicherheiten-Guthaben. Deine Guthaben werden um nicht realisierte Gewinne und Verluste aus Futures-Trades mit einfacher Besicherung angepasst. Dies umfasst dieselben Assets wie bei Spot und Margin und ist Teil desselben Hash-Baums (mit eigener Merkle-Leaf-ID).
Beispiel 1
Wenn du 1 BTC in deiner Futures-Wallet hattest und eine Position in BTC-Perp mit einfacher Besicherung eröffnest, die einen nicht realisierten Gewinn und Verlust von -0,1 BTC aufweist, dann beträgt dein von Kraken verwahrtes BTC-Guthaben 0,9 BTC (dein 1 BTC, angepasst um -0,1 BTC für den nicht realisierten GuV).
Beispiel 2
Wenn du 1 BTC in deiner Futures-Wallet hattest und eine Position in BTC-Perp mit mehrseitiger Besicherung eröffnest, die einen nicht realisierte Gewinn und Verlust von -100 USD aufweist, dann beträgt dein von Kraken verwahrtes BTC-Guthaben 1 BTC (dein 1 BTC wird nicht um den nicht realisierten GuV angepasst, da dieser in USD erfasst wird und USD in dieser Überprüfung nicht einbezogen wird).
Hinweis: Die oben beschriebene Futures-Methodik tritt mit den Überprüfungen des Nachweis von Rücklagen im Mai 2023 in Kraft.
Wie kann ich prüfen, ob mein Konto in die Verifizierung des Nachweis von Rücklagen einbezogen wurde?
Einfache Verifizierung
Befolge diese Schritte, um die Einbeziehung des Guthabens deines Kraken Kontos in die neueste Überprüfung des Nachweis von Rücklagen kryptografisch zu verifizieren.
Hinweis: Diese Prüfung spiegelt nur die Guthaben deines Kontos in den relevanten Assets zum Zeitpunkt der Überprüfung wider. Es werden weder spätere Trades oder Transaktionen noch Guthaben in Assets berücksichtigt, die nicht Teil der Überprüfung waren.
1. Melde dich bei deinem Kraken Konto an und gehe in Kraken Pro (pro.kraken.com) zur Seite „Nachweis von Rücklagen” (Kontosymbol > Nachweis von Rücklagen).
2. Wähle die Registerkarte Nachweis von Rücklagen. Dazu gehören unsere aktuellsten verifizierten -Verhältnis sowie spezifische Informationen zu deinem Konto. In deinem Konto werden die aktuellsten Berichte zum Nachweis von Rücklagen angezeigt, in denen dein Guthaben verifiziert wurde, einschließlich des Datums des Berichts, des Anbieters und des Umfangs der Bewertung.
3. Wähle das Datum aus und klicke auf Verifizieren. Hier findest du die Bestätigung der zum Zeitpunkt der Überprüfung vorhandenen Guthaben sowie eine Anleitung zur Verifizierung deiner Details.
Mit dem externen Wirtschaftsprüfer verifizieren
-
Verwende deine Merkle-Leaf-ID: Kopiere die ersten 16 Zeichen und gib sie im Tool des externen Wirtschaftsprüfers ein, um deine Guthaben abzurufen und deine ID im Hash-Baum-Pfad zu überprüfen. Das Tool des externen Wirtschaftsprüfers öffnet sich in einem separaten Fenster.
Hinweis: Dies ist seit den Überprüfungen ab 2023 verfügbar. Bei früheren Überprüfungen findest du die Verifizierungs-Tools auf der Website unseres Partners.
Mit Kraken verifizieren
- Verifiziere deine Datensatz-ID: Befolge die Schritte, um deine Datensatz-ID wiederherzustellen. Diese identifiziert eindeutig deine Kontodaten sowie die Überprüfungs-ID (eindeutig für jedes Berichtsdatum).
- Verifiziere deine Merkle-Leaf-ID: Befolge die Schritte, um deine Merkle-Leaf-ID wiederherzustellen. Diese identifiziert eindeutig dein Konto zusammen mit den Guthaben, die zum Zeitpunkt der Überprüfung gehalten wurden.
- Bestätige deine Merkle-Leaf-ID im Hash-Baum: Bestätige, dass deine ID zum Hash-Baum gehört und validiere den Pfad zur Hash-Baum-Root. Diese wird von unserem externen Wirtschaftsprüfer verifiziert und mit allen Kunden geteilt.
Hinweis: Dies ist seit den Überprüfungen ab 2023 verfügbar. Bei früheren Überprüfungen findest du die Verifizierungs-Tools auf der Website unseres Partners.
Erweiterte Verifizierung
Technisch versierte Kunden möchten möglicherweise ihren speziellen Hash-Baum-Leaf-Node-Hash selbst rekonstruieren und ihre Guthaben programmgesteuert im Hash-Baum abrufen, anstatt die visuellen Tools von Kraken oder einem externen Wirtschaftsprüfer zu verwenden.
Du kannst die folgenden Verifizierungsschritte im Code ausführen:
-
Du kannst die Generierung deiner Hash-Baum-Leaf-ID für dein Konto anhand der folgenden Schritte verifizieren.
-
Du kannst den Hash-Baum-Pfad für deine Leaf-ID verifizieren und den Pfad von deiner Position zur Root-Node rekonstruieren. Wir bieten vollständige Transparenz und geben auch die IDs deiner Geschwister-Leafs an.
Die erforderlichen Schritte in Pseudocode zur Rekonstruktion der Datensatz-ID und des Merkle-Leafs aus deinem Kontocode, Kraken IIBAN, Überprüfungs-ID und Guthaben sind unten aufgeführt. Beachte, dass die Ergebnisse empfindlich auf die jeweilige Zeichenfolgenformatierung der Guthaben und die Reihenfolge der geprüften Assets reagieren, wie sie auf der Seite „Nachweis von Rücklagen” angezeigt werden.
- Datensatz-ID = SHA256(concatenate(Account Code, Kraken IIBAN, Review ID))
- Guthaben = ""
- Für jedes Asset:
- Guthaben = concatenate(Asset, ":", AssetBalances[asset])
- Merkle Hash = concatenate(Record ID, “,”, Balances)
- Merkle Leaf = substring(SHA256(Merkle Hash), 0, 16)
Nach dem dein Merkle-Leaf identifiziert wurde, kannst du eine SHA256-Verifizierung mit HEX-Werten nutzen, um den Hash-Baum-Pfad zu rekonstruieren.
Konkrete Beispiele werden auch in den folgenden Codeausschnitten gezeigt. Das resultierende Merkle-Leaf ist auch in den Überprüfungsdetails sichtbar, damit du überprüfen kannst, ob du es korrekt rekonstruiert hast.
Python
import hashlib
# Merkle Leaf ID calculation
account_code = "8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1"
iiban = "AB12C34DEFG5KSQI"
review_id = "PR30SEP24"
record_id = hashlib.sha256((account_code + iiban + review_id).encode('utf-8')).hexdigest()
balances = "BTC:0.00093799,ETH:0.0422125592,SOL:0.0,USDC:0.0,USDT:6.72754,XRP:0.0"
print("Record ID: {}".format(record_id))
print("Merkle Hash: {}".format((record_id + "," + balances)))
hash_result = hashlib.sha256((record_id + "," + balances).encode('utf-8')).hexdigest()
print("SHA Result: {}".format(hash_result))
print("Merkle Leaf: {}".format(hash_result[0:16]))
#Merkle Tree Path function
def mix(x, y):
a = bytes.fromhex(x)
b = bytes.fromhex(y)
d = hashlib.sha256()
d.update(a)
d.update(b)
return d.hexdigest()Rust
use sha2::{Digest, Sha256};
//Merkle Leaf ID calculation
const ACCOUNT_CODE: &str = "8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1";
const IIBAN: &str = "AB12C34DEFG5KSQI";
const REVIEW_ID: &str = "PR30SEP24";
const BALANCES: &str = "BTC:0.00093799,ETH:0.0422125592,SOL:0.0,USDC:0.0,USDT:6.72754,XRP:0.0";
fn main() {
let mut record_hasher: Sha256 = Default::default();
record_hasher.update(ACCOUNT_CODE);
record_hasher.update(IIBAN);
record_hasher.update(REVIEW_ID);
let record_id = format!("{:x}", record_hasher.finalize());
let merkle_hash = format!("{},{}", record_id, BALANCES);
let mut merkle_hasher: Sha256 = Default::default();
merkle_hasher.update(&merkle_hash);
let merkle_result = format!("{:x}", merkle_hasher.finalize());
println!("Record ID: {}", record_id);
println!("Merkle Hash: {}", merkle_hash);
println!("SHA Result: {}", merkle_result);
println!("Merkle Leaf: {}", &merkle_result[..16]);
}
//Merkle Tree Path function
fn mix(x: &str, y: &str) -> Result<String, hex::FromHexError> {
let mut leaves_hasher: Sha256 = Default::default();
let a = hex::decode(x)?;
let b = hex::decode(y)?;
leaves_hasher.update(&a);
leaves_hasher.update(&b);
Ok(hex::encode(leaves_hasher.finalize()))
}
fn main() {
println!("{}", mix("f42372aeb1be7296", "dfcced6ec3235f5e").unwrap());
assert_eq!(
mix("f42372aeb1be7296", "dfcced6ec3235f5e").unwrap(),
"ad86a5ee2f21347403ce07e365530604690454fa76787e76be9d2f6efdceeabf"
);
}Go
package main
import (
"crypto/sha256"
"fmt"
)
//Merkle Leaf ID Calculation
func main() {
accountCode := "8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1"
iiban := "AB12C34DEFG5KSQI"
reviewId := "PR30SEP24"
secret := accountCode + iiban + reviewId
data := []byte(secret)
hash := sha256.Sum256(data)
recordId := string(hash[:])
fmt.Printf("Record ID: %x\n", recordId)
balances := "BTC:0.00093799,ETH:0.0422125592,SOL:0.0,USDC:0.0,USDT:6.72754,XRP:0.0"
merkleHash := fmt.Sprintf("%x%s%s", recordId, ",", balances)
fmt.Printf("Merkle Hash: %s\n", merkleHash)
hashResult := sha256.Sum256([]byte(merkleHash))
hashResultStr := string(hashResult[:])
fmt.Printf("SHA Result: %x\n", hashResultStr)
fmt.Printf("Merkle Leaf: %x\n", hashResultStr[0:8])
}
//Merkle Tree path hashing
func mix(x, y string) (string, error) {
// Convert the hex strings to bytes
a, err := hex.DecodeString(x)
if err != nil {
return "", err
}
b, err := hex.DecodeString(y)
if err != nil {
return "", err
}
h := sha256.New()
h.Write(a)
h.Write(b)
// Get the final hash value as a byte slice
hashed := h.Sum(nil)
// Convert the hash to a hex string and return it
return hex.EncodeToString(hashed), nil
}
func main() {
result, _ := mix("f42372aeb1be7296", "dfcced6ec3235f5e")
fmt.Println(result)
}Bash
#!/bin/bash
#Merkle Leaf ID calculation
ACCOUNT_CODE="8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1"
IIBAN="AB12C34DEFG5KSQI"
REVIEW_ID="PR30SEP24"
RECORD_ID=$(echo -n "${ACCOUNT_CODE}${IIBAN}${REVIEW_ID}" | sha256sum | head -c 64)
BALANCES="BTC:0.00093799,ETH:0.0422125592,SOL:0.0,USDC:0.0,USDT:6.72754,XRP:0.0"
MERKLE_HASH="${RECORD_ID},${BALANCES}"
HASH_RESULT=$(echo -n ${MERKLE_HASH} | sha256sum | head -c 64)
echo "Record ID: ${RECORD_ID}"
echo "Merkle Hash: ${MERKLE_HASH}"
echo "SHA Result: ${HASH_RESULT}"
echo "Merkle Leaf: $(echo -n ${HASH_RESULT} | head -c 16)"
#Merkle Tree Path function
hex_string1="f42372aeb1be7296"
hex_string2="dfcced6ec3235f5e"
# convert hex strings to binary, concatenate them and then hash
hash_result=$(echo -n "$(echo -n $hex_string1 | xxd -r -p)$(echo -n $hex_string2 | xxd -r -p)" | sha256sum | awk '{ print $1 }')
echo $hash_resultMängel und zukünftige Verbesserungen
Im Interesse der Transparenz möchten wir einige der festgestellten Mängel im Prozess des Nachweis von Rücklagen offenlegen.
- Ein Nachweis von Rücklagen beinhaltet den Beweis der Kontrolle über On-Chain-Gelder zum Zeitpunkt der Überprüfung, kann jedoch nicht den ausschließlichen Besitz von privaten Schlüsseln nachweisen, die theoretisch von einem Angreifer dupliziert worden sein könnten.
- Das Verfahren kann keine versteckten Belastungen identifizieren oder nachweisen, dass keine Gelder aufgenommen wurden, um die Überprüfung zu bestehen. Seit der letzten Überprüfung können außerdem Schlüssel verloren gegangen oder Gelder gestohlen worden sein.
- Der Wirtschaftsprüfer muss kompetent und unabhängig sein, um das Risiko von Doppelungen seitens des Geprüften oder von Absprachen zwischen den Parteien zu minimieren.
- Wir versuchen, einige dieser Mängel zu beheben, indem wir für unseren Nachweis von Rücklagen eine angesehene, unabhängige Drittfirma beauftragen und diese Überprüfungen in regelmäßigen Abständen durchführen. Wir bieten auch Transparenz über diese Daten direkt in unserer Kundenplattform.
Die Zahlen des Rücklagen-Verhältnisses, die oben mit einem Sternchen (*) markiert sind, können sich beim Vergleich der Berichte des Nachweises von Rücklagen von Kraken aufgrund von Produktänderungen und -verbesserungen unserer Verwahrungsinfrastruktur im Laufe der Zeit erheblich ändern. Dies kann sich auf die Klassifizierung bestimmter in diesen Wallets gehaltener Assets auswirken. In Übereinstimmung mit der aktuellen Vorgehensweise ist in allen Berichten eine Erläuterung der genauen Methodik zum Nachweis von Rücklagen enthalten.