Blockchain’de bir başkasına değer gönderimi: Transaction

Blockchain üzerinde bir kullanıcının bir başkasına değer gönderebilmesi bir “Transaction” oluşturarak gerçekleşiyor. Transaction kelimesinin Türkçe karşılığı işlem, belki bankacılar farklı bir isim kullanıyorlardır. Ben Transaction demeye devam edeceğim.

İlk yazım Blockchain nasıl çalışır? ile sistemin nasıl çalıştığından kabaca bahsetmiştik. Daha sonra Blockchain Cüzdanı yazımda ise hesaplarınızın nasıl çalıştığını ve nasıl korunması gerektiğinden bahsetmiştik. Şimdi Transaction’lardan bahsederek, Blockchain’in çalışma prensibini size daha da fazla açmak istiyorum.

Bu yazının yazıldığı tarih itibariyle son 24 saatte Bitcoin ağında 200.423, Ethereum ağında 244.486 Transaction gerçekleşmiş. Kaynak: BitInfoCharts

Bankacılık sisteminden farklı düşünülmemeli

Blockchain gelecekte bir çok sektör, kurum ve kuruluşu yeniden şekillendirecek olsa da bu, varolan sistemlerin tamamen değişmesi, yeniden kurulması gerektiği gibi anlamları taşımıyor. Bankacılık sisteminden apayrı bir sistem gibi düşünmemek gerekli. Sistemi daha iyi anlayabilmek için bendeniz, sıklıkla işlem yaptığımız bankacılık uygulamalarından bahsederek sizlere anlatacağım.

Bankaların bize sağladığı faydaların temelini 2 ürün oluşturuyor. İlki bize verdikleri hesap, ikincisi ise bu hesaplar arasında birbirimize para transferi yapabilmemizi sağlayan işlem (Transaction). Bankanın sunduğu hizmet, bizim için hesabımızın bakiyesini tutmak ve hesabımızdan başka bir hesaba para transferi yaparken aracı kurum olmak. Örneğin; Fırat, benim hesabıma, A bankası üzerinden 100₺ para transfer ettiğinde A bankası, Fırat’ın hesabından 100₺’nin düştüğünden emin olması gerektiği gibi, benim hesabımda da 100₺ eklendiğinden emin olması gerekiyor. Buna işlem yani Transaction diyoruz.

Yukarıdaki görselde, Fırat bana 100₺ gönderileceğini bankaya bildiriyor. Banka Fırat’ın hesabında 100₺ olduğunu kontrol ediyor, benim, bu parayı alabilecek bir hesabım var mı kontrol ediyor. Hiç bir sorun yoksa, bu aracılık işlemini yaptığı için bir ücret karşılığında Transaction’ı gerçekleştiriyor. Banka’nın belirlediği sürede, belirlediği işlem ücretiyle kimlik bilgilerini bildiği kullanıcıdan, kimlik bilgileri bilinen başka bir kullanıcıya paramızı yollamam işlemine EFT (Elektronik Fon Transferi) işlemi diyoruz.

Blockchain’de Transaction nasıl oluşuyor?

Blockchain’de ise durum hiç de farklı değil. Fırat bir blockchain cüzdanı içerisinde bulunan Ether’lerden benim cüzdanıma 10 Ether yolluyor. Bu bilgi Ethereum ağına bildiriliyor yani bir Transaction oluşturuluyor. (Transaction nasıl oluşturacağım diye düşünmeyin, bunu sizin için Ether aldığınız yerler yapıyor, ben sadece burada kavramı aktarmak için siz yapıyormuşsunuz gibi anlatıyorum.) Blockchain ağlarında bankadan farklı olan en büyük özellik, Fırat’ın cüzdanından çıkan 10 Ether’in benim cüzdanıma girdiğini onaylayan aracı kurumun (Bankanın) olmaması. Bu onaylama işlemini bizim için, daha önceki yazılarımda bahsettiğim, Madenciler (Miner’lar) yapıyor.

Yukarıdaki görselde Fırat, elindeki Ether’lerin 10 tanesini bana yolluyor. Bu işlemi Ethereum ağına bildiriyor ve Ethereum Ağı bunu beklemede durumunda sisteme dahil ediyor. Ardından bir miner (madenci) bu beklemedeki transaction’ı bir blok içerisine alıyor ve doğruluyor ve transaction 152’nci blok içerisine yazılıyor. Miner bu işlemi yaptığında Fırat’tan bir transaction işleme ücreti alıyor. Bu bankaya göre çok cüzi bir miktar olabileceği gibi, Fırat tarafından da belirlenebiliyor. Bu durumda madenci önce yüksek bedel teklif edilen transaction’ları blok’a dahil ediyor. Yani Fırat transaction için miner’ların belirlediği bir fiyat teklif ederse, 10 Ether benim hesabıma saniyeler içerisinde geçiyor. Miner’ların belirlediğinin çok daha altında bir ücret belirterek, transfer bedelini düşürebilir, fakat bu 10 Ether’in bana transferini dakikalar sonrasına bırakabilir.

