Как да внедрите справедлив и сигурен ICO

Технически поглед към вътрешното функциониране на нашата собствена кампания за IGNIS краудфандинг, която можете да копирате за собствената си ICO базирана на NXT част от цената на други решения

Разработването на интелигентни договори за Etkenum ERC20 токен е скъпо. Типичните разходи включват около $ 20K за разработването на интелигентните договори и още огромни $ 50K за преглед на сигурността. Първоначално звучи възмутително, но мисля, че това е обяснимо, след като всички маркери на Ethereum са разработени от нулата до спецификацията на екипа на ICO и с толкова много проблеми със сигурността при интелигентните договори, със сигурност проверяващите по сигурността са с голямо търсене и могат да таксуват като колкото им харесва.

В предишна статия обясних как NXT може да се използва като по-евтина и по-безопасна алтернатива за ICO платформата. Въпреки това не уточних точните подробности и наскоро получих толкова много въпроси, че реших, че това се нуждае от повече пояснения.

Ако приемем, че не сте запознати с NXT, най-добрият ви подход е просто да следвате структурата на нашето собствено IGNIS ICO към писмото, това ще ви осигури работещо и сигурно решение за финансиране на множеството за много по-достъпни разходи за НИРД.

Останалата част от статията е малко техническа. Трябва да сте малко запознати с NXT и да знаете как да стартирате възел и да разберете API-ите, няма как да се заобиколи това. Няма да обясня това в тази статия. Предлагам ви да започнете от нашите nxtwiki. Мога да ви уверя, че е толкова просто като всяка блокчейн платформа и вероятно много по-просто.

Контролируема валута

Основният градивен елемент на токена JLRDA, използван от ICO IGNIS, беше знак от тип Контролируема валута. Като начало бих искал да прочетете официалната документация на паричната система, да знам, че това нещо е дълго и многословно, но вие искате да съберете милиони и не искате да плащате на момчетата от ETH или да се хакнете, нали? Затова прочетете проклетото нещо, моля.

След като прочетете документацията, мога да ви кажа, че контролируема валута може да бъде прехвърлена само към и от издаващата сметка, и ако също може да бъде сменяема, само издателският акаунт може да публикува оферти. Тези свойства го правят отличен инструмент за краудфандинг. Ограничението за трансфери гарантира, че купувачите не могат да преместват жетоните наоколо, а ограничението за издаване на оферти за продажба гарантира, че имате контрол върху нивата на цените, така че никой друг не може да осигури по-добра цена, докато следвате своя график на ICO.

За да видите кои валутни свойства, които сме използвали за IGNIS ICO, вижте JLRDA валутата в NXT mainnet и винаги издавайте валутата си с 4 десетични позиции.

ICO страница

Валутите могат да се търгуват с помощта на съществуващия интерфейс за обмен на каси NXT. Този интерфейс обаче е твърде сложен за случайния купувач на ICO, затова създадохме специална страница за ICO, която поддържа само една функция за закупуване на валутата. Ще трябва да внедрите подобна страница и или да я добавите като приставка за портфейл, или просто да я публикувате във вашия уеб сайт ICO. Не изграждайте тази страница от нулата, използвайте отново съществуващата страница, която сме създали за собствения си ICO. Изтеглете и инсталирайте NXT 1.11.9 (не използвайте по-късна версия, тъй като част от този код беше премахнат), след това разгледайте файла ignis.html (./html/www/html/pages/ignis.html) и функционалността, която поддържа го в nrs.monetarysystem.js, започвайки от ред 1600 (./html/www/js/nrs.monetarysystem.js). Въз основа на ignis.html кода разработете своя собствена ICO страница или като модифицирана версия на NXT (клиентският ни код се освобождава под лиценза на MIT, така че можете да го направите) или като приставка за портфейл, която ще позволи на други NXT възли да поддържайте своя ICO, но ще добавите известна сложност към процеса на разработка. Можете допълнително да опростите ICO страницата както искате. Например не е нужно да включвате поддръжка за борсите Shapeshift и Changelly на тази страница, както ние.

Оферти за обмен

За всеки кръг на ICO издайте единична оферта за обмяна на вашата валута според вашия график на ICO. Използвайте интерфейса на портфейла NXT. Необходимо е само да предложите валутата за продажба, да посочите 0 стойности в страната за покупка. Потърсете например транзакция 12339997342493732668 на NXT Mainnet, за да видите една от офертите, които издадохме за продажба на 1 JLRDA за 0.76 NXT. Уверете се, че височината на изтичане изравнява с графиката на ICO. Спомнете си, че в NXT блок се генерира средно всяка минута.

