Billon czyli gigantyczny koszt shackowania (część 2)

Tu znajdziesz część I artykułu.

To jest część druga, która została napisana miesiąc po części pierwszej. Obie są publikowane jednocześnie.

Wstęp

Zanim przystąpiłem do spisywania pierwszej części niniejszego tekstu, przeczytałem i wysłuchałem o Billonie prawie wszystko, co było do przeczytania w internecie i prasie oraz do wysłuchania w wywiadach. Dużo słów, mało konkretów, tymczasem podczas testów uzbierała się pokaźna lista pytań. Postanowiłem wysłać je przedstawicielom spółki.

Pierwszy kontakt nawiązałem przez formularz online we wtorek 31 października:

Dzień dobry

Zainteresowałem się usługą Billon i chciałbym dowiedzieć się nieco więcej o wykorzystaniu blockchaina w Państwa usłudze. Wiem, jak działa Bitcoin czy Ethereum, jednak nie dostrzegam w Billonie takich cech blockchaina, jak otwartość (dostępność źródeł aplikacji implementującej protokół blockchain Billona), przejrzystość (swobodny wgląd w bloki i rejestr transakcji), rozproszenie (brak jest informacji o liczbie i lokalizacji węzłów generujących bloki transakcji Billona) ani integralność/niezaprzeczalność (wobec braku przejrzystości i rozproszenia nie sposób ocenić, jakiego nakładu pracy wymagałoby sfałszowanie zestawu N ostatnich bloków).

Czy jest jakiś sposób na to, abym jako użytkownik Billona mógł dostrzec rzeczywiste użycie blockchaina oraz wynikające z tego korzyści? Innymi słowy – jak mogę przekonać się, że Państwa rozwiązanie jest bardziej odporne na ataki od systemów scentralizowanych? Czy w plikach składowanych na urządzeniu mobilnym znajdują się bloki z transakcjami? Czy mogę zostać operatorem węzła przetwarzającego transakcje sieci Billon?

Pozdrawiam
Tomasz Zieliński

Na odpowiedź czekałem równo tydzień (w tym czasie raz się przypomniałem), dostałem ją we wtorek 7 listopada

Witaj!
Dziękuję za zainteresowanie i wiadomość.

Tak, ma Pan rację. Nie działamy na zasadzie Blockchaina, na którym bazuje Bitcoin. Nasza, druga generacja Blockchaina szyfruje nie oddzielne (nowe) waluty czy system taki, jakim jest np. Bitcoin, a szyfruje waluty narodowe, już istniejące, koduje elektroniczny pieniądz, dokumenty czy nawet pliki głosowe (np. z contact center).

Filozofia przyjęta przez firmę Billon, polega na zachowaniu kontroli nad kodem, bazuje na nie udostępnianiu kodu i w ten sposób zmniejszenia ryzyka potencjalnego ataku, w przeciwieństwie do Ethereum, gdzie przez filozofię otwartości stało się obiektem podatnym na kradzież, przez co użytkownicy zostali narażeni na straty sięgające milionów dolarów.

Rozwiązanie i kod aplikacji Billon otrzymał odpowiedni certyfikat ze strony zajmującej się audytem bezpieczeństwa, oraz placówek naukowych specjalizujących się w dziedzinie kryptografii.

W zakresie informacji, które jesteśmy w stanie ujawnić i odpowiadając na Pana pytanie, lokalna kopia Pana blockchaina znajduje się na Pana urządzeniu, jest on również zabezpieczony (duplikowany) w innych węzłach sieci Billon.

Pozdrawiam serdecznie
Łukasz z Support Billon

Jak łatwo zauważyć, odpowiedź nie zawierała rzeczowej odpowiedzi na żadne z zadanych pytań. Postanowiłem w związku z tym pominąć support i zwrócić bezpośrednio do przedstawicieli spółki, by przedstawić listę bardziej precyzyjnych pytań. Zaznaczyłem, że odpowiedzi będę chciał zacytować w przygotowywanej publikacji. Informację o gotowości do udzielenia odpowiedzi otrzymałem 10 listopada i po weekendzie, 13 listopada, wysłałem obszerną wiadomość z kilkunastoma pytaniami (ich treść poniżej).

Po kilku kolejnych grzecznościowych mailach, 22 listopada (środa) otrzymałem informację, że powinienem otrzymać odpowiedzi do końca tygodnia. 27 listopada (poniedziałek) dowiedziałem się, że “odpowiedzi są przygotowane, natomiast ich treść jeszcze czeka na akceptację”. Po kilku kolejnych wysłanych przypomnieniach zasygnalizowałem 1 grudnia (piątek), że przygotowuję publikację nie czekając już na odpowiedzi. Tego samego dnia obiecano mi odpowiedzi “do końca dzisiejszego dnia”, wieczorem “szacowany czas na dostarczenie odpowiedzi to poniedziałek połowa dnia”, ostatecznie odpowiedzi przyszły we wtorek 5 grudnia. Ponad trzy tygodnie to czas zaskakująco długi. Czy jestem pierwszym użytkownikiem, który przyjrzał się Billonowi dokładniej i zadał pytania, które do tej pory nie padły?

