Uczciwa loteria oparta na systemie Bitcoin

Wielkość: px
Rozpocząć pokaz od strony:

Download "Uczciwa loteria oparta na systemie Bitcoin"

Transkrypt

1 Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Daniel Malinowski Nr albumu: Uczciwa loteria oparta na systemie Bitcoin Praca magisterska na kierunku INFORMATYKA Praca wykonana pod kierunkiem dra hab. Stefana Dziembowskiego Instytut Informatyki Wrzesień 2014

2 Oświadczenie kierującego pracą Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiem i kwalifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego. Data Podpis kierującego pracą Oświadczenie autora (autorów) pracy Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowa została napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposób niezgodny z obowiązującymi przepisami. Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem procedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni. Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersją elektroniczną. Data Podpis autora (autorów) pracy

3 Streszczenie System Bitcoin jest kryptograficznym systemem płatności wprowadzonym w 2008 roku przez Satoshiego Nakamoto. System ten zyskał w ostatnim czasie znaczną popularność, głównie ze względu na swoją najistotniejszą cechę, jaką jest decentralizacja oraz brak kontroli nad walutą przez żaden kraj, bank czy instytucję. Ponadto w systemie tym możliwe jest wykonanie szybkich przelewów do dowolnych użytkowników na świecie, a opłaty transakcyjne są zerowe bądź też bardzo małe. System ten pozwala także na dokonywanie bardziej skomplikowanych transakcji niż zwykłe przelewy. W pracy tej opiszemy dwa protokoły bazujące na tej własności systemu Bitcoin. Pierwszy z nich Zobowiązania Bitowe oparte na systemie Bitcoin pozwala na karanie finansowe użytkownika, który nie chce otworzyć swojego zobowiązania. Drugi Uczciwa loteria oparta na systemie Bitcoin jest przykładem loterii, w której przegrani gracze zmuszeni są do zapłaty zwycięzcy ustalonej wcześniej stawki. Oba te protokoły nie wymagają żadnej zaufanej strony trzeciej, ich bezpieczeństwo opiera się na właściwościach systemu Bitcoin oraz kryptografii. Na końcu pracy przedstawimy również prostą implementację protokołu loterii. Słowa kluczowe Bitcoin, loteria, zobowiązania bitowe, bezpieczne obliczenia wielopodmiotowe 11.3 Informatyka Dziedzina pracy (kody wg programu Socrates-Erasmus) Klasyfikacja tematyczna Theory of computation - Computational complexity and cryptography - Cryptographic protocols Fair Bitcoin-based lottery Tytuł pracy w języku angielskim

4

5 Spis treści Wprowadzenie Motywacja Znaczenie wyników opisanych w pracy Zawartość pracy Powiązane prace oraz problemy otwarte Wiadomości wstępne Notacja Bezpiecznie obliczenia wielopodmiotowe Model z losową wyrocznią Opis systemu Bitcoin Główna idea oraz własności systemu Bitcoin Wysokopoziomowe wprowadzenie do systemu Bitcoin i dowodów pracy Standardowe działanie systemu Bitcoin Prawdziwe, najogólniejsze działanie systemu Bitcoin Notacja transakcji w systemie Bitcoin Własności sieci P2P w systemie Bitcoin Zobowiązania bitowe oparte na systemie Bitcoin Klasyczne zobowiązania bitowe Definicja Zobowiązania bitowego opartego na systemie Bitcoin Protokół Dowód bezpieczeństwa Uczciwa loteria oparta na systemie Bitcoin Algorytm Bluma Definicja Uczciwej loterii opartej na systemie Bitcoin Protokół Dowód bezpieczeństwa Opis implementacji Uczciwej loterii opartej na systemie Bitcoin Opis projektu Opis funkcjonalności Przykładowa użycie programu do rozegrania loterii Podsumowanie Podziękowanie

6 Bibliografia

7 Wprowadzenie Motywacja Bezpieczne obliczenia wielopodmiotowe są kryptograficzną metodą na wspólne wykonanie akcji w sposób bezpieczny przez nieufających sobie wzajemnie użytkowników. Mówiąc w skrócie, pozwalają one użytkownikom na obliczenie funkcji na parametrach będących ich sekretami, bez ujawniania samych sekretów. Jedyny sposób, w jaki nieuczciwi gracze mogą wpłynąć na wykonywany protokół, to wybranie własnego sekretu, przy użyciu którego będzie obliczana funkcja. Klasycznym problemem w teorii bezpiecznych obliczeń wielopodmiotowych jest problem milionerów. W problemie tym dwóch użytkowników chce się dowiedzieć, który z nich jest bogatszy 1. Nie chcą oni jednak podawać swojego majątku drugiej stronie. Przy zastosowaniu technik bezpiecznych obliczeń wielopodmiotowych mogą oni to zrobić. Oczywiście każdy z nich może podać większą bądź mniejszą wartość niż jego rzeczywisty majątek oraz dowie się, czy majątek drugiego gracza (wartość jaką on podał) jest większy czy mniejszy od jego. Jednak bezpieczeństwo oznacza tyle, że nie może zrobić nic więcej nie sprawi, że funkcja wskaże, że ich majątki są równe (chyba, że przez przypadek o pomijalnie małym prawdopodobieństwie zajścia) ani nie pozna dokładnego majątku drugiego gracza. Innym rozważanym problemem jest problem loterii. W problemie tym gracze nie posiadają żadnych własnych sekretów. Chcą oni jednak rzucić monetą wygenerować wspólnie jednostajnie losowy bit każdy z nich musi mieć pewność, że bit ten jest rzeczywiście jednostajnie losowy. Bit ten może oznaczać, który z nich jest zwycięzcą loterii. Bezpieczeństwo protokołu rozwiązującego ten problem oznacza m.in., że żaden z graczy nie może wpłynąć na rozkład prawdopodobieństwa generowanych bitów, np. nie może sprawić, że zawsze będzie wygrywał loterię. Możliwości bezpiecznych obliczeń wielopodmiotowych są znacznie większe, niż te powyżej wymienione. Udowodniono [16], że każdą wielomianową funkcję można zaimplementować jako protokół bezpiecznych obliczeń wielopodmiotowych. Dzięki tej teorii można również w sposób bezpieczny grać w gry, w których gracze posiadają tajne informacje oraz wykonują swoje akcje w zależności od poprzednich ruchów w grze. Prostym przykładem takiej gry jest poker. Dzięki bezpiecznemu protokołowi do gry w pokera tzw. pokerowi mentalnemu można rozegrać całą partię, od rozdania kart aż do zwycięstwa jednego z graczy, przez internet bez potrzeby ufania żadnej trzeciej stronie. Mimo swojego wielkiego potencjału, wielu badań oraz naturalnego zastosowania w grach hazardowych, bezpieczne obliczenia wielopodmiotowe nie są używane w internetowych kasynach. Istnieją co najmniej dwa istotne powody za to odpowiedzialne. Pierwszym z nich jest to, że w ogólności bezpieczne obliczenia wielopodmiotowe nie zapewniają uczciwości, gdy liczba 1 Mówiąc bardziej formalnie, chcą obliczyć funkcję f(x, y) = 1 gdy x > y, f(x, y) = 1 gdy x < y oraz f(x, y) = 0 gdy x = y. 5

8 złych (nieuczciwych) graczy wynosi co najmniej połowę. Uczciwość jest własnością protokołu mówiącą, że jeżeli jeden z graczy pozna wynik, to wszyscy gracze go poznają. Jeżeli np. protokół loterii nie posiada tej własności, to nieuczciwy graczy, gdy dowie się, że przegrał, mógłby przerwać wykonanie protokołu, sprawiając, że loteria byłaby nieważna. Z taką sytuacją mamy do czynienia m.in. w przypadku gier dwuosobowych. Ponadto w grach wieloosobowych jest to również duży problem, gdyż w internecie łatwo jest tworzyć wiele tożsamości, zatem jeden przeciwnik może kontrolować wielu pojedynczych użytkowników (jest to atak typu sybil opisany w [9]). Drugim problemem związanym z użyciem bezpiecznych obliczeń wielopodmiotowych do gier hazardowych są ich naturalne ograniczenia. Obliczenia te nie zapewniają nic więcej niż tzw. emulację świata idealnego, w którym gracze po prostu poznają wynik funkcji. Jednak w żaden sposób wynik ten nie jest związany ze światem rzeczywistym. Nie ma kryptograficznej metody zmuszenia kogoś do uszanowania wyniku gry i zapłacenia zwycięzcy odpowiedniej kwoty. Zarządzanie pieniędzmi znajduje się po prostu poza klasyczną kryptografią. W celu ominięcia powyższego problemu, w pracy tej skupiliśmy się na kryptograficznej walucie bitcoin. System Bitcoin został wprowadzony w 2008 roku przez Satoshiego Nakamoto w [14] (jest to prawdopodobnie pseudonim). W ostatnim czasie system ten zyskał ogromną popularność poprzez możliwość wykonywania szybkich przelewów do dowolnego użytkownika na świecie obarczonych zerową, lub bardzo niską opłatą. Ponadto system ten jest zdecentralizowany. Oznacza to, że żaden kraj, bank czy instytucja nie może zabrać ani zamrozić pieniędzy użytkowników bądź też dodrukować pieniędzy w celu zwiększenia inflacji. System Bitcoin pozwala również na projektowanie bardziej skomplikowanych operacji pieniężnych niż same przelewy posiada on możliwość tworzenia kontraktów. Z naszego punktu widzenia jest to bardzo ważna cecha, gdyż naszym celem było stworzenie kryptograficznej loterii, w której przegrany użytkownik musi respektować wynik i zapłacić zwycięzcy, a kontrakty to umożliwiły. Znaczenie wyników opisanych w pracy W internecie działa bardzo wiele stron internetowych do uprawiania hazardu opierających się o system Bitcoin. Działają one na zasadzie internetowego kasyna. Oznacza to, że gracz musi najpierw wpłacić bitcoiny na konto kasyna. Podczas gry zmieniają się środki na jego koncie w kasynie i w każdej chwili może je wypłacić. Ciekawą własnością większości internetowych kasyn opartych o walutę bitcoin, jest dowodzenie uczciwości po grze. Polega ono na tym, że przed przeprowadzeniem losowania (o to, czy gracz wygra czy przegra) serwer generuje losowy ciąg znaków i wyświetla użytkownikowi jego hasz (zobowiązuje się do niego). Następnie gracz wpisuje swój własny (losowy) ciąg znaków. Oba ciągi znaków są łączone, haszowane i na podstawie uzyskanego hasza obliczany jest wynik losowania. Po losowaniu serwer ujawnia swój ciąg znaków. Dzięki temu wynik losowania jest rzeczywiście losowy, gdyż zależy od wyniku funkcji haszującej na nieprzewidywalnym parametrze. Ponadto użytkownik może sprawdzić, czy losowanie zostało poprawnie przeprowadzone poprzez sprawdzenie poprawności ujawnionego przez serwer ciągu znaków. Własność ta spowodowała, że użytkownicy zaufali internetowym kasynom i wierzą, że nie zostaną oszukani. Z punktu widzenia kryptografii własność dowodzenia uczciwości po grze jest niewystarczająca. Główny problem polega tu na tym, że pierwsze co musimy zrobić przed rozpoczęciem gry, to wpłacić swoje bitcoiny na konto kasyna. W związku z tym, nic nie gwarantuje, że po wygraniu gry rzeczywiście będziemy mogli odzyskać te pieniądze. Jeżeli właściciel kasyna jest nieuczciwy, to może on zamknąć kasyno i ukraść powierzone mu środki. Takie sytuacje 6

