Audyt inteligentnych umów BNK: bezpieczeństwo ważniejsze od szybkości

Od samego początku projektu Bankera naszym głównym zmartwieniem było bezpieczeństwo. To odzwierciedliło się w tym, że postanowiliśmy korzystać ze standardu ERC223 tworząc kod źródłowy Bankersa (BNK), który został w pełni opracowany przez nasz zespół. Inne firmy decydują się na szybszą metę i używają kodów już istniejących tokenów, by opracować własne, ale my wiemy, że to może spowodować potencjalne luki w bezpieczeństwie, takie jak niedawno w kilku inteligentnych umowach ERC20 odkryty błąd “batch overflow”. Co więcej, nie tworzymy prostego tokena, lecz inteligentny kontrakt, który dystrybuuje cotygodniowe przychody netto z transakcji posiadaczom tokenów BNK, czego jeszcze nikt nie dokonał. W związku z tym, oprócz stworzenia wyjątkowego kodu źródłowego dla naszego tokena BNK, poddaliśmy go również procesowi audytu prywatnego i publicznego, w celu zapewnienia jego bezpieczeństwa.


Cztery poziomy audytu

Postanowiliśmy inteligentną umowę BNK poddać czterem poziomom audytu. Chociaż niektórzy mogą uznać to za zbytnie, lecz takie rozwiązania zapobiegają wystąpieniu poważnych problemów. Ponieważ używamy innego standardu i zamiast zrobić „kopiuj-wklej“, sami opracowaliśmy nasz kod, od samego początku, więc wcześniej wspomniany problem “batch overflow” nas nie dotyczy, ale chcemy uniknąć podobnej sytuacji. Ponieważ aktualizacja inteligentnej umowy Ethereum obecnie nie jest możliwa (tylko tworzenie nowej), zespół Bankera poddał kod BNK następującym audytom:

  • Pierwszy i drugi audyt wewnętrzny. Zespół IT firmy Bankera dokładnie przeanalizował kod i wprowadził sugerowane udoskonalenia.
  • Audyt przeprowadzony przez prywatną firmę. Badanie kodu zajęło dwa tygodnie i nie znaleziono żadnych większych luk prawnych.
  • Bug bounty na Solidified, wysoko cenionej platformie audytu inteligentnych kontraktów. W ciągu trzech tygodni eksperci dokonali przeglądu inteligentnej umowy BNK.
  • Audyt publiczny. Kontrybutorzy również przejrzeli kod, który był dostępny na naszej stronie GitHub. Ten etap trwał tydzień, a więcej informacji na ten temat można znaleźć na naszym  blogu o tokenie BNK.

Przegląd kodu na Solidified został wykonany zgodnie z następującą strukturą:

  • Błędy krytyczne – błędy, które umożliwiają kradzież funduszy użytkowników i które mogą się pojawić.
  • Błędy poważne – błędy, które mogą blokować fundusze użytkowników lub powodować pomyłki i niewłaściwą dystrybucję nagród; oraz te, które mogą się pojawić.
  • Drobne błędy – mniejsze błędy, takie jak unikanie opłat lub powodowanie innych niezamierzonych działań; oraz błędy o mniejszym prawdopodobieństwie wystąpienia.

44 ekspertów przejrzało umowę na Solidified i nie wykryło żadnych poważnych lub krytycznych błędów, które mogłyby zagrozić funduszom użytkowników. Ponieważ umowa BNK posiada standard ERC223, zaistniały drobne różnice w zakresie definicji “zgodności ze standardem tokena ERC20”. Recenzent, który to wskazał, otrzymał nagrodę za błąd.

Co dalej?

Obecnie wszystkie audyty są zakończone, a sugerowane ulepszenia już zostały wdrożone przez nasz zespół IT. Równocześnie z udoskonalaniem inteligentnego kontraktu, nasz zespół IT pracował również nad integracją inteligentnego kontraktu z infrastrukturą SpectroCoin, ponieważ pierwsze nie może działać bez drugiego. Już w ciągu dwóch tygodni uczestnicy będą mogli wypłacać i wpłacać swoje tokeny z/do kompatybilnych portfeli ERC20 i ERC223. Zapewnienie pełnego wsparcia dla ERC20 i ERC223 w już działającym systemie SpectroCoin, również nie jest prostym zadaniem ze względu na jego złożoność; nasi programiści muszą zadbać o to, aby użytkownicy mogli bez problemu wpłacać i wypłacać swoje tokeny ERC20/ERC223. Po zakończeniu tego etapu, Bankersy (BNK) będą dostępne także na platformie HitBTC. Oczekuje się, że integracja inteligentnych kontraktów przez zespół programistów HitBTC rozpocznie się w czerwcu.

Po udostępnieniu BNK na HitBTC, tokeny zostaną udostępnione również na SpectroCoin. Ponieważ SpectroCoin nie jest platformą transakcyjną, musi ustalić cenę BNK, wzorując się różnymi giełdami, ich cenami i płynnością. Dlatego wymiana BNK najpierw będzie dostępna na HitBTC, a tylko później na SpectroCoin. Po sfinalizowaniu kodu źródłowego ERC223, nasz zespół IT skupi się na obsłudze tokenów BNK jako mozaiki NEM.

Od opublikowania poprzedniego posta na blogu o tokenie BNK, spostrzegliśmy reakcje posiadaczy tokenów BNK odnośnie wyboru pomiędzy blokami Ethereum i NEM. Aby stworzyć możliwość dokonania najbardziej odpowiedniego wyboru dla naszych kontrybutorów, postanowiliśmy umożliwić zmianę tokenu z ERC223 na mozaikę NEM na SpectroCoin. Oznacza to, że jeśli przekazałeś swoje tokeny do portfela ERC20 lub ERC223, ale wszystkie lub część swoich tokenów chcesz zmienić na moazikę NEM, wszystko, co musisz zrobić, to wpłacić je ponownie na SpectroCoin, a następnie wypłacić tokeny do wybranego blockchaina. Możliwość wybierania blockchaina będzie dostępna tylko na SpectroCoin.

Dzielcie się dobrymi wieściami! Więcej wiadomości i aktualizacji będzie dostępnych w nadchodzących tygodniach, więc bądźcie z nami na bieżąco!