Fragment witryny billon.live

Transakcja zrealizowana w serwisie PayPal

Pytania i odpowiedzi

Oto pełna odpowiedź otrzymana od Billona. Konwencja formatowania jest następująca:

Pogrubiony tekst to moje pytania z 13 listopada 2017.
Zwykły tekst to odpowiedzi z 5 grudnia 2017.
Kursywą piszę komentarz do odpowiedzi.

______________

Dzień dobry,

Poniżej znajdują się odpowiedzi na pana pytania. Bardzo przepraszam za opóźnienie.

Chciałbym ponadto zwrócić uwagę na dwie rzeczy:

  1. Wdrożenie z Plus Bankiem, którego dotyczy duża część pytań, jest wdrożeniem pilotażowym, którego zadanie stanowi weryfikacja technologii oraz weryfikacja business planów i przypadków użycia wykorzystywanych przez Billon. Obecnie pracujemy z Plus Bankiem nad docelowym produkcyjnym wdrożeniem systemu.
  2. Jesteśmy gotowi udostępnić panu (oczywiście po podpisaniu odpowiedniego NDA) środowisko testowe naszego systemu w wersji pre-production, łącznie z modelem wsparcia technicznego i merytorycznego oraz wersją pre-production aplikacji. Pozwoli to panu na przeprowadzenie dalszych testów oraz pokazanie funkcjonowania naszego systemu nie tylko z poziomu aplikacji. Proszę o informację, czy jest pan zainteresowany taką możliwością.

Dziękuję i pozdrawiam,
Maciej Józefowicz

Komentarz – na żadnej polskojęzycznej stronie Billona nie znalazłem ani słowa o tym, że bieżąca wersja Billona stanowi wdrożenie pilotażowe. Wręcz przeciwnie – zapewnienia o szybkości, wygodzie, bezpieczeństwie i rewolucyjnie niskich kosztach sugerują, że rozwiązanie jest stabilne, dojrzałe i przeznaczone do masowego wdrożenia.

Niniejsza publikacja to próba wyjaśnienia sobie i czytelnikom, czym Billon wyróżnia się spośród wielu innych pośredników finansowych. Przyglądam się usłudze dostępnej publicznie i o niej piszę, umowa o poufności mogłaby to istotnie utrudnić.

1. Czy dostępny jest whitepaper opisujący protokół i model działania blockchaina zaimplementowanego w usłudze Billon? Pytanie jest szczególnie uprawnione wobec określenia „blockchain 2.0” używanego przez inwestorów spółki i dział obsługi klienta – ciekaw jestem, jakie nowości uzasadniają takie nazewnictwo.

Technologia Billon jest prywatnym blockchainem następnej generacji. Stosujemy też nazwę technologii rozproszonego rejestru (distributed ledger technology – DLT), jako precyzyjniej opisującą zasadę jej działania. Z naszej technologii korzystają banki, klienci korporacyjni i instytucje finansowe, w związku z czym nie ma ona charakteru open source (więcej informacji znajduje się w odpowiedzi na następne pytanie).

W naszym systemie nie używamy kryptowalut, ani nie stosujemy miningu – przechowywane środki są regulowanymi walutami, spełniającymi ustawowe wymogi pieniądza elektronicznego. Niektóre węzły mają natomiast, jako węzły “mennicze” (“issuing nodes” albo “minting nodes”), możliwość zamiany pieniądza istniejącego w innej formie (gotówka, zapis na rachunku bankowym) w pieniądz zapisany na blockchainie. Te uprzywilejowane węzły są funkcjonalnym ekwiwalentem miningu, zużywającym jednak znacznie mniejszą ilość energii. Przekazujemy licencję na korzystanie z nich wyłącznie bankom – wydawcom pieniądza elektronicznego.

Komentarz – głównym celem miningu jest realizacja transakcji poprzez łączenie ich w bloki dodawane do blockchaina. Odpowiedź błędnie utożsamia mining z kreacją wartości. Tym niemniej dostajemy odpowiedź – blockchain 2.0 to taki blockchain w którym przetwarza się pieniądz elektroniczny (w ustawowym rozumieniu tego pojęcia).

2. We wcześniejszej korespondencji z supportem napisałem, że nie dostrzegam w Billonie takich cech blockchaina, jak otwartość (dostępność źródeł aplikacji implementującej protokół blockchain Billona), przejrzystość (swobodny wgląd w bloki i rejestr transakcji), rozproszenie (brak jest informacji o liczbie i lokalizacji węzłów generujących bloki transakcji Billona) ani integralność/niezaprzeczalność (wobec braku przejrzystości i rozproszenia nie sposób ocenić, jakiego nakładu pracy wymagałoby sfałszowanie zestawu N ostatnich bloków). Support potwierdził, że kod jest zamknięty, co jakoby miałoby zmniejszać ryzyka ataku. Nie dostałem jednak odpowiedzi na pytanie, czy jako użytkownik Billona mogę dostrzec rzeczywiste użycie blockchaina oraz wynikające z tego korzyści? Innymi słowy – jak mogę przekonać się, że Państwa rozwiązanie jest bardziej odporne na ataki od systemów scentralizowanych?