9 w kasynach grających o bitcoiny miały już miejsce. Kasyna internetowe pobierają pewną małą kwotę od wygranych. Opłata ta zwykle waha się w przedziale 0.5% 2%. Jej wielkość często uzależniona jest od tego, jaką reputację posiada dane kasyno. Bardziej znane kasyna, którym ludzie ufają, że nie znikną z rynku kradnąc środki, mogą pozwolić sobie na większe opłaty. Przykładem na to jest serwis SatoshiDice, największe z tego typu kasyn, który pobiera opłatę około 2%. Opłaty te sprawiają, że granie w kasynach jest całkowicie nieopłacalne. Aby rozwiązać powyższe problemy, opracowaliśmy protokół loterii opartej o system Bitcoin. Loteria ta jest bardzo prostego typu użytkownicy wpłacają równe stawki do puli, a następnie jednostajnie losowo wybrany jeden z nich zgarnia całą pulę. Nasz protokół może być wykorzystany do gry między nieznającymi się osobami, a jego bezpieczeństwo stwierdza, że osoby te nie mogą się nawzajem oszukać. Przegrany zawsze musi zapłacić zwycięzcy ustaloną wcześniej stawkę. Jedyny sposób, w jaki może on wpłynąć na protokół, to trochę go opóźnić. Protokół ten jest wykonywany bez pomocy żadnej zaufanej strony trzeciej, jego bezpieczeństwo opiera się jedynie na własnościach systemu Bitcoin oraz kryptografii. Ponadto w protokole tym nie ma żadnych opłat, jedynie przy wysyłaniu transakcji systemu Bitcoin trzeba do nich dołączyć (bardzo) małe opłaty, niezależne od wielkości stawki. Dzięki temu, używanie naszego protokołu jest bardziej bezpieczne i opłacalne niż używanie internetowych kasyn. Protokół nasz można również prosto zmienić, jeżeli chcielibyśmy wprowadzić nierówne stawki, zmienić prawdopodobieństwo wygrania poszczególnych graczy, czy wprowadzić opłatę dla kasyna. W pracy tej opiszemy również drugi protokół oparty o system Bitcoin, który stworzyliśmy pracując nad protokołem bezpiecznej loterii. Protokół ten rozszerza możliwości zobowiązań bitowych. W klasycznych zobowiązaniach bitowych Zobowiązujący w pierwszej fazie zobowiązuje się do swojego sekretu nie ujawniając o nim żadnej informacji. Natomiast w drugiej fazie otwiera on swoje zobowiązanie, czyli pokazuje swój sekret. Robi to w taki sposób, że Odbiorca ma pewność, że o ten sekret chodziło Zobowiązującemu od początku. Pewnym problemem może być czasem sytuacja, w której Zobowiązujący nie chce otworzyć swojego zobowiązania. W naszym protokole rozwiązaliśmy to w taki sposób, że Zobowiązujący płaci odpowiednią karę w bitcoinach, jeżeli do ustalonego momentu nie otworzy swojego zobowiązania. Tak jak przy naszym protokole do uczciwej loterii, tutaj także własność ta jest zapewniona przez system Bitcoin oraz kryptografię i nie wymaga żadnej zaufanej strony trzeciej. Z samej definicji protokołu loterii wynika, że ma on pewne problemy, które powodują, że prawdopodobnie nie będzie on używany w rzeczywistej grze. Po pierwsze, przy okazji wykonania protokołu gracze muszą założyć depozyt (który dostaną na zakończenie z powrotem), którego wielkość rośnie z liczbą graczy. Jego wielkość jest akceptowalna dla 2-3 graczy, ale dla większej liczby graczy jest on zbyt duży. Po drugie, czas wykonania protokołu jest dosyć wysoki. Pojedyncze wykonanie protokołu może trwać nawet kilka godzin. Jeżeli jednak niestandardowe własności systemu Bitcoin, które są w tym protokole wykorzystywane, stałyby się bardziej popularne i łatwiejsze w użyciu, to czas ten może się znacząco skrócić. W ostatnim rozdziale pracy przedstawimy prosty program służący do testowego rozegrania loterii przy użyciu naszego protokołu. Jest to nieduży projekt, którego celem jest pokazanie możliwości wykonania naszego protokołu, a nie jego używanie w praktyce i nie jest on głównym wynikiem tej pracy. Zawartość pracy Podamy teraz opis zawartości kolejnych rozdziałów pracy. 7

10 Rozdział pierwszy zawiera wiadomości wstępne potrzebne do pełnego zrozumienia pracy oraz omawianego tematu. W pracy tej zakładamy, że czytelnik zna najbardziej podstawowe pojęcia kryptograficzne, zatem nie będą one omówione w ramach wiadomości wstępnych. Rozdział ten zaczyna się od notacji używanej przy stosowaniu pojęć kryptograficznych. Następnie omówione zostaną wspomniane wcześniej bezpieczne obliczenia wielopodmiotowe. Nie są one bardzo istotne do zrozumienia wyników opisanych w pracy, jednak są one z nimi mocno powiązane. Dodatkowo opisane są tam założenia przyjmowane w teorii bezpiecznych obliczeń wielopodmiotowych, które my również będziemy przyjmowali w tej pracy. Rozdział pierwszy kończy się opisem modelu z losową wyrocznią. Praca w tym modelu jest założeniem często spotykanym w protokołach używających funkcji haszujących. W naszym przypadku użycie tego założenia związane jest ze stosowaniem systemu Bitcoin, który niejako wymaga użycia modelu z losową wyrocznią. Kolejny rozdział zawiera opis systemu Bitcoin. System ten jest dosyć nowy oraz mimo swojej ogromnej popularności jego własności nie są szeroko znane. W związku z tym postanowiliśmy opisać całościowe działanie tego systemu (w sposób ogólny). W naszych protokołach będziemy mocno korzystać z zaawansowanych własności transakcji w systemie Bitcoin, zatem opiszemy ich działanie ze szczegółami. Rozdział ten zaczniemy od opisu idei systemu Bitcoin oraz powodów, dla których zyskał on popularność. Opiszemy na czym on polega oraz postaramy się rozwiać część mitów go dotyczących. Następnie przejdziemy do technicznego opisu działania systemu Bitcoin. Działanie to pokażemy w trzech krokach począwszy od działania uproszczonego wraz z opisem dowodów pracy, poprzez standardowe działanie, które wystarcza w prawie wszystkich przypadkach, a skończywszy na opisaniu niestandardowych transakcji, które będą nam dalej potrzebne. Opiszemy co zawierają takie transakcje, jak się je waliduje oraz wysyła, na czym polega tzw. kopanie bitcoinów a także nieformalnie zaagitujemy dlaczego system ten jest bezpieczny. W dalszej części drugiego rozdziału opiszemy język skryptowy używany w transakcjach oraz naszą notację do zapisywania jego oraz samych transakcji. Rozdział ten kończy się opisem pewnych cech systemu Bitcoin związanych z tym, że działa on w sieci rozproszonej. Cechy te to opóźnienia w dokonywaniu transakcji, jawność transakcji po ich wysłaniu oraz ich kowalność. Kowalność jest istotnym problemem w projektowaniu protokołów w systemie Bitcoin pokażemy w jaki sposób własność ta wpływa na bezpieczeństwo na przykładzie protokołu na depozyt, wziętego z literatury związanej z systemem Bitcoin. Trzeci rozdział zawiera pierwszy z dwóch wyników opisanych w pracy Zobowiązania bitowe oparte na systemie Bitcoin. Rozdział ten zaczniemy jednak od przypomnienia klasycznych zobowiązań bitowych. Opiszemy definicje zobowiązań bitowych oraz ich bezpieczeństwa. Następnie przypomnimy prosty protokół na zobowiązania bitowe używający funkcji haszujących. Udowodnimy także jego bezpieczeństwo w modelu z losową wyrocznią. W dalszej części tego rozdziału skupimy się na Zobowiązaniach bitowych opartych na systemie Bitcoin. Podamy ich ideę, definicje bezpieczeństwa a także protokół w wersji formalnej oraz bardziej opisowej. Protokół ten będzie rozwinięciem podanego wcześniej rozwiązania klasycznego problemu. Rozdział zakończymy dowodem poprawności i bezpieczeństwa naszego protokołu. Następny rozdział zawiera nasz kolejny protokół Uczciwą loterię opartą na systemie Bitcoin. Rozdział ten ma podobną strukturę co poprzedni. Zaczniemy od przypomnienia klasycznego problemu bezpiecznego rzutu monetą na odległość wraz z jego rozwiązaniem algorytmem Bluma. Algorytm ten w prosty sposób wykorzystuje klasyczne zobowiązania bitowe. Przedstawimy definicję tego problemu oraz jego bezpieczeństwa a także dowód poprawności algorytmu Bluma. Następnie przejdziemy do Uczciwej loterii opartej na systemie Bitcoin. Zdefiniujemy problem oraz jego warunki bezpieczeństwa. Później zaprezentujemy nasze rozwiązanie tego problemu podamy protokół w sposób opisowy a także w sposób for- 8

