स्नैपशॉट की तारीख
BTC
रिज़र्व रेशियो*
100.3%
ETH
रिज़र्व रेशियो*
101.3%
SOL
रिज़र्व रेशियो*
101.1%
USDC
रिज़र्व रेशियो*
105%+
USDT
रिज़र्व रेशियो*
105%+
XRP
रिज़र्व रेशियो*
100.6%
ADA
रिज़र्व रेशियो*
102.2%
जवाबदेही, नियमित रिव्यू
Kraken में, हम आपको सिर्फ़ सबसे नई डिजिटल एसेट को ट्रेड करने की सुविधा नहीं देते, बल्कि हम उन ओपन-सोर्स ब्लॉकचेन की ट्रांसपेरेंसी का इस्तेमाल करने के लिए भी काम कर रहे हैं जिन पर वे ऑपरेट करते हैं.
हमारी नियमित प्रूफ़ ऑफ़ रिज़र्व समीक्षा से ग्राहकों के लिए यह वेरिफ़ाई करना आसान हो जाता है कि उनके अकाउंटमें मौजूद शेष बैलेंस रियल एसेट द्वारा समर्थित है और यह सब उनके अकाउंट में कुछ आसान क्लिकों से ही संभव हो जाता है.
विश्वसनीय अकाउंटेंट द्वारा नियमित रूप से संचालित एक एडवांस क्रिप्टोग्राफ़िक अकाउंटिंग प्रक्रिया, प्रूफ़ ऑफ़ रिज़र्व्स आपको यह वेरिफ़ाई करने की सुविधा देता है कि Kraken जवाबदेही के लिए कठोर मानकों को पूरा कर रहा है और लीगेसी वित्तीय फ़र्मों द्वारा दी जाने वाली पारदर्शिता से आगे निकल रहा है.
अक्सर पूछे जाने वाले सवाल
प्रूफ़ ऑफ़ रिज़र्व क्या है?
प्रूफ़ ऑफ़ रिज़र्व (PoR) का रिव्यू एक ऐसी प्रक्रिया है जो स्वतंत्र थर्ड पार्टी अकांउटेंट द्वारा पूरी की जाती है. इसका मकसद यह कन्फ़र्म करना है कि कस्टोडियन के पास वे एसेट हैं जिनके बारे में वह अपने क्लाइंट की ओर से दावा करता है. यह अकाउंटेंट बचे हुए सभी बैलेंस का एक अनाम स्नैपशॉट लेता है और उन्हें एक Merkle Tree में इकट्ठा करता है — यह प्राइवेसी फ़्रेंडली ऐसा डेटा स्ट्रक्चर है जिसमें सभी ग्राहक के बैलेंस की जानकारी होती है.

