Pillanatkép dátuma
BTC
Tartalékráta*
100.3%
ETH
Tartalékráta*
101.3%
SOL
Tartalékráta*
101.1%
USDC
Tartalékráta*
105%+
USDT
Tartalékráta*
105%+
XRP
Tartalékráta*
100.6%
ADA
Tartalékráta*
102.2%
Elszámoltathatóság, rendszeres felülvizsgálatok
A Krakennél nemcsak a legmodernebb digitális eszközökkel való kereskedés lehetőségét kínáljuk, hanem azon is dolgozunk, hogy kihasználjuk az azokat működtető nyílt forráskódú blokkláncok átláthatóságát.
Rendszeres tartalékbizonyítási felülvizsgálatainkkal az ügyfelek könnyen, csupán a fiókjukban tett néhány kattintással megbizonyosodhatnak róla, hogy érintett egyenlegeiket valódi eszközök támasztják alá.
A tartalékbizonyítás megbízható könyvelők által rendszeresen végzett fejlett kriptográfiai számviteli eljárás, amellyel ellenőrizheted, hogy a Kraken megfelel a szigorú elszámoltathatósági normáknak és a hagyományos pénzintézeteknél nagyobb átláthatóságot biztosít.
Gyakran ismételt kérdések
Mit jelent a tartalékigazolás?
A tartalékigazolás (PoR) felülvizsgálatát egy független, harmadik fél könyvvizsgáló végzi. Ennek célja annak megerősítése, hogy a letétkezelő valóban rendelkezik azokkal az eszközökkel, amelyeket az ügyfelei nevében állít. Ez a könyvelő anonimizált pillanatfelvételt készít az összes tartott egyenlegről és összesíti őket egy Merkle-fába, azaz az összes ügyfélegyenleget tartalmazó, adatvédelmi szempontból megfelelő adatstruktúrába.