11 malny. Nasz protokół będzie rozwinięciem algorytmu Bluma będzie jednak wykorzystywał Zobowiązania bitowe oparte na systemie Bitcoin zamiast klasycznych zobowiązań bitowych. Rozdział zakończymy dowodem poprawności i bezpieczeństwa naszego protokołu. Ostatni z rozdziałów jest opisem implementacji protokołu na Uczciwą loterię opartą na systemie Bitcoin. Jest to nieduży projekt, którego celem jest pokazanie możliwości użycia naszego protokołu. Jego celem nie jest używanie naszego protokołu w praktyce tylko testowe uruchomienie naszego protokołu. Program ten również jest tylko dodatkiem do naszych protokołów, to one stanowią główną część pracy. W rozdziale tym projekt ten zostanie zaprezentowany opiszemy jego architekturę, biblioteki z których korzysta a także opis jego funkcjonalności. Rozdział zakończymy przykładami użycia tego programu. Powiązane prace oraz problemy otwarte Praca ta powstała bazując na naszej poprzedniej pracy Secure Multiparty Computations on Bitcoin napisanej wraz z Marcinem Andrychowiczem, Stefanem Dziembowskim oraz Łukaszem Mazurkiem [3] (praca ta została odznaczona nagrodą za najlepszą pracę na konferencji 35th IEEE Symposium on Security & Privacy 2014). W [3] zostały wprowadzone bezpieczne obliczenia wielopodmiotowe oraz przedstawione tu protokoły, jednak bez dowodów bezpieczeństwa ani implementacji. Bezpieczny protokół loterii opartej na systemie Bitcoin był również niezależnie opisany przez Adama Back a oraz Iddo Bentov w [4]. Jednak protokół loterii z [4] jest protokołem tylko dla dwóch graczy oraz w przeciwieństwie do naszego protokołu, nie jest on odporny na kowalność transakcji. Temat bezpiecznych obliczeń wielopodmiotowych opartych na systemie Bitcoin był dalej rozwijany niezależnie w [2, 1] oraz w [7]. Prace te wykorzystują system Bitcoin aby zapewnić własność uczciwości w dowolnych obliczeniach wielopodmiotowych gracz, który przerywa protokół zmuszony jest do zapłacenia odpowiedniej kary w bitcoinach. Zobowiązania bitowe w kontekście systemu Bitcoin były rozważane także wcześniej, ale w innym celu. W [6] autorzy stworzyli prostszą wersję zobowiązań, którą wykorzystali do zwiększenia anonimowości transakcji. Natomiast [8] proponuje użyć system Bitcoin jako zamianę zaufanej strony w procesie stemplowania dokumentów znakiem czasowym. Pozostałe prace związane z systemem Bitcoin dzielą się zasadniczo na dwie grupy. Pierwsza z nich stara się analizować graf transakcji tego systemu i na jego podstawie wyciągnąć wnioski na temat użytkowników systemu. Do przykładów prac z tej grupy można zaliczyć m.in. [15]. Kolejną grupę tworzą prace proponujące ulepszenia do systemu Bitcoin. Jedna z ciekawszych z nich to [11] proponująca zmianę (wraz z dowodem poprawności), dzięki której użytkownicy i transakcje będą idealnie anonimowi. Do problemów otwartych w systemie Bitcoin zaliczyć można m.in. stworzenie wydajniejszych kontraktów rozwiązujących istotniejsze problemy niż zwykłą loterię. Ponadto wiele pracy wymaga samo sformalizowanie modelu systemu Bitcoin i dowiedzenie jego własności i bezpieczeństwa w tym modelu. Z powodu braku takiego modelu pojawiają się prace [12, 5] podważające bezpieczeństwo systemu, zatem istotne jest aby dowieść co dokładnie można a czego nie można w tym systemie zrobić. 9

12

13 Rozdział 1 Wiadomości wstępne W rozdziale tym ustalimy notację stosowaną w pracy oraz przypomnimy pewne wiadomości z kryptografii, takie jak bezpieczne obliczenia wielopodmiotowe oraz model z losową wyrocznią. W pracy tej zakładamy znajomość podstawowych pojęć kryptograficznych, takich jak schemat podpisu oraz (kryptograficzne) funkcje haszujące, w związku z tym nie będziemy ich przybliżać. W celu przypomnienia sobie tych pojęć czytelnik może zajrzeć np. do [13] Notacja Dla użytkownika P jego para kluczy: klucz publiczny, klucz sekretny, używane w schemacie podpisu, będą oznaczane odpowiednio przez P.pk oraz P.sk. Funkcję obliczającą podpis kryptograficzny na wiadomości m używając klucza P.sk użytkownika P będziemy oznaczać przez podpis P.sk (m). Natomiast funkcję weryfikującą podpis σ użytkownika P (czyli korzystającą z klucza publicznego P.pk) na wiadomości m będziemy oznaczać przez wer P.pk (m, σ). Funkcja ta zwraca wartość prawda bądź też wartość fałsz, w zależności od tego, czy podpis jest poprawny. Rozkład jednostajny na zbiorze A będziemy oznaczać przez U(A). Wylosowanie wartości x zgodnie z rozkładem R będziemy oznaczać przez x R. Wylosowanie wartości x jednostajnie ze zbioru A będziemy oznaczać przez x $ A. Zatem x $ A oznacza dokładnie to samo, co x U(A). Parametr bezpieczeństwa będziemy oznaczać symbolem λ bądź też 1 λ. Funkcje haszujące będziemy oznaczać literą h. Zatem h jest funkcją {0, 1} {0, 1} λ. W rozdziale 3 będziemy chcieli użyć funkcji haszujących jako zobowiązań bitowych (będą one omówione również w rozdziale 3). W związku z tym będziemy do parametru funkcji haszującej doklejać losowy ciąg bitów długości λ. Tak zmodyfikowaną randomizowaną funkcję będziemy oznaczać literą H. Zatem H jest funkcją {0, 1} λ+ {0, 1} λ. Funkcja ta na parametrze x losuje r $ {0, 1} λ oraz zwraca wartość h(x r), gdzie oznacza konkatenację napisów Bezpiecznie obliczenia wielopodmiotowe Zobowiązania bitowe oraz bezpieczne loterie, które będą omówione w dalszej części pracy, są przykładami ogólniejszego pojęcia w kryptografii, jakim są bezpieczne obliczenia wielopodmiotowe. Mówiąc w skrócie, bezpieczne obliczenia wielopodmiotowe pozwalają użytkownikom nie ufającym sobie wzajemnie wykonać (obliczyć) pewną akcję w taki sposób, że mają oni pewność, że została ona wykonana prawidłowo oraz bezpiecznie. Nie będziemy przedstawiać 11

14 tu bardzo formalnych definicji bezpiecznych obliczeń wielopodmiotowych, gdyż praca ta dotyczy ich tylko częściowo. Postaramy się jednak przybliżyć to pojęcie trochę dokładniej. W bezpiecznych obliczeniach wielopodmiotowych dana jest pewna grupa użytkowników. Nie znają się oni wzajemnie, jednak dla uproszczenia przyjmujemy, że każda para użytkowników połączona jest bezpiecznym kanałem. Oznacza to, że każdy użytkownik może wysłać każdemu innemu wiadomość. Wiadomość ta dojdzie do adresata w niezmienionej formie przed upływem limitu czasu oraz nikt jej nie podsłucha. Użytkownicy nie ufają sobie wzajemnie. Nie zakładamy tutaj, że przeciwnik jest jednostką z zewnątrz, która próbuje się czegoś dowiedzieć o wykonaniu protokołu, tylko że niektórzy z graczy mogą być źli. Oznacza to, że przeciwnik kontroluje (nieznaną) podgrupę użytkowników zna całą ich losowość, komunikacje oraz wykonuje za nich akcje. Inaczej mówiąc źli gracze współpracują ze sobą. Pozostali (uczciwi) gracze wykonują protokół zgodnie z opisem (zawsze zakładamy, że co najmniej jeden uczciwy gracz istnieje). Bezpieczne obliczenia wielopodmiotowe polegają na tym, że przy powyższych założeniach, chcemy obliczyć wartość danej funkcji w sposób bezpieczny. Funkcja ta (zależna od protokołu) przyjmuje jako parametry sekrety użytkowników i jej wynik powinni poznać wszyscy gracze. Bezpieczeństwo obliczenia polega na tym, że przeciwnik nie powinien dowiedzieć się niczego niepowołanego na temat sekretów uczciwych użytkowników. Formalizuje się to poprzez stwierdzenie, że przeciwnik nie jest w stanie dowiedzieć się ani zrobić nic więcej niż w świecie idealnym. Świat idealny polega na tym, że użytkownicy mają do dyspozycji zaufaną stronę oraz połączeni są z nią bezpiecznym kanałem komunikacyjnym. W celu obliczenia wartości funkcji na sekretach, każdy z graczy przesyła swój sekret do zaufanej strony. Jako, że kanał jest bezpieczny, a zaufana strona nie jest pod kontrolą przeciwnika, to w tej fazie przeciwnik nie dowie się niczego o sekretach uczciwych użytkowników. Następnie zaufana strona znając wszystkie parametry funkcji oblicza jej wartość i odsyła ją do wszystkich użytkowników. W świecie idealnym przeciwnik zasadniczo może zrobić trzy rzeczy. Może poznać sekrety użytkowników, których kontroluje. Może również kazać im wysłać wybrane przez siebie wartości do zaufanej strony, czyli może poznać wartość funkcji, gdzie parametry kontrolowanych przez siebie graczy są przez niego wybrane. Ponadto może on próbować wywnioskować coś na temat sekretów uczciwych graczy na podstawie poznanej wartości funkcji. Załóżmy przykładowo, że mamy dwóch użytkowników, z czego jeden jest uczciwy, a drugi zły. Funkcją, którą chcą oni policzyć, jest koniunkcja sekretnych bitów. Jeżeli zły gracz poda zaufanej stronie bit 1, to wartość funkcji będzie równa sekretnemu bitowi drugiego gracza, zatem przeciwnik go pozna. Jeżeli natomiast zły gracz poda bit 0, to wartość funkcji będzie wynosiła 0 a przeciwnik nie dowie się niczego o sekretnym bicie uczciwego użytkownika. Protokół obliczania danej funkcji jest bezpieczny, gdy nie pozwala na na zrobienie niczego więcej, niż w świecie idealnym. Oznacza to np., że przeciwnik nie powinien móc poznać wartości funkcji na dwóch różnych wejściach bądź też poznać sekretu uczciwych graczy, o ile nie jest to możliwe w świecie idealnym. Ponadto każdy z uczciwych graczy musi poznać taką samą wartość funkcji, która jest obliczona na sekretach uczciwych graczy oraz wartościach wybranych przez przeciwnika. Oczywiście jak zwykle w kryptografii zakładamy zaniedbywane (względem 1 λ ) prawdopodobieństwo tego, że któraś z tych własności nie zostanie spełniana. Funkcję f nazywamy zaniedbywalną, jeżeli po pomnożeniu jej przez dowolny wielomian dąży ona ciągle do zera przy rosnących parametrach, tzn. n>0 M x>m f(x) x n < 1. Teorio-informacyjnie nawet proste funkcje, takie jak głosowanie większościowe, nie mogą być obliczone w sposób bezpieczny, jeżeli liczba nieuczciwych graczy wynosi co najmniej jed- 12

