Dovada rezervelor

Dovada siguranței fondurilor tale, oricând dorești.

Dată instantaneu

BTC icon

BTC

Raportul rezervelor*

100.3%

ETH icon

ETH

Raportul rezervelor*

101.3%

SOL icon

SOL

Raportul rezervelor*

101.1%

USDC icon

USDC

Raportul rezervelor*

Peste 105%

USDT icon

USDT

Raportul rezervelor*

Peste 105%

XRP icon

XRP

Raportul rezervelor*

100.6%

ADA icon

ADA

Raportul rezervelor*

102.2%

Responsabilitate, verificări regulate

La Kraken, nu doar că îți oferim capacitatea de a tranzacționa cu cele mai avansate active digitale, ci depunem eforturi pentru a valorifica transparența blockchainurilor open-source pe care operează.

Revizuirile periodice ale dovezilor de rezerve le facilitează clienților verificarea soldurilor pe care le dețin, asigurându-se că acestea sunt susținute de active reale, totul cu doar câteva clicuri în contul lor.

O procedură avansată de contabilitate criptografică efectuată în mod regulat de contabili de încredere, Dovada rezervelor îți permite să verifici dacă Kraken respectă standarde riguroase de responsabilitate și dacă depășește nivelul de transparență oferit de firmele financiare tradiționale.

Întrebări frecvente

Ce este dovada rezervelor?

O verificare a dovezii rezervelor (PoR) este o procedură efectuată de un contabil terț independent. Aceasta este menită să confirme faptul că un custode deține activele pe care susține că le deține în numele clienților săi. Acest contabil realizează un instantaneu anonim al tuturor soldurilor deținute și le agregă într-un arbore Merkle – o structură de date care respectă confidențialitatea și care încapsulează toate soldurile clienților.

Merkle Root Hash

De acolo, contabilul obține o rădăcină Merkle: o amprentă criptografică ce identifică în mod unic combinația acestor solduri la momentul creării instantaneului.

Contabilul colectează apoi semnăturile digitale generate de Kraken, care dovedesc dreptul de proprietate asupra adreselor din lanțul de blocuri cu solduri verificabile public. În cele din urmă, contabilul compară și verifică dacă aceste solduri depășesc soldurilor clienților reprezentate în arborele Merkle sau corespund cu acestea și, prin urmare, dacă activele clienților se află sub controlul Kraken.

Orice client poate verifica în mod independent dacă soldul său a fost inclus în procedura pentru dovada rezervelor, comparând anumite date cu rădăcina Merkle. Orice modificare adusă restului datelor, oricât de mică ar fi, va afecta rădăcina, făcând evidentă falsificarea.

Raportul nostru de dovadă a rezervelor poate fi găsit aici.

Ce acoperă dovada rezervelor?

Solduri spot

Verificarea va conține toate soldurile tale în activele aplicabile, deținute la momentul la care a fost realizat instantaneul. Următoarele active sunt aplicabile, de la data celei mai recente verificări: Bitcoin (BTC), Ether (ETH), Solana (SOL), USD Coin (USDC), Tether (USDT) și Ripple (XRP).

Solduri de staking

Dacă aveai solduri alocate pentru staking on-chain la momentul instantaneului, valoarea soldului tău pus în staking va fi agregată cu soldul spot într-un singur sold.

Tranzacționare pe marjă

Dacă aveai poziții de marjă la momentul respectiv, atunci ai vedea soldul total ajustat conform valorilor pozitive ale pozițiilor.

Exemplul 1

Dacă ai cumpărat 1 BTC/USD la 30.000 USD pe marjă și poziția ta este deschisă, soldul tău din dovada rezervelor va reflecta o ajustare pozitivă cu +1 BTC pentru soldul tău BTC. Nu va exista o ajustare negativă a soldului tău USD. Soldul tău de activ BTC deținut în custodia Kraken va include soldul tău BTC de la momentul respectiv, ajustat pozitiv cu +1 BTC pentru poziția ta de marjă. Soldul tău de activ USD va rămâne același.

Exemplul 2