A könyvvizsgáló ebből vezeti le a Merkle-gyökeret, azaz azt a kriptográfiai ujjlenyomatot, amely egyedileg azonosítja ezen egyenlegek kombinációját a pillanatfelvétel létrehozásakor.
A könyvelő ezután összegyűjti a Kraken által készített digitális aláírásokat, amelyek nyilvánosan ellenőrizhető egyenlegekkel igazolják a blokkláncon nyilvántartott címek tulajdonjogát. Végül a könyvelő összehasonlítja és ellenőrzi, hogy ezek az egyenlegek meghaladják-e vagy megegyeznek-e a Merkle-fában szereplő ügyfélegyenlegekkel, tehát az ügyféleszközök a Kraken ellenőrzése alatt állnak-e.
Minden ügyfél önállóan ellenőrizheti, hogy az egyenlegét belefoglalták-e a tartalékigazolásba; ehhez kiválasztott adatokat kell összehasonlítania a Merkle-gyökérrel. A többi adaton végzett bármilyen módosítás, legyen az bármilyen kicsi, meglátszik a gyökéren, nyilvánvalóvá téve a manipulálást.
A tartalékigazolási jelentésünk itt található.
Mire terjed ki a tartalékigazolás?
Spot egyenlegek
A felülvizsgálat tartalmazza az összes, a hatókörbe tartozó eszközben fennálló egyenlegedet, amelyeket a pillanatkép készítésekor tartottunk nyilván. A legutóbbi felülvizsgálat időpontjában az alábbi eszközök tartoznak a hatókörbe: Bitcoin (BTC), Ether (ETH), Solana (SOL), USD Coin (USDC), Tether (USDT) és Ripple (XRP).
Stakelt egyenlegek
Ha a pillanatkép időpontjában on-chain stakinghez voltak allokált egyenlegeid, akkor a stakelt egyenleged értéke az azonnali egyenlegeddel együtt, egyetlen egyenlegként kerül összesítésre.
Tőkeáttételes kereskedés
Ha akkor tőkeáttételes pozícióid voltak, akkor a teljes egyenleged a pozitív pozícióértékekkel módosítva jelenik meg.
1. példa
Ha 1 BTC/USD pozíciót vásároltál 30 000 USD áron tőkeáttétellel, és a pozíció nyitva van, akkor a tartalékigazolási egyenleged +1 BTC pozitív korrekciót fog mutatni a BTC egyenlegeden. Az USD egyenlegeden nem lesz negatív korrekció. A Kraken letétkezelésében tartott BTC eszközegyenleged tartalmazni fogja az akkori BTC egyenlegedet, kiegészítve a tőkeáttételes pozíciód +1 BTC pozitív korrekciójával. Az USD eszközegyenleged változatlan marad.
2. példa
Ha 1 BTC/ETH pozíciót adtál el 15 ETH áron tőkeáttétellel, és a pozíció nyitva van, akkor a tartalékigazolási egyenleged +15 ETH pozitív korrekciót fog mutatni az ETH egyenlegeden. A BTC egyenlegednél nem lesz negatív korrekció. A Kraken letétkezelésében tartott ETH eszközegyenleged tartalmazni fogja az akkori ETH egyenlegedet, kiegészítve a tőkeáttételes pozícióid +15 ETH pozitív korrekciójával. A BTC eszközegyenleged változatlan marad a Kraken letétkezelésében.
Megjegyzés: A fent leírt határidős (futures) módszertan a 2023. májusi tartalékigazolási felülvizsgálatoktól érvényes.
Határidős ügyletek egyenlege
Ha a felülvizsgálat időpontjában volt egyenleged a határidős tárcádban, akkor a határidős fedezeti egyenlegeidhez külön tartalékigazolási rekord fog tartozni. Az egyenlegeid az egyfedezetes határidős ügyletek nem realizált nyereségével és veszteségével (P&L) módosításra kerülnek. Ez ugyanazokat a hatókörbe tartozó eszközöket fogja tartalmazni, mint az azonnali és a tőkeáttételes egyenlegek, és ugyanannak a Merkle-fának a része lesz (saját Merkle-levélazonosítóval).
1. példa
Ha 1 BTC-d volt a határidős tárcádban, és nyitsz egy egyfedezetes BTC perp pozíciót, amelynek nem realizált nyeresége és vesztesége -0,1 BTC, akkor a Kraken letétkezelésében tartott BTC-egyenleged 0,9 BTC lesz (az 1 BTC-d -0,1 BTC-vel módosítva a nem realizált P&L miatt).
2. példa
Ha 1 BTC-d volt a futures pénztárcádban, és nyitsz egy többfedezetes BTC perp pozíciót, amelynek nem realizált nyeresége és vesztesége -100,0 USD, akkor a Kraken letétkezelésében tartott BTC-egyenleged 1 BTC lesz (az 1 BTC-d nem módosul a nem realizált P&L miatt, mivel azt USD-ben tartjuk nyilván, és az USD nem tartozik a felülvizsgálat hatókörébe).
Megjegyzés: A fent leírt határidős (futures) módszertan a 2023. májusi tartalékigazolási felülvizsgálatoktól érvényes.
Hogyan ellenőrizhetem, hogy a fiókom szerepelt-e a tartalékigazolási ellenőrzésben?
Egyszerű ellenőrzés
Kövesd az alábbi lépéseket, hogy kriptográfiailag ellenőrizd a Kraken-fiókod egyenlegének bevonását a legutóbbi tartalékigazolási felülvizsgálatba.
Megjegyzés: Ez az ellenőrzés kizárólag a fiókodnak a felülvizsgálat időpontjában fennálló, a hatókörbe tartozó eszközökben vezetett egyenlegeit tükrözi. Nem tükrözi a későbbi kereskedéseket vagy tranzakciókat, és nem tükrözi a hatókörön kívüli eszközökben tartott egyenlegeket sem.
1. Jelentkezz be a Kraken-fiókodba, majd navigálj a tartalékigazolás oldalra a Kraken Pro felületen (pro.kraken.com) (Fiók ikon > Tartalékigazolás).

2. Válaszd ki a Tartalékigazolás fület. Itt megtalálod a legutóbb ellenőrzött tartalékrátáinkat, valamint a fiókodra vonatkozó információkat. A fiókod megjeleníti azokat a legutóbbi tartalékigazolási jelentéseket, amelyekben az egyenleged ellenőrzésre került, beleértve a jelentés dátumát, a szolgáltatót és az értékelés hatókörét.

3. Válaszd ki a dátumot, majd kattints a Ellenőrizd magad gombra. Itt megerősítést találsz a felülvizsgálat időpontjában tartott egyenlegekről, valamint egy útmutatót az adataid ellenőrzéséhez.

Ellenőrzés külső könyvelővel
-
Használd a Merkle Leaf azonosítódat – másold ki az első 16 karaktert, majd add meg őket a független, harmadik fél könyvvizsgálójának eszközeiben, hogy lekérd az egyenlegeidet és ellenőrizd az azonosítódat a Merkle-fa útvonalán. A független könyvvizsgáló eszköze külön ablakban fog megnyílni.
Megjegyzés: Ez a lehetőség a 2023-as felülvizsgálatoktól érhető el. Korábbi felülvizsgálatok esetén, kérjük, keresd fel partnerünk weboldalát az ellenőrző eszközök megtalálásához.