Zamknięcie source code wynika z naszej polityki biznesowej. Nasze przychody są oparte o licencjonowanie technologii do banków i klientów biznesowych – w tym segmencie rynku stanowi to standardową praktykę. Co więcej, biorąc pod uwagę fakt, iż w Europie (w przeciwieństwie do USA) oprogramowanie nie jest objęte ochroną patentową, jest to w zasadzie jedyna strategia zarabiania pieniędzy możliwa dla spółki technologicznej z naszej części świata.
Dla zapewnienia bezpieczeństwa Billon wykorzystuje najbardziej zaawansowane metody kryptograficzne. Każda strona podpisuje transakcję własnym prywatnym kluczem i weryfikuje ją kluczem publicznym drugiej strony. Podpisy są oparte na kryptografii krzywych eliptycznych i forward secure. Wszystkie dane dotyczące użytkowników i pieniędzy są przechowywane w rozproszony sposób z użyciem tablic mieszających. Nawet jeśli w mało prawdopodobnym wypadku te zabezpieczenia zostaną przełamane, sprawca ataku uzyska dostęp tylko do fragmentu danych lub w najgorszym razie do konta pojedynczego użytkownika.
W scentralizowanych systemach korzyść z uzyskania dostępu do głównego serwera jest wystarczająco duża, żeby usprawiedliwić kosztowne ataki. W zdecentralizowanym systemie Billon koszt przeprowadzenia tych ataków przestaje być opłacalny.
Billon w swojej technologii wykorzystuje następujące standardy bezpieczeństwa:
Funkcja skrótu: SHA-2
Szyfr symetryczny: AES-256
Szyfry asymetryczne: RSA, ECDH, kryptografia forward secure na krzywych eliptycznych
Sprzętowe moduły bezpieczeństwa
Komunikacja między komponentami: połączenia VPN host-to-host, IPsec
Komponenty WEB/API: HMAC + SHA2, SSL/TSL

Komentarz – odpowiedź starannie omija główny problem: jakie cechy sieci Billon sprawiają, że jest ona odporna na próby wstecznej modyfikacji rozproszonego rejestru. Nie mam na myśli podrobienia podpisu pod transakcją, na czym skupia się odpowiedź, lecz “atak 51%” oznaczający możliwość dodawania i usuwania transakcji z bloków już objętych konsensusem.

Naszą propozycją odpowiedzi na pytanie jest również udostępnienie panu środowiska testowego naszego systemu w wersji pre-production, która umożliwi przeprowadzenie konkretnych testów systemu Billon, wraz z modelem ustalonego wsparcia technicznego, w tym wsparcia merytorycznego, oraz dostępem do wersji pre-production samej aplikacji. Pozwoli to pokazać nam, jak naprawdę funkcjonuje nasz system nie tylko z poziomu aplikacji. Nasze pytanie: w jakim zakresie pomoże to panu w opracowaniu rzetelnego tekstu na temat naszego rozwiązania?

Komentarz – podczas swojego testu skupiłem się na jakości aplikacji konsumenckiej i tym, czy zapewnienia o jej cechach wynikających z użycia blockchaina mają pokrycie w rzeczywistości.

3. We wcześniejszej korespondencji z supportem uzyskałem informację: „Rozwiązanie i kod aplikacji Billon otrzymał odpowiedni certyfikat ze strony zajmującej się audytem bezpieczeństwa, oraz placówek naukowych specjalizujących się w dziedzinie kryptografii”. Czy mogę otrzymać kopie certyfikatu i raportu z audytu? Kto i kiedy go przeprowadził?

Każdy z naszych klientów finansowych dokonuje audytu naszego rozwiązania, korzystając zarówno z własnych zasobów, jak i z pracy instytucji zewnętrznych. Co więcej, zgodnie z Rekomendacją H wydaną przez KNF, dotyczącą systemów kontroli wewnętrznej w bankach, nasz system podlega również cyklicznym po-wdrożeniowym badaniom. Audyt prowadzony jest na potrzeby wewnętrzne klientów, którzy zastrzegają sobie prawo do udostępniania jego wyników. Wgląd w tego typu dokumenty jest oczywiście możliwy jako część zamknięta po podpisaniu przez pana lub firmę, na zlecenie której realizuje pan to zadanie, odpowiedniego NDA. Wtedy nie widzimy problemu w tym, aby taki dokument lub dokumenty przekazać i się ujawnić w tym zakresie.

Komentarz – aplikacja mobilna, przypomnę, szyfruje dane kluczami symetrycznymi osadzonymi na sztywno w kodzie, inne wrażliwe dane zapisuje w systemie plików w postaci jawnej, wyświetla w logach URL-e do systemu ticketowego oraz korzysta z niezabezpieczonych połączeń HTTP.

Jeśli zlecone audyty wykazały te problemy, nie dziwi mnie zaobserwowana niechęć do ich udostępniania.

Jeśli owe audyty nie wykazały wspomnianych problemów, zapraszam do złożenia zapytania ofertowego, pierwszą część tekstu możemy uznać za próbkę mojego badania typu black-box.