22 Temmuz tarihinde, Ethereum Ağı’nda, ortalama transaction işleme bedeli 0.684$ oldu. Kaynak: BitInfoCharts

Transaction işleme bedeli nasıl belirleniyor?

Bunu anlatmak için biraz teknik konuların üzerinden geçmek gerekecek. Hepimizin bildiği gibi bilgisayardaki işlemler, dijital veriler kullanılarak gerçekleştiriliyor. Dijital verilerin ölçü birimi ise bildiğiniz gibi, bit, byte, kilobyte, megabyte, gigabyte diye büyüyerek devam ediyor. Daha detaylı bilgi edinmek isteyenler şu linkten faydalanabilir.

Ethereum ağında Transaction’lar içerisinde birbirimize ether yollayabildiğimiz gibi başka verileri de bu ağ üzerinde saklayabiliyoruz. Örneğin biz, GlobalMiles uygulamamız ile kullanıcılarımıza yolladığımız milleri, Ethereum ağını kullanarak, kullanıcılarımızın dijital cüzdanlarına transfer ediyoruz.

Miner’lara ödediğimiz ücret ise Ethereum Ağı’nda işlenmesini istediğimiz veri miktarı ile doğru orantıda değişiyor. Henüz nasıl çalıştığını anlamadığım ve adı Ethereum Gas Price Oracle olan yöntemle, Ethereum yöneticileri, miner’lar ile veri işleme ücreti konusunda anlaşıyorlar. Bunun Ethereum Ağı’ndaki ölçü biriminin adı ise Gas. Yanlış hatırlamıyorsam, Ocak ayında Ethereum için bir Smart Contract geliştirdiğimde bir byte’lık verinin değeri 68 Gas‘dı. Siz Ethereum Ağı’na 100 byte’lık bir veri gönderdiğinizde 68 * 100 Gas ödüyorsunuz.

Örneğin, ben Ethereum Blockchain Ağı’na kaydetmek üzere, 550 Byte’lık bir veri göndereyim. Benim transaction’ımın işlenmesi için gereken Gas miktarı: 550 Byte * 68 Gas = 37400 Gas eder. Eğer ben transaction gönderirken, bir Gas değeri göndermezsem, Gas Price Oracle ile belirlenen standart GasPrice (Gas Bedeli) benim transaction’ım için uygulanır. Bu da şu anda 0.000000021 Ether yani alt birimiyle 21 Gwei. Transaction’ımın toplam değeri 0,000000021 Ether * 37400 Gas = 0,0007854 Ether ediyor. Bu da ether’ın şu anda 200$ civarında olduğunu varsayarsak 0,16$ eder. Yani Ethereum Ağı’na 550 Byte’lık bir veri yazmanın bedeli 0,16$, Türk Lirası ile de 0,57₺ eder (usd/tl: 3.55₺).

Ethereum Ağı’na bir veri yazmayıp, sadece başka bir cüzdana ether yolladığımızda 21.000 Gas harcanıyor.

Transaction’ın gerçekleşme hızının ayarlanması

Ya da bunun için Transaction bedelinin ayarlanması diyebiliriz. Biz transaction’ların gerçekleşmesi için Blockchain nasıl çalışır? yazısında bahsettiğim gibi bir işlem bedeli ödüyoruz. Transaction’ımız, Miner’ların işlemcisine yük oluşturuyor, Transaction’ın büyüklüğü Miner’ların işlemcisi için daha büyük işlem demek. Bu da bedel olarak Miner’ların kazma işlemi için daha fazla ödememiz gerektiği anlamına geliyor.

Fakat biz Transaction’ın işlenme bedelini kısaltarak, maliyetimizi azaltabiliyoruz. Bu durumda da Miner’lar bizim işlemimizi daha sonralara atıp, önce yüksek işlenme bedeli verenlerin Transaction’larını işliyorlar.

Blockchain çalışma yöntemi ve özellikle Ethereum’un teknik yapısı ile ilgili yazılar devam edecek. Yeni yazılardan haberdar olmak için Twitter hesabımı takip edebilirsiniz: @MehmetDavut

Önceki yazılarım: Blockchain nasıl çalışır? ve Blockchain Cüzdanı da göz atmak isteyebilirsiniz.