Конференция по DevOps практикам — DevOps Fest, 20-21 марта. Cпикеры и доклады на сайте >>
×Закрыть

TCR: як за допомогою блокчейну створювати якісні реєстри

Списки можуть бути джерелами важливої інформації, проте критерії їх складання і періодичність оновлення не завжди є зрозумілими. Користувачам хочеться отримувати актуальну інформацію із прозорими правилами її відбору. Одне із застосувань блокчейну — реєстри, керовані токенами (ййй, TCR) — надає таку можливість. У цій статті ми розглянемо загальні принципи її роботи. Ми намагались не переобтяжувати матеріал технічними деталями, проте бажано, щоб ви розуміли термінологію і загальні засади блокчейну.

Шукаючи інформацію, людям більше подобається, коли вона подається у структурованому вигляді: списків, рейтингів, реєстрів. Це особливість людської природи. Похід до магазину буде більш ефективним, якщо у вас є перелік покупок. Розважальні сайти використовують списки для привернення уваги: «10 звичок успішних людей», «12 найкращих фільмів усіх часів» — погодьтесь, хоч інколи ви клікали на подібні заголовки.

Для прийняття важливого рішення, наприклад, до якого вишу піти навчатись або у якого забудовника придбати житло, ми також можемо звертатись до певного списку чи рейтингу. Проте самі собою вони не з’являться, має бути особа чи група осіб, які займаються їх складанням — інакше кажучи, куратори.
Принципи складання таких списків не завжди є прозорими для користувачів, так само, як і періодичність їх оновлення. Читачеві потрібна актуальна і релевантна інформація, що вимагає постійної роботи кураторів. В свою чергу, вони мають бути вмотивовані виконувати її вчасно та якісно.
Цю проблему вирішують реєстри, керовані токенами (Token-curated regestries, TCR). Це — криптоекономічна гра, результатом якої є список. Чим вища його якість — тим більша вигода для всіх учасників цієї гри.

Історія TCR
До створення TCR підштовхнула ситуація, що склалась на ринку цифрової реклами:
Не існувало механізму, що дозволяв рекламодавцям і видавцям однозначно перевіряти одне одного. За різними оцінками, через шахрайство (підроблені домени, ботнети, самозванці, що видають себе за перевірених видавців) рекламодавці щорічно втрачають від 10 до 20 мільярдів доларів при загальному обсягу ринку цифрової реклами в 175 мільярдів.

Ціновий стандарт галузі, вартість за тисячу переглядів (Cost Per Mille, CPM), спонукає сторони до протилежних дій. З одного боку, видавці зацікавлені у якомога більшій кількості переглядів і готові її «накручувати». З іншого, рекламодавцям потрібна якість переглядів і вони вимагають від видавців ретельного її дослідження.

Фейсбук та Гугл є монополістами світового ринку цифрової реклами: за дослідженням The New York Times, близько 85% доходів від реклами надходять до цих компаній. Решта розподіляється між дрібними видавцями, що штовхає їх до жорсткої та часом нечесної конкуренції.
www.nytimes.com/...​nue-and-traffic.html?_r=0

31 травня 2017 року Майк Голдін та Амін Солеймані з ConsenSys разом із Джеймсом Янгом з MetaX опублікували листа, який описує принципи роботи AdChain Registry — смарт-контракту, що базується на Етеріумі, і зберігає доменні імена видавців, що були визначені власниками токенів (adTokens), як тими, що варті довіри.

AdChain Registry став першим практичним застосуванням TCR.
adtoken.com/uploads/white-paper.pdf

До речі, Майк Голдін буде одним зі спікерів нашої конференції для девелоперів 16 квітня — DApp DEV Conference, Izone.
dappdev.org/conference

Принцип дії TCR

Опишемо механізм TCR, не прив’язуючись до конкретної технології.

Дійові особи
Споживачі, або читачі списку — зацікавлені у тому, щоб список надавав найбільш релевантну та якісну інформацію.

Вони не беруть безпосередньої участі у формуванні TCR, проте саме їх інтерес до реєстру визначає цінність його токенів. У прикладі з забудовниками споживачами є потенційні покупці житла.

Кандидати — зацікавлені в розміщенні своєї інформації у TCR. Чим вища якість списку, тим більшою може бути вигода у «матеріальному світі». Наприклад, якщо забудовник потрапить до TCR, в нього з’явиться аргумент на користь підвищення вартості житла — присутність у «списку обраних».

Власники токенів — зацікавлені у підтриманні високої якості списку, тоді він користуватиметься вищим попитом у споживачів. Це стимулюватиме попит на токени, відповідно, підвищуватиме їх вартість. В нашому прикладі власниками токенів можуть бути фахівці з нерухомості, що встановлюють стандарти якості, яким має відповідати кандидат-забудовник, щоб бути включеним до списку.

Подача заявки до TCR

Щоб розмістити інформацію про себе, кандидат має виконати дві умови:
Внести депозит у токенах, що використовуються в даному TCR, у розмірі, не меншому, ніж визначено його параметрами (MIN_DEPOSIT)
Пройти період випробувань, що визначено параметрами TCR (APPLY_STAGE_LEN).