4. Czy mogę samodzielnie zweryfikować podpisy cyfrowe złożone na plikach z elektronicznym pieniądzem wyemitowanym przez Plus Bank? Sądzę, że mogę w tym celu potrzebować specyfikacji struktury plików zapisywanych przez aplikację Billon.

Pracujemy nad rozszerzeniem tej funkcjonalności i szerszym jej udostępnieniem tak, by możliwa była weryfikacja nie tylko pieniędzy, ale np. dokumentów. Więcej informacji na ten temat będziemy mogli udostępnić pod koniec 1 kwartału 2018 r., kiedy planujemy wypuszczenie nowej generacji naszego oprogramowania. Wstępnym zarysem tego, w jaki sposób jest to realizowane, byłby dostęp do naszego działającego środowiska zamkniętego, o którym wspominamy w pkt. 2.

Komentarz – krótka odpowiedź: nie da się. Tej cechy Billona nie da się sprawdzić, trzeba w nią uwierzyć.

5. Jakie założenia przyjmuje model bezpieczeństwa sieci Billon? Jakie dane o mnie pozna odbiorca płatności, któremu przekażę środki pieniężne? Jakie moje dane mogą trafić na urządzenia innych, przypadkowych członków sieci? Pytam o to, gdyż w plikach utworzonych przez aplikację odnalazłem cudzy adres e-mail i potwierdziłem, że jego właściciel korzystał z Billona. Proszę zwrócić na niniejszy punkt szczególną uwagę, prywatność użytkowników musi być wartością szczególnie chronioną.

W aplikacji Billon stosujemy architekturę client-side encryption. Dane osobowe zapisane w aplikacji Billon są szyfrowane kluczami prywatnymi urządzenia, na którym zainstalowana jest aplikacja. Ani my, ani bank nie ma technicznej możliwości ich “podejrzenia”.
W naszym DLT oprócz rejestrowania transakcji możliwe jest również zapisywanie danych, np. do dostawy lub faktury. Dane te mogą być przesłane drugiemu użytkownikowi równocześnie z pieniędzmi, jeśli podejmie pan taką decyzję. Ich podanie nie jest wymagane do realizacji płatności (choć np. sprzedawca może nie wysłać towaru, jeśli nie otrzyma danych do wysyłki).
Historia transakcji i danych otrzymanych razem z nimi jest przechowywana na pana urządzeniu. Jeżeli przeprowadził pan transakcje z inną osobą lub dodał ją do osobistych kontaktów, historia zawiera dane, które wcześniej ta osoba panu przekazała. Dane te są przechowywane w celu umożliwienia np. późniejszych reklamacji. Są to jedynie dane, które posiada pan oraz druga strona. Nie trafiają one na obce urządzenia, niezwiązane z tą konkretną transakcją. Prosimy o uszczegółowienie, czy właśnie o takim przypadku mówimy, czy też jest to niezwiązana z pana transakcjami osoba.

Komentarz – mile widziany byłby oficjalny dokument opisujący: jakie dane nigdy nie opuszczają urządzenia; jakie dane i w jaki sposób są replikowane między urządzeniami w ramach jednego konta; jakie dane są wysyłane przez blockchain oraz gdzie i pod jakimi warunkami trafią; jakie dane mogą zostać zreplikowane na telefonach innych członków sieci i które z nich nie są szyfrowane. Czemu o tym wspominam?

W swoim telefonie, wśród danych aplikacji Billon umieszczonych w katalogu CCACHE, znalazłem plik z polem UserRecoveryEmail i adresem człowieka, którego nie znam, nigdy nie spotkałem i z którym nie przeprowadzałem żadnych transakcji (w bieżącej wersji aplikacji to zresztą niemożliwe, brak jest listy osobistych kontaktów oraz transakcji między użytkownikami). Skontaktowałem się z nim najpierw e-mailem, potem rozmawialiśmy telefonicznie – stąd wiem, że kilka tygodni wcześniej wypróbował Billona. Jego dane trafiły na obce (moje) urządzenie, co nie bardzo go ucieszyło. Czy zaobserwowana sytuacja jest niespodzianką także dla twórców systemu Billon? W trakcie 3 tygodni oczekiwania na odpowiedź nikt nie skontaktował się ze mną w tej sprawie.

Przed chwilą zainstalowałem w maszynie wirtualnej z Windows aplikację kliencką systemu Billon i wywołałem opcję resetu hasła, podając nazwę użytkownika i e-mail. Operacja się powiodła, aplikacja po zalogowaniu nowym hasłem pokazała mi kompletną historię transakcji, które wcześniej przeprowadzałem z aplikacji mobilnej. Telefon z mobilną aplikacją Billon był przez cały ten czas wyłączony. W moim rozumieniu operator sieci Billon jest więc w stanie podejrzeć historię transakcji dowolnego użytkownika (zamiast wysyłać kody odzyskiwania hasła e-mailem, może użyć ich sam). Czy dane transakcyjne stanowią dane osobowe? Pewnie zależy to od interpretacji, natomiast adresy dostawy i numery rachunków bankowych są zapisywane w systemie plików otwartym tekstem, w kilku kopiach (tak pod Windows jak i Androidem), co też nie pasuje do terminu “client-side encryption”.

Pytania o aplikację dla systemu Android