Съображения за сигурност

Когато продавате вашите жетони с помощта на оферта за обмен, наградата се получава в NXT, следователно акаунтът, издал валутата, ще натрупа голямо количество NXT, но не трябва да поставяте този акаунт под контрол на акаунта, тъй като това ще попречи на планираната операция ( обяснено по-долу). Вместо това подгответе друга сметка, осигурена от контрола на акаунта и премествайте редовно събраните в ICO средства към тази сметка.

Когато избирате име за вашия жетон. Направете това име на токен възможно най-просто, за да затруднявате измамниците да объркват потребителите да купуват собствени фалшиви жетони. В ретроспекция, името, избрано за собствения ни маркер JLRDA, беше проблематично, тъй като някои потребители, където измамиха да купят жетон, наречен JRLDA например. Затова се уверете, че името на токена ви е просто и дори обмислете плащането на допълнителната такса за 4-варна или трибуквена валута.

Рандомизация и планирани транзакции

В случай че вашият ICO е популярен, ще има прекомерно търсене, когато издадете първите партиди за продажба. Винаги съществува риск един купувач да купи цялата партида, като съответства на вашата непотвърдена оферта за продажба, преди потребителите да могат да видят офертата за продажба в потребителския интерфейс.

За да намалите този риск и да се уверите, че всеки има справедлив шанс да закупи вашия жетон, трябва да оставите вашите потребители да планират заявките си за покупка, преди да предложите валутата за продажба, като използвате функцията за насрочени транзакции. Тази част не е задължителна, не е необходимо да я поддържате в своята ICO страница, но ако не, давате на технически генери несправедливо предимство пред всички останали купувачи.

За да постигне това, вашият код трябва да зареди наличните оферти за обмен, когато вашият потребител подаде транзакцията за покупка. Ако няма такава, трябва да добавите планирани = истински данни към бутона за покупка, например $ ("# buy_ignis_button"). Данни ("насрочено", вярно); В резултат на това, когато потребителят изпрати транзакция за покупка, тя ще бъде запаметена в паметта на възела и все още не е изпратена в blockchain.

За да видите как това работи за IGNIS ICO прегледайте функцията processOffers () в nrs.monetarysystem.js на NXT 1.11.9 и имитирайте тази функционалност. Това ще изпрати планирана транзакция, която ще остане в паметта на възела. Тази планирана транзакция ще бъде излъчена до блокчейн само в момента, в който възелът види непотвърдена транзакция за оферта за обмен. Това ще създаде лоялна конкуренция между всички купувачи. В случай че офертата за обмен вече е била подадена, вашият код трябва да зададе насрочено = неверни данни и по този начин ще изпрати нормална транзакция за покупка на валута.

За да определим цената на планираната сделка за покупка, използвахме свойство на акаунта на валутната сметка на емитента и го модифицирахме, за да отразяваме текущото ниво на цените на токена. След това използвахме свойството на този акаунт, за да определим скоростта на планираните заявки за покупка. Вижте nrs.monetarysystem.js ред 357

Тестване на вашето решение

Настройте NXT тестов възел и го използвайте за тестване на вашето решение, преди да го разгърнете mainnet. Трябва да се отнасяте към това като към проект за разработка и да използвате нормалните най-добри практики за тестване и преглед на код. Винаги предполагайте, че хакери и измамници ще гледат вашия код за грешки, защото бъдете сигурни, че ще го направят.

резюме

В тази статия обясних подробно вътрешната работа на IGNIS ICO, за да позволят на разработчиците да имитират този процес в собствения си ICO базиран NXT. Използвайки същата техника, можете да извършите сигурна и честна ICO с малка част от разходите и усилията, необходими за нейното внедряване във всяка друга блокчейн платформа.

В следващата си статия ще обясня как да позволя на потребителите да инвестират във вашето ICO базирано на NXT използване на други криптовалути и все още да регистрират ICO токените на блокчейн NXT.

В третата статия от тази поредица ще обясня как можете да използвате Ardor за по-нататъшно подобряване на тази техника и създаване на ICO, което отговаря на изискванията на KYC / AML.