1. Блокчейн тушунчаси, Криптовалюта тушунчаси



Download 0,94 Mb.
Pdf ko'rish
bet8/12
Sana23.04.2022
Hajmi0,94 Mb.
#576311
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
1-34

import hashlib 
# Hash pairs of items recursively until a single value is obtained 
def merkle(hashList): 
if len(hashList) == 1: 
return hashList[0] 
newHashList = [] 
# Process pairs. For odd length, the last is skipped 
for i in range(0, len(hashList)-1, 2): 
newHashList.append(hash2(hashList[i], hashList[i+1]))
if len(hashList) % 2 == 1: # odd, hash last item twice 


newHashList.append(hash2(hashList[-1], hashList[-1])) 
return merkle(newHashList) 
def hash2(a, b): 
# Reverse inputs before and after hashing 
# due to big-endian / little-endian nonsense 
a1 = a.decode('hex')[::-1] 
b1 = b.decode('hex')[::-1] 
h = hashlib.sha256(hashlib.sha256(a1 + b1).digest()).digest() 
return h[::-1].encode('hex') 
Endi Bitcoinda nima uchun kerakligi haqida. Agar siz bitta 
tranzaksiyani o'zgartirsangiz 
ham, u holda merkle_root ham o'zgaradi. Shuning uchun bunday 
ma'lumotlar tuzilmasi blokdagi 
tranzaksiyalarni "qalbakilashtirilmagan" bo'lishini ta'minlashga imkon 
beradi. Ya'ni, quyidagi 
vaziyat yuzaga kelishi mumkin emas: 
Ba'zi maynerlar yangi blokni topib, uni tarmoqqa tarqata boshlaydilar. 
Bu vaqtda 
tajovuzkor blokni ushlaydi va masalan, ba'zi bir tranzaksiyalarni 
blokdan o'chirib tashlaydi va 
keyin o'zgartirilgan blokni boshqalarga tarqatadi. 
Tekshirish uchun merkle_root-ni o'zingiz hisoblashingiz va blok 
sarlavhasida yozilgani 
bilan taqqoslashingiz kifoya. 
SPV 
Bu yerda, birinchidan, bunday qiyinchiliklar(ko’p hisoblashlar, amallar) 
mutlaqo foydasiz 
deb aytishingiz mumkin. Ya’ni blokidagi barcha tranzaksiyalar 
yig'indisining xeshni 
hisoblashning o’zi kifoya deyishingiz mumkin: 
txns_hash = SHA256 
(SHA256 (sum (txns)))), 


chunki bu usul ham har qanday qalbikilashtirishdan himoyalay oladi. 
Va, ikkinchidan, 
tajovuzkorning blokdagi merkle_root-ni o'zgartirishiga nima halaqit 
beradi? Ikkinchi savolga 
javob: aslida blokda hech narsani o'zgartirish mumkin emas, chunki 
blok darhol yaroqsiz holga 
keladi (buni keyingi ma’ruzani(mayningni) o'qiganingizdan so'ng 
tushunasiz). 
Merkle daraxti esa SPV (Simplified Payment Verification 
(soddalashtirilgan to'lovni 
tasdiqlash)) 

uzellarni yaratish uchun zarurdir. Bunday uzellar 
tranzaksiyalarsiz faqat blok 
sarlavhalarini sinxronizatsiya qiladi. Natijada, blok zanjiri xotiradan 
kamroq joy egallaydi (misol 
uchun 500000 ta blokni olaylik, sarlavha hajmi aniq - 80 bayt): 
500.000 * 80 / 1024 / 1024 ≈ 40 Mb
Bunday blokcheyn allaqachon telefonga, planshetga yoki ba'zi bir IOT-
larga osonlikcha 
joylashishi mumkin. 
Soddalashtirilgan to'lovni tekshirishning mohiyati quyidagicha: sizda 
SPV uzeli bor deb 
faraz qilaylik. Menda to’liq blokcheyn bor va men sizni 
haqiqatan ham 
biron bir tranzaktsiya sodir 
bo'lganligiga ishontirishim kerak (rasmda bu K tranzaksiya). Bunday 
holda, men sizga bir nechta 
xeshlarni berishim kerak: H_L, H_IJ, H_MNOP, H_ABCDEFGH. Ular 
autentifikatsiya 
yo'li(authentication path) deb ham ataladi. 
Shundan so'ng siz avval H_K = SHA256 (SHA256 (K)), so'ngra H_KL = 
SHA256 
(SHA256 (H_K + H_L)) va boshqalarni hisoblaysiz. Agar oxirida siz bir xil 


merkle_root blokini 
topsangiz, u holda tranzaksiya mavjudligi tasdiqlangan hisoblanadi. 
Ralf Merkle hattoki ushbu ma'lumotlar tuzilmasini patentladi, buni 
US4309569 A patenti 
tasdiqlaydi.


22.
Биткоинда
майнинг тушунчаси ва жараёни


Mayning 
Mayning (ingliz tilidan 
mining 
- konchilik) - bu taqsimlanagan 
platformani qo’llab
quvvatlash va turli xil kriptovalyutalarda, xususan Bitcoin-da yangi 
ishlab chiqarilgan bitcoinlar 
va komissiya to'lovlari shaklida mukofot olish uchun yangi bloklarni 
yaratish faoliyati. Amalga 
oshirilgan hisob-kitoblar bir xil valyuta birliklarining qayta 
sarflanishidan himoya qilish uchun 
talab qilinadi, mayning va emissiya o'rtasidagi bog'liqlik 
odamlarni(maynerlarni) o’zlarining
hisoblash quvvatlarini sarflashga va kriptovalyuta tarmog’ining 
ishlashini ta'minlashga undaydi. 
Soddaroq qilib aytilganda, mayning Bitcoin uchun juda muhim jarayon 
bo'lib, yangi 
bloklarni yaratish va bir vaqtning o'zida ikkita maqsadni amalga 
oshirishdan iborat. Birinchisi, 
pulni(bizni holda kriptovalyutani) ishlab chiqarish. Har safar mayner 
yangi blok yaratganida, u N 
miqdorda kriptovalyutagalarda mukofot olish huquqiga ega, keyin uni 
biron bir joyga sarflaydi va 
shu bilan tarmoqqa yangi kriptovalyutani kiritadi. 
Ikkinchi undan ham muhimroq maqsad - bu butun tarmoqning 
ishlashini ta'minlashdir. 
Shubhasiz, avvalgi ma’ruzalarni o'qib, siz allaqachon o'
zingizga 
"Tranzaksiya skriptlarini 
tekshiradigan odam kim?" degan savollarni bergan bo’lsangiz kerak, 
yoki "Agar men allaqachon 
ishlatilgan 

Download 0,94 Mb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish