====== 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.