Author Archives: Makdaam

Dao Drama – czyli umowy oparte o kod

Z The DAO przelano równowartość około 47mln USD, czyli około połowę środków tam zebranych. O co w tym wszystkim chodzi i dlaczego to jest ważne?

Co? Kto? i gdzie?

Ethereum to kryptowaluta taka jak Bitcoin, istnieje kilka kantorów, które wymieniają ją na USD, EUR i inne waluty. Od papierków z nominałem różni się tym, że każdy z uczestników w obrocie może:
– wygenerować żetony różnych typów, które potem przyjmie np. jako płatność w swojej grze na komórkę, albo bilet na konferencję lub potraktuje jako dowód posiadania udziałów w firmie. Wartość żetonu zależy od “normalnych” umów poza światem Ethereum.
– dokonywać automatycznych transakcji Ethereum<>żetony i Ethereum<>Ethereum.

Czyli można wystawić kontrakt mówiący, że w zamian za 2 ETH sprzedasz żeton, który jest biletem na Twój koncert, masz na sprzedaż maksymalnie 50 żetonów, jeżeli sprzeda się mniej niż 10 biletów, to zwracasz pieniądze i nie ma koncertu.

System obrotu Ethereum sam zajmie się dopilnowaniem kontraktu, ale kontrakt musi być zapisany jako kod. O ile w przypadku kontraktów podobnych do opisanego wyżej nie ma problemu z napisaniem kilku warunków, to kontrakt można dowolnie mocno skomplikować.

The DAO jest przykładem Decentralized Autonomous Organization, każdy może mieć swoją DAO, ale The DAO to konkretna organizacja z konkretnym kontraktem. Idea DAO jest taka sama jak innych organizacji typu przedsiębiorstwa, stowarzyszenia czy fundacje. Chodzi o zebranie ludzi ze zbieżnymi celami, którzy mogą zapewnić zasoby. W tym przypadku ma to formę internetowego crowdfundingu. Różnica polega na tym, że DAO nie polega na spisywaniu pisemnego porozumienia i zaufaniu do systemu prawnego, tylko na zaufaniu do rozproszonego systemu walutowego oraz kodu opisującego kontrakt.

Ze strony The DAO > Terms

The terms of The DAO Creation are set forth in the smart contract code existing on the Ethereum blockchain at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Nothing in this explanation of terms or in any other document or communication may modify or add any additional obligations or guarantees beyond those set forth in The DAO’s code. Any and all explanatory terms or descriptions are merely offered for educational purposes and do not supercede or modify the express terms of The DAO’s code set forth on the blockchain; to the extent you believe there to be any conflict or discrepancy between the descriptions offered here and the functionality of The DAO’s code at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413, The DAO’s code controls and sets forth all terms of The DAO Creation.

W skrócie na stronie The DAO zapisano, że treść kontraktu jest opisana kodem znajdującym się w bloku Ethereum 0xbb9bc244d798123fde783fcc1c72d3bb8c189413, wszystkie inne wyjaśnienia mają charakter pomocniczy, wiążąca jest treść kodu.

Nie wnikając w szczegóły techniczne jedna osoba zwana w wielu artykułach “atakującym” znalazła w kodzie kontraktu sposób na szybkie wyciągnięcie Ethereum z The DAO. System Ethereum wykonał kod kontraktu poprawnie (zgodnie z zapisanymi w kodzie regułami) co zaowocowało przelaniem około 3.6 miliona ETH na konto “atakującego”.

Dylematy

Obecnie na forach dyskusyjnych związanych z Ethereum trwa dyskusja na temat tego, co powinni zrobić uczestnicy projektu. Opcje są dwie albo zostawiają wszystko jak jest, uznają kontrakt za ważny i “atakujący” odchodzi z pieniędzmi, albo uznają, że kontraktu DAO nie było i przewijają stan świata Ethereum do “przed atakiem”, jednocześnie kontrakt TheDAO zostanie zamknięty w celu uniknięcia powtórki.

Opcja druga (tzw. fork) jest o tyle kontrowersyjna, że wybranie jej oznacza w praktyce porzucenie pierwotnej idei Ethereum. Ludzie chcieli obrotu poza systemem prawnym i bankowym, które szczególnie w USA nie cieszy się zaufaniem po ratowaniu dużych banków pieniędzmi obywateli. W tym przypadku Etereum ratowałoby The DAO kosztem wiarygodności i zaufania do Ethereum (co przekłada się na jego wartość w kantorach).

Ostateczne rozstrzygnięcie losu Ethereum leży w rękach górników, którzy tak jak w Bitcoinie muszą potwierdzić najdłuższy łańcuch transakcji. Zobaczymy, czy zatwierdzoną historią transakcji pozostanie ta, w której “atakujący” jest milionerem, czy ta w której duże kontrakty mogą liczyć na ratunek. Jest to zalążek rozproszonego systemu sprawiedliwości, co samo w sobie jest ciekawym zjawiskiem.

Sytuacja jest rozwojowa i polecam wszystkim osobom zainteresowanym socjologią Internetową obserwowanie jej z bliska.

Źródła i linki:
/r/Ethereum
Business Insider – DAO hacked
Edit:
Bloomberg – Blockchain Company’s Smart Contracts Were Dumb

Odpowiedzialność za dane