Випробування
Під час випробувального терміну будь-який власник токенів може ініціювати випробування для кандидата. Для цього власник також має внести депозит (не менший визначеного параметром MIN_DEPOSIT). Після цього починається процес голосування (описано в наступному розділі), за підсумками якого визначається переможець: або кандидат успішно проходить випробування і його дані включаються до TCR; або навпаки, переможцем оголошується власник токенів.

Депозит сторони, що програла, вилучається і розподіляється наступним чином:
Частина виплачується переможцю (визначається параметром DISPENSATION_PCT)

Решта розподіляється між власниками токенів, що голосували за переможця, пропорційно кількості токенів, якими вони голосували.

Голосування не вимагає витрат токенів, тож ті власники, що голосували проти переможця, ані отримують, ані втрачають їх.

Параметр DISPENSATION_PCT дає змогу власнику токенів оцінити, чи варто ініціювати випробування. Наприклад, якщо DISPENSATION_PCT встановлено у 50%, власник має бути впевненим більш ніж на 67%, що кандидат його не пройде.

Це випливає з наступного рівняння:
-1p+0.5(1-p)=0
де p — імовірність втратити 100% свого депозиту, тоді (1-p) — це ймовірність виграти 50% депозиту кандидата. Прирівнявши суми потенційних втрат та виграшу, отримаємо, що ймовірність втрати за таких умов — 33%.

У короткостроковій перспективі власникам токенів вигідно «валити» кандидата, адже в цьому випадку частина його депозиту розподіляється між власниками, що голосували «проти».

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

Голосування

Голосування відбувається шляхом зазначення певної кількості токенів від кожного учасника. З одного боку, такий підхід ставить у нерівні умови власників із різною кількістю наявних токенів, проте стратегічно цей підхід позитивно впливає на якість списку. Це пов’язано з тим, що більш «багаті» власники ризикують більше: у випадку неправильного рішення (включення до списку недостовірного кандидата або навпаки, невключення надійного) сумарна вартість їх токенів впаде більше. Тобто, вони мають більш ретельно ставитись до регулювання списку.

Наразі найбільш ефективною є система часткового блокування/розкриття токенів (Partial-lock commit/reveal voting, PLCR Voting).
github.com/ConsenSys/PLCRVoting

За цією системою голосування проходить в два етапи:

Будь-який власник зазначає свій голос («за» чи «проти» кандидата) і кількість токенів, якою він хоче проголосувати. Власник не може вільно розпоряджатися цими токенами до кінця періоду блокування (COMMIT_PERIOD_LEN).

Після завершення періоду блокування, власники мають розкрити токени, за допомогою яких вони голосували. По завершенні періоду розкриття (REVEAL_PERIOD_LEN) підбиваються підсумки голосування.
Необхідний для проходження випробування процент токенів визначається параметром VOTE_QUORUM. Наприклад, якщо значення VOTE_QUORUM — 50, то для проходження випробування кандидату потрібно набрати більше 50% від усіх токенів, що використовувались для голосування.

Ризики TCR

Більшість ризиків, що можуть вплинути на якість TCR, пов’язані із людським фактором.
Наприклад, під час тролінгу кандидат може подавати заявку на включення, що не відповідає вимогам списку. Це найпростіший приклад атаки на TCR, і вона може спрацювати за низького порогу входження до реєстру: малого мінімального депозиту або якщо власники токенів недбало ставляться до його регулювання.

Конкуренти учасника TCR можуть вдатись до атаки божевільного: витратити значні ресурси для купівлі такої кількості токенів, якої вистачить для прийняття будь-якого рішення під час голосування, тим самим зруйнувавши список.

Кандидати, що пройшли перше випробування і були включені до списку, можуть його отруїти: наприклад, забудовник, що потрапив до TCR, змінив умови кредитування або замість дитячого садка побудував багатоповерхівку. Така поведінка підриває довіру до списку в цілому, тому власники токенів мають слідкувати за учасниками списку і проводити випробування для тих, що викликають підозру.

Нашкодити списку також можуть групові атаки, такі як «підкидання монетки» та «меміфікація голосування». У першому випадку група власників токенів голосують «за» або «проти» випадковим чином замість того, щоб приймати зважені рішення. Негативні наслідки такої поведінки можна нівелювати раціональними рішеннями інших власників.

Другий випадок — більш загрозливий для репутації списку. Він полягає в тому, що група власників токенів домовляється між собою голосувати однаково задля того, щоб завжди опинятися у більшості. Таким чином, за будь-якого випробування ця група завжди буде отримувати частку депозиту, що вилучається у сторони, що програє. Така стратегія може приносити вигоду частині власників токенів, проте вона знижує загальну цінність списку.

Розвиток і перспективи TCR

У першій версії TCR немає покарання для власників токенів, що голосували проти переможця. Це може призвести до «розділення голосів» — ситуації, коли група власників домовляється між собою поділити певну кількість токенів навпіл і використовувати їх для голосування за обидва варіанти. Таким чином, група отримує винагороду незалежно від результату голосування і ділить виграш поза механікою TCR. При цьому ті власники, що дійсно працювали над прийняттям рішення, отримують менше.