Dacă ai vândut 1 BTC/ETH la 15 ETH pe marjă și poziția ta este deschisă, soldul tău din dovada rezervelor va reflecta o ajustare pozitivă cu +15 ETH pentru soldul tău ETH. Nu va exista o ajustare negativă a soldului tău BTC. Soldul tău de activ ETH deținut în custodia Kraken va include soldul tău ETH de la momentul respectiv, ajustat pozitiv cu +15 ETH pentru poziția ta de marjă. Soldul tău de activ BTC deținut în custodia Kraken va rămâne același.

Notă: metodologia futures descrisă mai sus este în vigoare începând cu verificările de dovadă a rezervelor din mai 2023.

Solduri de contracte futures

Dacă aveai solduri în portofelul tău Futures la momentul verificării, va exista o evidență separată a dovezii rezervelor pentru soldurile tale de garanții futures. Soldurile tale sunt ajustate cu Profitul și Pierderea nerealizate pentru tranzacționări de contracte futures cu garanție unică. Aceasta va include aceleași active aplicabile ca și pentru spot și marjă și va face parte din același arbore Merkle (cu propriul ID de frunză Merkle). 

Exemplul 1

Dacă ai 1 BTC în portofelul tău Futures și deschizi o poziție pe BTC perpetuu cu garanție unică, cu Profit și Pierdere nerealizate de -0,1 BTC, atunci soldul tău BTC deținut în custodia Kraken va fi 0,9 BTC (1 BTC ajustat cu -0,1 BTC pentru Profit și Pierdere nerealizate).

Exemplul 2

Dacă ai 1 BTC în portofelul tău Futures și deschizi o poziție pe BTC perpetuu cu garanții multiple, cu Profit și Pierdere nerealizate de -100,0 USD, atunci soldul tău BTC deținut în custodia Kraken va fi 1 BTC (1 BTC neajustat cu Profit și Pierdere nerealizate, deoarece acestea sunt urmărite în USD și USD nu este un activ aplicabil pentru această verificare).

Notă: metodologia futures descrisă mai sus este în vigoare începând cu verificările de dovadă a rezervelor din mai 2023. 

Cum pot confirma includerea contului meu în verificarea dovezii rezervelor?

Confirmare simplă

Urmează pașii de mai jos pentru a confirma în mod criptografic includerea soldului contului tău Kraken în cea mai recentă verificare a dovezii rezervelor.

Notă: această confirmare va reflecta doar soldurile contului tău în activele aplicabile de la momentul verificării. Nu va reflecta tranzacționări sau tranzacții ulterioare și nici solduri deținute în active care nu sunt aplicabile.

1. Conectează-te la contul Kraken și accesează pagina pentru dovada rezervelor pe interfața Kraken Pro (pro.kraken.com) (pictograma Cont > Dovada rezervelor). 

Kraken Proof of Reserves review list

2. Selectează fila Dovada rezervelor. Aceasta va include cele mai recente raporturi de rezervă confirmate, precum și informații specifice contului tău. Contul tău va afișa rapoarte recente pentru dovada rezervelor în care soldul contului tău a fost confirmat, inclusiv data raportului, furnizorul și domeniul de aplicare al evaluării. 

Kraken Proof of Reserves review list

3. Selectează data și dă clic pe Confirmă pe cont propriu. Aici vei găsi confirmarea soldurilor deținute la momentul verificării, precum și un ghid pentru confirmarea detaliilor tale.

Kraken audit details

Verificare cu contabilul terț

  • Folosește ID-ul de frunză Merkle – copiază primele 16 caractere și introdu-le în instrumentele contabilului terț pentru a prelua soldurile și a-ți verifica ID-ul în traseul arborelui Merkle. Instrumentul contabilului terț se va deschide într-o fereastră separată. 

Notă: această opțiune a fost pusă la dispoziție începând cu verificările din 2023. Pentru verificări anterioare, consultă pagina web a partenerului tău pentru a găsi instrumentele de confirmare.

Kraken audit details

Verifică cu Kraken

  • Confirmă ID-ul de evidență – urmează pașii pentru a recrea ID-ul de evidență, care identifică în mod unic detaliile contului tău și ID-ul de verificare (unic pentru fiecare dată de raport)
  • Confirmă ID-ul de frunză Merkle – urmează pașii pentru a recrea ID-ul de frunză Merkle, care identifică în mod unic detaliile contului tău, împreună cu soldurile deținute la momentul instantaneului de verificare 
  • Confirmă ID-ul de frunză Merkle în arborele Merkle – confirmă că ID-ul tău aparține arborelui Merkle și validează calea către rădăcina arborelui Merkle, care este confirmată de contabilul nostru terț și comună pentru toți clienții

