====== Základní pojmy ====== ==== Blockchain ==== Blockchain je databáze sdílená ve veřejné nebo soukromé počítačové síti. Síť tvoří uzly neboli počítače, kde je uložena kopie databáze. Díky tomu se databáze neztratí, pokud jeden z uzlů přestane fungovat. Každý nový záznam je matematicky zašifrovaný, aby mohl být přidán jako další „blok“ databáze. Zápis do blockchainu musí schválit jednotlivé uzly v síti, které ověří, že zápis splňuje předepsané parametry a podmínky. Jednotlivé položky v blockchainu už nelze zpětně měnit. Databáze je tak odolná proti podvodům. ==== Blockchain Notarius ==== Aplikace instalovaná na každém nodu, která umožňuje registraci datového souboru, jeho ověření totožnosti a uzavírání smluv. ==== Blok ==== Blok obsahuje uspořádanou sadu transakcí. Je kryptograficky spojen s předchozím i následujícím blokem. První blok v takovém řetězci bloků se nazývá genesis block. Bloky jsou vytvářeny orderery a poté ověřovány a potvrzovány nody. ==== ElA blockchain ==== Síť blockchainových nodů, která tvoří platformu. ==== Ekosystém ==== Členové a uživatelé platformy (uživatelé aplikací). ==== Git ==== Systém správy verzí, který slouží k udržování informací, jak byly v průběhu času měněny zdrojové soubory ve stromě adresářů, který odpovídá určitému softwarovému projektu. Některé systémy správy verzí umožňují efektivně sledovat změny pouze jednoho souboru, ale získání stavu projektu v minulosti je velmi pomalé; git je schopen velmi rychle nastavit obsah celého pracovního stromu na stav po provedení libovolného commitu. ==== Hash ==== Digitální otisk datového souboru, který je výsledkem hashovací funkce. Otisk má fixní délku a není možné z něj zrekonstruovat zpět vstupní datový soubor. ==== Hashovací funkce ==== Funkce převádějící datový soubor na jeho otisk. není možné, aby dva rozdílné datové soubory byly převedeny na stejný výstup. ==== Hyperledger Fabric ==== Nástroj pro budování blockchainových distribuovaných účetních knih podnikových sítí. ==== Kryptografie ==== Věda zabývající se šifrováním. ==== Majitel nodu ==== Právnická osoba, která je majitelem nodu sítě ElA blockchain. ==== Nody (uzly) ==== Síť počítačů, které mezi sebou komunikují a všechny obsahují aktuální kopii blockchainové databáze. ==== Orderer ==== Server, který je zodpovědný za zapisování transakcí do bloků a jejich následné distribuování jednotlivým nodům v síti. ==== Kanál ==== Vrstva blockchainu v hyperledger fabric sloužcí k izolaci dat. Blockchain a stavová databáze specifické pro kanál jsou sdíleny mezi peery připojenými v kanále. Pro připojení do kanálu musí být peery autentikovány. Každý kanál je definovám svou vlastní konfigurací. Paralelně běžící kanály jsou v podstatě separátní blockchainy, které pouze mohou sdílen část prostředů sítě (např. Ordering service). ==== Transakce ==== Transakce se vytvářejí při volání chaincodu (smart kontraktu) z klientské aplikace pro čtení nebo zápis dat z ledgeru. Tyto transakce jsou odeslány k ordereru, který je uspořádá do bloků a rozešle nodům k ověření a připojení do jejich ledgeru. ==== Peer-to-peer ==== P2P nebo klient-klient je označení typu počítačových sítí, ve které neexistuje cenrální entita a jednotliví klienti (uživatelé) spolu komunikují přímo. ==== Repozitář ==== Informační struktura, ve které jsou uloženy veškeré informace o historii projektu. ==== SLA (Service Level Agreement) ==== Smlouva sjednaná mezi poskytovatelem služby a jejím uživatelem. ==== Smart kontrakty (chaincode) ==== Protokol či SW zajišťující, ověřující nebo vynucující vyjednání či provedení kontraktu. To může být provedeno způsobem, který eliminuje nutnost uzavírat fyzické smlouvy mezi lidmi. ==== Transakce ==== Transakce se vytvářejí při volání chaincodu (smart kontraktu) z klientské aplikace pro čtení nebo zápis dat z ledgeru. Tyto transakce jsou odeslány k ordereru, který je uspořádá do bloků a rozešle nodům k ověření a připojení do jejich ledgeru. ==== Záznam ==== Záznam je blok dat, který se připojí k blockchainu při registraci. Sestává z metadat a jednoho nebo více hashů.\\ V jednom záznamu lze tedy uložit hashe několika souborů a tím způsobem registrovat sestavu souborů (například smlouvu a její přílohy). ==== Součásti záznamu ==== === Hash souboru === Hash souboru je vytvořen z příslušného souboru hashovacím programem. Blockchain Notarius® užívá implicitně hashovací algoritmus SH-256. Pokud je registrováno více souboru, vytváří se z každého samostatný hash. === Metadata záznamu === ** metadata implicitní, které aplikace vytvoří při procesu registrace a uživatel na jejich obsah nemá vliv. ** * [[:notarius:id_zaznamu|ID záznamu]] * [[:notarius:jmeno_nodu_na_kterem_byla_registrace_provedena|jméno nodu, na kterém byla registrace provedena]] * [[:notarius:datum_registrace|datum registrace]] **metadata vztahující se k uživateli, která se vytváří z přihlašovacích údajů**. * [[:notarius:jmeno_uzivatele_ktery_registraci_provedl|jméno uživatele, který registraci provedl]] * [[:notarius:jmeno_firmy_ke_ktere_uzivatel_patri|jméno firmy, ke které uživatel patří]] ** metadata zadaná uživatelem ** * [[:notarius:nazev_zaznamu|název záznamu]] * [[:notarius:anotace|]] * [[:notarius:volitelny_indikator_id1_a_id2|volitelný indikátor ID1 a ID2]] ** metadata vztahující se k registrovaným souborům ** * [[:notarius:nazev_souboru_kteremu_odpovida_prislusny_hash|název souboru, kterému odpovídá příslušný hash]] * [[:notarius:url_souboru_kteremu_odpovida_prislusny_hash|url souboru, kterému odpovídá příslušný hash]] **řídicí a stavové údaje** * [[:notarius:viditelnost_metadat|viditelnost metadat]] * [[:notarius:priznak_zaznamu_se_schvalenim|příznak záznamu se schválením]] * [[:notarius:priznak_neplatneho_zaznamu|příznak neplatného záznamu]] === Operace se záznamem === **registrace** Registrací rozumíme přidání záznamu ke všem kopiím blockchainu uchovávaným na nodech sítě ElA blockchain. Registrace má tři fáze. V první dojde k tzv. endorsementu, kdy vybrané nody přezkoumají oprávněnost a bezchybnost vytvořeného záznamu a povolí jej k připojení k blockchainu. Ve druhé fázi dojde k rozeslání bloku všem nodům sítě, které jej připojí ke své kopii blockchainu. Ve třetí fázi je provedena kontrola, zda jsou i po přidání nové kopie blockchainu na všech nodech identické. Trvání druhé a třetí fáze závisí na stavu sítě a výpočetním výkonu a konektivitě nodů. Registrovaný záznam tedy nemusí být na všech nodech dostupný k ověření bezprostředně po registraci. // Ověření ověřuje identitu předloženého souboru se souborem registrovaným v záznamu na blockchainu // **ověření záznamu** Ověřením záznamu rozumíme vznesení dotazu, zda je v blockchainu uložen záznam obsahující hash totožný s předloženým hashem ověřovaného souboru. Výsledkem ověření je vždy informace, zda je v blockchainu takový záznam přítomen. Pokud ano, jsou zobrazena jeho implicitní metadata a hashe, které obsahuje. Podle nastavení při registraci mohou být zobrazena i ostatní metadata. **vyhledání záznamu** Vyhledání záznamu se provádí pomocí filtru metadat. Výsledkem je informace, zda je v blockchainu přítomen záznam obsahující předložená matadata. Slouží například k vyhledání všech záznamů provedených konkrétní firmou nebo uživatelem, nebo k automatickému vyhledání záznamu pomocí čárového nebo Qr kódu //Při vyhledávání záznamu se neověřuje hodnota hashe, vyhledávání tedy neověřuje identitu souboru, jehož hash je v záznamu obsažen.// Ve veřejné části aplikace lze vyhledávat pouze pomocí ID záznamu. V privátní části aplikace (po přihlášení). lze vyhledávat i podle dalších metadat následující záznamy:: * záznamy, u kterých byla metadata nastavena jako veřejná * záznamy registrované přihlášeným uživatelem. V tom případě lze vyhledat záznamy s veřejnými i neveřejnými metadaty.