16
Кирил Ганчев / CEO Ясен Янков / CTO

Bitcoin Technical

Embed Size (px)

Citation preview

Page 1: Bitcoin Technical

Кирил Ганчев / CEO Ясен Янков / CTO

Page 2: Bitcoin Technical

Twitter- въпроси

• @betahaussofia• #betahausbitcoin• Livestream:

http://new.livestream.com/accounts/6049613/events/2691474

Page 3: Bitcoin Technical

Bitcoin vs bitcoin

• Bitcoin - с главно “B”– Протокол за (псевдо) анонимна обмяна на

собственост в интернет без централна институция.

• Bitcoin - с малко “b”– Единица за участие в протокола.

Page 4: Bitcoin Technical

Какво е Bitcoin протокола?

• Дефинира как може да се изпрати нещо ценно пo интернет без централна институция, която да потвърди транзакцията.

• Използва проста криптография за да подсигури транзакциите.

• Промяна на протокола се приема от потребителите само с консенсус > 50%.

• Протокола е изграден и продължава да се изгражда от доброволци (open source).

Page 5: Bitcoin Technical

Криптография

• Diffie-Hellman Key Exchange– Ползва се за подписване на транзакции

• SHA-256– Ползва се за “proof of work”

• Стандартни алгоритми, чиято сигурност е доказана по математически път.

Page 6: Bitcoin Technical

Diffie-Hellman Key Exchange

• Алис и Боб се уговарят да използват числото p = 23 за делене с остатък и числото g = 5 за основа

• След това Алис избира едно цяло число а = 6 и изпраща на Боб ключ A = ga(mod p) – A = 56 mod 23 = 8

• Боб също избира цяло число b=15 и изпраща на Алис ключ B = gb(mod p) – B = 515 mod 23 = 19

• Алис изчислява общият ключ s = Ba(mod p) – 196 mod 23 = 2

• Боб изчислява общият ключ s = Ab(mod p) – 815 mod 23 = 2

Page 7: Bitcoin Technical

SHA-256

• Биткойн му е майката!: 6E0E9EA85E1A7D5F8B1F0B17F3128A0E7BC05DAAE56E65C13A9842FA6296ACA0

• Биткойн му е майката!17: 0ECD0378AFECEBB10F598818C7BE761F90C7D19B097CB6E10E4BE34FC3075B4B

• Биткойн му е майката!122: 00188A215DF3C38A2F862AC0C0A7E67073E58516DFAF667C6972A10696870D49

• Биткойн му е майката!17059640: 0000004CBF4A82203EF1DBBD3F5D53E1410E4661AE07A240E0065623E7C1EEC8

Page 8: Bitcoin Technical

Как работи Bitcoin протокола?

• Счетоводна книга, разпространена в самия network.

• Транзакции се изпращат за добавяне в счетоводната книга.

• Миньорите потвърждават транзакциите.• Системата се подсигурява от конкурентното

миниране.

Page 9: Bitcoin Technical

Какво е Block Chain-а?

• Счетоводна книга, разпространена на всички клиенти в системата.

• Разпространява се като Torrent.• Genesis block- създаден е за да може да се захрани

системата и се състои от своеволни данни.• Header на всеки блок е hash от header-a на

предишния блок, което доказва че блокът е автентичен.

• Всеки блок съдържа транзакции и се генерира приблизително през 10 минути.

Page 10: Bitcoin Technical

Какво е Bitcoin транзакция?

• Всеки потребител си има – частен и публичен ключ.– Bitcoin адрес се добива като се направи hash на публичния

ключ.– Баланс на определения адрес, който се намира в block chain.– Всичко това се прави напълно прозрачно и автоматично от

Bitcoin клиента.• Потребител “А” подписва транзакция с часния си

ключ, адресирана към Bitcoin адреса на потребител “B”.

• Транзакцията се изпраща в мрежата за потвърждение

Page 11: Bitcoin Technical

Как се потвръждава транзакция?

• Миньорите приемат транзакциите и проверяват наличния баланс на изпращача.

• Валидните транзакции се добавят към текущия блок.

• Търсят hash с определени критерии, който се създава от hash на предишния блок.

• След като намерят този hash, миньорът си добавя собствен адрес с баланс от 25 BTC и публикува блока.

• Всеки клиент добавя публикувания блок към локалния block chain.

Page 12: Bitcoin Technical

Bitcoin клиенти

• Както има много програми за боравене с Torrent протокола, така има и много програми за боравене с Bitcoin протокола.

• Desktop: Bitcoind, Armory, MultiBit, Electrum• Mobile: приложения за Android (и Apple)• Web: всяко web приложение, което държи

Bitcoin за потребителите (Blockchain.org, Coinbase.com, Bitstamp.net, т.н.)

Page 13: Bitcoin Technical

Сигурност

• Кражба на частни ключове.– Всеки трябва да си пази частния ключ, както си

пази ПИН-а за дебитната карта.• Атака на ключове, генерирани от слаби

фрази.– Повечето клиенти автоматично генерират фрази

на случаен принцип.• Атака на ключовете с груба сила.• 51% атака с груба сила.

Page 14: Bitcoin Technical

Атака на ключовете с груба сила

• 1 компютър, който може да прави 1 милиард операции на секунда: 2^130 секунди.

• 1 милиард такива компютри: 2^100 секунди.• 1 милиард приятели с по 1 милиард такива

компютри: 2^70 секунди.• 2^25 секунди в годината, тоест 2^45 години.• Вселената е на малко по-малко от 2^34 години

(около 14 милиард).• Тоест, запретнете ръкави! :)

Page 15: Bitcoin Technical

51% атака

• Най-бързият компютър в света прави 54.9 PetaFLOPS, тоест 54.9 квадрилиона операции в секунда и струва $290 милиона.

• Текущия Network Hash Rate е 13000+ Terahash/second или 17600+ PetaFLOPS/second.

• Нужни са 1603 за да се осъществи 51% атака на стойност $464 милиарда долара.

Page 16: Bitcoin Technical

Ресурси