Tilannekuvan päivämäärä
BTC
Varantosuhde*
100.3 %
ETH
Varantosuhde*
101.3 %
SOL
Varantosuhde*
101.1 %
USDC
Varantosuhde*
yli 105 %
USDT
Varantosuhde*
yli 105 %
XRP
Varantosuhde*
100.6 %
ADA
Varantosuhde*
102.2 %
Vastuuvelvollisuus ja säännölliset tarkastukset
Kraken ei tarjoa ainoastaan mahdollisuutta käydä kauppaa uusimmilla digitaalisilla varoilla vaan pyrkii myös hyödyntämään niiden perustana olevien avoimen lähdekoodin lohkoketjujen läpinäkyvyyttä.
Varantotodistusten säännöllisten tarkastusten ansiosta asiakkaat voivat helposti varmistaa tiliensä kautta muutamalla napsautuksella, että todelliset varat kattavat tarkastuksen piiriin kuuluvat saldot.
Varantotodistukset perustuvat edistykselliseen kryptografiseen kirjanpitomenettelyyn, jonka luotetut tilintarkastajat suorittavat säännöllisesti, jotta voit varmistaa, että Kraken täyttää tiukat vastuuvelvollisuutta koskevat standardit ja tarjoaa enemmän läpinäkyvyyttä kuin perinteiset rahoituslaitokset.
Usein kysyttyä
Mikä on varantotodistus?
Varantotodistustarkastus on riippumattoman kolmannen osapuolen tilintarkastajan suorittama menettely. Sen avulla varmistetaan, että säilytyspalvelulla on hallussaan varat, joita se on ilmoittanut hallinnoivansa asiakkaidensa puolesta. Tilintarkastaja ottaa anonymisoidun tilannekuvan kaikista saldoista ja kokoaa ne Merkle-puuksi, joka on tietosuojan varmistava tietorakenne, johon sisältyvät kaikki asiakassaldot.

