Vérification

Validez votre certificat

Confirmez indépendamment l'authenticité de tout certificat blockchain Bernstein. Aucune confiance serveur requise.

Vérification zero-trust

Notre validateur est conçu pour que vous n'ayez jamais à nous faire confiance. Tout se passe dans votre navigateur.

100% côté client

Vos fichiers ne quittent jamais votre appareil. Tout le hachage et la vérification se font localement dans votre navigateur.

Preuve blockchain

Les certificats sont vérifiés contre la blockchain Bitcoin immuable—aucune confiance serveur requise.

Fonctionne hors ligne

Pour une sécurité maximale, vous pouvez vous déconnecter d'internet avant de télécharger des fichiers sensibles.

Vérification ouverte

N'importe qui peut vérifier les certificats indépendamment en utilisant des outils cryptographiques standards.

Capacités

Ce que vous pouvez vérifier

Notre validateur vous permet de prouver à la fois l'existence de fichiers et la propriété de certificats.

01

Prouver l'existence

Téléchargez des fichiers pour vérifier qu'ils correspondent à l'empreinte du certificat enregistrée sur la blockchain Bitcoin.

02

Prouver la propriété

Entrez vos clés privées pour prouver cryptographiquement que vous possédez le certificat.

03

Générer des signatures

Créez des signatures cryptographiques pour prouver la propriété à des tiers comme des tribunaux ou des investisseurs.

04

Partager la preuve

Exportez les données de vérification que n'importe qui peut valider indépendamment.

Technique

Comment fonctionne la vérification

Nos certificats utilisent des techniques cryptographiques standards que n'importe qui peut vérifier.

Hachage SHA-256

Les fichiers sont hachés en utilisant le même algorithme que Bitcoin. L'empreinte est un identifiant unique pour vos fichiers exacts.

Ancrage Bitcoin

L'empreinte est intégrée dans une transaction Bitcoin, créant un horodatage immuable sur le registre le plus sécurisé au monde.

Horodatages qualifiés

Des horodatages supplémentaires des autorités gouvernementales de l'UE et de Chine fournissent une reconnaissance légale.

Correspondance d'empreinte

Téléchargez vos fichiers originaux. Si l'empreinte calculée correspond à l'enregistrement blockchain, l'existence est prouvée.

Protocole

Le protocole d'enregistrement Bernstein

Comprendre comment Bernstein crée des certificats blockchain à partir de vos fichiers.

Bernstein vous aide à créer une preuve vérifiable d'existence et de propriété pour tout actif numérique. Lorsque vous téléchargez des fichiers dans un projet, Bernstein génère une empreinte cryptographique et l'enregistre sur la blockchain Bitcoin.

Chaque projet peut contenir plusieurs fichiers et évoluer dans le temps. Chaque version que vous certifiez crée un nouvel enregistrement blockchain, constituant un historique complet de votre propriété intellectuelle.

Chaque certificat Bernstein correspond à une transaction Bitcoin avec trois propriétés clés :

  • Publique — visible par tous sur le réseau Bitcoin
  • Horodatée — ancrée à un bloc spécifique avec une date et heure précises
  • Immuable — ne peut être ni modifiée ni supprimée une fois confirmée

Trois clés cryptographiques

Clé du propriétaire

Dérivée de votre compte. Prouve qui possède le certificat. La clé publique correspondante est imprimée sur votre certificat PDF.

Clé de données

Dérivée du hash SHA-256 de vos fichiers de projet. Prouve quels fichiers sont couverts par le certificat.

Clé Bernstein

La clé de plateforme de Bernstein, qui co-signe la transaction. La clé publique correspondante est imprimée sur votre certificat PDF.

Étapes d'enregistrement

01

Vos fichiers sont hachés individuellement en SHA-256, puis combinés en une seule empreinte de projet.

02

L'empreinte du projet est convertie en clé privée Bitcoin, à partir de laquelle une clé publique (la clé de données) est dérivée.

03

La clé de données, la clé du propriétaire et la clé Bernstein sont combinées en une adresse Bitcoin MultiSig 3-sur-3.

04

Une transaction Bitcoin est créée envoyant des fonds à cette adresse MultiSig, enregistrant définitivement le certificat sur la blockchain.

L'adresse Bitcoin résultante encode les trois clés — prouvant qui possédait quoi, et quand. Toute personne disposant des fichiers originaux et des clés publiques peut reconstruire indépendamment l'adresse et la vérifier sur la blockchain.

Avancé

Vérification manuelle

Vous n'avez même pas besoin de nos outils. Voici les étapes pour valider indépendamment un certificat Bernstein contre la blockchain Bitcoin en utilisant des logiciels cryptographiques open-source standards.

