İçindekiler
- 1 ERC20 Token Nedir?
- 2 Herşeyden Önce Ethereum Nedir?
- 3 Peki Akıllı Sözleşmeler?
- 4 Akıllı bir sözleşme bir token oluşturduktan sonra ne olur?
- 5 ERC20’nin faydaları nelerdir?
- 6 ERC20 ile ilgili herhangi bir olumsuz yön var mı?
- 7 Son Söz
ERC20 Token Nedir?
ERC20 tokenleri, yalnızca Ethereum platformu için tasarlanan ve kullanılan tokenlerdir.
Platformun standartlarını takip ederler, böylece paylaşılabilirler, başka tokenlerle değiştirilebilirler veya bir kripto para cüzdanına aktarılabilirler.
Ethereum topluluğu bu standartları üç isteğe bağlı ve altı zorunlu kural ile oluşturdu.
İsteğe bağlı kurallar
- token adı
- sembol
- ondalık (18’e kadar)
Zorunlu kurallar
- totalSupply (toplam arz)
- balanceOf (bakiye)
- transfer (aktarım)
- transferFrom (aktarımın yapıldığı yer)
- approve (onay)
- allowance (izin)
Kafanız karıştı mı? O zaman güzel. Devam edelim.
Herşeyden Önce Ethereum Nedir?
Ethereum, iki temel işlevi olan merkezi olmayan bir bilgisayarlar ağıdır.
Bu iki temel işlev: işlemleri kaydedebilen blok zinciri ve akıllı sözleşmeler üretebilen sanal bir makine.
Bu iki işlevden dolayı, Ethereum merkezi olmayan uygulamaları (DApps) destekleyebilir. Bu DApp’ler, temel teknolojisinden faydalandıkları mevcut Ethereum blockchain üzerine inşa edilmiştir. Bunun karşılığında, Ethereum ağındaki bilgi işlem gücünü kullanan geliştiricilerden bir ücret alır, ki bu sadece platform arası para birimi olan Ether ile ödenebilir.
Amacına bağlı olarak, DAPP’ler bir para birimi, şirkette bir hisse, bir sadakat programındaki puanlar veya hatta bir evliliğin altın veya tapu miktarına ait mülkiyet kanıtı olarak çalışmak için ERC20 tokenleri yaratabilirler.
Peki Akıllı Sözleşmeler?
Akıllı sözleşmeler, ERC20 tokenleri oluşturmak için kullanılır.
Ayrıca, tokenlerin işlemlerini kolaylaştırmak için kullanılırlar ve bir hesapta token bakiyelerini kaydederler.
Akıllı sözleşmeler, “If-This-Then-That” (IFTTT) mantığı temelinde “Solidity” programlama dilinde yazılır.
Akıllı bir sözleşme bir token oluşturduktan sonra ne olur?
ERC20 tokenleri işte burada devreye girer.
Bir token oluşturulduktan sonra, başka bir kişiye satılabilir, harcanabilir veya verilebilir.
ERC20, Ethereum ağı kullanımı üzerindeki tüm tokenlerin evrensel dilidir. Bir tokenin diğeriyle işlem yapmasına izin verir.
Bir kripto-gazino kurmak istediğimizi düşünelim. Normal bir kumarhanede olduğu gibi, oyuncuların bizim tokenlerimizi ya da çiplerimizi kullanmasını istiyoruz.
Yani, bir oyuncu elinde fiat paraları (dolar, euro, tl vb..) bizim tokenimizle değiştirir ve bir poker masasına yönelir.
“Kripto-gazino” örneğindeki ERC20 kurallarının her birine bakalım.
Bu kurallara geliştiricilerin dikkat etmesi çok önemlidir.
İsteğe bağlı kurallarla başlayalım:
Token Adı: BLU Çip
Sembol: BLU
Ondalık: 2*
- Tokenlerimizin bölünebilir olmasını istiyoruz, böylece minimum oyuncu bahisleri .01 BLU olur. Ondalık değerini 0’da bırakabilir ve en az 1 BLU yapabilir veya ondalık değeri 18’e çıkartabiliriz. Bu da mümkün olan en düşük bölüm .000000000000000001 BLU olur, ancak biz bu örnekte 2 deyip biraz basit tutacağız.
Şimdi zorunlu kurallara bakalım.
totalSupply Nedir?
[totalSupply], oluşturulan toplam ERC20 token sayısını tanımlar.
Yani toplam arz demektir.
Kumarhanemizin yapması gereken ilk şey, dolaşımda olacak toplam BLU tokeninin sayısını belirmektir. Poker masamızın on oyuncu ile toplam 10 BLU token olduğunu varsayalım.
transfer Nedir?
[transfer], toplam arzdan bir kullanıcı hesabına belirli sayıda tokenin aktarılmasını sağlar.
Oyun başlamadan önce, oyuncular BLU tokenlerini satıcıdan almalıdır.
Her oyuncu 1 BLU alır.
balanceOf Nedir?
[balanceOf] fonksiyonu çalıştırıldığında, belirli bir adresin hesabında sahip olduğu token sayısını döndürür.
Poker oyunumuzun ilk bölümünde, 5 oyuncu kartlarına baktı ve oynamamaya karar verdi. Geri kalan 5’in her biri .5 BLU’ya bahis koymaya karar verdi. [balanceOf] kullanarak, oyuncuların beşinde 1 BLU ve diğer beşinde de .5 BLU olduğunu görüyoruz.
Diğer kullanıcılardan ERC20 token nasıl alırım?
[transferFrom], bir kullanıcının tokenlerini başka bir kullanıcıya aktarmasına izin veren fonksiyondur.
Poker oyunumuza geri dönelim. İyi haberler var! İlk eli kazandınız ve diğer oyunculardan 2.5 BLU kazandınız.
Ama onlardan alabilmek için [transferFrom]’a ihtiyacınız var.
Sahte token yapmanın bir yolu var mıdır?
Yoktur, çünkü [approve] fonksiyonu toplam token tedarikine karşı her işlemi kontrol eder.
Kayıp ya da fazla olmadığından emin olur.
Varsayımsal poker oyunumuzun bütünlüğünü korumanın bir başka yolu da hiç kimsenin masaya fazladan BLU almadığından emin olmaktır. Yani, [approve], tablodaki toplam BLU sayısının 10’a eşit olup olmadığını kontrol ederek değişime izin verir.
Fazladan tokenim olduğu yalanını söyleyebilir miyim?
Hayır.
Bir işlem gerçekleşmeden önce [allowance] fonksiyonu, kullanıcının hesabının bakiyesini kontrol eder ve yetersiz token varsa işlemi iptal eder.
“Kripto-gazinoda” krediye izin vermiyoruz, bu yüzden her oyuncunun kendi bahislerini yapmak için yeterli BLU’ya sahip olduğundan emin olmalıyız. Yalnızca 1 BLU varsa, 2 BLU’ya bahis koyamazlar.
ERC20’nin faydaları nelerdir?
Temel olarak, her şeyi daha basit hale getirir.
ERC20 tokenleri henüz ortada yokken, geliştiriciler koddaki diğer terminolojiyi kullanabiliyorlardı – ör. bir token [totalAmount] kullanır, bir başkası [totalNumber] kullanır gibi..
Borsalar ve cüzdanlar her bir token için uygun platformları oluşturmak için o tokenin kullandığı kodlarla uyumlu olmak zorundaydı.
Evrensel bir standartla, yeni tokenler oluşturulduktan sonra otomatik olarak bir borsaya veya bir cüzdana aktarılabilir.
ERC20 ayrıca yeni tokenlerin oluşturulmasını son derece kolaylaştırıyor ve bu nedenle de Ethereum 2017’de ICO’ların en popüler platformu haline gelmişti.
ERC20 ile ilgili herhangi bir olumsuz yön var mı?
ERC20 mükemmel değil.
ERC20 token standartlarının ele almadığı bazı sorunlar var.
Örneğin akıllı bir sözleşmede Ether yerine ödeme olarak tokenlerin kullanıldığı durumlarda bu tokenler geri döndürülemez şekilde imha edilir. Bundan dolayı yaklaşık 3 milyon dolar kaybedildi.
Bu hatayı düzeltmek için, Ethereum topluluğu şu anda ERC223 adlı yeni bir standart üzerinde çalışıyor. Bu standart ERC20 ile uyumlu değildir, bu nedenle geliştiriciler uyumluluk gerçekleşene kadar ERC20 kullanmaya devam etmeleri için teşvik edilir.
Nisan 2018’de, birtakım borsalar, batchOverflow adlı bug yüzünden Ethereum tabanlı ERC20 tokenleri çekme ve yatırma işlemlerini askıya aldı. Tespit edilen bu hata sayesinde bir saldırganın büyük miktarda tokene sahip olmasına izin verebileceği belirtildi.
Şu anda bu tür güvenlik açıklarını düzeltmek için geleneksel bir güvenlik yaklaşımı bulunmuyor.
Son Söz
Ethereum platformundaki her token bir ERC20 tokenidir.
Bu yazı yazıldığı tarih itibariyle toplam 83033 ERC20 tokeni bulunuyordu, bazılarına göz atalım.
EOS (EOS), şu anda pazardaki yaklaşık 12 milyar dolar ile 5. büyük kripto para birimi, blok zincirler arası iletişimi kullanabilen bir ağ kurmaya çalışıyor.
TRON (TRX), yazı yazılırken tüm kripto paralar arasında 10. sırada yer almakta ve “dijital eğlence endüstrisi için açık kaynaklı bir protokol” olarak tanımlanmaktadır. Tüm insanların farklı türde içerikler yarattığı ekosisteme sahip bir içerik platformu sunmayı amaçlıyor.
Pazar payı açısından 15. kripto para birimi olan VeChain (VEN), kurumsal düzeyde halka açık blok zincir platformudur. Her bir ürüne ait özel anahtarlar sağlamak için Nesnelerin İnterneti (IoT) teknolojisini uygulamaya geçirmeyi planlamaktadır.
ERC20 tokenlerinin kapsamlı bir listesine buradan erişebilirsiniz.