Siitä tilintarkastaja saa Merkle-juuren, eli kryptografisen sormenjäljen, joka yksilöi näiden saldojen yhdistelmän tilannekuvan luontihetkellä.
Tämän jälkeen tilintarkastaja kerää Krakenin tuottamat digitaaliset allekirjoitukset, jotka osoittavat sellaisten lohkoketjussa olevien osoitteiden omistajuuden, joiden saldot ovat julkisesti vahvistettavissa. Lopuksi tilintarkastaja vertaa ja varmistaa, että nämä saldot ylittävät Merkle-puussa olevat asiakassaldot tai vastaavat niitä, ja siten sen, että asiakasvarat ovat Krakenin hallinnassa.
Vertaamalla tiettyjä tietoja Merkle-juureen jokainen asiakas voi itse tarkastaa, sisältyikö hänen saldonsa varantotodistusmenettelyyn. Pienimmätkin muutokset muihin tietoihin vaikuttavat juureen, mikä paljastaa peukaloinnin helposti.
Varantotodistusraporttimme on saatavilla täällä.
Mitä varantotodistus kattaa?
Spot-saldot
Tarkastukseen sisältyvät kaikki saldosi niissä varoissa, jotka kuuluvat tarkastuksen piiriin tilannekuvan luontihetkellä. Seuraavat varat kuuluivat viimeisimmän tarkastuksen piiriin: Bitcoin (BTC), Ether (ETH), Solana (SOL), USD Coin (USDC), Tether (USDT) ja Ripple (XRP).
Steikkaussaldot
Jos sinulla oli saldoa steikattuna lohkoketjussa tilannekuvan luontihetkellä, steikatun saldon arvo yhdistetään spot-saldon kanssa yhdeksi saldoksi.
Vivutettu kaupankäynti
Jos sinulla oli vivutettuja positioita tilannekuvan luontihetkellä, kokonaissaldosi oikaistaan positiivisten positioiden arvoilla.
Esimerkki 1
Jos ostit 1 BTC:n 30 000 dollarin hintaan (BTC/USD) vipukaupalla ja positiosi on auki, varantotodistuksen BTC-saldossa näkyy 1 BTC:n positiivinen oikaisu. USD-saldoon ei tehdä negatiivista oikaisua. Krakenin säilyttämien BTC-varojesi saldoon sisältyy tilannekuvan luontihetken BTC-saldosi, jossa on huomioitu vipukaupasta johtuva 1 BTC:n positiivinen oikaisu. USD-varojesi saldo pysyy samana.
Esimerkki 2
Jos myit 1 BTC:n 15 ETH:n hintaan (BTC/ETH) vipukaupalla ja positiosi on auki, varantotodistuksen ETH-saldossa näkyy 15 ETH:n positiivinen oikaisu. BTC-saldoon ei tehdä negatiivista oikaisua. Krakenin säilyttämien ETH-varojesi saldoon sisältyy tilannekuvan luontihetken ETH-saldosi, jossa on huomioitu vipukaupasta johtuva 15 ETH:n positiivinen oikaisu. Krakenin säilyttämien BTC-varojesi saldo pysyy samana.
Huomautus: edellä kuvattu futuureja koskeva menettely otettiin käyttöön toukokuun 2023 varantotodistustarkastusten yhteydessä.
Futuurisaldot
Jos sinulla oli saldoa futuurilompakossasi tarkastushetkellä, futuurivakuuksistasi on olemassa erillinen varantotodistustietue. Saldojasi oikaistaan yhden vakuuden futuurikauppojen realisoitumattoman voiton ja tappion perusteella. Tämä tietue sisältää samat tarkastuksen piiriin kuuluvat varat kuin spot- ja vipukaupan kohdalla, ja se on osa samaa Merkle-puuta (omalla Merkle-lehtisolmun tunnisteellaan).
Esimerkki 1
Jos sinulla on1 BTC futuurilompakossasi ja avaat BTC Perp Single Collateral -position, jonka realisoitumaton tulos on –0,1 BTC, Krakenin säilyttämä BTC-saldosi on 0,9 BTC (1 BTC oikaistuna realisoitumattomalla –0,1 BTC:n tuloksella).
Esimerkki 2
Jos sinulla on1 BTC futuurilompakossasi ja avaat BTC Perp Multi-Collateral -position, jonka realisoitumaton tulos on –100,00 USD, Krakenin säilyttämä BTC-saldosi on 1 BTC (1 BTC:tä ei oikaista realisoitumattomalla tuloksella, koska se lasketaan dollareissa, eikä USD kuulu tämän tarkastuksen piiriin).
Huomautus: edellä kuvattu futuureja koskeva menettely otettiin käyttöön toukokuun 2023 varantotodistustarkastusten yhteydessä.
Kuinka varmistan, että tilini sisältyi varantotodistustarkastukseen?
Helppo varmistus
Noudata alla annettuja ohjeita tarkastaaksesi kryptografisesti, sisältyikö Kraken-tilisi saldo viimeisimpään varantotodistustarkastukseen.
Huomautus: Tässä varmistuksessa näkyy vain sellaisten tililläsi olevien varojen saldot, jotka kuuluivat tarkastuksen piiriin tarkastushetkellä. Siinä eivät näy tarkastuksen jälkeiset kaupat tai tapahtumat eivätkä sellaisten varojen saldot, jotka eivät kuulu tarkastuksen piiriin.
1. Kirjaudu Kraken-tilillesi ja siirry Proof of Reserves (Varantotodistukset) -sivulle Kraken Pro -käyttöliittymässä (pro.kraken.com) (Tilikuvake > Proof of Reserves [Varantotodistukset]).

2. Valitse Proof of Reserves (Varantotodistukset) -välilehti. Se sisältää viimeisimmät vahvistetut varantosuhteet sekä tiliäsi koskevat tiedot. Tilisi osalta näytetään viimeisimmät varantotodistusraportit, joissa tilisi saldo varmennettiin, sekä raportin päivämäärä, tarkastuksen suorittaja ja tarkastuksen laajuus.

3. Valitse päivämäärä ja napsauta Verify yourself (Varmista). Täältä löydät tarkastushetkellä hallussa olleiden saldojen vahvistukset sekä ohjeet tietojesi tarkastamista varten.

Varmista kolmannen osapuolen tilintarkastajan kautta
-
Käytä Merkle-lehtisolmun tunnistetta – kopioi ensimmäiset 16 merkkiä ja syötä ne ulkopuolisen tilintarkastajan työkaluun hakeaksesi saldosi ja tarkastellaksesi tunnistettasi Merkle-puun polussa. Kolmannen osapuolen tilintarkastajan työkalu avautuu erilliseen ikkunaan.
Huomautus: Tämä on käytettävissä vuoden 2023 tarkastuksista eteenpäin. Varmistustyökalut aiempia tarkastuksia varten löydät kumppanimme verkkosivulta.