Ce dont vous avez besoin avant de commencer
  • Tous les fichiers du projet et le fichier de couverture du projet (téléchargeables depuis l'application Bernstein)
  • L'identifiant de transaction (Transaction ID), affiché sur le certificat Bernstein au format PDF
  • La clé publique du propriétaire (Owner Public Key) et la clé publique Bernstein (Bernstein Public Key), également présentes sur le certificat PDF
  • Des compétences de base pour utiliser un terminal informatique

Calculez le hash SHA-256 de chaque fichier individuel inclus dans le projet. Il existe de nombreux utilitaires pour cela. Sous Linux ou macOS, exécutez la commande suivante dans votre terminal :

Commande terminal :

shasum -a 256 yourfile.pdf

Vous pouvez également utiliser des services en ligne tels que SHA256 Online Checksum.

SHA-256 est un algorithme standard — il produira toujours le même résultat quel que soit l'outil utilisé.

N'oubliez pas de hacher également le fichier de couverture du projet. Il s'agit d'un fichier texte contenant le titre et la description du projet, que vous pouvez télécharger depuis l'application Bernstein.

Combinez les hashes en une seule empreinte de projet :
  1. Triez tous les hashes individuels par ordre alphabétique
  2. Concaténez-les en une seule chaîne
  3. Calculez le hash SHA-256 de la chaîne concaténée

Le résultat est l'empreinte de votre projet. Vous pouvez la vérifier par rapport à l'empreinte affichée dans l'application Bernstein sous votre projet.

Pour utiliser le hash du projet comme clé Bitcoin, vous devez le convertir du format HEX au format WIF (Wallet Import Format). Nous fournissons un script Python pour cette conversion.

Commencez par installer le package Python requis :

pip install base58

Enregistrez le script Python suivant sous le nom hex2wif.py :

import sys, hashlib, base58

def hex_to_wif(hex_key):
    extended = "80" + hex_key + "01"
    first_sha = hashlib.sha256(bytes.fromhex(extended)).digest()
    second_sha = hashlib.sha256(first_sha).digest()
    checksum = second_sha[:4].hex()
    return base58.b58encode(bytes.fromhex(extended + checksum)).decode()

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python hex2wif.py <your-project-hash-hex>")
        sys.exit(1)
    print(hex_to_wif(sys.argv[1]))

Puis exécutez le script avec votre hash de projet :

python hex2wif.py <your-project-hash-hex>

Le script affichera la clé correspondante au format WIF. Vous pouvez vérifier le résultat dans l'application Bernstein en cliquant sur l'icône de clé à côté du certificat blockchain dans votre projet.

Dans cette étape, vous devez dériver la clé publique compressée à partir de la clé privée WIF obtenue à l'Étape 2. Il s'agit d'une opération cryptographique Bitcoin standard.

Vous pouvez utiliser cet outil en ligne : Bitcoin Key Compression Tool

Collez la clé WIF de l'étape 2 et l'outil affichera la clé publique compressée associée. C'est la clé publique de données — l'une des trois clés qui composent l'adresse du certificat.

Maintenant que vous avez dérivé la clé publique de données à partir de vos fichiers, combinez-la avec la clé publique du propriétaire (Owner Public Key) et la clé publique Bernstein (Bernstein Public Key) — toutes deux présentes sur le certificat PDF — pour construire l'adresse Bitcoin MultiSig 3-sur-3.

Enregistrez et exécutez le script Ruby suivant :

require 'digest'
require 'base58'
require 'bech32'

def decode_hex(hex)
  [hex].pack('H*')
end

def sha256(data)
  Digest::SHA256.digest(data)
end

def hash160(data)
  Digest::RipeMD160.digest(sha256(data))
end

def p2sh_multisig(keys)
  script = "\x53" # OP_3
  keys.sort.each { |k| script += [k.length / 2].pack('C') + decode_hex(k) }
  script += "\x53\xae" # OP_3 OP_CHECKMULTISIG
  h = hash160(script)
  version = "\x05"
  payload = version + h
  checksum = sha256(sha256(payload))[0..3]
  Base58.binary_to_base58(payload + checksum, :bitcoin)
end

def p2wsh_multisig(keys)
  script = "\x53"
  keys.sort.each { |k| script += [k.length / 2].pack('C') + decode_hex(k) }
  script += "\x53\xae"
  witness_hash = sha256(script)
  Bech32::SegwitAddr.new(hrp: 'bc', ver: 0,
    bytes: witness_hash.unpack('C*')).addr
end

puts "Select protocol version:"
puts "1 - Protocol 1 (P2SH)"
puts "2 - Protocol 2 (P2WSH SegWit)"
version = gets.chomp.to_i

keys = []
%w[Data Owner Bernstein].each do |name|
  print "Enter #{name} Public Key: "
  keys << gets.chomp
end

address = version == 1 ? p2sh_multisig(keys) : p2wsh_multisig(keys)
puts "\nBitcoin Address: #{address}"

Exécutez le script depuis votre terminal :

ruby multisig.rb

Suivez les instructions : sélectionnez votre version de protocole, puis entrez les trois clés publiques l'une après l'autre. Le script affichera l'adresse Bitcoin.

Le protocole 1 (ancien) génère une adresse P2SH. Le protocole 2 (actuel) génère une adresse SegWit P2WSH. Consultez votre certificat pour déterminer quelle version de protocole s'applique.

Enfin, recherchez l'identifiant de transaction (Transaction ID) de votre certificat PDF sur n'importe quel explorateur blockchain.

Nous recommandons Blockstream.info orBlockchair.com.

Trouvez l'adresse dans la liste des sorties de la transaction et comparez-la avec l'adresse que vous avez calculée à l'Étape 4.

Si les adresses correspondent, la vérification est réussie !

Félicitations — vous avez prouvé de manière indépendante l'existence et l'intégrité des informations incluses dans votre projet, sans dépendre d'un tiers.

Prêt à vérifier ?

Entrez l'ID de votre certificat pour valider indépendamment son authenticité.