Ellenőrzés a Krakennel
- Ellenőrizd a Record ID-det – kövesd a lépéseket a rekordazonosítód újbóli létrehozásához, amely egyedileg azonosítja a fiókadataidat és a felülvizsgálat azonosítóját (minden jelentési dátumhoz egyedi)
- Ellenőrizd a Merkle Leaf azonosítódat – kövesd a lépéseket a Merkle levélazonosítód újbóli létrehozásához, amely egyedileg azonosítja a fiókodat a felülvizsgálati pillanatkép időpontjában tartott egyenlegekkel együtt
- Erősítsd meg a Merkle-levélazonosítódat a Merkle-fán – erősítsd meg, hogy az azonosítód a Merkle-fához tartozik, és érvényesítsd az útvonalat a Merkle-fa gyökeréhez, amelyet a független, harmadik fél könyvvizsgáló hitelesít, és amelyet minden ügyféllel megosztunk
Megjegyzés: Ez a lehetőség a 2023-as felülvizsgálatoktól érhető el. Korábbi felülvizsgálatok esetén, kérjük, keresd fel partnerünk weboldalát az ellenőrző eszközök megtalálásához.



Speciális ellenőrzés
A technikailag jártas ügyfelek dönthetnek úgy, hogy önállóan újraalkotják a saját Merkle-fa levélcsomópontjuk hash értékét, és programozott módon keresik ki az egyenlegeiket a Merkle-fán, a Kraken vagy a harmadik fél könyvvizsgáló által biztosított vizuális eszközök helyett.
Az alábbi ellenőrzési lépéseket hajthatod végre kódban:
-
Ellenőrizheted a fiókodhoz tartozó Merkle-levélazonosító létrehozását az alább ismertetett lépések alapján.
-
Ezután ellenőrizheted a levélazonosítóhoz tartozó Merkle-fa útvonalat, és újraalkothatod az útvonalat a saját pozíciódtól a gyökércsomópontig. Teljes átláthatóságot biztosítunk, és a testvér levélazonosítókat is megadjuk.
Az alábbiakban pszeudokódban bemutatjuk a szükséges lépéseket a rekordazonosító és a Merkle-levél újraalkotásához a Fiókkód, a Kraken IIBAN, a Felülvizsgálat-azonosító és az egyenlegek alapján. Vedd figyelembe, hogy az eredmények érzékenyek az egyenlegek konkrét karakterlánc-formátumára, valamint a felülvizsgált eszközök sorrendjére, ahogyan az a Tartalékigazolás oldalon megjelenik.
- Rekordazonosító = SHA256(concatenate(Account Code, Kraken IIBAN, Review ID))
- Egyenlegek = ""
- Az egyes eszközökhöz:
- Balances = concatenate(Asset, ":", AssetBalances[asset])
- Merkle Hash = concatenate(Record ID, “,”, Balances)
- Merkle-levél = substring(SHA256(Merkle Hash), 0, 16)
Miután azonosítottad a Merkle-levélazonosítódat, SHA256 ellenőrzést használhatsz HEX értékekkel a Merkle-fa útvonal újraalkotásához.
Konkrét példák a lenti kódrészletekben is bemutatásra kerülnek. Az elkészült Merkle-levél a felülvizsgálat részleteinél is látható, ami segít megerősíteni, hogy helyesen rekonstruáltad.
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_resultHiányosságok és jövőbeli fejlesztések
Az átláthatóság előmozdítása érdekében szeretnénk megosztani a tartalékigazolási folyamat során azonosított hiányosságok egy részét.
- A tartalékigazolás az on-chain pénzeszközök feletti ellenőrzést igazolja a felülvizsgálat adott időpontjában, de nem tudja bizonyítani a privát kulcsok kizárólagos birtoklását, amelyeket elméletileg egy támadó lemásolhatott.
- Az eljárás nem képes azonosítani rejtett terheket, és nem tudja bizonyítani azt sem, hogy az eszközöket nem kölcsönözték a felülvizsgálat sikeres teljesítése érdekében. Hasonlóképpen, előfordulhat, hogy a kulcsok elvesztek, vagy az eszközöket ellopták a legutóbbi felülvizsgálat óta.
- A könyvvizsgálónak hozzáértőnek és függetlennek kell lennie annak érdekében, hogy minimalizálja a vizsgált fél részéről fennálló visszaélés vagy az érintett felek közötti összejátszás kockázatát.
- E hiányosságok egy részét úgy igyekszünk mérsékelni, hogy egy elismert, független harmadik fél céget bízunk meg a tartalékigazolás elvégzésével, és ezeket a felülvizsgálatokat rendszeres időközönként hajtjuk végre. Emellett közvetlenül az ügyfélplatformunkon is átláthatóságot biztosítunk ezekkel az adatokkal kapcsolatban.
A fenti, csillaggal (*) jelölt tartalékráta-adatok jelentősen változhatnak a Kraken tartalékigazolási jelentéséhez képest a termékváltozások és a letétkezelési infrastruktúránk időről időre történő fejlesztései miatt – ez hatással lehet az ezekben a tárcákban tartott egyes eszközök besorolására. A jelenlegi gyakorlatokkal összhangban a Tartalékigazolás módszertanának pontos magyarázatát minden jelentéshez mellékeljük.