Varmista Krakenin kautta
- Varmenna tietuetunniste – noudata ohjeita luodaksesi uudelleen tietuetunnisteen, joka yksilöi tilitietosi ja tarkastustunnisteen (yksilöllinen jokaiselle raportointipäivälle)
- Varmenna Merkle-lehtisolmun tunniste – noudata ohjeita luodaksesi uudelleen Merkle-lehtisolmun tunnisteen, joka yksilöi tilisi sekä tarkastuksen tilannekuvan luontihetken saldot.
- Vahvista Merkle-lehtisolmun tunniste Merkle-puusta – vahvista, että tunnisteesi kuuluu Merkle-puuhun ja validoi polku Merkle-puun juureen, jonka kolmannen osapuolen tilintarkastaja on varmentanut ja joka on kaikille asiakkaillemme yhteinen
Huomautus: Tämä on käytettävissä vuoden 2023 tarkastuksista eteenpäin. Varmistustyökalut aiempia tarkastuksia varten löydät kumppanimme verkkosivulta.



Edistynyt varmistus
Teknisesti taitavat asiakkaat haluavat ehkä muodostaa Merkle-puun lehtisolmun tiivisteen uudelleen itsenäisesti ja hakea saldonsa Merkle-puusta ohjelmallisesti Krakenin tai kolmannen osapuolen tilintarkastajan tarjoamien visuaalisten työkalujen käyttämisen sijaan.
Voit suorittaa seuraavat varmistusvaiheet koodilla:
-
Voit varmentaa tilisi Merkle-puun lehtisolmun tunnisteen noudattamalla alla annettuja ohjeita.
-
Sen jälkeen voit varmentaa Merkle-puun polun lehtisolmun tunnisteelle ja muodostaa polun uudelleen omasta sijainnistasi juurisolmuun. Tarjoamme täyden läpinäkyvyyden ja sisällytämme tietoihin myös viereisten (sibling) lehtisolmujen tunnisteet.
Alla on esitetty pseudokoodina vaadittavat vaiheet tietuetunnisteen ja Merkle-lehtisolmun muodostamiseksi uudelleen tilikoodin, Krakenin IIBAN-tunnuksen, tarkastustunnisteen ja saldojen perusteella. Huomaa, että tulokset ovat riippuvaisia saldojen merkkijonojen muotoilusta sekä tarkastettujen varojen järjestyksestä sellaisina kuin ne esitetään Proof of Reserves (Varantotodistukset) -sivulla.
- Record ID = SHA256(concatenate(Account Code, Kraken IIBAN, Review ID))
- Balances = ""
- ForEach Asset:
- Balances = concatenate(Asset, ":", AssetBalances[asset])
- Merkle Hash = concatenate(Record ID, “,”, Balances)
- Merkle Leaf = substring(SHA256(Merkle Hash), 0, 16)
Kun Merkle-lehtisolmusi on tunnistettu, voit muodostaa Merkle-puun polun uudelleen käyttämällä SHA256-varmennusta HEX-arvoilla.
Konkreettisia esimerkkejä esitetään alla olevissa koodikatkelmissa. Tuloksena saatu Merkle-lehtisolmu on näkyvissä myös tarkastustiedoissa, jotta voit varmistaa, että olet muodostanut sen oikein.
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_resultPuutteet ja tulevat parannukset
Läpinäkyvyyden edistämiseksi haluamme kertoa joistakin varantotodistusprosessissa tunnistamistamme puutteista.
- Varantotodistuksella voidaan osoittaa lohkoketjussa olevien varojen hallinta tarkastushetkellä, mutta sillä ei voida todistaa sellaisten yksityisten avainten yksinomaista hallintaa, jotka hyökkääjä on teoriassa voinut kopioida.
- Menettelyllä ei voida tunnistaa mahdollisia piileviä rasitteita tai todistaa, ettei varoja ole lainattu tarkastuksen läpäisemiseksi. Samoin avaimia on voitu kadottaa tai varoja voinut joutua varkauden kohteeksi edellisen tarkastuksen jälkeen.
- Tilintarkastajan on oltava pätevä ja riippumaton, jotta riski tarkastettavan osapuolen vilpillisyydestä tai osapuolten välisestä salaisesta yhteistyöstä voidaan minimoida.
- Pyrimme lieventämään joitakin näistä puutteista teettämällä varantotodistuksemme arvostetulla, riippumattomalla kolmannella osapuolella ja suorittamalla nämä tarkastukset säännöllisesti. Lisäksi asetamme näitä tietoja avoimesti saataville suoraan asiakasalustallamme.
Edellä asteriskilla (*) merkityt Varantosuhdeluvut voivat muuttua huomattavasti verrattaessa Krakenin varantotodistusraportteihin tuotteissa tapahtuneiden muutosten sekä säilytysinfrastruktuuriimme ajan mittaan tehtyjen parannusten vuoksi. Nämä muutokset ja parannukset voivat vaikuttaa tiettyjen näissä lompakoissa säilytettävien omistusten luokitukseen. Nykyisen käytännön mukaisesti kaikkiin raportteihin sisällytetään selitys täsmällisestä varantotodistusmetodologiasta.