15 ną trzecią wszystkich. Jednak już przy podstawowych założeniach kryptograficznych możliwe jest bezpieczne obliczenie dowolnej wielomianowej funkcji dla dowolnie wielu złych użytkowników pierwszą ogólną konstrukcję dla dowolnej wielomianowej funkcji pokazał Yao w [16]. Jednak tutaj również pojawia się pewien problem, gdy złych graczy jest co najmniej połowa wówczas w protokołach brakuje uczciwości, czyli własności mówiącej, że jeżeli przeciwnik pozna wartość funkcji, to również wszyscy uczciwi gracze poznają wartość funkcji. Ciekawe rozwiązanie tego problemu polegające na finansowym karaniu przeciwnika w przypadku, gdy nie przekaże on poprawnej wartości funkcji uczciwemu graczowi, można znaleźć w [2] oraz [1]. Przykłady klasycznych protokołów na bezpieczne obliczenia wielopodmiotowe, tzn. zobowiązania bitowe oraz bezpieczne loterie są opisane wraz z dowodami bezpieczeństwa w kolejnych rozdziałach. Przy rozważaniu naszych rozszerzeń do tych protokołów poprzez użycie systemu Bitcoin będziemy zakładali takie same założenia odnoście przeciwnika oraz bezpieczeństwa kanału jak w tej sekcji Model z losową wyrocznią W całej pracy będziemy pracowali w modelu z losową wyrocznią. Praca w tym modelu jest częstym założenie w protokołach kryptograficznych używających funkcji haszujących. Nieformalnie, mówi ono tyle, że używana funkcja haszująca h jest pewną funkcją jednostajnie losowo wybraną ze zbioru wszystkich funkcji. Funkcji {0, 1} {0, 1} λ jest jednak nieskończenie wiele, zatem musimy to doprecyzować. W modelu z losową wyrocznią funkcja haszująca jest osobnym komponentem protokołu tzw. losową wyrocznią. Komponent ten działa jak normalna funkcja. Można do niego dostarczyć parametr, a dostaniemy z powrotem odpowiadającą mu wartość. Losowa wyrocznia dla nowo dostarczonego parametru losuje niezależnie od poprzednich wyborów wartość y $ {0, 1} λ odpowiadającą temu parametrowi. Jeżeli natomiast spytano się powtórnie o wartość dla danego parametru, to zwracana jest ta sama wartość co wcześniej. W związku z tym strony w protokole nie mają żadnej informacji na temat wartości losowej wyroczni na danym parametrze dopóki nie spytają się o wartość dla dokładniej tego parametru. Model z losową wyrocznią jest oczywiście silniejszy od standardowych założeń o funkcjach haszujących. Z niezależności oraz jednostajnej losowości wartości wynikają w prosty sposób odporność na kolizje czy jednokierunkowość. Więcej na ten temat w rozdziale 3. Model z losową wyrocznią często ułatwia dowody. Czasami dowód jej używający jest jedynym, który jest znany. Dla teoretyków takie dowody są niewystarczające, gdyż w rzeczywistości przy użyciu danego protokołu użyjemy konkretnej funkcji haszującej, a nie jednostajnie wylosowanej funkcji. W związku z tym, zawsze szukają oni dowodów w standardowym modelu, czyli gdy o funkcji haszującej zakładamy jedynie jej podstawowe własności. Dla praktyków jednak dowody w modelu z losową wyrocznią są zwykle wystarczające. Często wynika to z faktu, że protokoły z dowodem w standardowym modelu są mniej wydajne niż protokoły z dowodem jedynie w modelu z losową wyrocznią, a w praktyce wydajność jest bardzo istotna. W systemie Bitcoin model z losową wyrocznią wydaje się jedynym możliwym wyborem, gdyż w procesie kopania bitcoinów (opisanym w następnym rozdziale) zakłada się, że wartości funkcji haszującej są nie tylko różne od siebie, ale także jednostajnie rozłożone w obrazie. Dlatego też nasze protokoły również rozważamy w tym modelu. 13

16

17 Rozdział 2 Opis systemu Bitcoin W rozdziale tym zostanie zaprezentowany system Bitcoin. Zaczniemy od jego własności, idei, powodów dla których ludzie mu zaufali oraz kontrowersji z nim związanych. Następnie przejdziemy do technicznego opisu systemu. Przedstawimy trzy wersje działania systemu począwszy od uproszczonej, a skończywszy na najbardziej skomplikowanej, która jest prawdziwą wersją używaną w praktyce. Na końcu omówimy również praktyczne zasady działania systemu Bitcoin, na które trzeba zwrócić uwagę, dowodząc bezpieczeństwo protokołów opartych na tym systemie Główna idea oraz własności systemu Bitcoin Bitcoin jest to waluta kryptograficzna opisana przez anonimowego autora o pseudonimie Satoshi Nakamoto w [14]. W ostatnim czasie zyskała ona znaczną popularność jej całkowita wartość rynkowa wynosi obecnie ponad 7 mld dolarów. Do powodów, dla których waluta ta zyskała wielu zwolenników, można zaliczyć między innymi możliwość wysyłania łatwo i szybko przelewów dowolnemu innemu użytkownikowi systemu Bitcoin na świecie, opłaty transakcyjne są bardzo niskie a nawet zerowe, użytkownicy są częściowo anonimowi, a waluta jest zdecentralizowana. Anonimowość, czy raczej pseudonimowość w systemie Bitcoin polega na tym, że przy przesyłaniu pieniędzy między użytkownikowi używa się adresów, które są losowymi kluczami publicznymi. W celu zwiększenia anonimowości, dla każdej transakcji używa się nowo wygenerowanego klucza publicznego. Dzięki tym zabiegom trudno jest połączyć konkretną osobę z jego adresami bądź też transakcjami. Jednak powstało już wiele prac np. [15], które starają się powiązać adresy, próbując znaleźć wszystkie kontrolowane przez pojedynczą osobę. Ponadto kupując bitcoiny często trzeba podać swoje dane osobowe. Osoby posiadające dostęp do tych danych mogą być w stanie powiązać ludzi z ich transakcjami. W praktyce problem ten nie wydaje się być bardzo duży i jest akceptowany, gdyż dzięki temu cały system jest wydajniejszy. Decentralizacja systemu Bitcoin polega na tym, że żadne państwo, żadna organizacja czy bank nie sprawują nad nim kontroli. Nikt nie może zabrać lub zamrozić użytkownikom ich pieniędzy, dodrukować bitcoinów w celu wzbogacenia się lub wygenerowania inflacji ani też zamknąć całej waluty. Własność ta jest główną ideą systemu Bitcoin, to dzięki niej ludzie zaczęli jej używać. Widać to było zwłaszcza po sytuacji na Cyprze w 2013 roku, kiedy to państwo zablokowało wszystkie konta bankowe w kraju, a następnie przejęło część środków na nich zgromadzonych niedługo po tych wydarzeniach zainteresowanie systemem Bitcoin oraz cena waluty znacząco podskoczyły. Decentralizacja systemu możliwa jest dzięki temu, że 15

18 system ten działa w rozproszonej sieci P2P, w której użytkownicy łącznie emulują bank łącznie walidują transakcje oraz stan kont użytkowników. Poprawność transakcji oraz zgodność z protokołem tworzenia nowych monet jest łatwe do sprawdzenia lokalnie, zatem użytkownicy trzymają lokalny stan całego systemu i to, na co oni się zgadzają, jest rzeczywistym stanem systemu. Więcej na temat napiszemy w następnej sekcji. Z fizycznego punktu widzenia monety w systemie Bitcoin to zwykłe ciągi zer i jedynek. W celu zapobiegnięcia sytuacji, w której ktoś chciałby wydać tą samą monetę wiele razy, system Bitcoin używa kryptografii głównie podpisów kryptograficznych oraz funkcji haszujących. Bitcoin swoje bezpieczeństwo oraz własności opiera właśnie na sile kryptografii oraz na założeniu, że większość siły obliczeniowej systemu jest w rękach uczciwych użytkowników, działających zgodnie z protokołem. Założenie to wydaje się być rozsądne, gdyż posiadając znaczną część całkowitej siły obliczeniowej systemu prawdopodobnie warto postępować uczciwie 2. Ponadto całkowita moc obliczeniowa systemu Bitcoin jest większa niż całkowita moc wszystkich 500 najmocniejszych superkomputerów na świecie, zatem próba uzyskania większości mocy obliczeniowe byłaby ogromnie kosztowna. Waluta bitcoin cieszy się coraz większym zainteresowaniem nie tylko ze strony zwykłych użytkowników, ale również sklepów i firm. W ostatnim czasie wiele wielkich amerykańskich firm, m.in. DELL, Wikipedia, Amazon, Dish Network, ebay czy PayPall zaczęło akceptować bitcoiny. Mimo ciągłych problemów z trudnością nabycia bitcoinów, to również jest coraz prostsze w wielu miejscach na świecie pojawiają się bankomaty, w których można zamieniać bitcoiny i standardową walutę. Ponadto niektórzy znani ekonomiści jak np. Ben Bernanke oraz angielskie FCA uznały system Bitcoin za godny uwagi i obiecujący. Również coraz częściej ludzie używają bitcoinów samych w sobie płacą nimi nie zamieniając ich na tradycyjne waluty. W związku z tym można uznać, że system Bitcoin coraz bardziej się rozwija oraz coraz częściej jest akceptowany i może zmienić nasze wyobrażenie o pieniądzach. Wiele osób ma różnego rodzaju uwagi w stosunku do systemu Bitcoin. Zarzucają mu m.in., że nie ma wartości, kopanie bitcoinów (opisane w następnej sekcji) marnuje niepotrzebnie dużo energii lub też twierdzi, że waluta ta jest używana głównie przez kryminalistów. Mimo częściowych racji, ciężko się zgodzić z tymi zarzutami. Wartością bitcoina są możliwości, które daje i których nie można uzyskać w standardowych walutach. Są to wspomniane wcześniej łatwość wykonywania tanich i szybkich przelewów oraz decentralizacja. Ponadto wartością danej rzeczy jest cena, jaką ludzie są w stanie za nią zapłacić złoto również nie ma wartości samej w sobie, po prostu jest uważane za drogie, więc jest drogie. Przy wytwarzaniu nowych monet oraz samym istnieniu systemu Bitcoin zużywane są ogromne ilości pracy komputerów więc i energii. Ale przy wydobyciu, transporcie i składowaniu złota również zużywane są znaczne zasoby. Prawdą jest, że niektórzy kryminaliści używają systemu bitcoin, ale wynika to z faktu, że po prostu upraszcza on transakcje, a jeżeli ktoś chce prać brudne pieniądze lub unikać płacenia podatków, to równie dobrze mógłby użyć tradycyjnych walut. I jak już wcześniej wspomniano, coraz więcej zwykłych użytkowników, sklepów i organizacji korzysta z dobrodziejstw systemu Bitcoin. My zajęliśmy się systemem Bitcoin, gdyż umożliwia on połączenie wartości pieniężnych z kryptografią. Ponadto nie jest on konstrukcją teoretyczną, ale jest używany w praktyce. Dodatkowo umożliwia on bardziej skomplikowane operacje finansowe niż tylko przesłanie komuś pieniędzy. Te możliwości oraz pewne szczegóły techniczne systemu Bitcoin omówimy w kolejnych sekcjach tego rozdziału. 2 Nie jest to jednak do końca pewne, patrz np. [12, 5]. 16