वहां से, अकाउंटेंट एक Merkle रूट हासिल करता है: एक क्रिप्टोग्राफ़िक फ़िंगरप्रिंट, जो खास तौर से इन बचे हुए बैलेंस के कॉम्बिनेशन की पहचान उस समय करता है, जब स्नैपशॉट बनाया गया.
अकाउंटेंट तब Kraken द्वारा उत्पादित डिजिटल हस्ताक्षर एकत्र करता है, जो सार्वजनिक रूप से वेरिफ़िकेशन योग्य बैलेंस के साथ ऑन-चेन पते पर स्वामित्व साबित करता है. अंत में, अकाउंटेंट तुलना करता है और वेरिफ़ाई करता है कि ये शेष बैलेंस Merkle ट्री में प्रतिनिधित्व किए गए ग्राहक बैलेंस से अधिक है या मेल खाते हैं और इसलिए ग्राहक के एसेट Kraken के नियंत्रण में रहते हैं.
कोई भी ग्राहक स्वतंत्र रूप से वेरिफ़ाई कर सकता है कि Merkle रूट के साथ डेटा के चुनिंदा हिस्सों की तुलना करके, उसके बैलेंस को प्रूफ़ ऑफ़ रिज़र्व की प्रक्रिया में शामिल किया गया है या नहीं. बाकी डेटा में किए गए किसी भी बदलाव, हालांकि छोटे लेकिन रूट को प्रभावित करेंगे - जिससे छेड़छाड़ स्पष्ट हो जाएगी.
प्रूफ़ ऑफ़ रिज़र्व से जुड़ी हमारी रिपोर्ट यहां देखी जा सकती है.
प्रूफ़ ऑफ़ रिज़र्व में क्या कवर किया जाता है?
स्पॉट बैलेंस
इस रिव्यू में स्नैपशॉट लिए जाने के समय, आपके इन-स्कोप एसेट में मौजूद सभी बैलेंस शामिल होंगे. सबसे हाल के रिव्यू के अनुसार, नीचे दी गई एसेट, इन-स्कोप हैं: Bitcoin (BTC), Ether (ETH), Solana (SOL), USD Coin (USDC), Tether (USDT) और Ripple (XRP).
बैलेंस को स्टेक करना
अगर स्नैपशॉट के समय आपके पास ऑन-चेन स्टेकिंग में एलोकेट किया गया बैलेंस था, तो आपके स्टेक किए गए बैलेंस की वैल्यू को आपके स्पॉट बैलेंस के साथ मिलाकर एक सिंगल बैलेंस बना दिया जाएगा.
मार्जिन ट्रेडिंग
अगर उस समय आपके पास मार्जिन पोज़ीशन थीं, तो आपको दिखेगा कि आपका कुल बैलेंस पॉज़िटिव पोज़ीशन वैल्यू के हिसाब से एडजस्ट हो गया है.
उदाहरण 1
अगर आपने मार्जिन पर 30,000 USD में 1 BTC/USD खरीदा है और आपकी पोज़ीशन ओपन है, तो आपका प्रूफ ऑफ़ रिज़र्व बैलेंस आपके BTC बैलेंस में पॉज़िटिव +1 BTC एडजस्टमेंट दिखाएगा. आपके USD बैलेंस में कोई नेगेटिव एडजस्टमेंट नहीं होगा. Kraken की कस्टडी में रखे गए आपके BTC एसेट बैलेंस में उस समय का आपका BTC बैलेंस शामिल होगा, जिसे आपकी मार्जिन पोज़ीशन के लिए पॉजिटिव + 1 BTC एडजस्टमेंट से एडजस्ट किया जाएगा. आपका USD एसेट बैलेंस वैसा ही रहेगा.
उदाहरण 2
अगर आपने मार्जिन पर 15 ETH में 1 BTC/ETH बेचा है और आपकी पोज़ीशन ओपन है, तो आपका प्रूफ ऑफ़ रिज़र्व बैलेंस आपके ETH बैलेंस में पॉज़िटिव +15 ETH एडजस्टमेंट दिखाएगा. आपके BTC बैलेंस में कोई नेगेटिव एडजस्टमेंट नहीं होगा. Kraken की कस्टडी में रखे गए आपके ETH एसेट बैलेंस में उस समय का आपका ETH बैलेंस शामिल होगा, जिसे आपकी मार्जिन पोज़ीशन के लिए पॉज़िटिव + 15 ETH एडजस्टमेंट से एडजस्ट किया गया है. Kraken की कस्टडी में रखा गया आपका BTC एसेट बैलेंस वैसा ही रहेगा.
ध्यान रखें: ऊपर बताई गई फ़्यूचर्स मेथोडोलॉजी, मई 2023 के प्रूफ़ ऑफ़ रिज़र्व के रिव्यू से प्रभावी होगी.
फ़्यूचर्स बैलेंस
अगर रिव्यू के समय आपके फ़्यूचर्स वॉलेट में बैलेंस था, तो आपके फ़्यूचर्स कोलैटरल बैलेंस के लिए एक अलग प्रूफ़ ऑफ़ रिज़र्व रिकॉर्ड मौजूद होगा. सिंगल कोलैटरल फ़्यूचर्स ट्रेड के लिए, आपके बैलेंस को अनरियलाइज़्ड प्रॉफ़िट और लॉस से एडजस्ट किया जाता है. इसमें स्पॉट और मार्जिन की तरह ही इन-स्कोप एसेट शामिल होंगी और यह उसी Merkle Tree का हिस्सा होगा (अपने खुद के Merkle Leaf ID के साथ).
उदाहरण 1
अगर आपके फ़्यूचर्स वॉलेट में 1 BTC है और आप BTC Perp सिंगल कोलैटरल में कोई पोज़ीशन खोलते हैं, जिसमें -0.1 BTC का अनरियलाइज़्ड प्रॉफ़िट और लॉस है, तो Kraken की कस्टडी में मौजूद आपका BTC बैलेंस 0.9 BTC होगा (आपके 1 BTC को अनरियलाइज़्ड P&L के लिए -0.1 BTC से एडजस्ट किया गया है).
उदाहरण 2
अगर आपके फ़्यूचर्स वॉलेट में 1 BTC है और आप BTC Perp मल्टी-कोलैटरल में कोई पोज़ीशन खोलते हैं, जिसमें -100.0 USD का अनरियलाइज़्ड प्रॉफ़िट और लॉस है, तो Kraken की कस्टडी में मौजूद आपका BTC बैलेंस 1 BTC ही रहेगा (आपका 1 BTC अनरियलाइज़्ड P&L से एडजस्ट नहीं होगा, क्योंकि उसे USD में ट्रैक किया जाता है और USD इस रिव्यू के लिए इन-स्कोप एसेट नहीं है).
ध्यान रखें: ऊपर बताई गई फ़्यूचर्स मेथोडोलॉजी, मई 2023 के प्रूफ़ ऑफ़ रिज़र्व के रिव्यू से प्रभावी होगी.
मैं यह कैसे वेरिफ़ाई करूं कि मेरा अकाउंट प्रूफ़ ऑफ़ रिज़र्व के रिव्यू में शामिल था या नहीं?
आसान वेरिफ़िकेशन
सबसे हाल के प्रूफ़ ऑफ़ रिज़र्व के रिव्यू में आपके Kraken अकाउंट बैलेंस को क्रिप्टोग्राफ़िक रूप से वेरिफ़ाई करने के लिए नीचे दिए गए स्टेप्स को फ़ॉलो करें.
ध्यान रखें: यह वेरिफ़िकेशन सिर्फ़ रिव्यू के समय इन-स्कोप एसेट में आपके अकाउंट बैलेंस को ही दिखाएगा. इसमें बाद के किसी भी ट्रेड या ट्रांज़ैक्शन का पता नहीं चलेगा और न ही इसमें उन एसेट में रखे बैलेंस का पता चलेगा जो इन-स्कोप नहीं हैं.
1. अपने Kraken अकाउंट में लॉग इन करें और Kraken Pro इंटरफ़ेस (pro.kraken.com) में प्रूफ़ ऑफ़ रिज़र्व के पेज पर जाएं (अकाउंट आइकॉन > प्रूफ़ ऑफ़ रिज़र्व).