Notă: această opțiune a fost pusă la dispoziție începând cu verificările din 2023. Pentru verificări anterioare, consultă pagina web a partenerului tău pentru a găsi instrumentele de confirmare.

Kraken audit details
Kraken audit details
Kraken audit details

Confirmare avansată

Clienții care dispun de cunoștințe tehnice avansate ar putea dori să reconstituie independent hash-ul de nod pentru frunza arborelui Merkle care le corespunde și să-și caute soldurile în arborele Merkle în mod programatic, în loc să folosească instrumentele vizuale furnizate de Kraken sau de contabilul terț. 

Poți efectua următorii pași de confirmare folosind cod:

  1. Poți confirma generarea ID-ului de frunză de arbore Merkle pentru contul tău, folosind pașii descriși mai jos.  

  2. Apoi, poți confirma calea de arbore Merkle pentru ID-ul de frunză și poți reconstitui calea de la poziția ta la nodul rădăcină. Oferim transparență completă și includem și ID-urile de frunze înfrățite. 

Mai jos sunt descriși pașii necesari, în pseudocod, pentru a reconstitui ID-ul de evidență și frunza Merkle din codul de cont, IIBAN-ul Kraken, ID-ul verificării și soldurile. Reține că rezultatele depind de formatarea stringurilor soldurilor și de ordinea activelor verificate, după cum sunt afișate pe pagina pentru dovada rezervelor.

  • ID evidență = SHA256(concatenate(Account Code, Kraken IIBAN, Review ID))
  • Solduri = ""
  • Pentru fiecare activ:
    • Solduri = concatenate(Asset, ":", AssetBalances[asset])
  • Hash Merkle = concatenate(Record ID, “,”, Balances)
  • Frunză Merkle = substring(SHA256(Merkle Hash), 0, 16)

După ce identifici frunza Merkle, poți folosi confirmarea SHA256 cu valori HEX pentru a reconstitui calea arborelui Merkle.

Exemple exacte sunt demonstrate în fragmentele de cod de mai jos. Frunza Merkle rezultată este vizibilă și în detaliile verificării, pentru a te ajuta să confirmi o reconstituire corectă.

python

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

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

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

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_result

Deficiențe și îmbunătățiri viitoare

În interesul promovării transparenței, dorim să împărtășim câteva deficiențe pe care le-am identificat în procesul de dovadă a rezervelor.

  • O dovadă a rezervelor implică dovedirea controlării fondurilor on-chain la momentul verificării, dar nu poate dovedi posesia exclusivă a cheilor private care, la nivel teoretic, ar fi putut fi duplicate de către un atacator.
  • Procedura nu poate identifica nicio sarcină ascunsă și nici nu poate dovedi că fondurile nu au fost împrumutate în scopul trecerii de verificare. În mod similar, este posibil să se fi pierdut cheile sau să fi fost furate fonduri de la momentul ultimei verificări.
  • Contabilul trebuie să fie competent și independent pentru a minimiza riscul de duplicitate din partea celui examinat sau de complicitate între părți.
  • Căutăm să combatem unele dintre aceste deficiențe prin contractarea unei firme terțe respectate și independente în vederea dovezii rezervelor și prin efectuarea acestor verificări într-un ritm regulat. De asemenea, oferim transparență cu privire la aceste date direct pe platforma noastră pentru clienți. 
Creează cont

Valorile raportului de rezervă marcate cu asterisc (*) mai sus, pot suferi modificări semnificative atunci când sunt comparate între diferitele rapoarte din Dovada rezervelor Kraken. Aceste variații pot apărea din cauza modificărilor produselor și a îmbunătățirilor aduse infrastructurii noastre de custodie de-a lungul timpului, ceea ce poate influența modul de clasificare a anumitor active aflate în aceste portofele. În conformitate cu practica actuală, o explicație detaliată a metodologiei utilizate pentru Dovada rezervelor este inclusă în toate Rapoartele.