Réserves d'audit


Les fournisseurs de services d'actifs numériques établis doivent passer un audit de preuve de réserves pour satisfaire aux exigences réglementaires. Cet audit de preuve de réserves garantit aux clients et au public que leurs fonds sont sécurisés, liquides et solvables à tout moment, assurant ainsi la transparence de la disponibilité de leurs actifs. Grâce à cela, les clients peuvent être pleinement confiants en sachant qu'ils ont accès à leur argent chaque fois que cela est nécessaire....

A venir au printemps 2023
Vérifier mes fonds

Notre engagement en matière de transparence

Chez NYXEX, non seulement nous permettons à nos clients de négocier les actifs numériques les plus innovants du marché, mais nous veillons également à ce que chaque transaction soit parfaitement sécurisée et transparente. Grâce à nos audits complets de preuve des réserves, tous les clients peuvent vérifier rapidement le solde de leur compte, en quelques clics seulement !

Deux fois par an, des auditeurs de confiance utilisent des processus comptables cryptographiques sophistiqués pour vérifier que NYXEX respecte et dépasse les normes de responsabilité des sociétés financières traditionnelles en fournissant une transparence sans précédent sur plusieurs marchés - c'est ce qu'on appelle la preuve des réserves.

Qu'est-ce que la preuve des réserves ?

Un audit indépendant de preuve des réserves est effectué par un vérificateur tiers pour garantir que le dépositaire conserve toutes les ressources détenues au nom de ses clients. Cet inspecteur prend un instantané confidentiel de tous les soldes financiers détenus et les compile dans un arbre Merkle - un arrangement de données sécurisé qui contient les soldes des comptes des clients. En exécutant ce processus de vérification, les clients peuvent être rassurés en sachant que leurs avoirs sont en sécurité chez le dépositaire.

Par la suite, le vérificateur obtient une racine de Merkle : une signature cryptographique exclusive qui documente la combinaison de ces soldes au moment où l'instantané a été pris.

Le vérificateur acquiert ensuite des signatures numériques auprès de NYXEX, démontrant la propriété des adresses on-chain avec des soldes vérifiables publiquement. Ensuite, ces montants sont comparés et vérifiés par rapport à ceux détenus dans un arbre de Merkle pour confirmer que les actifs des clients ont été réservés à pleine capacité.

Les clients peuvent facilement valider que leurs fonds ont été inclus dans une vérification de preuve de réserves en comparant certaines données avec la racine Merkle. Tout ajustement apporté au reste, même le plus petit, modifiera la racine - rendant toute manipulation indubitable.

Vérifier que votre compte a été audité

Suivez les étapes ci-dessous pour vérifier de manière cryptographique l'inclusion du solde de votre compte NYXEX dans la preuve de réserves la plus récente.

Note: Cette vérification ne reflétera que les soldes de votre compte dans les actifs pris en charge au moment de la vérification. Elle ne tiendra pas compte d'éventuelles transactions ou opérations ultérieures, ni des soldes détenus dans des actifs non couverts par la vérification.

1. Connectez-vous à votre compte NYXEX et accédez aux paramètres de votre compte(Profil > Audit des réserves).

2. Votre compte affichera les audits récents dans lesquels le solde de votre compte a été vérifié, l'ID d'audit associé, la date de l'audit, le nom de la société qui a mené l'audit et le type d'audit qui a été mené. L'ID de l'audit est la chaîne d'identification associée à un audit particulier ; comme NYXEX prévoit d'effectuer régulièrement des audits de preuve des réserves, il est important que chaque audit soit identifiable de manière unique.

3. Sélectionnez la date de l'audit que vous souhaitez vérifier. Vous y trouverez la confirmation du type d'audit, votre ID d'enregistrement (spécifique à votre compte et à cet audit particulier), les actifs couverts et vos soldes d'actifs au moment de l'audit.

L'ID d'enregistrement vous permet de confirmer indépendamment que le solde de votre compte a été inclus, par l'intermédiaire de l'auditeur tiers.

Vérification de votre dossier auprès de l'auditeur

Simple :
Le moyen le plus rapide de vérifier l'enregistrement de votre compte est d'utiliser le portail de l'auditeur tiers avec votre ID d'enregistrement :
1. Copiez l'ID d'enregistrement correspondant à votre compte et à l'audit spécifié (reportez-vous à la section précédente pour le localiser).
2. Visitez le site Web de l'auditeur tiers responsable de l'audit de preuve des réserves.
3. Saisissez votre ID d'enregistrement sur le portail de l'auditeur tiers. Le site Web de l'auditeur utilisera cet ID pour trouver l'enregistrement de la cryptocurrency détenue sur votre compte on-chain au moment de l'audit.
4. Vérifiez vos soldes.

Avancé :
Les clients avertis peuvent souhaiter reconstruire de manière indépendante le hachage des nœuds de l'arbre de Merkle qui leur est propre et rechercher leurs soldes dans l'outil du vérificateur tiers en utilisant ce hachage, plutôt que le seul ID de l'enregistrement.

Cela permet aux clients de vérifier que leur ID d'enregistrement (ainsi que les soldes associés à leur compte au moment de l'audit) ont été inclus dans la structure de l'arbre de Merkle, qui a donné lieu au hachage de la racine publié par le vérificateur :
1. Les détails de l'audit sur kraken.com comprennent également un "code de compte", un autre code unique à votre compte et à cet audit particulier, ce qui évite la réutilisation de tout code d'identification d'un audit à l'autre.
2. Vous verrez également un hachage Merkle que vous pouvez soit utiliser directement, soit reconstruire (voir ci-dessous) en utilisant les détails de votre compte et de l'audit en question. La feuille de Merkle que vous utiliserez pour la recherche dans l'outil d'audit est constituée des 16 premiers caractères de la SHA256 de ce hachage de Merkle.
3. Les étapes nécessaires, en pseudocode, pour reconstruire l'ID d'enregistrement et la feuille de Merkle à partir de votre code de compte, de l'IIBAN de Kraken, de l'ID d'audit et des soldes sont décrites ci-dessous. Notez que les résultats sont sensibles au formatage particulier de la chaîne des soldes et à l'ordre des actifs audités, tels qu'ils sont affichés sur la page Audits.