2. प्रूफ़ ऑफ़ रिज़र्व टैब चुनें. इसमें हमारे सबसे नए वेरिफ़ाई किए गए रिज़र्व रेशियो के साथ-साथ आपके अकाउंट से जुड़ी खास जानकारी शामिल होगी. आपके अकाउंट में हाल की प्रूफ़ ऑफ़ रिज़र्व रिपोर्ट दिखेंगी, जिनमें आपके अकाउंट बैलेंस को वेरिफ़ाई किया गया है और रिपोर्ट की तारीख, प्रोवाइडर और असेसमेंट का स्कोप शामिल है.

3. तारीख चुनें और खुद को वेरिफ़ाई करें पर क्लिक करें. यहां आपको रिव्यू के समय मौजूद बैलेंस का कन्फ़र्मेशन मिलेगा और साथ ही अपनी जानकारी को वेरिफ़ाई करने का तरीका भी बताया जाएगा.

3rd पार्टी अकाउंटेंट के साथ वेरिफ़ाई करें
-
अपने Merkle Leaf ID का इस्तेमाल करें - पहले 16 वर्णों को कॉपी करें और उन्हें थर्ड पार्टी अकाउंटेंट के टूल में डालें, ताकि आप अपना बैलेंस देख सकें और Merkle Tree पाथ में अपनी ID का रिव्यू कर सकें. थर्ड पार्टी अकाउंटेंट का टूल एक अलग विंडो में खुलेगा.
ध्यान रखें: यह 2023 से किए गए रिव्यू से उपलब्ध कराया गया है. पिछले रिव्यू के लिए, कृपया वेरिफ़िकेशन टूल ढूंढने के लिए हमारे पार्टनर के वेब पेज पर जाएं.