6. Dlaczego aplikacja Billon dla systemu Android o nazwie pakietu info.billon.billon została porzucona na rzecz aplikacji o nazwie pakietu info.billon.billon2? Odnotowałem, że obie podpisane są tym samym certyfikatem. Czy był to hard-fork blockchaina? Proszę o odpowiedź ze szczegółami technicznymi.

Tak, w tym roku wprowadziliśmy nowa generację naszej technologii. Stara wersja nie będzie dłużej rozwijana. Zapewniliśmy narzędzie do migracji wszystkich pieniędzy ze starej wersji naszego rozwiązania na obecną. Jak pan sam zauważył, jest to hard-fork blockchain zrealizowany za pomocą odpowiednego narzędzia migracyjnego, gwarantującego sprawną “przesiadkę” klientów i zachowanie ich środków w nowej generacji.

Komentarz – wydaje mi się, że spółka Billon nie dotrzymała punktu 3.5 umowy licencyjnej, gdyż informacja o kolejnej wersji oprogramowania nie pojawiła się na stronie www.billon.info (ani nigdzie indziej)

7. Czy blockchain stojący za Billonem daje gwarancje nienaruszalności transakcji? Jeśli tak, w jaki sposób będą Państwo w stanie pomóc osobom, które podczas migracji środków z poprzedniej wersji podadzą błędną nazwę użytkownika docelowego? Czy środki takie są bezpowrotnie utracone?

Czas na migrację środków z poprzedniej wersji jest – póki co – nieograniczony. Jeśli użytkownik podczas migracji poda błędną nazwę nowego konta, transakcja nie dojdzie do skutku i pieniądze pozostaną na starym koncie. Jedyne ryzyko wiąże się z hipotetyczną sytuacją, gdy użytkownik podczas migracji poda nazwę konta, z którego korzysta inna osoba, która w tym momencie jest zalogowana w aplikacji. Wtedy pieniądze zostaną przekazane na konto tej osoby. Do tej pory nie wystąpiła jeszcze taka sytuacja. Jeśli taki przypadek się pojawi, zostanie rozpatrzony indywidualnie przez nasz dział obsługi klienta. Jako firma zdajemy sobie sprawę z tego typu ryzyka i staramy się wprowadzić dodatkowe procesy technologiczne, by tego typu sytuacji zapobiec, jest to natomiast dość trudne do osiągnięcia.

Komentarz – wiele mówiący brak odpowiedzi na pytanie o nienaruszalność blockchaina.

8. Jak należy rozumieć punkt 16.1 umowy licencyjnej stanowiący, że Oprogramowanie objęte jest licencją na ograniczony okres 180 dni?

Czas obowiązywania licencji software’owej jest ograniczony do 6 miesięcy w ramach wsparcia dla szybkiej ewolucji naszej technologii. Takie rozwiązanie doradziła nam kancelaria prawna, z którą współpracujemy. Chcemy, żeby użytkownicy dokonywali regularnych update’ów do nowej wersji oprogramowania i nie korzystali długo ze starych wersji. Zapewnia to też continuous frame dla rozwoju aplikacji, a tym samym wymusza na użytkownikach, by utrzymywali ciągłość rozwoju.

Komentarz – punkt 16.1 umowy licencyjnej stanowi, że aplikacja objęta jest licencją na ograniczony okres 180 dni. Punkt 16.2 stanowi, że “Aktualizacje” podlegają podlegają postanowieniom i warunkom tej samej umowy, przy czym słowniczek definiuje “Aktualizacje” jako byty dostarczane na podstawie odrębnej umowy. Albo sprzeczność, albo czegoś nie rozumiem. Również rozdział 13 umowy (“Rozwiązanie licencji”) w żaden sposób nie stanowi, że instalacja aktualizacji resetuje licznik czasu licencjonowania lub wygasza starą i ustanawia nową umowę licencyjną. Spójrzmy prawdzie w oczy – Google Play domyślnie aktualizuje aplikacje bez pytania i znaczna większość użytkowników nie będzie w ogóle w stanie powiedzieć, przez ile wersji przemigrowała i w jakim czasie.

Nie rozumiem terminu “continuous frame dla rozwoju aplikacji”.

9. Jak należy rozumieć art 3 pkt 9 „Regulamin świadczenia usług pośrednictwa wykupu pieniądza elektronicznego” wymieniający „elektroniczny odpowiednik znaków pieniężnych, posiadających ekwiwalent nominałów o wartościach: 0,1 gr., 0,2 gr., 0,5 gr.”? Ustawa stanowi, że złoty dzieli się na 100 groszy, więc nie istnieją nominały reprezentujące ułamki groszy. Pytanie dodatkowe – czy ten dokument nie składa się przypadkiem z dwóch różnych wersji tego samego regulaminu sklejonych w jednego PDF-a?