W Internecie huczy i grzmi z powodu niedawnego wycieku niedawnej publikacji produkcyjnej bazy danych serwisu wykop.pl (np. blog Piotra Koniecznego), zawierającej m.in. dane użytkowników. O ile wyciek danych z profilu, które i tak są publikowane nie jest tak bolesny, to nazwa użytkownika + niesolony hash hasła + adres e-mail już jest. Jak podaje VaGla wykop.pl miał zarejestrowany zbiór danych osobowych. Pytanie brzmi, czy login + niezabezpieczone hasło + e-mail są danymi osobowymi należącymi do chronionego zbioru?

Skrót dla osób odciętych od świata: Portal wykop.pl ustawił serwer testowy nowej wersji serwisu w taki sposób, że był on dostępny z Internetu. Testowy serwer bazy danych został wypełniony prawdziwymi danymi z produkcyjnej wersji wykopu i niezabezpieczony żadnym hasłem. Po kilku tygodniach od zdarzenia (szantaż ze strony nieznanego sprawcy) odkrył to użytkownik gimbus1xD, który opublikował informacje na ten temat na samym wykopie. Błędy techniczne popełnione na wykopie zostały już wymienione na innych blogach i portalach, błędy PRowe w komentarzach pod oficjalnym wpisem i oficjalną przemową. Na razie cicho jest w sprawie odpowiedzialności za ewentualne szkody.

Jedyną metodą postępowania w sprawie szkód wynikłych z opublikowania danych, która przychodzi mi na myśl, są indywidualne pozwy cywilne. Pytania o inny sposób załatwiania tego typu spraw pozostają bez odpowiedzi. Do tego polskie prawo nie sprzyja poszukiwaniom osoby odpowiedzialnej za taki stan rzeczy, a nawet ją chroni (vide art.267 ust.2 kodeksu karnego). Karnie odpowiada nie administrator, który poprzez zaniedbanie opublikował dane swoich użytkowników, ale niecny “hakier”, który na tę publikację trafił. Nie ma też obowiązku informowania użytkowników o tym, że ich dane wyciekły, a szybkie poinformowanie użytkowników mogłoby zapobiec wykorzystaniu ich danych. Brakuje w tym wszystkim równowagi pomiędzy odpowiedzialnością użytkownika, a odpowiedzialnością zarządcy systemu informatycznego.

W sieci zaczęły już pojawiać się komentarze mówiące, że przecież każdemu mogło się to zdarzyć, nikt nie jest nieomylny. W branży informatycznej, a konkretniej w webdesignie istnieje jednak zbiór dobrych praktyk, które często okazują się wiedzą tajemną. Te dobre praktyki nie są jakimiś nieżyciowymi wymaganiami o stosowaniu drutu kolczastego w serwerowni, ale prostymi regułami do których należy się stosować, jeżeli nasz serwis przyjmuje dane z zewnątrz (sprawdzaj każdy input, najlepiej przy pomocy gotowych mechanizmów) lub ma przechowywać hasła (hashuj hasła z tzw. solą, możliwie długą – tu pozdrowienia dla Allegro). Usprawiedliwianie administratorów, że “tak dużego portalu nie da się w 100% zabezpieczyć” przy tego typu zaniedbaniach jest równie trafne, co stwierdzenie, że malowanie pojazdów wojskowych w jaskrawożółte i czerwone naprzemienne pasy to nic złego, bo i tak nie można ich uczynić w 100% niewidzialnymi.

Na razie użytkownikom portali pozostaje tylko siedzieć cicho i mieć nadzieję, że w ulubionych portalach pracują ludzie, którzy wiedzą co robią. Niestety prawo nie daje możliwości wyciągnięcia szybkich i automatycznych (bez siedzenia w sądzie przez kilka lat) konsekwencji wobec administratora serwisu internetowego. Może czas zacząć bezwzględnie wymagać rozsądku od użytkowników Internetu?

Interpretacja i weryfikowanie danych z ELS

Artykuł ten jest drugim z serii na temat Elektronicznej Legitymacji Studenckiej. Pierwszy opisywał jak uzyskać binarny zrzut pliku danych i certyfikatu (dwa pliki opisane w załączniku nr 3 do rozporządzenia).

Co można znaleźć w plikach?

W pliku z danymi (w tym artykule nazwany „dane.bin”, zrzucany za pomocą polecenia „./elsr > dane.bin”) można znaleźć imiona i nazwisko studenta, numer albumu, kod serii albumów, nazwę uczelni, PESEL oraz datę ważności legitymacji. Dodatkowo znajduje się tam numer seryjny układu karty (do weryfikacji czy dane znajdują się na oryginalnym nośniku) oraz wersja formatu pliku (na razie istnieje tylko wersja 1). Oczywiście wszystkie powyższe dane są otoczone strukturą podpisu elektronicznego, o czym później.
Continue reading

Czytanie ELS przez interfejs stykowy

Poniższy artykuł jest krótkim opisem moich eksperymentów z ELS. Mam nadzieję, że pomoże rozpocząć zabawę z kartami 7816, które z jednej strony są już zastępowane przez karty z interfejsem bezstykowym, z drugiej (głównie ze względu na bezpieczeństwo i pobór mocy) wchodzą do naszego życia codziennego. Continue reading