Record ID = SHA256(concaténation(Account Code, Kraken IIBAN, Audit ID))
Balances = ""
ForEach Asset :
- Balances = concaténation(Actif, " :", AssetBalances[actif])
- Merkle Hash = concaténation(Record ID, ",", Balances)
- Merkle Leaf = substring(SHA256(Merkle Hash), 0, 16)

Des exemples spécifiques sont également présentés dans les extraits de code ci-dessous. La feuille de Merkle résultante est également visible dans les détails de l'audit pour vous aider à confirmer que vous l'avez reconstruite correctement.

Phyton

import hashlib

account_code = "8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1"
iiban = "AB12C34DEFG5KSQI"
audit_id = "PR30JUN22"
record_id = hashlib.sha256((account_code + iiban + audit_id).encode('utf-8')).hexdigest()

balances = "ADA:15129.4,ADA.S:0.0,BTC:0.2600852178,BTC.M:1.25,DOT:50.0,DOT.S:20.5,DOT.P:0.0,ETH:5.27518778,ETH2.S:10.123,USDC:50000.0,USDT:0.0,XRP:0.000002"

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]))

Rouille

use sha2::{Digest, Sha256};

const ACCOUNT_CODE: &str = "8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1";
const IIBAN: &str = "AB12C34DEFG5KSQI";
const AUDIT_ID: &str = "PR30JUN22";
const BALANCES: &str = "ADA:15129.4,ADA.S:0.0,BTC:0.2600852178,BTC.M:1.25,DOT:50.0,DOT.S:20.5,DOT.P:0.0,ETH:5.27518778,ETH2.S:10.123,USDC:50000.0,USDT:0.0,XRP:0.000002";

fn main() {
    let mut record_hasher: Sha256 = Default::default();

    record_hasher.update(ACCOUNT_CODE);
    record_hasher.update(IIBAN);
    record_hasher.update(AUDIT_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]);
}

Allez sur

package main

import (
	"crypto/sha256"
	"fmt"
)

func main() {

	accountCode := "8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1"
	iiban := "AB12C34DEFG5KSQI"
	auditId := "PR30JUN22"

	secret := accountCode + iiban + auditId

	data := []byte(secret)
	hash := sha256.Sum256(data)
	recordId := string(hash[:])
	fmt.Printf("Record ID: %x\n", recordId)

	balances := "ADA:15129.4,ADA.S:0.0,BTC:0.2600852178,BTC.M:1.25,DOT:50.0,DOT.S:20.5,DOT.P:0.0,ETH:5.27518778,ETH2.S:10.123,USDC:50000.0,USDT:0.0,XRP:0.000002"

	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])

}

Bash

#!/bin/bash

ACCOUNT_CODE="8dc20f34da8cea8dd0f46b001694f5123ecd30d786c5eb92ad1a013703a4f8d1"
IIBAN="AB12C34DEFG5KSQI"
AUDIT_ID="PR30JUN22"
RECORD_ID=$(echo -n "${ACCOUNT_CODE}${IIBAN}${AUDIT_ID}" | sha256sum | head -c 64)
BALANCES="ADA:15129.4,ADA.S:0.0,BTC:0.2600852178,BTC.M:1.25,DOT:50.0,DOT.S:20.5,DOT.P:0.0,ETH:5.27518778,ETH2.S:10.123,USDC:50000.0,USDT:0.0,XRP:0.000002"
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)"

Lacunes et améliorations futures

Afin de poursuivre notre engagement en matière de transparence, nous partageons publiquement certains des domaines dans lesquels des améliorations peuvent être apportées en ce qui concerne le processus de preuve des réserves.

- La vérification des réserves exige la preuve du contrôle des fonds de la chaîne au moment de la vérification, mais ne garantit pas le contrôle des clés privées potentiellement répliquées par des acteurs malveillants.

- Le processus ne permet pas de découvrir des charges secrètes ou de garantir que des fonds n'ont pas été pris dans le but de réaliser l'audit. En outre, des clés pourraient avoir disparu et de l'argent avoir été volé depuis le dernier audit.

- Pour s'assurer que les actions de l'entité contrôlée restent honnêtes et justes, il est essentiel de faire appel à un auditeur fiable qui est non seulement bien informé mais aussi impartial. Cela réduit tout risque potentiel de tromperie ou de collusion entre toutes les parties concernées.

Pour remédier à ces problèmes, nous collaborons avec des sociétés tierces indépendantes crédibles et de confiance pour fournir des preuves de réserves. Nous effectuons régulièrement des audits afin que nos clients puissent avoir l'esprit tranquille en sachant que leurs fonds sont sécurisés.

*Note: Pour garantir un audit de preuve des réserves réussi et précis, nous engagerons un cabinet comptable indépendant pour effectuer une mission d'attestation basée sur les règlements émis par l'American Institute for Certified Public Accountants. Les résultats ont donné lieu à un rapport complet de l'expert-comptable indépendant sur les procédures convenues qui met en évidence les procédures spécifiques effectuées ainsi que les principales conclusions tirées.

Vérifier mon audit
A venir au printemps 2023