follow us on twitter . like us on facebook . follow us on instagram . subscribe to our youtube channel . announcements on telegram channel . ask urgent question ONLY . Subscribe to our reddit . Altcoins Talks Shop Shop


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here Ads bidding Bidding Open

Author Topic: Mining - Difficulty, Target, Bits Değerlerindeki Değişiklikler  (Read 1147 times)

Offline Marshal

  • Legendary
  • *
  • Activity: 1333
  • points:
    8133
  • Karma: 43
  • Turkish Old Moderator @Leteravian
  • Trade Count: (0)
  • Referrals: 2
  • Last Active: January 18, 2022, 11:18:25 AM
    • View Profile

  • Total Badges: 21
    Badges: (View All)
    10 Posts First Post Fifth year Anniversary
Bitcoin dünyasında özellikle madencilik ile ilgili başlıkların altında sıklıkla gördüğünüz bu üç terim birbiri ile yakından bağlantılıdır. Hash hesaplaması yapan madencilerin amaçlarının target değerinden küçük veya ona eşit bir hash değeri bulmak olduğunu biliyoruz. Aslında target, tıpkı blokların hash değerleri gibi, 256 bit (32 byte) büyüklüğünde bir başka hash değeridir. Bu değişken, madencilere basitçe hedeflerini göstermektedir. Çünkü target değerine eşit veya ondan daha küçük hash değerini bulan ilk madenci yeni bloğu ekleyecek ve blok ödünü kazanacaktır. Bunu bir örnek ile incelemek için blockchain üzerindeki ilk bloğa (genesis block) bir göz atalım.



Bu üç terimin karışıklığı kullanıcılar için genelde bu noktada başlıyor. Çünkü bloğu incelediğinizde herhangi bir target değerine sahip olmadığını göreceksiniz. Blockchain üzerinde target değerini bits olarak daha kısa bir formatta görebiliyoruz. Bunun temel sebebi yer tasarrufu yapmaktır.

DLT (distributed ledger technology) sistemlerinin en sık karşılaştığı problem scalibility denilen veri büyüklüğünün kontrolüdür. Bitcoin gibi devasa bir sistemde bu sorun üzerinde çalışılmaz ise kısa zamanda sistemin sonunu getirebilir. Amaç, verileri olabildiğince kısa formatta saklamaktır. Bitcoin, bu alanda ciddi gelişmeler kaydedilmesini sağlamıştır. Daha sonra yakından inceleyeceğimiz SegWit, Segwit2x ve Lightning network bu alanda yapılmış çalışmalardır.

Bits, target değerinin sıkıştırılmış formatıdır. 4 byte büyüklüğündedir ve yine hexidecimal yapıdadır. Bu kısa format sayesinde 32 byte büyüklüğündeki target değerini 4 byte büyüklüğündeki bits değeri ile gösterebiliyoruz. Bu kısaltmanın yapılabilmesinin nedeni, aradığımız değerin (madencilerin aradığı hash değeri) özel bir değer olmasından ziyade belirli küçüklükte bir değer olmasıdır. Bu format, floating-point arithmetic hesaplamalarına benzemektedir. 4 byte büyüklüğündeki bits değerinin ilk byte’ı significant kısmının büyüklüğünü gösterir.

blockchain.info sitesinde bits değerleri decimal karşılıkları üzerinden gösteriliyor. Genesis block ‘un bits değerini bulmak için öncelikle bir decimal-to-hexidecimal çevirici (https://www.binaryhexconverter.com/) kullanmamız gerekiyor. 486604799 sayısının hexidecimal karşılığı 1d00ffff çıkmaktadır.

İlk byte olan 1d bize target için significant kısmının 29 byte olduğunu göstermektedir.

Öyleyse 00ffff ile başlayan significant değer

00ffff0000000000000000000000000000000000000000000000000000 şeklindedir.

Target değerinin 32 byte olduğunu biliyoruz. Öyleyse başında 3 byte 0 bulunmaktadır. Yani target:

00000000ffff0000000000000000000000000000000000000000000000000000 şeklindedir.

Bitcoin madenciliği anlatılırken kullanılan en genel örnek, hash değerinin başındaki 0 sayısı ile iligli oluyor. Hash değerinin başındaki 0 sayısının toplamı arttıkça zorluğunda arttığını ve aranan hash verilerinin aynı oranda 0 ile başlaması gerektiğini anlatıyoruz. Konunun temel olarak anlaşılması için en iyi örnek bu anlatım şekli olsada aslında hesaplanma ve kontrol şekli çok daha derin ve karmaşıktır.

Bitcoin madenciliğinin “Yeni blok: SHA-256[SHA-256(header)]≤ target” şeklinde formüle edildiğini söyledik. Burada dikkat edilmesi gereken nokta “baştaki 0 sayısı” deyiminin hash ve target değerlerinin binary formatı için kullanıldığıdır.

Difficulty değerine genesis block üzerinde baktığımızda karşılığını 1 olarak görüyoruz. Buradan şu formüle ulaşıyoruz:



Yani bits değeri 0x1d00ffff olan ilk blok difficulty 1 olarak belirlenmiştir. Bu, aynı zamanda difficulty değerinin alabileceği en düşük sayı olarak sabitlenmiştir. Yani ağ üzerindeki toplam hesaplama gücü ne kadar düşerse düşsün zorluk bu noktadan sonra düşmeyecektir. Difficulty, zorluk hesaplamasını kolaylaştırmak için bir sabit değer sunmaktadır. Target 0x1d00ffff olduğunda bu hash değerine eşit veya ondan küçük bir hash sonucu bulmanın olasılığını hesapladığımızda, difficulty değeri üzerinden hesaplamalar ve kıyaslamalar yapmamız çok daha kolaylaşır. Örneğin 40000. bloğun difficulty değerine bir göz atalım:



40000. bloğuğun difficulty değeri 1.82 olarak görünüyor. Bunun anlamı istenen hash değerini bulmanın genesis block’a oranla 1.82 kat daha zor olduğudur. Difficulty sabiti sayesinde bu bilgiyi tek bakışta elde etmek mümkün. Aşağıda bitcoin sisteminin zorluk derecesinin yıllar içindeki artışını görebilirsiniz.



Zorluk derecesinin her 2016 blokta bir düzenlendiğinden daha önce bahsetmiştik. Burada hesaplama:



formülüne dayanır. Bitcoin üzerinde her 2016 blokta bir bu hesaplama yapılır ve bu sayede zorluk her 10 dakikada bir yeni bir blok bulunacak şekilde ayarlanır. Zorluk derecesinde çok agresif oynamalar olmaması için tek seferde %400 değişilik sınırı getirmiştir.

17 Haziran 2018 itibariyle difficulty değeri 4.940.704.885.521'a (block #527945) ulaşmıştır. Bu, zorluk derecesinin yaklaşık 5 trilyon arttığını göstermektedir.

Not : Makaleyi hazırlayan Ahmet Seyhan'a Teşekkürler...
« Last Edit: June 26, 2018, 09:43:37 AM by Marshal »

Altcoins Talks - Cryptocurrency Forum


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here Ads bidding Bidding Open


 

ETH & ERC20 Tokens Donations: 0x2143F7146F0AadC0F9d85ea98F23273Da0e002Ab
BNB & BEP20 Tokens Donations: 0xcbDAB774B5659cB905d4db5487F9e2057b96147F
BTC Donations: bc1qjf99wr3dz9jn9fr43q28x0r50zeyxewcq8swng
BTC Tips for Moderators: 1Pz1S3d4Aiq7QE4m3MmuoUPEvKaAYbZRoG
Powered by SMFPacks Social Login Mod