Onur Aykaç
a code junkie
from dokuztas.blockchain import Blockchain
using Dokuztas.Blockchain;
import { Blockchain } from 'dokuztas';
photo source: http://hahli9.deviantart.com/art/Angkor-Wat-138061667
Onur Aykaç
/onuar
@onuraykac
@onurgil
from dokuztas.blockchain import Blockchain
using Dokuztas.Blockchain;
import { Blockchain } from 'dokuztas';
photo source: kjpargeter
Teknik olmayan yanı
Teknik olan yanı
Dokuz taş
BLOCKCHAIN
ETHEREUM
Tarihçesi
EVM
KOD!
photo source: 101101.io
The Babbage Engine :https://goo.gl/ytYdcv
2008
Satoshi Nakamoto'dan sekiz sayfalık paper
İlk Bitcoin (Genesis)
2009
Satoshi topuk
Son mesaj
2010
2011
Satoshi'ye güvenmeye gerek yok, paper'ı okumalıyız.
Yeni bir icat yok. Mevcut algoritmalarla kompozit çözümler var.
Mevcut sorunlar?
A
B
100 TL
96 TL
1-3 gün
Blockchain - Sözlük
Nasıl çalışır?
Teknik
photo source: fxmag.pl
Hash (sha256)
f(x) = y
y => f(x)
f("hello world") = b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
f("hello world") = e519e9540ff8a84d732c6f6e8db424d9abf4125078130221763fa573067a9059
Asymmetric keys (rsa512)
PublicKey(7311842419659295381275339232716685188968481772799497896417816218023384514824607051152246990872107072611361475548032198163636920009070713541538666050593967, 65537)
MD5, SHA1, SHA256, SHA512
Consensus
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
1Ez69SnzzmePmZX3WpEzMKTrcBF2gpNQ55
5 btc
1XPTgDRhN8RFnzniWCddobD9iKZatrvH4
14rE7Jqy4a6P27qWCCsngkUfBxtevZhPHBx
100 btc
1M8s2S5bgAzSSzVTeL7zruvMPLvzSkEAuv
1GBwk2YJMDFqSVhTKygH8zUwV7jdoJhHHH
0,02 btc
Transaction'lar
Merkle root hash
547ef4d4b3487d429715260083ae...
T1
T2
T3
T4
H(T1)
H(T2)
H(T3)
H(T4)
H(H(T1) + H(T2))
H(H(T3) + H(T4))
H(H(H(T1) + H(T2)) + H(H(T1) + H(T2)))
Önceki block'un hash'i
000000000000000000397d1d76664a228096fca5e70a54193217ad2c4d2c9520
Merkle root hash
547ef4d4b3487d429715260083ae...
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Challenge string
sha256(x) = y
Nonce + cha-str
b94d27b9934d3e0...
0
+
916e14036f2d86a479ab16a3f2cffaf73a5419
Hash
1
+
b94d27b9934d3e0...
f93c20b30171d10e773dc2a2d8ed59524b25
2
+
b94d27b9934d3e0...
47697e8ff239f6cb73b7afafb8c82cc85a4f57c
358195572
+
b94d27b9934d3e0...
000000000000000000366cb345d419674552
...
Block hash'i
000000000000000000366cb345d4196745527fd463f76d6e9203b57029271c3b
Transaction'lar
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
1Ez69SnzzmePmZX3WpEzMKTrcBF2gpNQ55
5 btc
1XPTgDRhN8RFnzniWCddobD9iKZatrvH4
14rE7Jqy4a6P27qWCCsngkUfBxtevZhPHBx
100 btc
1M8s2S5bgAzSSzVTeL7zruvMPLvzSkEAuv
1GBwk2YJMDFqSVhTKygH8zUwV7jdoJhHHH
0,02 btc
Önceki block'un hash'i
000000000000000000397d1d76664a228096fca5e70a54193217ad2c4d2c9520
Merkle root hash
547ef4d4b3487d429715260083ae...
Nonce
358195572
3hg7
6htx
yuv5
3hg7
xo3s
yuv5
nf51
xo3s
397d
nf51
366c
397d
Sorular
* Geçmişe dönük bir tx'in değiştirilememe (immutable) garantisi nedir? Örneğin 10 block önceki bir tx'i değiştirdim?
* Sistem, bir tx'in, gerçekten iddia eden kişi tarafından gönderildiğine nasıl emin olabiliyor?
* Bir önceki soru ile bağıntılı olarak, sadece 10 block öncesinin nonce'ını değil, ondan sonraki block'ların da nonce'ını değiştirebilir kötü niyetli bir kişi?
DOKUZ TAS
`Bir blockchain implementasyonu`
github.com/onuar/dokuztas
from dokuztas.blockchain import Blockchain
using Dokuztas.Blockchain;
import { Blockchain } from 'dokuztas';
ETHEREUM
Whitepaper ve crowdsale - 2014
Canlı - 2015
by Vitalik Buterin
- Açık kaynak kodludur.
- Blockchain gibi merkezi olmayan bir blockchain örneği
- Proof of work (şimdi proof of stake)
- EVM (Ethereum Virtual Machine)
Ethereum Virtual Machine
General purpose
Smart contracts: Turing complete language
Decentralized Apps: dApps (SC + HTML, Js, Css)
* https://github.com/pirapira/awesome-ethereum-virtual-machine
Transactions
Account to account
Account to contract
Contract to contract
Contract to account
Account to contract
Account to contract
* http://gavwood.com/Paper.pdf
KOD!
Problem?
TEŞEKKÜRLER!
Onur Aykaç
twitter@onurgil
By Onur Aykaç
Blockchain ve Ethereum