Plik PDF, do którego prowadzi link z aplikacji, zawiera dwa oddzielne regulaminy: “Regulamin świadczenia usług pośrednictwa wykupu pieniądza elektronicznego Billon” i „Regulamin świadczenia usługi emisji oraz wykupu pieniądza elektronicznego Billon”. Autorem regulaminów jest wydawca pieniądza elektronicznego – Plus Bank. Wdrożenie z Plus Bankiem jest wdrożeniem pilotażowym, którego zadanie stanowi weryfikacja technologii oraz weryfikacja business planów i przypadków użycia wykorzystywanych przez Billon. Obecnie pracujemy z Plus Bankiem nad docelowym produkcyjnym wdrożeniem systemu, w trakcie którego nastąpi aktualizacja regulaminów.

Technologicznie jesteśmy w stanie wspierać mikrotransakcje w wysokości dziesiętnych części grosza, ponieważ nie ponosimy kosztów stałych oraz kosztów pośredników w naszym systemie. W chwili obecnej użytkownik nie ma możliwości obrotu ułamkami groszy. Ta funkcjonalność jest wyłączona w aplikacji głównie dlatego, że na tę chwilę nie znaleźliśmy zastosowania rynkowego dla transakcji poniżej jednego grosza. Widzimy jednak potencjalne wykorzystanie transakcji takiej wysokości, np. w rozwiązaniach IoT.

Komentarz – odpowiedź nie na temat. Nadal nie wiem, czym jest „elektroniczny odpowiednik znaków pieniężnych, posiadających ekwiwalent nominałów o wartościach: 0,1 gr., 0,2 gr., 0,5 gr.”

10. Jak należy rozumieć załącznik nr 4 dokumentu „Regulamin świadczenia usługi pośrednictwa wykupu pieniądza elektronicznego” (strona 15 opisana jako 8/8), gdzie wspomina się o terminie ważności Jednostek Billon wynoszącym 12 miesięcy? Co dzieje się, gdy termin ten upłynie? Ile będzie można zapłacić z konta Billon po 500 dniach od jego otwarcia jeśli przyjmiemy, że każdego dnia było zasilane jedną złotówką? Co stanie się z takim kontem po kolejnych 5 latach (w załączniku mowa o 48 dodatkowych miesiącach na wykup Jednostek)?

Są to uwarunkowania prawne nałożone przez Dyrektywę Parlamentu Europejskiego i Rady 2009/110/WE o działalności instytucji pieniądza elektronicznego oraz nadzorze ostrożnościowym nad ich działalnością oraz Ustawę o usługach płatniczych (tekst jednolity Dz.U. 2017 poz. 2003). Wymogi te wiążą wydawcę pieniądza elektronicznego, którym jest Plus Bank. Jeśli użytkownik nie korzysta z pieniędzy elektronicznych dłużej niż 12 miesięcy, możliwość dokonywania nimi transakcji jest automatycznie blokowana. Użytkownik musi wtedy zgłosić się do banku w celu odblokowania środków. Jest to proces prosty i wspierany automatycznie przez aplikację.
Pieniądze elektroniczne są ważne przez 5 lat zgodnie z art. 59o Ustawy o usługach płatniczych. Mówi on, że: “Roszczenie o wykup pieniądza elektronicznego przedawnia się z upływem 5 lat od dnia wygaśnięcia umowy o wydanie pieniądza elektronicznego.”

11. Czy w komunikatach wysyłanych przez aplikację w postaci nieszyfrowanej na adres ts.billon.io znajdują się dane, których ujawnienie może mieć wpływ na poufność danych użytkownika? Chodzi mi np. o pola hash_, uiId_, machine_hash_, return_target_, user_hash_ oraz strukturę lifeline_

Billon.io jest serwisem służącym do doładowywania naszych aplikacji za pomocą istniejących na rynku metod płatności, np. serwisów agentów rozliczeniowych. Z założenia taki system centralnie przetwarza dane (charakterystyka systemu legacy, a nie blockchain). Wyżej wymienione dane nie są danymi chronionymi. Służą one do przyspieszenia transakcji w ramach systemu Billon.

Komentarz – czytelnikom zwracam uwagę, że aplikacja finansowa wysyła w świat informacje kanałem nieszyfrowanym a operator usługi nie widzi w tym nic niestosownego.

12. Jakie jest techniczne uzasadnienie procesu odzyskiwania hasła, w którym użytkownik otrzymuje dwa e-maile z odrębnymi kodami i wkleja je do jednego formularza w aplikacji?

Proces odzyskiwania hasła jest krytycznym elementem bezpieczeństwa, stąd wymagane w nim są dwa niezależne sekrety, udostępniane w odrębny sposób. Dopiero ich kombinacja umożliwia odszyfrowanie hasła. Użytkownik może zdecydować, aby jeden sekret przychodził np. SMSem, a drugi mailem, itp.
Double factor authentication jest dodatkowym atutem i zaletą, którą tak naprawdę wymuszamy na końcowym użytkowniku. Nie mamy na celu utrudnienia dostępu do danych, a jedynie uzyskanie pewności, że nasz system “rozmawia” z właściwą osobą. Scenariusz, w którym obca osoba uzyskuje dostęp do adresu e-mail użytkownika, jest bardzo prawdopodobny. Tym samym użytkownik jest narażony na utratę dostępu do aplikacji, a nawet do znajdujących się tam środków. Przy wymuszeniu two factor authentication prawdopodobieństwo, że “szkodnik” ma dostęp zarówno do emaila jak i np. telefonu komórkowego drugiej strony, jest znacznie niższe.