19 2.2. Wysokopoziomowe wprowadzenie do systemu Bitcoin i dowodów pracy Przedstawimy teraz uproszczoną wersję systemu Bitcoin. Na system składają się użytkownicy, każdy z nich (oznaczmy go przez P) posiada parę: klucz publiczny, klucz sekretny (P.pk, P.sk). Ponadto w systemie znajduje się jawna KsięgaGłówna zawierająca wszystkie transakcje wykonane w systemie. Transakcje przesyłają pojedyncze monety między użytkownikami. Każda z transakcji składa się z numeru poprzedniej transakcji, którą wydaje, a także klucza publicznego odbiorcy oraz podpisu kryptograficznego nadawcy na tej wiadomości. Transakcja ta jest poprawna, jeżeli wydawana transakcja nie była wcześniej wydana oraz podpis jest poprawnym podpisem odbiorcy wydawanej transakcji. Oczywiście, skoro KsięgaGłówna zawiera wszystkie dotychczas wykonane transakcje, to łatwo jest sprawdzić czy dana transakcja nie została dotychczas wydana. Ponadto klucz publiczny wydawanej transakcji jest w niej zawarty, zatem poprawność podpisu również można łatwo zweryfikować. Dzięki temu każdy użytkownik mając dostęp do KsięgiGłównej może sprawdzić, czy nowa transakcja jest poprawna. Głównym wyzwaniem w tym rozwiązaniu jest implementacja KsięgiGłównej. Ideą systemu Bitcoin jest decentralizacja, zatem nie możemy powierzyć nikomu zadania zarządzania nią. Musimy zaimplementować KsięgęGłówną w sposób rozproszony w systemie, który jest siecią P2P. Każdy z użytkowników powinien mieć własną kopię KsięgiGłównej, będziemy musieli zatem zadbać o to, żeby każdy z nich miał tą samą kopię. Implementacja KsięgiGłównej oparta jest na sprytnej idei dowodów pracy. Dowody pracy, wprowadzone w [10], polegają na pomyśle każącym każdą akcję poprzeć swoją pracą. Pracą tą może być odgadnięcie pewnej zagadki, której rozwiązanie wymaga nakładów pracy, lecz sprawdzenie poprawności wyniku jest bardzo szybkie. Aby akcja została uznana, trzeba do niej dołączyć rozwiązanie odpowiedniej (zależnej od tej akcji) zagadki. Przykład takiej zagadki podamy za chwilę, przy opisie implementacji KsięgiGłównej. Prostym (teoretycznym) przykładem wykorzystania dowodów pracy jest walka z niechcianymi wiadomościami w poczcie . Jeżeli do każdego wysyłanego maila należałoby dołączyć dowód pracy (zależny od maila oraz adresata), której wykonanie trwałoby około sekundę, to ilość niechcianych wiadomości zmalałaby drastycznie, gdyż ideą spamu jest wysyłanie dużej ilości wiadomości do wielu adresatów. Implementacja KsięgiGłównej wykorzystuje dowody pracy następująco: KsięgaGłówna jest tak na prawdę łańcuchem bloków (tak właśnie nazywa się ją w terminologii systemu Bitcoin, my jednak zostaniemy przy nazwie KsięgaGłówna), przy czym każdy blok zawiera transakcje wykonane od momentu stworzenia poprzedniego bloku. Aby zapewnić, że wszyscy użytkownicy zgadzają się na wspólną zawartość KsięgiGłównej, stosuje się regułę mówiącą, że najdłuższy łańcuch bloków jest poprawny. Jednak stworzenie nowego bloku nie jest łatwe. Właśnie tutaj wykorzystuje się dowód pracy aby stworzyć nowy blok (wykopać go) trzeba rozwiązać następującą zagadkę: znaleźć taką liczbę r, że hasz bloku, na który składają się nowe transakcje, liczba r oraz hasz poprzedniego bloku, zaczyna się od ustalonej liczby m zer. Wartość m jest tak dobrana (i dostosowywana co dwa tygodnie), że znalezienie poprawnej wartości r jest w miarę trudne całościowo wszystkim użytkownikom systemu Bitcoin zdarza się to raz na 10 minut. Oczywiście sprawdzenie poprawności rozwiązania jest bardzo szybkie wystarczy policzyć hasz bloku. System Bitcoin swoje bezpieczeństwo opiera na założeniu, że większość mocy obliczeniowej systemu kontrolowane jest przez uczciwych użytkowników, którzy zachowują się zgodnie z protokołem (jednak zgodnie z najnowszymi wynikami badań to założenie powinno być wzmocnione, a temat dalej drążony, gdyż nie stworzono dotychczas żadnego formalnego do- 17

20 wodu bezpieczeństwa systemu Bitcoin a nawet formalnego matematycznego modelu). Istotne jest tu założenie mówiące o połowie mocy obliczeniowej a nie połowie użytkowników, gdyż w rozproszonym systemie P2P bez systemu reputacji łatwo jest tworzyć nowych użytkowników w celu uzyskania większości. Natomiast znaczące zwiększenie swojej mocy obliczeniowej jest kosztowne. Dzięki temu założeniu, uczciwi użytkownicy będą tworzyli (wykopywali) większość bloków, co uniemożliwi tzw. atak podwójnego wydawania monet. Atak ten polega na tym, że mając monetę (która w rzeczywistości jest ciągiem zer i jedynek), możemy spróbować przesłać ją kilku osobom. Nie jest to jednak bezpośrednio możliwe, gdyż tylko jedna z transakcji wydających tą monetę może trafić do KsięgiGłównej. To co można próbować zrobić, to cofnąć historię. Skoro uznajemy, że najdłuższy łańcuch bloków jest poprawny, to można spróbować uruchomić następujący atak: jeżeli transakcja, którą chcemy cofnąć, znajduje się w bloku B k, to spróbujmy stworzyć alternatywny blok B k, który tej transakcji nie zawiera. Jednak aby nasz alternatywny łańcuch został uznany za poprawny, musimy stworzyć wiele nowych bloków B k+1, B k+2,... aż łańcuch ten będzie dłuższy od oryginalnego. Mając znacząco poniżej połowy mocy obliczeniowej całego systemu prawdopodobieństwo sukcesu spada wykładniczo do zera wraz z ilością bloków ponad blokiem B k 1 w oryginalnym łańcuchu. W praktyce uznaje się, że cofnięcie sześciu bloków jest niemożliwe. Przy większych transakcjach warto poczekać, aż po włączeniu naszej transakcji do KsięgiGłównej pojawi się później sześć nowych bloków. Dopiero wówczas możemy uznać, że transakcja jest wykonana poprawnie. System Bitcoin posiada sporą zachętę do kopania nowych bloków. Proces ten jest potrzebny do działania sieci tylko dzięki niemu nowe transakcje dodawane są do KsięgiGłównej, czyli wykonywane. Dla użytkowników natomiast powoduje on koszt w postaci opłat za sprzęt oraz prąd. W związku z tym stosuje się zasadę mówiącą, że każdy kto stworzy (wykopie) nowy blok dostaje w nagrodę 25 nowych bitcoinów (w przyszłości kwota ta będzie spadać, a kopacze będą zarabiać głównie na opłatach, o których napiszemy w następnych sekcjach), co na chwilę obecną warte jest około dolarów. Jest to jedyny sposób tworzenia nowych monet w systemie Standardowe działanie systemu Bitcoin Omówione powyżej działanie KsięgiGłównej jest prawdziwym działaniem w systemie Bitcoin. Jednak wygląd transakcji jest dużo bardziej skomplikowany. Omówimy teraz jak działają tzw. standardowe transakcje, które są używane w prawie wszystkich przypadkach. Transakcje korzystające z bardziej skomplikowanych możliwości są rzadkie nie znaleziono dla nich jeszcze poważnego praktycznego zastosowania. My jednak potrzebujemy ich do konstrukcji naszych protokołów, zatem omówimy je w następnej sekcji. Standardowe transakcje są podobne do transakcji opisanych w poprzedniej sekcji przesyłają one bitcoiny między adresami. Jednak dają one użytkownikom więcej możliwości. Główną różnicą jest to, że transakcje mogą dowolnie zbierać i dzielić monety. Standardową jednostką w systemie Bitcoin jest 1 bitcoin oznaczany 1 B, który jest równy 10 8 satoshi. Transakcje mogą mieć wiele wejść wydawać wiele (wyjść) poprzednich transakcji i mogą dowolnie podzielić swoją wartość między adresy w swoich wyjściach. Zatem (ciągle uproszczona) standardowa transakcja ma następującą postać: T = ([(x 1, wy 1 ),..., (x k, wy k ), (v 1, pk 1 ),..., (v m, pk m )], σ 1,..., σ k ) co oznacza, że transakcja T wydaje wyjście wy 1 transakcji x 1,..., wyjście wy k transakcji x k oraz dzieli całą kwotę następująco: v 1 B dla użytkownika o adresie publicznym pk 1, 18

21 ..., v m B dla użytkownika o adresie publicznym pk m. Zazwyczaj w transakcji używa się dwóch wyjść jedno z nich przesyła ustaloną kwotę do zamierzonego adresata, a drugie wydaje resztę przesyła pozostałą kwotę z powrotem do nadawcy. Pierwsza część transakcji: [(x 1, wy 1 ),..., (x k, wy k ), (v 1, pk 1 ),..., (v m, pk m )] nazywana jest jej treścią, a σ 1,..., σ k to podpisy kryptograficzne tej treści. Transakcja T jest poprawna, jeśli żadne z jej wejść (x 1, wy 1 ),..., (x k, wy k ) nie zostało wcześniej wydane, każde σ i jest poprawnym podpisem na treści przy użyciu klucza, do którego zostały wysłane bitcoiny w wyjściu (x i, wy i ) oraz sumaryczna wydawana kwota v v m jest niewiększa niż sumaryczna kwota na wejściu, czyli niewiększa niż suma wartości wyjść (x 1, wy 1 ),..., (x k, wy k ). Różnica między tymi wartościami jest nazywana opłatą transakcyjną i będzie dokładniej omówiona w następnej sekcji. Kolejną różnicą, wyglądającą na małą, lecz mającą czasami spore znaczenie, jest indeksowanie transakcji. Mianowicie transakcji nie indeksuje się kolejnymi numerami, ale ich haszami. Oznacza to, że x 1,..., x k to w rzeczywistości hasze transakcji, a nie numery. W standardowych transakcjach zmiana ta nie ma znaczenia, zatem omówimy ją dokładniej dopiero w sekcji 2.6. Podobna zmiana dotyczy adresowania transakcji. W rzeczywistości adresem użytkownika w systemie Bitcoin jest odpowiednio zakodowany hasz jego klucza publicznego. W związku z tym, aby wydać transakcje zaadresowaną do siebie, użytkownik musi podać zarówno klucz publiczny, którego hasz jest równy adresowi, jak i podpis treści transakcji odpowiadający podanemu kluczowi publicznemu. Ta zmiana nie ma jednak żadnego wpływu na nasze protokoły i nie będzie stosowana, gdyż zmniejsza czytelność skryptów w transakcjach. Podsumujemy teraz standardowe działanie systemu Bitcoin. Każdy z użytkowników P posiada parę kluczy: publiczny P.pk i sekretny P.sk, oraz ma dostęp do KsięgiGłównej. KsięgaGłówna jest w rzeczywistości łańcuchem bloków, które zawierają dokonane wcześniej transakcje. Gdy jeden z użytkowników A chce przesłać drugiemu B v bitcoinów, to tworzy odpowiednią transakcje T i wysyła ją do sieci Bitcoin (patrz sekcja 2.6). Transakcja ta wygląda następująco: T = ([(x 1, wy 1 ), (v, B.pk), (w v, A.pk)], σ), co oznacza, że A wydaje wyjście numer wy 1 swojej transakcji o haszu x 1. Oznaczmy wartość tego wyjścia przez w. Część tej kwoty o wartości v przesyła do B używając jego adresu będącego jego kluczem publicznym, a pozostałą kwotę przesyła do siebie. Całość podpisuje używając swojego klucza sekretnego uzyskując podpis σ (σ = podpis A.sk ((x 1, wy 1 ), (v, B.pk), (w v, A.pk))). W międzyczasie użytkownicy systemu Bitcoin starają się wykopać nowy blok. Gdy któremuś się to uda, to wysyła go do innych użytkowników, a oni akceptują go poprzez kopanie kolejnego bloku. Dodatkowo szczęśliwy kopacz dostaje 25 B. Blok ten będzie zawierał transakcję T, co oznacza, że transakcja została dokonana. Jednak warto poczekać na kilka (6) nowych bloków, żeby mieć pewność, że nie będzie ona wycofana. Wykopanie pojedynczego bloku trwa około 10 minut, zatem aby mieć pewność, że transakcja nie będzie wycofana, trzeba poczekać około godziny Prawdziwe, najogólniejsze działanie systemu Bitcoin System Bitcoin został tak zaprojektowany, aby za jego pomocą można było operować pieniędzmi w sposób bardziej skomplikowany niż zwykłe przesyłanie pieniędzy. Służą do tego kontrakty, które są możliwe dzięki istnieniu niestandardowych transakcji. Transakcje tego typu różnią się od standardowych tym, że mogą zawierać blokadę czasową transakcji nie 19

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Podstawy systemów kryptograficznych z kluczem jawnym RSA Podstawy systemów kryptograficznych z kluczem jawnym RSA RSA nazwa pochodząca od nazwisk twórców systemu (Rivest, Shamir, Adleman) Systemów z kluczem jawnym można używać do szyfrowania operacji przesyłanych

