{"id":2518,"date":"2021-09-10T21:38:10","date_gmt":"2021-09-10T18:38:10","guid":{"rendered":"https:\/\/www.muratyalcin.com.tr\/?p=2518"},"modified":"2021-09-10T21:41:22","modified_gmt":"2021-09-10T18:41:22","slug":"ethereum-blockchain-ve-smart-contracts-nedir","status":"publish","type":"post","link":"https:\/\/www.muratyalcin.com.tr\/blog\/ethereum-blockchain-ve-smart-contracts-nedir\/","title":{"rendered":"Ethereum Blockchain ve Smart Contracts Nedir?"},"content":{"rendered":"\r\n<p id=\"97f4\">Bu yaz\u0131, ethereum blockchain ve smart contracts konusu ile ilgili yazmay\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm yaz\u0131 serisinin ilk yaz\u0131s\u0131 olmakla birlikte devam\u0131n\u0131 vakit bulduk\u00e7a payla\u015fmaya \u00e7al\u0131\u015faca\u011f\u0131m. \u0130lk yaz\u0131da sistemin genel hatlar\u0131n\u0131, ikincisinde ki\u015fisel bir ethereum blockchain yap\u0131l\u0131\u015f\u0131n\u0131 ve \u00fc\u00e7\u00fcnc\u00fcs\u00fcnde ise solidity ile smart contract geli\u015ftirip test blockchain\u2019imize y\u00fcklemeyi ger\u00e7ekle\u015ftirmeyi planl\u0131yorum. \u00d6ncelikle ethereum\u2019un mucidi Vitalik Buterin ile ba\u015flayal\u0131m.<!--more--><\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"w hr hs\" role=\"presentation\" src=\"https:\/\/miro.medium.com\/max\/1400\/1*KSaJ4Fth37MwZi26vrgZUw.jpeg\" alt=\"\" width=\"700\" height=\"467\" \/><\/p>\r\n\r\n\r\n\r\n<p id=\"4c3e\">Vitalik Buterin 1994 Rusya\u00a0do\u011fumlu ve 6 ya\u015f\u0131nda Kanada\u2019ya yerle\u015fmi\u015f. Kanada Toronto\u2019da yaz\u0131l\u0131mc\u0131 olarak \u00e7al\u0131\u015f\u0131rken Bitcoin teknolojisiyle ilgilenmeye ba\u015fl\u0131yor. Bitcoin Magazine isimli web sitesinin kurucular\u0131ndan ve bu sitede bir \u00e7ok yaz\u0131 (https:\/\/bitcoinmagazine.com\/authors\/vitalik-buterin) yay\u0131nl\u0131yor. 2012 y\u0131l\u0131nda Waterloo \u00dcniversitesine giriyor ve ard\u0131ndan 2013 y\u0131l\u0131nda yay\u0131nlad\u0131\u011f\u0131 teknik d\u00f6k\u00fcmanla(https:\/\/github.com\/ethereum\/wiki\/wiki\/White-Paper) Ethereum isminde alternatif bir platform fikrini duyurdu. Ocak 2014\u2019te Ethereum, Vitalik taraf\u0131ndan Miami\u2019deki Kuzey Amerika Bitcoin Konferans\u0131\u2019nda resmi olarak ilan edildi. Ethereum kurucu ortaklar\u0131ndan Dr. Gavin Wood ile \u00e7al\u0131\u015fmaya ba\u015flamas\u0131n\u0131n ard\u0131ndan Nisan 2014\u2019te Gavin taraf\u0131ndan Ethereum konulu bir teknik makale yay\u0131nland\u0131 (https:\/\/ethereum.github.io\/yellowpaper\/paper.pdf).<\/p>\r\n\r\n\r\n\r\n<p id=\"cfa1\">Devam eden s\u00fcre\u00e7te Ethereum yayg\u0131nla\u015fmaya devam etti. Bitcoin gibi bir kripto para mimarisi sunmakla birlikte getirdi\u011fi farkl\u0131l\u0131klar nedeniyle Blockchain d\u00fcnyas\u0131nda yeni geli\u015fmelere ve ilerlemelere pencere a\u00e7m\u0131\u015f oldu. \u00d6nceki yaz\u0131mda Bitcoin \u00f6zelinde Blockchain mimarisine de\u011finmi\u015ftim. K\u0131sa bir \u00f6zetini vermek gerekirse, Blockchain temel olarak bir veritaban\u0131d\u0131r. Bir veritaban\u0131n\u0131n g\u00f6revi olan verilerin tutulmas\u0131 i\u015flemini ger\u00e7ekle\u015ftirir fakat yap\u0131sal olarak farkl\u0131 bir mimariye sahiptir.<\/p>\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<p id=\"0d05\">Blockchain ad\u0131 \u00fcst\u00fcne birbirine ba\u011fl\u0131 bloklardan olu\u015fmakta ve bu bloklar ise veriyi bar\u0131nd\u0131rmaktad\u0131r. Her blok bar\u0131nd\u0131rd\u0131\u011f\u0131 veri ile birlikte paketlenir ve kriptografik olarak de\u011fi\u015fmezli\u011fi sa\u011flan\u0131r. Bloklar\u0131n i\u00e7indeki verinin de\u011fi\u015fmezli\u011fi kriptografik hash algoritmalar\u0131 ile sa\u011flanmaktad\u0131r. Her blok kendisinden \u00f6nce gelen blo\u011fun hash bilgisini saklar ve bu \u015fekilde bloklar\u0131n birbirine zincirleme ba\u011flant\u0131lar\u0131 ger\u00e7ekle\u015ftirilmi\u015f olur. Verinin bloklarda depoland\u0131\u011f\u0131 ve bloklar\u0131n birbirine ba\u011flanm\u0131\u015f oldu\u011fu ve bloklar\u0131n de\u011fi\u015fmezli\u011finin sa\u011fland\u0131\u011f\u0131 bu mimarinin en \u00f6nemli \u00f6zelli\u011fi ise da\u011f\u0131t\u0131k yap\u0131da olmas\u0131d\u0131r. Biraz \u00f6nce tarif etti\u011fim veritaban\u0131 yap\u0131s\u0131n\u0131n da\u011f\u0131t\u0131k olarak her bilgisayarda tutulmas\u0131 ve b\u00f6ylece veritaban\u0131 i\u00e7eri\u011finin b\u00fct\u00fcnl\u00fc\u011f\u00fc konusunda bir konsess\u00fcs sa\u011flanmas\u0131 Blockchain mimarisini olu\u015fturur. Buna da\u011f\u0131t\u0131k defter de denilebilir(Distributed Ledger).<\/p>\r\n\r\n\r\n\r\n<p id=\"db20\">Bitcoin ile hayat\u0131m\u0131za giren bu yap\u0131, varl\u0131k(asset) transferlerinde banka, arac\u0131 kurum(middleman) gibi bir katmana gerek duyulmadan do\u011frudan g\u00f6ndericiden al\u0131c\u0131ya transferi m\u00fcmk\u00fcn k\u0131lmas\u0131yla dikkatleri \u00fczerine \u00e7ekmi\u015fti. Ethereum ile birlikte varl\u0131k transferi \u00f6zelli\u011finin yan\u0131nda bunun programlanabilir olarak yap\u0131lmas\u0131 m\u00fcmk\u00fcn oldu. Ethereum d\u00fcnyas\u0131nda blockchain \u00fczerinde yaz\u0131lan programlar\u0131n \u00e7al\u0131\u015ft\u0131r\u0131labilmesi i\u00e7in smart contract kavram\u0131 devreye girmektedir. Smart contract konusu bu yaz\u0131n\u0131n ilerleyen b\u00f6l\u00fcmlerinde ele al\u0131nacakt\u0131r.<\/p>\r\n\r\n\r\n\r\n<p id=\"3a68\">Blockchain, herkese a\u00e7\u0131k(public blockchain) ve sadece izinli hesaplara a\u00e7\u0131k(private blockchain) olarak iki farkl\u0131 t\u00fcre ayr\u0131lmaktad\u0131r. Ethereum ayn\u0131 Bitcoin gibi herkese a\u00e7\u0131k bir blockchain mimarisi sunmakta, isteyen herkes ethereum blockchain verisine ula\u015f\u0131p indirebilir, sa\u011flad\u0131\u011f\u0131 \u00f6zellikleri kullanabilir, transfer i\u015flemi, smart contract i\u015flemleri, mining vs. yapabilir.<\/p>\r\n\r\n\r\n\r\n<p id=\"1169\">Ethereum blok mimarisi Bitcoin ile benzer yap\u0131dad\u0131r ve transaction i\u015flemleri ayn\u0131 mant\u0131kla blok i\u00e7inde tutulmaktad\u0131r. \u00d6nceki yaz\u0131mda blok i\u00e7inde transaction\u2019lar\u0131n nas\u0131l tutuldu\u011funu ve transaction\u2019lar\u0131n hash de\u011ferinin al\u0131narak bir merkle tree i\u00e7erisinde saklanmas\u0131 ile ilgili baz\u0131 detaylar vermi\u015ftim. Ayn\u0131 \u015fekilde ethereum da benzer yolu kullanmaktad\u0131r. Bitcoin kripto para transfer i\u015fleminde, transferi yapan hesap bu i\u015flemin girdi k\u0131sm\u0131nda dijital olarak i\u015flemi imzalar ve bu \u015fekilde hem transfer i\u015flemi veri b\u00fct\u00fcnl\u00fc\u011f\u00fc sa\u011flanm\u0131\u015f olur hem de g\u00f6ndericinin imzas\u0131 taklit edilemeyece\u011finden g\u00f6nderici do\u011frulamas\u0131 sa\u011flanm\u0131\u015f olur. Ethereum\u2019da da transaction private key ile imzalan\u0131r yani mant\u0131k ayn\u0131d\u0131r. Madencilik ile ilgili ise ethereum yine bitcoin\u2019de oldu\u011fu gibi PoW(Proof of Work) algoritmas\u0131n\u0131 kullanarak madencili\u011fin ger\u00e7ekle\u015fmesini sa\u011flar. Aradaki fark ethereum ethash isminde bir hash algoritmas\u0131n\u0131 (sha3) kullanmaktad\u0131r.<\/p>\r\n\r\n\r\n\r\n<p id=\"e3f2\">Buraya kadar anlatt\u0131klar\u0131ma bak\u0131l\u0131rsa ethereum i\u00e7in \u015funu s\u00f6yleyebiliriz: Blockchain mimarisi, kripto para transferi ve madencilik gibi konularda Bitcoin\u2019in getirdiklerini kullanan bir yap\u0131 ile kar\u015f\u0131la\u015f\u0131yoruz. O zaman bir yenilik yok hemen hemen ayn\u0131 mant\u0131kla \u00e7al\u0131\u015f\u0131yor, peki ethereum\u2019un getirdikleri nedir? Neden bu kadar pop\u00fcler oldu? Sorular\u0131 hakl\u0131 olarak gelecektir.<\/p>\r\n\r\n\r\n\r\n<p id=\"5c56\">Ethereum\u2019un fark\u0131, programlanabilir blockchain olmas\u0131ndan kaynaklanmakta. Yani ethereum \u00e7\u0131kana kadar blockchain yap\u0131lar\u0131 \u00fczerinde sadece kripto para transferi m\u00fcmk\u00fcn iken ethereum ile birlikte kullan\u0131c\u0131lar kripto para transferi yapabilmenin yan\u0131nda blockchain \u00fczerinde uygulama yazabilecekleri bir yap\u0131ya sahip oldu.<\/p>\r\n\r\n\r\n\r\n<p id=\"8e39\">Ethereum, yaz\u0131lan bir program\u0131n da\u011f\u0131t\u0131k olarak \u00e7al\u0131\u015ft\u0131r\u0131labilece\u011fi bir platform olarak Bitcoin\u2019in koydu\u011fu \u00e7\u0131tay\u0131 bir ileri seviyeye ta\u015f\u0131d\u0131.<\/p>\r\n\r\n\r\n\r\n<p id=\"71a9\">Yaz\u0131lan programlar\u0131n da\u011f\u0131t\u0131k olarak \u00e7al\u0131\u015ft\u0131r\u0131labilmesi konusu \u00fczerinde durulmas\u0131 gereken bir konudur. Yapt\u0131\u011f\u0131m tan\u0131mdan yola \u00e7\u0131karak ilk bak\u0131\u015fta programlar\u0131n bir \u00e7ok bilgisayarda \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 nedeniyle y\u00fcksek i\u015flem g\u00fcc\u00fc sa\u011flanmas\u0131 ve paralel i\u015flem g\u00fcc\u00fc elde etmek gibi avantjlar var gibi alg\u0131lanabilir. Ama asl\u0131nda elde edilen fayda bu de\u011fildir. Hatta Ethereum blockchain \u00fczerinde da\u011f\u0131t\u0131k olarak program \u00e7al\u0131\u015ft\u0131rmak normal bir bilgisayar \u00fczerinde \u00e7al\u0131\u015ft\u0131rmaktan \u00e7ok daha verimsiz olacakt\u0131r.<\/p>\r\n\r\n\r\n\r\n<p id=\"5123\">\u00c7\u00fcnk\u00fc bu yap\u0131 paralel programlama veya grid computing gibi mant\u0131klar \u00fczerine kurgulanmad\u0131\u011f\u0131ndan ve amac\u0131 bu olmad\u0131\u011f\u0131 i\u00e7in y\u00fcksek i\u015flem g\u00fcc\u00fc veya performans elde etmek m\u00fcmk\u00fcn de\u011fildir. Buradaki as\u0131l ama\u00e7 \u00e7al\u0131\u015ft\u0131r\u0131lan program\u0131n hi\u00e7 bir zaman \u00e7\u00f6kmemesinin garanti edilmesi, programa m\u00fcdahalenin m\u00fcmk\u00fcn olmamas\u0131, hata tolerans\u0131n\u0131n sa\u011flanmas\u0131, programa sa\u011flanan verinin blockchain \u00fczerinde tutulmas\u0131 nedeniyle verinin de\u011fi\u015ftirilemez olmas\u0131n\u0131n garantisidir. Yukar\u0131daki nedenlerle blockchain \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131lacak program\u0131n geli\u015ftirilmesi s\u00fcrecinde ethereum\u2019un yetenekleri ve sunduklar\u0131 iyi anla\u015f\u0131larak planlama yap\u0131lmas\u0131 projenin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6nemdedir.<\/p>\r\n\r\n\r\n\r\n<p id=\"ed0f\">Performans ve paralel programlama gibi faydalar\u0131 getirmiyorsa o zaman programlanabilir blockchain mimarisi bize ne gibi yenilikler getiriyor? Diyelim ki bir program yazmak ve bunu ethereum \u00fczerinde yay\u0131nlamak istiyoruz. Ne gibi programlar yazabiliriz bu sorunun cevab\u0131 yukar\u0131daki sorunun da cevab\u0131 olacakt\u0131r.<br \/>\u00d6rne\u011fin tapu i\u015flemlerini bu yap\u0131 ile ger\u00e7ekle\u015ftirmek m\u00fcmk\u00fcn, bir eviniz var ve ethereum \u00fczerinden sat\u0131\u015f i\u015flemi yapacaks\u0131n\u0131z al\u0131c\u0131 paray\u0131 g\u00f6nderdi ve eve ait dijital sat\u0131\u015f i\u015flemini onaylayacak rutinleri otomatik ba\u015flatacak program geli\u015ftirebilirsiniz. \u00d6rnekleri \u00e7o\u011falt\u0131rsak oy verme i\u015flemleri, kontratl\u0131 sat\u0131\u015flar, ev veya arac\u0131n\u0131z\u0131n sigorta i\u015flemlerinin otomatik olarak ger\u00e7ekle\u015ftirilmesi, sa\u011fl\u0131k sekt\u00f6r\u00fc hasta kayd\u0131 i\u015flemleri, IOT ve ak\u0131ll\u0131 cihazlardan verilerin al\u0131n\u0131p i\u015flenmesi vb. bir \u00e7ok alanda bu mimari kullan\u0131labilir.<\/p>\r\n\r\n\r\n\r\n<p id=\"b3fc\">G\u00f6r\u00fcld\u00fc\u011f\u00fc gibi bu sistemin kullan\u0131m alan\u0131 yazd\u0131\u011f\u0131n\u0131z program ve hayal g\u00fcc\u00fcn\u00fcz ile geni\u015fleyebilecek bir yelpazeye sahip. \u0130\u015fte bu nedenle \u00e7ok farkl\u0131 sekt\u00f6r ve alanlarda kar\u015f\u0131m\u0131za \u00e7\u0131kacak bir mimari tan\u0131m\u0131n\u0131 yapmak yanl\u0131\u015f olmaz. Teknik olarak en basit anlat\u0131mla \u00e7al\u0131\u015facak program\u0131n yapt\u0131\u011f\u0131 i\u015fi \u015fu \u015fekilde tan\u0131mlayabilirim : IFTT (IF THIS THAN THAT) yani Bir i\u015flem gerekli kural\u0131 sa\u011flad\u0131\u011f\u0131nda di\u011fer i\u015flemin ger\u00e7ekle\u015ftirilmesi.<\/p>\r\n\r\n\r\n\r\n<p id=\"3149\">Buraya kadar kavramlarda fazla kaybolmadan anla\u015f\u0131labilirli\u011fi sa\u011flamaya \u00e7al\u0131\u015ft\u0131m, Umar\u0131m konuyu bilmeyen i\u00e7in biraz daha netle\u015fmi\u015ftir. \u015eimdi baz\u0131 kavram ve \u00f6zelliklere bakal\u0131m.<\/p>\r\n\r\n\r\n\r\n<h1 class=\"wp-block-heading\" id=\"5373\">Hesaplar<\/h1>\r\n\r\n\r\n\r\n<p id=\"6844\">Ethereum hesap tipleri ikiye ayr\u0131lmaktad\u0131r.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Externally Owned Accounts (EOA)<\/li>\r\n<li>Contract Accounts<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p id=\"9964\">EOA, private key taraf\u0131ndan kontrol edilir. Bitcoin\u2019de oldu\u011fu gibi genel kullan\u0131mdaki normal hesaplard\u0131r. Bir hesap i\u00e7in private key sahibi iseniz o hesaptaki ether transferi dahil t\u00fcm transaction i\u015flemlerini ger\u00e7ekle\u015ftirme yetkisine sahipsiniz demektir. Sahip oldu\u011funuz ether miktar\u0131n\u0131 tutar ve transfer i\u015flemleri yapman\u0131za imkan tan\u0131r.<\/p>\r\n\r\n\r\n\r\n<p id=\"b253\">Contract Accounts, y\u00f6netiminin kodlanm\u0131\u015f program taraf\u0131ndan yap\u0131ld\u0131\u011f\u0131 hesaplard\u0131r. Sahip oldu\u011fu ether miktar\u0131n\u0131 tutar. Bu hesap tipinde program\u0131n \u00e7al\u0131\u015fmas\u0131 di\u011fer hesaplardan gelen transaction veya message ile tetiklenir.<\/p>\r\n\r\n\r\n\r\n<p id=\"7575\">Hesaplar konusu contract konusunu da i\u00e7erdi\u011finden burada sonland\u0131r\u0131p smart contract b\u00f6l\u00fcm\u00fcne ge\u00e7elim.<\/p>\r\n\r\n\r\n\r\n<h1 class=\"wp-block-heading\" id=\"c184\">EVM ve Smart Contract<\/h1>\r\n\r\n\r\n\r\n<p id=\"3a55\">EVM, Ethereum Virtual Machine kelimelerinin k\u0131saltmas\u0131 olmakla birlikte blockchain \u00fczerine g\u00f6nderilen programlar\u0131n \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 \u00fcstlenen altyap\u0131d\u0131r.<\/p>\r\n\r\n\r\n\r\n<p id=\"e305\">\u00d6nceki konuda, geli\u015ftirdi\u011fimiz programlar\u0131n da\u011f\u0131t\u0131k yap\u0131daki bilgisayarlara g\u00f6nderilip \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131ndan bahsetmi\u015ftim, \u00e7al\u0131\u015ft\u0131rma i\u015flemi EVM taraf\u0131ndan yap\u0131l\u0131r. Yaz\u0131lan programa ise Smart Contract (Ak\u0131ll\u0131 S\u00f6zle\u015fme) olarak adland\u0131r\u0131l\u0131r. Genelde ak\u0131llarda Smart Contract kavram\u0131 ile ilgili yanl\u0131\u015f alg\u0131lar olu\u015fmas\u0131na neden olan \u015fey ise isimlendirilmesi. \u0130\u00e7inde kontrat kelimesi ge\u00e7se de bizim anlad\u0131\u011f\u0131m\u0131z anlamda bir kontrat de\u011fildir.<\/p>\r\n\r\n\r\n\r\n<p id=\"d5ae\">Asl\u0131nda temel olarak bilinmesi gereken tan\u0131m, ethereum\u2019a ba\u011fl\u0131 bilgisayarlarda mining i\u015flemi s\u0131ras\u0131nda \u00e7al\u0131\u015fan programlard\u0131r. Bu programlar\u0131n hangi yeteneklere sahip olabilece\u011fi tamamen geli\u015ftiricilerin hayal g\u00fc\u00e7leri ile ilgilidir. \u0130stenirse kar\u015f\u0131l\u0131kl\u0131 bir s\u00f6zle\u015fme olarak ta geli\u015ftirilip yay\u0131nlanabilir veya istenirse hava durumu bilgisini otomatik olarak IOT cihaz\u0131ndan al\u0131p kaydeden bir program olarak ta yay\u0131nlanabilir.<\/p>\r\n\r\n\r\n\r\n<p id=\"5245\">\u00d6rne\u011fin Ali ve Ay\u015fe aralar\u0131nda bir iddiaya girdiler. Ay\u015fe\u2019nin iddias\u0131na g\u00f6re iki g\u00fcn sonra dolar 4TL ve \u00fczeri olacak. Ali\u2019ye g\u00f6re bu m\u00fcmk\u00fcn de\u011fil. Kaybedenin 100TL\u2019yi kazanana verece\u011fi konusunda aralar\u0131nda anla\u015ft\u0131lar. Fakat ikisi de birbirine para i\u015flerinde hi\u00e7 g\u00fcvenmiyor, bunu smart contract kullanarak \u00e7\u00f6zebileceklerini bilerek bir smart contract geli\u015ftirdiler.<br \/>Buna g\u00f6re smart contract\u2019\u0131n yapt\u0131\u011f\u0131 i\u015f \u015fu \u015fekilde olmaktad\u0131r:<br \/>Smart contract Ali ve Ay\u015fe\u2019den 100\u2019er lira alarak s\u00fcreci ba\u015flat\u0131r ve iki g\u00fcn sonra merkez bankas\u0131 kur sisteminden g\u00fcncel kuru \u00e7ekerek kimin kazand\u0131\u011f\u0131na karar verir ve 200TL\u2019yi kazanan ki\u015fiye transfer eder.<\/p>\r\n\r\n\r\n\r\n<p id=\"32ae\">Smart contract\u2019lar ethereum a\u011f\u0131ndaki di\u011fer kullan\u0131c\u0131lar gibi kripto para al\u0131p g\u00f6nderim yapabilir, di\u011fer smart contract\u2019lara mesaj g\u00f6nderebilir. Onlar\u0131 tetikleyebilir. Bu \u015fekilde birbirinin devam\u0131nda farkl\u0131 s\u00fcre\u00e7leri i\u015fleten bir smart contract zincir s\u00fcre\u00e7leri geli\u015ftirilmesi de m\u00fcmk\u00fcnd\u00fcr.<\/p>\r\n\r\n\r\n\r\n<p id=\"8b1c\">Smart contract geli\u015ftirme s\u00fcreci Solidity programlama dili ile yap\u0131lmakta. Solidty, C++ ve Java dillerinin yaz\u0131m yap\u0131s\u0131na benzeyen bir programlama dilidir. Solidity ile smart contract yaz\u0131l\u0131m s\u00fcreci ger\u00e7ekle\u015ftirildikten sonra Solidity derleyebilen bir derleyici ile derlenir ve blockchain\u2019e transaction olarak iletilir.<\/p>\r\n\r\n\r\n\r\n<p id=\"1690\">\u00d6rnek bir smart contract kodu:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">pragma solidity ^0.4.0;contract SimpleStorage {<br \/>    uint storedData;    function set(uint x) public {<br \/>        storedData = x;<br \/>    }    function get() public constant returns (uint) {<br \/>        return storedData;<br \/>    }<br \/>}<\/pre>\r\n\r\n\r\n\r\n<p id=\"2260\">Browser tabanl\u0131 ve offline olarak Solidity kodlar\u0131n\u0131 derleyip test edebilece\u011finiz derleyici olarak\u00a0<a href=\"https:\/\/github.com\/ethereum\/browser-solidity\/tree\/gh-pages\">https:\/\/github.com\/ethereum\/browser-solidity\/tree\/gh-pages<\/a>\u00a0adresindeki zip dosyas\u0131n\u0131 indirip deneyebilirsiniz.<br \/>Solidity ile ilgili daha detayl\u0131 bilgi ve uygulama \u00f6rne\u011fini sonraki yaz\u0131lar\u0131mda eklemeyi planl\u0131yorum o nedenle programlama k\u0131sm\u0131n\u0131 k\u0131sa tuttum.<\/p>\r\n\r\n\r\n\r\n<p id=\"8a25\">Smart contract\u2019lar\u0131n ve di\u011fer transaction i\u015flemlerinin ger\u00e7ekle\u015ftirilebilmesi i\u00e7in bir \u00fccretlendirme sistemi mevcuttur. Bunun i\u00e7in gas ad\u0131 verilen birim kullan\u0131l\u0131r.Transaction i\u015flemi veya Smart contact kodunun \u00e7al\u0131\u015fabilmesi i\u00e7in gerekli gas miktar\u0131 ve kullanabilece\u011fi maksimum gas miktar\u0131 belirlenir. Asl\u0131nda bu yap\u0131y\u0131 Bitcoin\u2019deki transaction fee yani i\u015flem \u00fccretine de benzetebiliriz. Smart contract i\u00e7in ise kullan\u0131lan i\u015flem g\u00fcc\u00fc, veri eri\u015fimi,, kulland\u0131\u011f\u0131 kaynak veya di\u011fer belirleyici unsurlara g\u00f6re \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken gas miktar\u0131 artacakt\u0131r.Smart contract \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gereken gas harcamalar\u0131, hesab\u0131n\u0131zda bulunan ether ile sat\u0131n al\u0131n\u0131r. Program\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gaz gereksinimlerini kar\u015f\u0131layacak yeterli ether yoksa, i\u015flem iptal olur ve t\u00fcm ara durum de\u011fi\u015fiklikleri i\u015flem \u00f6ncesi anl\u0131k durumuna geri d\u00f6ner.<\/p>\r\n\r\n\r\n\r\n<p id=\"cb1a\">Gas, Ethereum\u2019daki karma\u015f\u0131k hesaplamalar\u0131 a\u011f \u00fczerinde \u00e7al\u0131\u015fmak i\u00e7in \u201cg\u00fcvenli\u201d hale getiren kilit mekanizmad\u0131r, \u00e7\u00fcnk\u00fc kontrolden \u00e7\u0131km\u0131\u015f programlar yaln\u0131zca \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 isteyen insanlar taraf\u0131ndan sa\u011flanan para kadar s\u00fcrecektir. Para durdu\u011funda, madenciler bu i\u015flem \u00fczerinde \u00e7al\u0131\u015fmay\u0131 durdururlar. Bu \u015fekilde \u00fccretsiz program \u00e7al\u0131\u015ft\u0131rma olana\u011f\u0131 olmayaca\u011f\u0131ndan sisteme olan DDOS gibi olas\u0131 sald\u0131r\u0131lar\u0131n maliyeti y\u00fcksek olacakt\u0131r ve bir anlamda sistem g\u00fcvenli\u011fi i\u00e7in koruyucu bir mekanizma say\u0131labilir.<\/p>\r\n\r\n\r\n\r\n<p id=\"6691\">Umar\u0131m buraya kadar yazd\u0131klar\u0131m bir bak\u0131\u015f a\u00e7\u0131s\u0131 sa\u011flam\u0131\u015ft\u0131r, derin ve detayl\u0131 bir konu oldu\u011fundan anlat\u0131m\u0131 burada sonland\u0131r\u0131yorum. Devam\u0131ndaki yaz\u0131larda g\u00f6r\u00fc\u015fmek \u00fczere.<\/p>\r\n\r\n\r\n\r\n<p id=\"e79c\">Okudu\u011funuz i\u00e7in te\u015fekk\u00fcrler.<\/p>\r\n\r\n\r\n\r\n<p id=\"9ddc\">Kaynak : <a href=\"https:\/\/enginunal.medium.com\/ethereum-blockchain-ve-smart-contracts-giri%C5%9F-638e487c8e41\">Engin \u00dcNAL<\/a><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131, ethereum blockchain ve smart contracts konusu ile ilgili yazmay\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm yaz\u0131 serisinin ilk yaz\u0131s\u0131 olmakla birlikte devam\u0131n\u0131 vakit bulduk\u00e7a payla\u015fmaya \u00e7al\u0131\u015faca\u011f\u0131m. \u0130lk yaz\u0131da sistemin genel hatlar\u0131n\u0131, ikincisinde ki\u015fisel bir ethereum blockchain yap\u0131l\u0131\u015f\u0131n\u0131 ve \u00fc\u00e7\u00fcnc\u00fcs\u00fcnde ise solidity ile smart contract geli\u015ftirip test blockchain\u2019imize y\u00fcklemeyi ger\u00e7ekle\u015ftirmeyi planl\u0131yorum. \u00d6ncelikle ethereum\u2019un mucidi Vitalik Buterin ile ba\u015flayal\u0131m.<\/p>\n","protected":false},"author":1,"featured_media":2519,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55,16],"tags":[76,635,634,636],"class_list":["post-2518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bitcoin","category-haberler","tag-blockchain","tag-ethereum","tag-ethereum-blockchain-ve-smart-contracts-nedir","tag-smart-contracts"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/posts\/2518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/comments?post=2518"}],"version-history":[{"count":3,"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/posts\/2518\/revisions"}],"predecessor-version":[{"id":2522,"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/posts\/2518\/revisions\/2522"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/media\/2519"}],"wp:attachment":[{"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/media?parent=2518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/categories?post=2518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.muratyalcin.com.tr\/blog\/wp-json\/wp\/v2\/tags?post=2518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}