Xesh-funksiyalardan foydalanish quyidagi afzalliklarni beradi:
Hisoblash murakkabligi. Odatda elektron hujjat xeshi dastlabki hujjat hajmiga qaraganda ko’p marta kichik hajmda qilinadi, va xesh hisoblash algoritmlari elektron raqamli imzo algoritmlariga qaraganda ancha tezroqdir. SHu sababli xesh hujjatni shakllantirish va imzolash hujjatning o’zini imzolashdan ancha tezroq bo’ladi.
Moslik. Ko’p algoritmlar bit ma‘lumotlar satrlari bilan faoliyat yuritadi, ammo ba‘zilari boshqa taqdimotlarni ishlatadi. Xesh-funksiyani ixtiyoriy kirish matnini to’g’ri keladigan formatga o’zgartirish uchun qo’llash mumkin.
Yaxlitlik. Xesh-funksiyadan foydalanmasdan katta elektron hujjatni elektron raqamli imzo qo’llash uchun ancha kichik bloklarga bo’lish kerak. Hujjatning haqiqiyligini tekshirishda barcha bloklar olinganligi va ular to’g’ri tartibdaligini aniqlab bo’lmaydi.
2. Tranzaksiyalar Blokcheyn texnologiyasi va kriptovalyutalarni tushunish uchun yana bir muhim tushuncha – tranzaksiyadir.
Tranzaksiya (ingl. transaction, lot. transactio – kelishuv, shartnoma). [1] da tranzaksiyaga shunday ta‘rif berilgan – bu minimal mantiqan tushunilgan amaliyot bo’lib, u mantiqqa ega va faqat to’liq ravishda amalga oshirilishi mumkin.
Tranzaksiyani bitimni amalga oshirish yoki shartnoma tuzish jarayoni sifatida tushunmoq lozim. Bunda eng asosiysi – tranzaksiya yarim holda yoki to’rtdan bir qismga bajarilmaydi. Tranzaksiyaning ikki holatigina mavjud – yokibajarilgan, yoki yo„q. Aslida, bu mantiqan tugallangan amaliyotdir, u qanchalik uzun va necha bosqichdan iborat bo’lishiga qaramasdan. Tranzaksiyaga misol – pul mablag’larini bir hisobdan boshqasiga o’tkazish:
1. tranzaksiyani boshlash;
2. 1234 raqamli hisobda pul mablag’lari miqdorini o’qish;
3. 1234 hisobi balansini 500 000 so’mga kamaytirish;
4. 1234 hisobi balansini saqlash;
5. 4321 raqamli hisobda pul mablag’lari miqdorini o’qish;
6. balansni 500 000 so’mga ko’paytirish;
7. 4321 hisobida pul mablag’larining yangi miqdorini yozib olish;
8. tranzaksiyani qayd qilish.
Misoldan ko’rinib turgandek, agar tranzaksiya to’liq bajarilmasa, u mantiqli bo’lmaydi. Tranzaksiyani tugatishning ikki varianti bo’lishi mumkin (4.2.1-rasm). Agar barcha operatorlar muvaffaqiyatli bajarilgan bo’lsa va tranzaksiyani bajarish jarayonida dasturiy yoki apparat ta‘minotida hech qanday nosozliklar bo’lmagan bo’lsa, tranzaksiya qayd etiladi. Tranzaksiyani qayd etish – ma‘lumotlar bazasidagi tranzaksiyani bajarish jarayonida qilingan o’zgarishlarni diskga yozib olishni ta‘minlovchi harakatdir. Tranzaksiya qayd etilmaganiga qadar, ushbu o’zgarishlarni bekor qilish, ma‘lumotlar bazasini tranzaksiya boshlanishidagi holatiga tiklash mumkin. Tranzaksiyani qayd etish tranzaksiyani bajarishning barcha natijalari doimiy bo’lib qolishini bildiradi. Ular boshqa tranzaksiyalarga faqat joriy tranzaksiya qayd etilgandagina ko’rinadi. Bunga qadar tranzaksiyaga tegishli barcha ma‘lumotlar foydalanuvchiga joriy tranzaksiya boshlanishi holatida ―ko’rinadi‖. Agar tranzaksiyani bajarish jarayonida uning normal tugallanishini imkonsiz qiladigan biron hodisa ro’y bersa, ma‘lumotlar bazasi dastlabki holatga qaytarilishi lozim (tranzaksiyani orqaga qaytarish). Tranzaksiyani orqaga qaytarish – bu ma‘lumotlarning joriy tugallanmagan tranzaksiyada qilingan barcha o’zgarishlarni bekor qilishni ta‘minlovchi harakatdir. Tranzaksiyani qayta ishlash tizimlari ma‘lumotlar bazasining oraliq holatini uning o’zgarilishidan oldin yozib olish yordamida ma‘lumotlar bazasini yaxlitligini ta‘minlab, so’ng ushbu yozuvlardan foydalanib, tranzaksiyani tugatishni iloji bo’lmaganda, ma‘lumotlar bazasini ma‘lum holatga tiklaydi. Misol uchun, ma‘lumotlar bazasida ma‘lumot nusxasini uning tranzaksiya tomonidan o’zgartirilishidan oldin olish tizim orqali har qanday o’zgartirish qila oladigan tranzaksiyadan avval qilinadi. Agar tranzaksiyaning biron qismi uning tugashidan oldin amalga oshmasa, ushbu nusxalar ma‘lumotlar bazasini uning tranzaksiya boshlanishidagi holatiga qayta tiklash uchun ishlatiladi (tranzaksiyani orqaga qaytarish).
Tranzaksiyalarni qayta ishlash Tranzaksiyalarni qayta ishlash kompyuter tizimlarini (odatda ma‘lumotlar bazasini yoki biror zamonaviy fayl tizimlarini) tizimda amalga oshiriladigan har qanday amaliyotlar o’zaro bog’liq va barchasi muvaffaqiyatli tugatilgan yoki to’liq va muvaffaqiyatli bekor qilingan bo’lishini ta‘minlash yordamida ma‘lum, kelishilgan holatda saqlashga qaratilgan. Misol uchun, mijozning omonat raqamidan mijozning hisob raqamiga 700 dollar o’tkazishdan iborat odatiy bank tranzaksiyasini ko’rb chiqamiz. Ushbu tranzaksiya bank uchun bitta amaliyotdir, ammo kompyuter atamasida kamida ikkita alohida amaliyotni o’z ichiga oladi: depozit raqamga 700 dollar kiritiladi, hamda 700 dollarga hisob raqami kreditlanadi. Debet amaliyotlari muvaffaqiyatli, kredit amaliyotlari esa muvaffaqiyatsiz (yoki aksincha) o’tsa, bank kitoblarida kun yakunida qoldiq bo’lmaydi. SHu bois ikkala amaliyot yo muvaffaqiyatli, yo muvaffaqiyatsiz bo’lishini kafolatlaydigan usul bo’lmoq lozimki, umuman olganda bankning ma‘lumotlar bazasida hech qachon hech qanday nomuvofiqlik bo’lmaydi. Tranzaksiyalarni qayta ishlash shuni ta‘minlashga mo’ljallangan [1]. Tranzaksiyalarni qayta ishlash bir nechta alohida amaliyotlarga avtomatik ravishda bir-biriga, yagona bo’linmas tranzaksiyaga o’xshab, bog’liq bo’lishga imkon beradi. Tranzaksiyalarni qayta ishlash tizimlari tranzaksiyadagi yo barcha amaliyotlar, yo hech qaysisi xatosiz tugatilishiga kafolat beradi. Agar ba‘zi amaliyotlar xatolar bilan, boshqalari xatosiz tugatilsa, tranzaksiyalarni qayta ishlash tizimlari tranzaksiyadagi barcha amaliyotlarni (shu jumladan, muvaffaqiyatlilarni) “orqaga qaytarish” ga buyruq beradi, bu esa amaliyotning barcha izlarining o’chirilishi va tizimni tranzaksiya jarayoni boshlanishidan oldingi kelishilgan ma‘lum holatiga qayta tiklanishini bildiradi. Agar tranzaksiyaning barcha amaliyotlari muvaffaqiyatli tugatilgan bo’lsa, tranzaksiya tizimda qayd etiladi va ma‘lumotlar bazasidagi barcha o’zgarishlar ―doimiy‖ bo’lib qoladi; tranzaksiyalar amalga oshirilib bo’lgandan keyin bekor qilina olmaydi. Tranzaksiyalarni qayta ishlash tranzaksiyalarni qisman tugallangan, noma‘lum, ziddiyatli holatdagi tizim bilan qoldiradigan apparat va dasturiy xatolardan himoya qiladi. Kompyuter tizimida tranzaksiya o’rtasida nosozlik ro’y bersa, tranzaksiyalarni qayta ishlash har qaqsi qayd etilmagan (ya‘ni, to’liq qayta ishlanmagan) tranzaksiyalardagi barcha amaliyotlar bekor qilinishini kafolatlaydi. Tranzaksiyalar turlari Tranzaksiya – pul mablag’larini o’tkazish bo’yicha amaliyot, oldi-sotdi bitimini amalga oshirish. Tranzaksiya natijasi – har doim mijoz hisob raqami holatining o’zgarishi bo’ladi, u bankdagi hisob raqammi yoki plastik karta egasining karta hisob raqamimi, baribir. 17 Bundan kelib chiqib, tranzaksiyalarning quyidagi turlarini ajratish mumkin:
Bank turi – bunda pul bir hisob raqamdan boshqasiga o’tkaziladi;
Bankomat turi – bunda bankomat orqali plastik karta bo’yicha naqd pullar echiladi yoki biror xizmatlarga to’lov qilinadi;
Ma‟lumotlar bazalaridagi tranzaksiyalar. Ma‘lumotlar bazasini xotiraning alohida sohasida saqlanadigan ma‘lumotlar jadvali ko’rinishida tasavvur qilish mumkin. Ushbu jadvalga yangi ma‘lumotlar kiritish yoki eskilarini o’zgartirish mumkin. Aslida, shu o’zgarishlarning o’zi tranzaksiyalar deb atalib, ular ham ikki holatga ega bo’lishi mumkin – muvaffaqiyatli yoki yo„q. Agar tizim tranzaksiyani qabul qilmasa, ma‘lumotlar bazasi dastlabki (undan avvalgi) holatga qaytadi.
Bitkoin va boshqa kriptografik valyuta tranzaksiyasi. Kriptovalyutalarning elektron o’tkazmalari analogik bank amaliyotlari bilan faqat u erda ham, bu erda ham pul mablag’lari bilan harakatlar amalga oshirilishi bilan o’xshaydi: birinchi holatda – raqamli pullar bilan, ikkinchisida – standart pullar, ya‘ni so’m, dollar, evro va hk. Tranzaksiyalar ikki usulda bajariladi:
Onlayn-tranzaksiyalar – barcha hisob-kitoblar (mablag’larni hisob raqamdan echish, tushirish, berish) real vaqt rejimida amalga oshiriladi, masalan, bitta bank doirasida amalga oshiriladigan bankomat yoki bank tranzaksiyalari;