Bardziej szczegółowo

BITC T O C IN - wi w r i tua t lna l wa w lut l a ut w w skr k ócie i Dawid Sobieraj

BITC T O C IN - wi w r i tua t lna l wa w lut l a ut w w skr k ócie i Dawid Sobieraj BITCOIN - wirtualna waluta w skrócie Dawid Sobieraj Kilka słów o pieniądzu Każdy pieniądz ma przynajmniej trzy takie cechy: Istnieje możliwość wykazania, że dana kwota pieniądza jest własnością danego

Bardziej szczegółowo

Udany Electronic Cash BitCoin. Andrzej P.Urbański

Udany Electronic Cash BitCoin. Andrzej P.Urbański Udany Electronic Cash BitCoin Andrzej P.Urbański Wczesne pomysły e-cash Transakcje anonimowe jak przy gotówce Kryptograficznie generowane liczby jako monety Monety mogą brać udział w transakcjach bez pośrednictwa

Bardziej szczegółowo

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna 1. Wstęp Wprowadzenie do PKI Infrastruktura klucza publicznego (ang. PKI - Public Key Infrastructure) to termin dzisiaj powszechnie spotykany. Pod tym pojęciem kryje się standard X.509 opracowany przez

Bardziej szczegółowo

Przewodnik użytkownika

Przewodnik użytkownika STOWARZYSZENIE PEMI Przewodnik użytkownika wstęp do podpisu elektronicznego kryptografia asymetryczna Stowarzyszenie PEMI Podpis elektroniczny Mobile Internet 2005 1. Dlaczego podpis elektroniczny? Podpis

Bardziej szczegółowo

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Paweł Parys Nr albumu: 209216 Aukcjomat Praca licencjacka na kierunku INFORMATYKA w zakresie INFORMATYKA Praca wykonana pod kierunkiem

Bardziej szczegółowo

Kwantowe przelewy bankowe foton na usługach biznesu

Kwantowe przelewy bankowe foton na usługach biznesu Kwantowe przelewy bankowe foton na usługach biznesu Rafał Demkowicz-Dobrzański Centrum Fizyki Teoretycznej PAN Zakupy w Internecie Secure Socket Layer Bazuje na w wymianie klucza metodą RSA Jak mogę przesłać

Bardziej szczegółowo

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII Kierunek Informatyka - semestr V Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Problem pakowania plecaka System kryptograficzny Merklego-Hellmana

Bardziej szczegółowo

Matematyka dyskretna. Wykład 11: Kryptografia z kluczem publicznym. Gniewomir Sarbicki

Matematyka dyskretna. Wykład 11: Kryptografia z kluczem publicznym. Gniewomir Sarbicki Matematyka dyskretna Wykład 11: Kryptografia z kluczem publicznym Gniewomir Sarbicki Idea kryptografii z kluczem publicznym: wiadomość f szyfrogram f 1 wiadomość Funkcja f (klucz publiczny) jest znana

Bardziej szczegółowo

Protokoły do obliczeń wielopodmiotowych bazujące na kryptowalutach

Protokoły do obliczeń wielopodmiotowych bazujące na kryptowalutach Protokoły do obliczeń wielopodmiotowych bazujące na kryptowalutach streszczenie rozprawy doktorskiej Marcin Andrychowicz 27 maja 2015 1 Wstęp Niniejsza rozprawa doktorska składa się z 6 artykułów napisanych

Bardziej szczegółowo

ODKŁADAMY NA KONCIE OSZCZĘDNOŚCIOWYM

ODKŁADAMY NA KONCIE OSZCZĘDNOŚCIOWYM Zadanie: ODKŁADAMY NA KONCIE OSZCZĘDNOŚCIOWYM Cel zadania: przybliżenie uczniom zagadnień związanych z zakładaniem i korzystaniem z konta bankowego oraz oszczędnościowego. Poszukiwanie najkorzystniejszej

Bardziej szczegółowo

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO. Rzeczywistość (istniejąca lub projektowana).. Model fizyczny. 3. Model matematyczny (optymalizacyjny): a. Zmienne projektowania

Bardziej szczegółowo

10. Wstęp do Teorii Gier

10. Wstęp do Teorii Gier 10. Wstęp do Teorii Gier Definicja Gry Matematycznej Gra matematyczna spełnia następujące warunki: a) Jest co najmniej dwóch racjonalnych graczy. b) Zbiór możliwych dezycji każdego gracza zawiera co najmniej

Bardziej szczegółowo

PRZEWODNIK. Wymiana walut w kantorze internetowym topfx

PRZEWODNIK. Wymiana walut w kantorze internetowym topfx PRZEWODNIK Wymiana walut w kantorze internetowym topfx Aby wykonać operację wymiany walut, Użytkownik kantoru internetowego topfx.pl musi posiadać minimum dwa rachunki bankowe: rachunek złotówkowy (PLN)

Bardziej szczegółowo

III. ZMIENNE LOSOWE JEDNOWYMIAROWE

III. ZMIENNE LOSOWE JEDNOWYMIAROWE III. ZMIENNE LOSOWE JEDNOWYMIAROWE.. Zmienna losowa i pojęcie rozkładu prawdopodobieństwa W dotychczas rozpatrywanych przykładach każdemu zdarzeniu była przyporządkowana odpowiednia wartość liczbowa. Ta

Bardziej szczegółowo

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby Scenariusz zajęć Moduł VI Projekt Gra logiczna zgadywanie liczby Moduł VI Projekt Gra logiczna zgadywanie liczby Cele ogólne: przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

Zastosowanie TI do wymiany informacji USENET. Technologia Informacyjna Lekcja 9

Zastosowanie TI do wymiany informacji USENET. Technologia Informacyjna Lekcja 9 Zastosowanie TI do wymiany informacji USENET Technologia Informacyjna Lekcja 9 USENET Usenet czyli system grup dyskusyjnych, powstał jeszcze przed powstaniem www, jest bardzo popularną usługą. Grupy dyskusyjne

Bardziej szczegółowo

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Laboratorium nr 5 Podpis elektroniczny i certyfikaty Laboratorium nr 5 Podpis elektroniczny i certyfikaty Wprowadzenie W roku 2001 Prezydent RP podpisał ustawę o podpisie elektronicznym, w która stanowi że podpis elektroniczny jest równoprawny podpisowi

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

System anonimowej i poufnej poczty elektronicznej. Jakub Piotrowski

System anonimowej i poufnej poczty elektronicznej. Jakub Piotrowski System anonimowej i poufnej poczty elektronicznej Jakub Piotrowski Plan prezentacji Wprowadzenie Systemy ochrony poczty elektronicznej Anonimowa poczta elektroniczna Projekt systemu pocztowego Podsumowanie

Bardziej szczegółowo

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października 2011. Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października 2011. Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński Wykład 4 Protokoły SSL i TLS główne slajdy 26 października 2011 Instytut Informatyki Uniwersytet Jagielloński 4.1 Secure Sockets Layer i Transport Layer Security SSL zaproponowany przez Netscape w 1994

Bardziej szczegółowo

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972

Bardziej szczegółowo

Trening INTEGRA Dodatkowe dialogi

Trening INTEGRA Dodatkowe dialogi Trening INTEGRA Dodatkowe dialogi Pobieranie pieniędzy z banku Wersja 1 - Chciałbym/abym wypłacić pieniądze. - Ile dokładnie? - 100 Euro - Proszę o okazanie dokumentu tożsamości. - Mam ze sobą mój paszport

Bardziej szczegółowo

Sprawić aby każdy mógł generować korzyści finansowe na rzeczach, za które normalnie trzeba płacić...

Sprawić aby każdy mógł generować korzyści finansowe na rzeczach, za które normalnie trzeba płacić... Witaj, Istnieje pewnie kilka(naście) albo i więcej powodów, dla których teraz czytasz te słowa. Niezależnie więc od tego, dlaczego teraz je czytasz, chcę Ci podziękować za to, że inwestujesz swój czas

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 11 Spis treści 16 Zarządzanie kluczami 3 16.1 Generowanie kluczy................. 3 16.2 Przesyłanie

Bardziej szczegółowo

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie mgr Piotr Gaś, dr hab. inż. Jerzy Mischke Ośrodek Edukacji Niestacjonarnej Akademii Górniczo-Hutniczej w Krakowie Samokontrola postępów w nauce z wykorzystaniem Internetu Wprowadzenie W każdym systemie

Bardziej szczegółowo

Klawiatura. Klawisz Blokady. Klawisz Enter. Wyświetlacz. Klucz cyfrowy FAQ

Klawiatura. Klawisz Blokady. Klawisz Enter. Wyświetlacz. Klucz cyfrowy FAQ Klucz cyfrowy FAQ Wyświetlacz Klawiatura Klawisz Blokady Klawisz Enter 1. Co to jest klucz cyfrowy? Klucz cyfrowy daje dostęp do platformy inwestycyjnej KBCmakler lub KBCtrader - posiada dwie podstawowe

Bardziej szczegółowo

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x Spis treści Wstęp... 1 Instalacja certyfikatów w programie pocztowym... 1 Instalacja certyfikatów własnych... 1 Instalacja certyfikatów innych osób... 3 Import certyfikatów innych osób przez odebranie

Bardziej szczegółowo

Przykładowe rozwiązania

Przykładowe rozwiązania Przykładowe rozwiązania Poniższy dokument zawiera przykładowe rozwiązania zadań z I etapu I edycji konkursu (2014 r.). Rozwiązania w formie takiej jak przedstawiona niżej uzyskałyby pełną liczbę punktów

Bardziej szczegółowo

1. MOZILLA THUNDERBIRD (31.3.0) 2 2. WINDOWS LIVE MAIL 2011 13 3. THE BAT HOME EDITION (6.7.7.0 32 BIT) 30