W rozwiązaniu produkcyjnym dwie części sekretu będą wysyłane do dwóch różnych źródeł. Możemy wysyłać część sekretu do banku-wydawcy (instytucji pieniądza elektronicznego), który przekaże go w momencie kontaktu z customer care.

13. Czy planują Państwo przywrócenie funkcji przekazywania pieniędzy elektronicznych między użytkownikami aplikacji? Jeśli tak, czy planowane jest także przywrócenie transakcji offline przez Bluetooth, Wifi Direct i NFC? Czy powróci opcja potwierdzenia przelewu stuknięciem urządzeń nadawcy i odbiorcy? Czy powróci opcja zrzutki?

Planujemy przywrócenie płatności P2P, gdy tylko zagwarantujemy wystarczająco wysoki poziom stabilności takich transakcji. Ponieważ nasza firma pracuje w metodologii agile, często testujemy nowe pomysły i sprawdzamy zainteresowanie klientów tymi rozwiązaniami. Zawsze też zbieramy krytyczny feedback, aby ulepszać te pomysły i wrócić do nich w przyszłości. Niemniej w ciągu najbliższych miesięcy jesteśmy skoncentrowani na rozwoju innych funkcjonalności niż płatności offline – te nie znajdują obecnie wykorzystania w żadnym z use-case’ów prowadzonych przez firmę. W momencie, kiedy taka potrzeba się pojawi, możemy umówić się, że poinformujemy pana o wprowadzeniu takiego rozwiązania przed jego uruchomieniem.
W przyszłym roku planujemy rozpoczęcie programu “early alpha adopters” gdzie zamknięta grupa zewnętrznych użytkowników będzie miała dostęp do eksperymentalnych funkcjonalności. Jeżeli jest pan zainteresowany wzięciem udziału w testach, zapraszamy pod koniec I kwartału 2018 r. po uprzednich biznesowych uzgodnieniach.

Pytanie organizacyjne

14. Dlaczego usługę realizowaną na stronie billon.me świadczy spółka Billon Solutions sp. z o.o. a nie Billon sp. z o.o.? Prowadzi to do dezorientacji – domena ta została zarejestrowana na zunit sp z o.o., za to jako adres poczty elektronicznej podano e-mail w domenie billongroup.com, będącej własnością Billon Sp z o.o. Pytanie dodatkowe – dlaczego regulamin świadczenia usługi billon.me, gdzie usługodawcą jest Billon Solutions sp. z o.o., wspomina w nagłówku prawa autorskie Billon Group Limited Ltd?

Jest to powód czysto prawno-regulacyjny. Billon Solutions Sp. z o.o. jest podmiotem regulowanym, który ma licencję BUP (biura usług płatniczych) oraz jest zgłoszonym podmiotem do obsługi danych osobowych. Billon Solutions sp. z o.o. jest spółką w 100% zależną od Billon Sp. z o.o. Zadaniem Billon Sp. z o.o. jest rozwój technologii, a nie świadczenie samych usług.

Pełnia praw autorskich przysługuje spółce Billon Group Ltd. (spółce matce). Spółka ta została założona w Wielkiej Brytanii, przejęła prawa autorskie i stała się właścicielem Billon Sp. z o.o. w celu ekspansji międzynarodowej oraz pozyskania kapitału wymaganego przez tego typu przedsięwzięcia. Transformacja ta w pełni spełniła pierwotne założenia biznesowe. Billon Group Ltd. użycza znaku towarowego spółce Billon Solutions sp. z o.o.

Zunit sp. z o.o. to po prostu poprzednia nazwa (czyli firma) spółki Billon sp. z o.o., która została zmieniona w trakcie rebrandingu dwa lata temu.

_____________________

Tu kończy się e-mail z odpowiedziami

Podsumowanie

Gdy rozpoczynałem pracę nad niniejszym materiałem, jako cel obrałem zbadanie bezpieczeństwa i jakości implementacji aplikacji mobilnej Billon oraz ocena, jak rozwiązanie oparte na blockchainie ma się do istniejących od lat pośredników finansowych bazujących na systemach scentralizowanych. Twórcy Billona reklamują swoją technologię jako będącą “wiele lat do przodu względem blockchaina, na którym bazuje bitcoin” (Forbes) i “nie do złamania” (BusinessInsider).

Gdy dopytałem o szczegóły, przedstawiciele Billona doprecyzowali, że testowany przeze mnie produkt jest “wdrożeniem pilotażowym, którego zadanie stanowi weryfikacja technologii oraz weryfikacja business planów i przypadków użycia”. Końcowy użytkownik, który pominie lekturę regulaminu, nie znajdzie nawet cienia takiej deklaracji w opisie aplikacji w sklepie Play ani w witrynie internetowej produktu. W żadnej jednak sytuacji nawet jawny publiczny pilotaż nie może usprawiedliwiać tak poważnych błędów w praktykach dotyczących bezpieczeństwa.