Kraken के साथ वेरिफ़ाई करें
- अपनी रिकॉर्ड ID को वेरिफ़ाई करें - अपनी रिकॉर्ड ID फिर से बनाने के लिए इन स्टेप्स को फ़ॉलो करें, जो आपके अकाउंट की जानकारी और रिव्यू ID (रिपोर्ट की हर तारीख के लिए यूनीक) की यूनीक तरीके से पहचान करती है.
- अपनी Merkle Leaf ID को वेरिफ़ाई करें - अपनी Merkle Leaf ID को फिर से बनाने के लिए इन स्टेप्स को फ़ॉलो करें, जो रिव्यू स्नैपशॉट के समय मौजूद बैलेंस के साथ आपके अकाउंट की यूनीक तरीके से पहचान करती है.
- Merkle Tree में अपनी Merkle Leaf ID को कन्फ़र्म करें - कन्फ़र्म करें कि आपकी ID, Merkle Tree से संबंधित है और Merkle Tree रूट तक के पाथ को वैलिडेट करें, जिसे हमारे थर्ड पार्टी अकाउंटेंट द्वारा वेरिफ़ाई किया जाता है और सभी क्लाइंट के साथ शेयर किया जाता है
ध्यान रखें: यह 2023 से किए गए रिव्यू से उपलब्ध कराया गया है. पिछले रिव्यू के लिए, कृपया वेरिफ़िकेशन टूल ढूंढने के लिए हमारे पार्टनर के वेब पेज पर जाएं.