Щоб уникнути подібної ситуації, у TCR 1.1 було додано параметр MINORITY_BLOC_SLASH, що визначає процент токенів, які були використані для голосування стороною, що програла, у якості додаткової винагороди для переможців. Інакше кажучи — штрафу за неправильне голосування.
medium.com/...​-dev-updates-34c9f079f33d

Також постає питання довіри користувачів до TCR, тобто, наскільки користувач може бути впевненим, що учасники списку будуть діяти саме так, як декларують власники токенів. Наразі усі кандидати можуть вносити мінімальний депозит, що може призвести до ситуації, коли вигода від поведінки, що суперечить обіцянкам власників, буде більшою, ніж втрати від виключення зі списку. Втрати можуть бути оцінені як їхня ймовірність, помножена на суму депозиту, і саме ймовірність є непрозорою для користувачів величиною.

У наступних версіях TCR пропонується замінити мінімальний депозит на «кредит довіри»: кандидати будуть самі визначати розмір депозиту, який потрібен для подачі заявки. Таким чином, користувачі бачитимуть, чим ризикує кандидат, і зможуть суб’єктивно оцінювати, чи вартий він довіри.

Приклади використання TCR

Окрім вже зазначеного вище AdChain, стартап MedCredits, який спеціалізується на телемедецині, нещодавно відкрив передпродаж токенів для TCR, що буде зв’язувати пацієнтів із лікарями. Ще більше прикладів застосування TCR описані в статті.
medcredits.io

medium.com/...​f-physicians-ca88a7d5f252

TCR в Україні

TCR має нетривіальний інтерфейс взаємодії з користувачами. З метою спрощення і поліпшення UX, одна з команд DApp Dev Consulting активно розробляє варіант UI, що може бути кастомізований власником смарт-контракту.
dappdev.org

Це повністю no-backend децентралізоване рішення, всі данні беруться в реальному часі з мережі Етеріум та IPFS і обробляються на веб-клієнті. Також, реалізований підхід TCR of TCRs — головний список, який містить в собі посилання на інші списки і підтримує всю функціональність TCR. Демонстраційний сайт знаходиться за посиланням: tcr.dappdev.org

Що ще почитати:
Майк Голдін на Medium
medium.com/@ilovebagels

Сімон де ла Рув’є на Medium
medium.com/@simondlr

Практичні приклади використання TCR
medium.com/...​-development-4533a52cc9ba

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

«Не важно, как проголосуют, важно как посчитают» © Наполеон III

Штука интересная, сейчас там уже немного более продвинутые версии, на медиуме можно посмотреть. Сами смотрим чтобы начать тестировать и применять, концепция хорошая., жаль мало информции пока что

на нашей конференции для разработчиков 16 апреля будет Mike Goldin dappdev.org/conference ,
расскажет больше о TCR, возможно вам будет интересно это.

Интересно конечно, слушал вводной доклад на киевской конференции. Но больно у вас ценник большой ) так что я лучше почитаю :)

Про ложку дёгтя и бочку мёда — никогда не слышал? Так вот, здесь у тебя явно проблемы с полнотой системы, и нужно что-то брать за аксиомы. Что? Составь список этих аксиом, и увидишь что каждая из них становится носителем риска. Риски, как только они выделены, легко подлежат оценке, дроблению на более мелкие, и соответственно могут быть подвержены оптимизации с помощью дополнительных средств.

В твоём случае риск № 0 кроется в линейном затрате против экспоненциального роста выгоды. Иначе говоря, победитель получает всё, остальные идут на корм системе. В твоей системе выгодно только мошенничество, поскольку затраты мошенника минимальны, и он может вкладывать больше. С другой стороны, система не защищена фактором времени, то есть мошенник может сколь угодно часто менять маску оставаясь белым и пушистым.

Если быть совсем точным, это не проблемы системы, это проблемы человеческого фактора. Но именно система создаёт иллюзию доверительного механизма, который тем не менее таковым не является, а наоборот, служит катализатором мошенничества.

Человечество пока не придумало эффективного решения проблемы. Лучшие из решений сводятся к экспоненциальному росту депозита, то есть к повышению порога входа. Но проблема в том, что победители оказывают влияние на создателей системы, и очень быстро порог входа становится «справедливым»: то есть одинаковым для всех. Победители формируют монополию, и попросту сметают информационным потоком возможности для входа кого бы то ни было ещё. Результат — повышают свою цену, уничтожая рыночный механизм как таковой.

Итог: система игры невозможна без системы конфликта по каждой из её составляющих. Как только любое звено считается надёжным априори — именно оно и деградирует, формируя иллюзию работы, но в действительности создавая очень избирательное замыкание. И это только одна из двух формально неразрешимых проблем. Вторая — механизм наказания, и человеческий фактор. Если быть точнее, конфликт между тем, как должен строиться механизм наказания по науке, и как — по интуиции. Но люди верят не в науку, а в свою прозорливость.

Подписаться на комментарии