Twórcy utrzymują, że użycie blockchaina czyni ich rozwiązanie tak odpornym, że koszty jego naruszenia byłyby gigantyczne. Jest to zapewne prawda, gdy mówimy o sfałszowaniu cyfrowych podpisów składanych pod transakcjami albo plikami z elektronicznym pieniądzem. Skoro jednak w Billonie istnieje funkcja resetu hasła a po resecie hasła mamy dostęp do pieniędzy zgromadzonych w sejfie, spenetrowanie infrastruktury backendowej Billona może się zakończyć opróżnieniem sejfów wszystkich użytkowników.

Twórcy porównują Billona do znanych kryptowalut i wywodzą z porównania wyższość tego pierwszego. Oto moje spostrzeżenia:

  • w przypadku Bitcoina, Ethereum czy innych kryptowalut, blockchain jest dostępny publicznie a transakcje jawne. Otwartość implementacji skutkuje istnieniem tysięcy aktywnych węzłów sieci a konsensus oparty na Proof of Work zapobiega problemowi double spend i arbitralnemu modyfikowaniu historii zapisanej w blockchainie (atak 51%). Jedyną możliwością kontroli środków jest użycie klucza prywatnego.
  • w przypadku Billona o blockchainie nie wiemy praktycznie niczego. W szczególności nie wiemy, ile węzłów przetwarza transakcje, kto je kontroluje, jak wygląda algorytm synchronizacji stanu sieci ani jakie informacje i w jakiej postaci trafiają do bloków. Jak przeczytaliśmy powyżej, operator sieci Billon ma pełną swobodę w tworzeniu hard forków i modyfikacji protokołu, co sugeruje, że kontrola nad węzłami sieci jest scentralizowana. Nie mówimy tu więc nawet o ataku 51%, lecz o własności 100%. Billon pozwala na reset hasła dostępowego i odzyskanie (przejęcie) dostępu do sejfu.

Słowem – sam fakt użycia blockchaina nie czyni rozwiązania odpornym na nadużycia. Niewielki, zarządzany centralnie system z blockchainem będzie tak samo podatny, jak zarządzany centralnie system bez blockchaina.

Po stronie zalet Billona można zapisać brak nieprzytomnego zużycia energii (kopanie bitcoinów pochłania już więcej energii niż może wyprodukować elektrownia Bełchatów), deklarowana możliwość osadzania w blockchainie metadanych (możliwe także w Ethereum, jednak przy zaporowych kosztach), czas przetwarzania (sekundy zamiast minut w Ethereum czy kwadransów w Bitcoinie) oraz przepustowość (cokolwiek będzie lepsze, niż kilka bitcoinowych transakcji na sekundę). Oczywiście część tych zalet jest możliwa dzięki skali działania bez porównania mniejszej od Bitcoina czy Ethereum, ale mówimy o korzyściach odczuwalnych przez zwykłego użytkownika lub klienta komercyjnego.

Moje początkowe założenie okazało się chybione, nie ma sensu oceniać Billona jako usługi kierowanej do użytkownika indywidualnego – sieć akceptacji to kilkoro blogerów i kilka sklepów internetowych. Jest to ewidentnie produkt pokazowy, demonstrujący, że spółka jest w stanie wyprodukować rozwiązania spełniające wymogi wystawców pieniądza elektronicznego oraz instytucji nadzorujących rynek finansowy w Polsce i Wielkiej Brytanii.

Jak wspominałem na początku tekstu, wszystkim polskim przedsiębiorcom życzę sukcesów w kraju i za granicą, Billon nie jest tu wyjątkiem. Być może usługi i produkty tej spółki zdobędą część tak młodego rynku, jakim są wdrożenia blockchaina w branży finansowej. Twórcy muszą jednak pamiętać, że przedstawianie swojej technologii jako ósmego cudu świata zwabi w końcu kogoś, kto powie “sprawdzam”. Wówczas może się okazać, że w szczegółach siedzi niejeden diabeł.

Kontakt z autorem

Jeśli artykuł ten czytają programiści Zunit/Billona, chętnie dowiem się, jakie były przyczyny tak licznych usterek w konsumenckim oprogramowaniu Billon. Może być anonimowo, do mojej wiadomości. Chętnie też dowiem się, które z moich spekulacji były trafione a które chybione. Jeśli gdzieś się pomyliłem, proszę o wskazanie błędów – w takiej sytuacji artykuł zostanie zaktualizowany a poniżej opiszę, które fragmenty zostały zmienione.

Oczywiście mile widziane będą także inne opinie.

Mój e-mail: tomasz.zielinski@gmail.com

Alternatywnie – możesz zostawić komentarz na Zaufanej Trzeciej Stronie.

Zmiany w niniejszym tekście

–brak zmian–

Newsletter

Jeśli chcesz być informowany o nowych tekstach na Bardzo Ciekawym Blogu, zasubskrybuj newsletter. Nikomu nie udostępnię Twojego adresu, dostaniesz średnio jednego maila na kilka miesięcy.

Starzy ludzie znajdą feed RSS tutaj.

Zleć testy swojej aplikacji!

Masz własną aplikację mobilną?

Martwisz się, że może zawierać kompromitujące błędy? Skontaktuj się ze mną aby zlecić prywatny audyt bezpieczeństwa. Kontakt: tomasz.zielinski@gmail.com