1. MOZILLA THUNDERBIRD (31.3.0) 2 2. WINDOWS LIVE MAIL 2011 13 3. THE BAT HOME EDITION (6.7.7.0 32 BIT) 30 Zakładamy, że użytkownik posiada paczkę pfx z certyfikatem I kluczem prywatnym. Poniższe informacje dotyczą wyłącznie instalacji certyfikatu własnego (z pliku pfx) oraz osoby trzeciej. 1. MOZILLA THUNDERBIRD

Bardziej szczegółowo

koordynator: nauczyciele wspomagający: mgr Jadwiga Greszta mgr Magdalena Kosiorska mgr Iwona Pałka

koordynator: nauczyciele wspomagający: mgr Jadwiga Greszta mgr Magdalena Kosiorska mgr Iwona Pałka koordynator: mgr Jadwiga Greszta nauczyciele wspomagający: mgr Magdalena Kosiorska mgr Iwona Pałka Opracowanie słownictwa dotyczącego bankowości i finansów. Od Grosika do Złotówki rozwiązywanie łamigłówek

Bardziej szczegółowo

Aktywacja konta. Weryfikacja konta. Konfiguracja dostępu

Aktywacja konta. Weryfikacja konta. Konfiguracja dostępu Przewodnik po integracji systemu PayPal dla klientów firmy ecard Wystarczą 4 proste kroki! 1 2 3 4 Założenie konta Aktywacja konta Weryfikacja konta Konfiguracja dostępu www.paypal.pl 0 800 675 030 (połączenie

Bardziej szczegółowo

dr inż. Ryszard Rębowski 1 WPROWADZENIE

dr inż. Ryszard Rębowski 1 WPROWADZENIE dr inż. Ryszard Rębowski 1 WPROWADZENIE Zarządzanie i Inżynieria Produkcji studia stacjonarne Konspekt do wykładu z Matematyki 1 1 Postać trygonometryczna liczby zespolonej zastosowania i przykłady 1 Wprowadzenie

Bardziej szczegółowo

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami.

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami. Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami. Zagadnienie tematyczne (blok tematyczny): Internet i sieci (Podr.cz. II, str.37-69) Podstawa programowa: Podstawowe zasady

Bardziej szczegółowo

PODRĘCZNIK OBSŁUGI BUSINESSNET

PODRĘCZNIK OBSŁUGI BUSINESSNET PODRĘCZNIK OBSŁUGI BUSINESSNET. LOGOWANIE. AUTORYZACJA ZLECENIA. NOWY KLUCZ. PRZELEWY 5. ZLECENIA STAŁE 6. MODUŁ PRAWNY 7. DOSTĘP DO DEALINGNET 8. CERTYFIKAT KWALIFIKOWANY JAK ZALOGOWAĆ SIĘ DO BUSINESSNET

Bardziej szczegółowo

Obliczanie procentu danej liczby i liczby na podstawie jej. procentu jako umiejętności kluczowe w pracy doradcy. inwestycyjnego.

Obliczanie procentu danej liczby i liczby na podstawie jej. procentu jako umiejętności kluczowe w pracy doradcy. inwestycyjnego. 1 Obliczanie procentu danej liczby i liczby na podstawie jej procentu jako umiejętności kluczowe w pracy doradcy inwestycyjnego. Czas trwania zajęć: ok. 40 minut Kontekst w jakim wprowadzono doświadczenie:

Bardziej szczegółowo

ZASADY GRY NAJCZĘSCIEJ GRYWANA GRA LICZBOWA NA ŚWIECIE DLA CAŁEJ RODZINY

ZASADY GRY NAJCZĘSCIEJ GRYWANA GRA LICZBOWA NA ŚWIECIE DLA CAŁEJ RODZINY 12355541 Rummikub ZASADY GRY NAJCZĘSCIEJ GRYWANA GRA LICZBOWA NA ŚWIECIE DLA CAŁEJ RODZINY Dla 2 4 graczy w wieku od 7 lat Zawartość opakowania: 104 kostki do gry, ponumerowane od 1 do 13, w czterech kolorach

Bardziej szczegółowo

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne Metody numeryczne materiały do wykładu dla studentów 7. Całkowanie numeryczne 7.1. Całkowanie numeryczne 7.2. Metoda trapezów 7.3. Metoda Simpsona 7.4. Metoda 3/8 Newtona 7.5. Ogólna postać wzorów kwadratur

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Komunikacja za pomocą potoków. Tomasz Borzyszkowski Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

Bardziej szczegółowo

Specyfikacja 1.2.1. Płatności CashBill. Instrukcja podłączenia płatności elektronicznych do typowych zastosowań.

Specyfikacja 1.2.1. Płatności CashBill. Instrukcja podłączenia płatności elektronicznych do typowych zastosowań. Specyfikacja 1.2.1 Płatności CashBill Instrukcja podłączenia płatności elektronicznych do typowych zastosowań. CashBill Spółka Akcyjna ul. Rejtana 20, 41-300 Dąbrowa Górnicza Tel.: +48 032 764-18-42 Fax:

Bardziej szczegółowo

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ www.e-awizo.pl BrainSoft sp. z o. o. ul. Bolesława Chrobrego 14/2 65-052 Zielona Góra tel.68 455 77 44 fax 68 455 77 40 e-mail: biuro@brainsoft.pl

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Maciej Oleksy Zenon Matuszyk

Maciej Oleksy Zenon Matuszyk Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu

Bardziej szczegółowo

Instrukcja instalacji wtyczki Przelewy24

Instrukcja instalacji wtyczki Przelewy24 Instrukcja instalacji wtyczki Przelewy24 Wersja 3.2.9. Data: 2015-06-05 Wersja: 3.2.9 Instrukcja instalacji wtyczki Przelewy24 dla Prestashop Moduł przeznaczony jest dla Prestashop w wersji minimum 1.5.

Bardziej szczegółowo

PRZEWODNIK. Wpłata środków na Konto Użytkownika

PRZEWODNIK. Wpłata środków na Konto Użytkownika PRZEWODNIK Wpłata środków na Konto Użytkownika Aby przeprowadzić transakcję kupna lub sprzedaży walut w Serwisie topfx.pl, należy zapewnić odpowiednią ilość środków na Koncie Użytkownika. W tym celu należy

Bardziej szczegółowo

KURS PRAWDOPODOBIEŃSTWO

KURS PRAWDOPODOBIEŃSTWO KURS PRAWDOPODOBIEŃSTWO Lekcja 4 Prawdopodobieństwo całkowite i twierdzenie Bayesa. Drzewko stochastyczne. Schemat Bernoulliego. ZADANIE DOMOWE www.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowiedź

Bardziej szczegółowo

Zadanie: BOW Gra w kręgle

Zadanie: BOW Gra w kręgle Zadanie: BOW Gra w kręgle polish BOI 0, dzień. Dostępna pamięć: 6 MB. 30.04.0 Bajtazar jest miłośnikiem gry w kręgle, a także statystyki. Swego czasu spisywał on wyniki gier w kręgle. Niestety, niektóre

Bardziej szczegółowo

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Dr Joanna Banaś Zakład Badań Systemowych Instytut Sztucznej Inteligencji i Metod Matematycznych Wydział Informatyki Politechniki

Bardziej szczegółowo

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP PGP - Pretty Good Privacy Użycie certyfikatów niekwalifikowanych w programie PGP Spis treści: Wstęp...3 Tworzenie klucza prywatnego i certyfikatu...3 Import kluczy z przeglądarki...9 2 Wstęp PGP - to program

Bardziej szczegółowo

[WYSYŁANIE MAILI Z PROGRAMU EXCEL]

[WYSYŁANIE MAILI Z PROGRAMU EXCEL] c 20140612- rev. 2 [WYSYŁANIE MAILI Z PROGRAMU EXCEL] ZAWARTOŚĆ Wstęp... 3 Funkcje w excelu... 4 Funkcja Hiperłącza... 7 Dodawanie odbiorców... 8 Uzupełnianie tytułu... 8 Wpisywanie treści... 8 Znane problemy...

Bardziej szczegółowo

ING BusinessOnLine FAQ. systemu bankowości internetowej dla firm

ING BusinessOnLine FAQ. systemu bankowości internetowej dla firm ING BusinessOnLine FAQ systemu bankowości internetowej dla firm Krótki przewodnik po nowym systemie bankowości internetowej dla firm ING BusinessOnLine Spis Treści: 1. Jak zalogować się do systemu ING

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

Usługa wyciągi elektroniczne Przewodnik Użytkownika

Usługa wyciągi elektroniczne Przewodnik Użytkownika Usługa wyciągi elektroniczne Przewodnik Użytkownika 2012-01-30 SPIS TREŚCI 1. Wstęp... 3 2. Przesyłanie wyciągów pocztą elektroniczną... 3 3. Przeglądanie wyciągów w Repozytorium... 3 3.1. Wymagania techniczne...

Bardziej szczegółowo

Akademia Młodego Ekonomisty Matematyka finansowa dla liderów Albert Tomaszewski Grupy 1-2 Zadanie 1.

Akademia Młodego Ekonomisty Matematyka finansowa dla liderów Albert Tomaszewski Grupy 1-2 Zadanie 1. Grupy 1-2 Zadanie 1. Sprawdźcie ofertę dowolnych 5 banków i wybierzcie najlepszą ofertę oszczędnościową (lokatę lub konto oszczędnościowe). Obliczcie, jaki zwrot przyniesie założenie jednej takiej lokaty

Bardziej szczegółowo

4. Projekt Bazy Danych

4. Projekt Bazy Danych 4. Projekt Bazy Danych 4.1. Opis rozdziału W tym rozdziale przedstawiono prosty projekt bazy danych dla naszej gry. 4.2. Dane logowania Na początku zastanówmy się jakie dane będą nam potrzebne do zarejestrowania

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Szymon Klimuk Nr albumu: 187408 Praca magisterska na kierunku Informatyka Monitorowanie

Bardziej szczegółowo

Instrukcja instalacji wtyczki Przelewy24

Instrukcja instalacji wtyczki Przelewy24 Instrukcja instalacji wtyczki Przelewy24 Wersja 3.2.2c Data: 2015-07-09 Wersja: 3.2.2c Instrukcja instalacji wtyczki Przelewy24 dla Magento Moduł przeznaczony jest dla Magento w wersji minimum 1.4. Strona

Bardziej szczegółowo

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe Wykład 9: Elementy kryptografii Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 9 1 / 32 Do tej pory chcieliśmy komunikować się efektywnie,

Bardziej szczegółowo

1.1. Pozycyjne systemy liczbowe

1.1. Pozycyjne systemy liczbowe 1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego

Bardziej szczegółowo

Płatności CashBill - SOAP

Płatności CashBill - SOAP Dokumentacja techniczna 1.0 Płatności CashBill - SOAP Dokumentacja wdrożenia systemu Płatności CashBill w oparciu o komunikację według protokołu SOAP CashBill Spółka Akcyjna ul. Rejtana 20, 41-300 Dąbrowa

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

ZYSK BRUTTO, KOSZTY I ZYSK NETTO

ZYSK BRUTTO, KOSZTY I ZYSK NETTO ZYSK BRUTTO, KOSZTY I ZYSK NETTO MARŻA BRUTTO Marża i narzut dotyczą tego ile właściciel sklepu zarabia na sprzedaży 1 sztuki pojedynczej pozycji. Marża brutto i zysk brutto odnoszą się do tego ile zarabia

Bardziej szczegółowo

Zabezpieczanie danych użytkownika przed szkodliwym oprogramowaniem szyfrującym

Zabezpieczanie danych użytkownika przed szkodliwym oprogramowaniem szyfrującym Zabezpieczanie danych użytkownika przed szkodliwym oprogramowaniem szyfrującym Cyberprzestępcy szybko przyswajają techniki rozwijane przez przestępców w świecie fizycznym, łącznie z tymi służącymi do wyłudzania

Bardziej szczegółowo

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci. Struktura komunikatów sieciowych Każdy pakiet posiada nagłówki kolejnych protokołów oraz dane w których mogą być zagnieżdżone nagłówki oraz dane protokołów wyższego poziomu. Każdy protokół ma inne zadanie

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

Bardziej szczegółowo

OTWARCIE RACHUNKU BROKERSKIEGO ONLINE (Potwierdzenie przelewem) oraz ZŁOŻENIE ZAPISU W SYSTEMIE BANKOWOŚCI INTERNETOWEJ

OTWARCIE RACHUNKU BROKERSKIEGO ONLINE (Potwierdzenie przelewem) oraz ZŁOŻENIE ZAPISU W SYSTEMIE BANKOWOŚCI INTERNETOWEJ Biuro Maklerskie OTWARCIE RACHUNKU BROKERSKIEGO ONLINE (Potwierdzenie przelewem) oraz ZŁOŻENIE ZAPISU W SYSTEMIE BANKOWOŚCI INTERNETOWEJ 1/8 Osoby niebędące Klientami Alior Banku mają możliwość otwarcia

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

FTP przesył plików w sieci

FTP przesył plików w sieci FTP przesył plików w sieci 7.5 FTP przesył plików w sieci Podstawowe pojęcia FTP (File Transfer Protocol) jest usługą sieciową pozwalającą na wymianę plików w sieci Internet. Osoby chcące wymienić między

Bardziej szczegółowo

EuroFirma Sklep Internetowy do programów

EuroFirma Sklep Internetowy do programów EuroFirma Sklep Internetowy do programów humansoft HermesMała Firma humansoft HermesStandard Bielsko-Biała,październik 2008 do obsługi sklepu internetowego Instrukcja modułu Sklep Internetowy do programu

Bardziej szczegółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu

Bardziej szczegółowo

Podpis elektroniczny

Podpis elektroniczny Podpis elektroniczny Powszechne stosowanie dokumentu elektronicznego i systemów elektronicznej wymiany danych oprócz wielu korzyści, niesie równieŝ zagroŝenia. Niebezpieczeństwa korzystania z udogodnień

Bardziej szczegółowo

INTERNET - Wrocław 2005. Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

INTERNET - Wrocław 2005. Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid Bartłomiej Balcerek Wrocławskie Centrum Sieciowo-Superkomputerowe Plan prezentacji Podstawowe pojęcia z dziedziny gridów Definicja

Bardziej szczegółowo

Generowanie i optymalizacja harmonogramu za pomoca

Generowanie i optymalizacja harmonogramu za pomoca Generowanie i optymalizacja harmonogramu za pomoca na przykładzie generatora planu zajęć Matematyka Stosowana i Informatyka Stosowana Wydział Fizyki Technicznej i Matematyki Stosowanej Politechnika Gdańska

Bardziej szczegółowo

Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI

Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI Matematyka dla liceum ogólnokształcącego i technikum w zakresie podstawowym i rozszerzonym Z E S Z Y T M E T O D Y C Z N Y Miejski

Bardziej szczegółowo

Kompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/

Kompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/ STL, czyli o co tyle hałasu W świecie programowania C++, hasło STL pojawia się nieustannie i zawsze jest o nim głośno... często początkujące osoby, które nie znają STL-a pytają się co to jest i czemu go

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Statystyka w pracy badawczej nauczyciela Wykład 4: Analiza współzależności. dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl

Statystyka w pracy badawczej nauczyciela Wykład 4: Analiza współzależności. dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl Statystyka w pracy badawczej nauczyciela Wykład 4: Analiza współzależności dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl Statystyczna teoria korelacji i regresji (1) Jest to dział statystyki zajmujący

Bardziej szczegółowo

--------------------------------- Zacznij Zarabiać

--------------------------------- Zacznij Zarabiać NetWork Dostarcza GoDealla.pl GoDealla NetWork --------------------------------- Zacznij Zarabiać na zakupach grupowych na Facebook u Czym jest GoDealla Network? GoDealla.pl to największy polski agregator

Bardziej szczegółowo

VIII Wojewódzki Konkurs Matematyczny "W Świecie Matematyki im. Prof. Włodzimierza Krysickiego Etap drugi - 3 marca 2016 r.

VIII Wojewódzki Konkurs Matematyczny W Świecie Matematyki im. Prof. Włodzimierza Krysickiego Etap drugi - 3 marca 2016 r. VIII Wojewódzki Konkurs Matematyczny "W Świecie Matematyki im. Prof. Włodzimierza Krysickiego Etap drugi - 3 marca 2016 r. Maksymalna liczba punktów do zdobycia: 80. 1. Drugi etap Konkursu składa się z

Bardziej szczegółowo

Instrukcja zamawiania obiadów w szkole. Pyszoty.pl

Instrukcja zamawiania obiadów w szkole. Pyszoty.pl Instrukcja zamawiania obiadów w szkole Pyszoty.pl Witamy w firmie Pyszoty.pl. Niniejsza instrukcja ma na celu zapoznanie Państwa z naszym systemem do opłacania i zamawiania obiadów w szkole przez internet

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Rysunek zwykle bardziej przemawia do wyobraźni niż kolumna liczb. Dlatego tak często dane statystyczne przedstawia się graficznie.

Rysunek zwykle bardziej przemawia do wyobraźni niż kolumna liczb. Dlatego tak często dane statystyczne przedstawia się graficznie. PROCENTY I DIAGRAMY Rysunek zwykle bardziej przemawia do wyobraźni niż kolumna liczb. Dlatego tak często dane statystyczne przedstawia się graficznie. Często spotykamy się z diagramami kołowymi. Przedstawiają

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI SERWISU ALLPAY.PL. 1. Płatności internetowe

INSTRUKCJA OBSŁUGI SERWISU ALLPAY.PL. 1. Płatności internetowe INSTRUKCJA OBSŁUGI SERWISU ALLPAY.PL 1. Płatności internetowe 1.1 Transakcje 1.2 Kody dostępu 1.3 Wypłata 2. Serwisy 2.1 Usługi sms 2.2 Transakcje sms 2.3 Wypłata 3. Pobierz 3.1 Dokumentacje 3.2 Niezbędne

Bardziej szczegółowo

Inwestor musi wybrać następujące parametry: instrument bazowy, rodzaj opcji (kupna lub sprzedaży, kurs wykonania i termin wygaśnięcia.

Inwestor musi wybrać następujące parametry: instrument bazowy, rodzaj opcji (kupna lub sprzedaży, kurs wykonania i termin wygaśnięcia. Opcje na GPW (II) Wbrew ogólnej opinii, inwestowanie w opcje nie musi być trudne. Na rynku tym można tworzyć strategie dla doświadczonych inwestorów, ale również dla początkujących. Najprostszym sposobem

Bardziej szczegółowo

Matematyka Ekonomiczna

Matematyka Ekonomiczna Matematyka Ekonomiczna Dr. hab. David Ramsey e-mail: david.ramsey@pwr.edu.pl strona domowa: www.ioz.pwr.edu.pl/pracownicy/ramsey Pokój 5.16, B-4 Godziny konsultacji: Wtorek 11-13, Czwartek 11-13 28 września

Bardziej szczegółowo

Zastosowanie Excela w matematyce

Zastosowanie Excela w matematyce Zastosowanie Excela w matematyce Komputer w dzisiejszych czasach zajmuje bardzo znamienne miejsce. Trudno sobie wyobrazić jakąkolwiek firmę czy instytucję działającą bez tego urządzenia. W szkołach pierwsze

Bardziej szczegółowo

1.2 Prawa dostępu - Role

1.2 Prawa dostępu - Role Portlet Użytkownik Login Uprawnienie Rola Kontekst podmiotu Okno w serwisie portalu, udostępniające konkretne usługi lub informacje, na przykład kalendarz lub wiadomości Jest to osoba korzystająca z funkcjonalności

Bardziej szczegółowo

------------------- ------------------- X ------------------- ------------------- ------------------- BRYTANIA LTD

------------------- ------------------- X ------------------- ------------------- ------------------- BRYTANIA LTD BRYTANIA LTD V V 220 C Blythe Rd London W14 0HH 02033029696 ------------------- ------------------- X ------------------- ------------------- ------------------- BRYTANIA LTD X 220 C Blythe Rd London W14

Bardziej szczegółowo

METODY SZTUCZNEJ INTELIGENCJI 2 Opis projektu

METODY SZTUCZNEJ INTELIGENCJI 2 Opis projektu Kamil Figura Krzysztof Kaliński Bartek Kutera METODY SZTUCZNEJ INTELIGENCJI 2 Opis projektu Porównanie metod uczenia z rodziny TD z algorytmem Layered Learning na przykładzie gry w warcaby i gry w anty-warcaby

Bardziej szczegółowo

Rozdział II 1. podręcznika Wolna przedsiębiorczość - Dział Drugi: Przedsiębiorczość w teorii - Ryzyko i ubezpieczenie

Rozdział II 1. podręcznika Wolna przedsiębiorczość - Dział Drugi: Przedsiębiorczość w teorii - Ryzyko i ubezpieczenie Rozdział II 1. podręcznika Wolna przedsiębiorczość - Dział Drugi: Przedsiębiorczość w teorii - Ryzyko i ubezpieczenie Autor: Mateusz Machaj Poniżej przedstawiamy wersję roboczą rozdziału pierwszego działu

Bardziej szczegółowo

System operacyjny UNIX - użytkownicy. mgr Michał Popławski, WFAiIS

System operacyjny UNIX - użytkownicy. mgr Michał Popławski, WFAiIS System operacyjny UNIX - użytkownicy Konta użytkowników Mechanizm kont użytkowników został wprowadzony, gdy z systemów komputerowych zaczęła korzystać większa ilość osób, niezależnie od tego, ile osób

Bardziej szczegółowo

5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH

5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH 5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH Temat, którym mamy się tu zająć, jest nudny i żmudny będziemy się uczyć techniki obliczania wartości logicznej zdań dowolnie złożonych. Po co? możecie zapytać.

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Ustawa ma zastosowanie do umów zawieranych przez przedsiębiorcę z konsumentami.

Ustawa ma zastosowanie do umów zawieranych przez przedsiębiorcę z konsumentami. 25 grudnia 2014 roku wchodzi w życie ustawa, której celem jest unifikacja i doprecyzowanie regulacji prawnych w obszarze zawierania umów na odległość. Ustawa w szczególności dotyczy następujących zagadnień:

Bardziej szczegółowo