BLOCKchaın

from dokuztas.blockchain import Blockchain
using Dokuztas.Blockchain;
import { Blockchain } from 'dokuztas';

photo source: http://hahli9.deviantart.com/art/Angkor-Wat-138061667

Ethereum

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

  • Transaction
  • Ledger (open, distributed)
  • Decentralized, nodes
  • Consensus, immutability (proof of work, proof of stake vb.)
  • Artificial puzzle (mining, lottery)

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)

PrivateKey(7311842419659295381275339232716685188968481772799497896417816218023384514824607051152246990872107072611361475548032198163636920009070713541538666050593967, 65537, 4560125352377044724642063879317470646027568480394798015171359724724503639625875287526874414345982187050103527494202624811635213598481015095697104013246697, 5976198841119789576937814948747438018992707125175805954192179718242386304380121043, 1223493831789780231105803551449569258090951926020359047893121458489494069)

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

  • Python
  • Okuması kolay
  • Türkçe dokümantasyon
  • Genesis block
  • Merkle tree hash
  • Artificial puzzle
  • Difficulty
  • Transaction queue
  • Node communication
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?

  • Versiyonlar: web3, geth (web3 console), truffle, Remix
  • Dokümantasyon versiyonlama
  • Test network'lerindeki geçici problemler
  • Güvenlik tuzakları

TEŞEKKÜRLER!

Onur Aykaç

twitter@onurgil

Ethereum: Blockchain mirası üzerine

By Onur Aykaç

Ethereum: Blockchain mirası üzerine

Blockchain ve Ethereum

  • 966