एडवांस वेरिफ़िकेशन
हो सकता है कि टेक्नोलॉजी में महारत रखने वाले क्लाइंट खुद अपने खास Merkle Tree Leaf नोड हैश को फिर से बनाना चाहें और Kraken या किसी थर्ड पार्टी अकाउंटेंट के दिए गए विज़ुअल टूल के बजाय, प्रोग्रामेटिक तरीके से Merkle Tree में अपना बैलेंस देखना चाहें.
आप कोड में ये वेरिफ़िकेशन स्टेप्स कर सकते हैं:
-
आप नीचे बताए गए स्टेप्स को फ़ॉलो करके अपने अकाउंट के लिए Merkle Tree Leaf ID के जनरेशन को वेरिफ़ाई कर सकते हैं.
-
आप फिर Leaf ID के लिए अपने Merkle Tree पाथ को वेरिफ़ाई कर सकते हैं और अपनी पोज़ीशन से रूट नोड तक पाथ को फिर से बना सकते हैं. हम पूरी ट्रांसपेरेंसी देते हैं और इसमें आपकी सिबलिंग Leaf ID भी शामिल होती हैं.
आपके अकाउंट कोड, Kraken IIBAN, रिव्यू ID और बैलेंस से, रिकॉर्ड ID और Merkle Leaf को फिर से बनाने के लिए स्यूडोकोड में ज़रूरी स्टेप्स नीचे बताए गए हैं. ध्यान दें कि नतीजे, बैलेंस की खास स्ट्रिंग फ़ॉर्मेटिंग और प्रूफ़ ऑफ़ रिज़र्व पेज पर दिखाई गई एसेट के रिव्यू के ऑर्डर पर निर्भर करते हैं.
- रिकॉर्ड ID = SHA256(concatenate(Account Code, Kraken IIBAN, Review ID))
- बैलेंस = ""
- हर एसेट के लिए:
- बैलेंस = concatenate(Asset, ":", AssetBalances[asset])
- Merkle हैश = concatenate(Record ID, “,”, Balances)
- Merkle Leaf = substring(SHA256(Merkle Hash), 0, 16)
आपके Merkle Leaf की पहचान होने के बाद, आप Merkle Tree पाथ को फिर से बनाने के लिए HEX वैल्यू के साथ SHA256 वेरिफ़िकेशन का इस्तेमाल कर सकते हैं.
नीचे दिए गए कोड स्निपेट में खास उदाहरण भी दिखाए गए हैं. नतीजे वाला Merkle Leaf, रिव्यू की जानकारी में भी दिखता है, ताकि यह कन्फ़र्म करने में मदद मिल सके कि आपने इसे सही तरीके से फिर से बनाया है.
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_resultकमियां और भविष्य के सुधार
ट्रांसपेरेंसी को बढ़ावा देने के लिए, हम प्रूफ़ ऑफ़ रिज़र्व की प्रक्रिया की कुछ कमियों को शेयर करना चाहेंगे जिनकी हमने पहचान की है.
- प्रूफ ऑफ़ रिज़र्व में रिव्यू के समय ऑन-चेन फ़ंड पर कंट्रोल साबित करना होता है, लेकिन यह उन प्राइवेट कुंजियों पर एक्सक्लूसिव अधिकार साबित नहीं कर सकता जो हो सकता है कि किसी हमलावर द्वारा डुप्लीकेट किए गए हों.
- यह प्रक्रिया किसी भी छिपे हुए बोझ का पता नहीं लगा सकती या यह साबित नहीं कर सकती कि रिव्यू पास करने के मकसद से फंड उधार नहीं लिया गया है. इसी तरह, हो सकता है कि सबसे नए रिव्यू के बाद से कुंजियां खो गई हों या फ़ंड चोरी हो गया हो.
- परीक्षा देने वाले की तरफ से धोखेबाजी या पार्टियों के बीच मिलीभगत के जोखिम को कम करने के लिए, अकाउंटेंट का काबिल और स्वतंत्र होना ज़रूरी है.
- हम अपने प्रूफ़ ऑफ़ रिज़र्व के लिए एक सम्मानित, स्वतंत्र थर्ड पार्टी फ़र्म के साथ मिलकर और नियमित तरीके से इन रिव्यू को करके, इनमें से कुछ कमियों को कम करने की कोशिश करते हैं. हम अपने क्लाइंट प्लेटफ़ॉर्म में इस डेटा के बारे में ट्रांसपेरेंसी भी देते हैं.
ऊपर तारांकन (*) से मार्क किए गए रिज़र्व रेशियो के आंकड़े समय के साथ प्रोडक्ट में बदलाव और हमारे कस्टोडियल इंफ्रास्ट्रक्चर में सुधार के कारण Kraken की प्रूफ ऑफ़ रिज़र्व रिपोर्ट की तुलना करते समय काफी बदल सकते हैं, जिससे इन वॉलेट में रखी कुछ एसेट्स के क्लासिफिकेशन पर असर पड़ सकता है. वर्तमान प्रैक्टिस के अनुसार, सभी रिपोर्ट्स में प्रूफ ऑफ रिजर्व्स मेथोडोलॉजी की सटीक जानकारी शामिल की गई है.