Skip to content

Univereum whitepaper [russian]

Alex Bazhanau edited this page Jan 9, 2022 · 16 revisions

Оглавление

Введение

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

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

Для реализации подобной системы в данной работе была использована технология blockchain. Данные, записанные в blockchain-системы практически невозможно подделать, а сами blockchain-системы являются отказоустойчивыми, защищёнными от атак различного рода и автономными в силу своей децентрализованной природы.

Технология смарт-контрактов позволяет реализовать полные по Тьюрингу алгоритмы, выполняющиеся в blockchain-системе. Информационные системы, основанные на смарт-контрактах, обладают всеми преимуществами blockchain-систем. Система Ethereum является платформой для построения систем на основе смарт-контрактов и является наиболее развитой и надёжной платформой на момент написания работы.

Задачами данной работы являются:

  • Изучение основ студенческого самоуправления, делегативной демократии, принципов электронного голосования.

  • Изучение принципов работы распределённых систем, построенных на технологии blockchain.

  • Изучение способов построения систем на основе умных контрактов;

  • Изучение структуры и принципов работы децентрализованных автономных организаций.

  • Разработка архитектуры и реализации системы самоуправления университетом на основе изученных технологий.

1. Cтуденческое самоуправление

1.1 Понятие студенческого самоуправления

Студенческое самоуправление можно определить, как форму общественной деятельности социально активной студенческой молодежи, направленная на реализацию образовательных, научных, социальных, творческих, досуговых и иных потребностей и инициатив, а также на защиту интересов и прав студенчества университета. Данное определение подчеркивает две стороны деятельности студенческого самоуправления: реализацию интересов учащихся и защиту их прав. Система студенческого самоуправления не только дает знания о демократии, но и включает учащихся в демократическую деятельность. Основными целями студенческого самоуправления являются:

  • Формирование гражданской культуры и активной жизненной позиции юношей и девушек.

  • Гуманистическое воспитание студентов в духе толерантности, взаимной требовательности, демократии, чувства социальной справедливости, нетерпимости к проявлениям экстремизма, сексизма и гомофобии, формирование здорового морально-психологического климата в коллективе.

  • Реализация прав обучающихся на участие в управлении вузом, оценку качества образовательного процесса.

  • Формирование у обучающихся умений и навыков самоуправления, подготовка их к компетентному и ответственному участию в жизни общества.

Приведем некоторые функции, традиционно возлагаемые на аппарат студенческого самоуправления:

  • Координация и стимулирование деятельных студенческих организаций.

  • Поиск и включение в общественную работу социально активных студентов.

  • Участие в организации и управлении учебно-воспитательным процессом в университете.

  • Представление интересов учащихся на всех уровнях.

  • Профилактика асоциальных проявлений в студенческой среде.

  • Поддержка студенческих семей и малообеспеченных студентов.

  • Организация досуга, отдыха и оздоровления студентов.

  • Анализ студенческих проблем, определение перспектив и путей их решения .

Приведём основополагающие критерии развитого студенческого самоуправления (ССУ):

  • автономность в принятии решений, постановке целей и задач, методов работы;

  • финансовая и юридическая независимость (“принцип развития”);

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

  • связь с внешней средой как возможность взаимодействия по продвижению своих решений, в том числе с администрацией (“принцип партнёрства”).

Данные принципы представляются вполне логичными и справедливыми в реализации прав студентов на участие в управлении университетами. Они позволяют ССУ не сращиваться с административным аппаратом и в то же время дают возможности для полноценного влияния.

1.2 Информационная система для организации студенческого самоуправления

Для вовлечения большого числа студентов и преподавателей в процесс самоуправления и для гарантии независимости студенческого самоуправления необходимо внедрение некоторой информационной системы в структуру университета, которая послужила бы платформой для построения системы ССУ. С помощью данной информационной системы общество студентов должно иметь реальную возможность влиять на принятие решений внутри университета. Также данная система должна быть полностью автономной и независимой от администрации университета, её управление должно осуществляться обществом студентов и преподавателей.

Одной из ключевых функций данной информационной системы самоуправления университетом является проведение процесса коллективного принятия решений, касающихся студенческого самоуправления университетом.

Опишем критерии, которым должна удовлетворять данная система для выполнения функции проведения процесса коллективного принятия решений:

  1. Защита от изменения результатов голосования путями, не предусмотренными общеизвестными правилами голосования.

  2. Возможность верификации учета голоса и объективности подсчета голосов.

  3. Гарантия анонимности персоны, принявшей участие в голосовании.

  4. Гарантия приватности голоса персоны, принявшей участие в голосовании.

  5. Простота, удобность и понятность процесса голосования.

2. Используемые технологии

2.1 Делегативная демократия

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

Впервые данная модель была описана аргентинским политологом Г. О’Доннеллом на основе обобщения опыта политического развития новых демократий в Аргентине, Бразилии, Перу, Эквадоре, Боливии, на Филиппинах, в Корее и посткоммунистических странах. Ее принципиальное отличие состоит в том, что она не относится к представительным демократиям.

В рамках модели делегативной демократии участник передаёт любому другому участнику (делегату) своё право голоса, однако он может их отозвать таким же образом. Вес голос участника определяется как сумма весов голосов участников, передавших ему свой голос, плюс вес своего голоса.

2.2 Blockchain системы

Blockchain — распределённая база данных, представляющая собой постоянно растущий лист упорядоченных записей, называемых блоками. Данная цепочка блоков реплицируется между всеми узлами базы.

Blockchain база данных по своей природе устойчива к модификации данных: после записи в блок, данные практически не возможно изменить. Более того, система blockchain является примером распределённой системы, устойчивой к произвольным сбоям некоторого подмножества частей данной системы (byzantine fault tolerant). С помощью данной технологии возможно достижение децентрализованного консенсуса системы (decentralised consensus). Эти свойства делают blockchain систему подходящей для записи такой важной информации как медицинские записи пациентов, сведения для идентификации личности, транзакции банковских переводов, сведения о прохождении товара по логистической цепи и др.

База данных blockchain позволяет относительно просто реализовать безопасные онлайн-транзакции. Так как база данных blockchain реплицирует данные на все узлы, включённые в систему, зарегистрированные транзакции не могут быть изменены после их верификации и записи. Каждый узел без затраты значительных вычислительных ресурсов может проверить валидность каждой транзакции в цепочке. Валидность каждой транзакции в цепи гарантирует согласованность данных в конечном счёте (eventual consistency). Так как система blockchain представляет собой peer-to-peer сеть, то она функционирует автономно.

Первая blockchain система была разработана Сатоши Накамото в 2008 году и реализована в следующем году в качестве основного компонента цифровой валюты Bitcoin, в которой blockchain выступает в качестве открытого регистра для всех Bitcoin транзакций. Использование технологии blockchain позволило системе Bitcoin стать первой цифровой валютой, решающей проблему двойного расходования средств (double-spending) без использования центрального сервера. Архитектура системы Bitcoin стала примером для построения других подобных систем (например, платформа Ethereum).

База данных blockchain состоит из двух типов записей: транзакций и блоков. Каждый блок в цепочке blockchain содержит массив транзакций (payload), а также заголовок: хэш массива данных, ссылку на предыдущий блок в виде хэша массива данных предыдущего блока и некоторую другую информацию (рисунок 2.1). Для хеширования транзакций используются разновидности дерева Меркела. Вид хэш функции зависит от конкретной реализации blockchain. Например, в системе Ethereum используется функция KECCAK-256, в то время как в системе Bitcoin используется комбинация функций SHA256 . Подобная структура записи данных использовалась и до изобретения blockchain, например, в системе контроля версий Git, однако использовалась для других целей.

Рисунок 2.1 - Схема получения хеша транзакций

При работе системы blockchain иногда различные блоки могут быть включены в цепь одновременно на разных узлах сети, создавая временное разветвление. В дополнение к способу верификации блоков на основе хэш-функции, любая blockchain-система имеет определенный алгоритм для разрешения конфликтов разных веток цепочки блоков, при котором в качестве валидной выбирается только одна ветвь с более высоким значением оценочной функции. Блоки, которые содержатся в отсечённой ветви, называются орфанными (orphaned) блоками. Различные узлы (peers) базы данных не всегда имеют идентичную версию истории (цепочки) транзакций, в каждый момент времени у них хранится версия базы с наибольшим значением оценочной функции, из известных им (рисунок 2.2). Всякий раз, когда узел получает версию базы с более высоким значением оценочной функции (обычно эта версия является прямым продолжением предыдущей с новыми блоками на верху цепочки) они переписывают свою собственную версию базы данных более актуальной и ретранслируют актуальную версию базы другим узлам сети blockchain.

Рисунок 2.2 - Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

В сети blockchain не существует некого центрального узла, копия истории которого считалась бы эталоном, все узлы в сети равноправны в плане доверия к подлинности информации, ретранслируемой ими. Так как любой узел имеет возможность с достаточно большой вероятностью проверифицировать любой блок цепи, то нет нужды «доверять» другим узлам сети.

Для обеспечения безопасности транзакций система blockchain использует методы криптографии с открытым ключом. Открытый ключ (длинный случайный набор цифр) - это адрес пользователя в сети blockchain. Каждая транзакция (кроме некоторых исключений, специфичных для конкретной реализации blockchain) имеет адрес отправителя и адрес получателя. Закрытая ключ-пара к открытому ключу используется как пароль, который дает своему владельцу доступ к взаимодействию с различными возможностями, которые предоставляет система blockchain. Например, в случае с системой Bitcoin, обладатель закрытого ключа имеет возможности совершать транзакции перевода криптовалюты Bitcoin, содержащихся на балансе своего адреса.

Обычно в системе blockchain существуют два типа узлов: клиент и майнер (miner). Клиентские узлы имеют возможность порождать новые транзакции от своего имени и передавать актуальную цепочку с уже созданными блоками другим узлам сети. Майнеры, в дополнении к вышеуказанным возможностям, могут формировать из еще незаписанных транзакций новые блоки поверх актуальной на данный момент цепи. За генерацию новых блоков в цепи майнеры получают некоторое вознаграждение, что стимулирует их работу, столь важную для поддержания работоспособности системы blockchain. Для ограничения скорости генерации новых блоков и для их верификации может быть использовано несколько алгоритмов. Два наиболее известных алгоритма это proof-of-work, при котором майнер обязан затратить свои вычислительные ресурсы для генерации нового валидного блока, и proof-of-stake, при котором майнер затрачивает иные ресурсы, ценные в рамках данной реализации blockchain (например, заморозка некоторого количества криптовалюты в рамках данного blockchain).

Невозможно гарантировать, что какая-либо конкретная транзакция будет постоянно оставаться в актуальной версии истории. Однако благодаря свойствам оценочной функции и заинтересованности майнеров в генерации валидных блоков поверх уже существующих, вероятность потери транзакции существенно падает по мере нарастания новых блоков, и в конечном итоге она близка к нулю. В системе blockchain вычисления результатов транзакций происходят избыточно, на каждом узле, что является основным отличием blockchain от иных систем распределённых вычислений и хранения данных.

2.3 Умные контракты

Умный контракт (smart contract) - алгоритм, описывающий набор условий, выполнение которых влечет за собой некоторые события в реальном мире или цифровых системах. Для реализации умных контрактов требуется децентрализованная среда, полностью исключающая человеческий фактор, а для возможности использования в умном контракте передачи некоторой ценности (value) требуется криптовалюта.

Первые идеи умных контрактов были предложены в 1994 году Ником Сабо (англ. Nick Szabo). Практические реализации стали возможными, благодаря появлению в 2008 году технологии blockchain. Некоторые принципы умных контрактов были заложены в протоколе первой blockchain-системы Bitcoin, однако они не были реализованы в клиентском ПО, не обладали полнотой по Тьюрингу из соображений безопасности и практически не использовались на практике. Позже стали высказываться идеи, что поверх протокола Bitcoin могут быть созданы различные протоколы более высокого уровня включая полноценные умные контракты, по аналогии с тем как поверх TCP/IP существуют множество протоколов прикладного уровня.

Умные контракты впервые начали применяться на практике в проекте Ethereum. Идея создания проекта появилась в 2013 году. В тот момент основатель журнала Bitcoin Magazine Виталик Бутерин пришёл к выводу, что Bitcoin плохо подходит в качестве базового протокола, поскольку изначально не был спроектирован под данную задачу, и написал в одной из своих статей об идее создания такого протокола с нуля, что и дало начало проекту Ethereum.

2.4 Платформа Ethereum

Devcon2: Ethereum in 25 Minutes

Devcon2: Ethereum in 25 Minutes

Ethereum — платформа для создания децентрализованных онлайн-сервисов на базе технологии blockchain (Đapps, Decentralized applications, децентрализованных приложений). Данная платформа реализует концепцию умных контрактов. Реализована как единая децентрализованная виртуальная машина, Ethereum Virtual Machine (EVM). Сеть Ethereum была запущена 30 июля 2015 года.

Умные контракты в Ethereum представлены в виде классов, которые могут быть реализованы на различных языках и компилируются в байткод для виртуальной машины EVM перед отправкой в blockchain Ethereum. Изменение состояния виртуальной машины может быть записано на полном по Тьюрингу языке сценариев в виде байт-кода EVM.

В отличие от языка сценариев в протоколе Bitcoin, EVM байт-код поддерживает циклы, поэтому платформа использует механизм, называемый газом (gas) для ограничения контрактов, которые могут занять много вычислительного времени и памяти внутри цепочки blockchain для выполнения.

В основе платформы Ethereum лежит криптовалюта, называемая эфиром (англ. ether). Для обозначения используется сокращение ETH и символ в виде Ξ (греческая буква Кси). Дробные части одного эфира имеют свои названия: 1/1000 — finney, 1/106 — szabo, 1/1018 — wei.

В отличие от других криптовалют, авторы не ограничивают роль эфира платежами, а предлагают его, например, в качестве средства для обмена ресурсами или регистрации сделок с активами при помощи умных контрактов, в частности авторы назвали эфир «криптотопливом» для исполнения умных контрактов одноранговой peer-to-peer сетью. Эфир продаётся на сервисах по обмену, а капитализация общего количества эфира, на момент написания данной работы, составляет более одного миллиарда американских долларов .

Технология Ethereum дает возможность регистрации любых сделок с любыми активами на основе распределенной базы контрактов типа blockchain, не прибегая к традиционным юридическим процедурам. Эта возможность является конкурентной по отношению к существующей системе регистрации сделок. С помощью такой технологии, как Ethereum, может существенно улучшить существующие институты передачи владения различными ценностями между людьми.

Изначальная версия Ethereum использует для достижения консенсуса алгоритм proof-of-work, однако в будущем планируется перейти на алгоритм proof-of-stake, который не требует столь большой затраты вычислительных ресурсов и энергии для генерации блоков майнерами.

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

Одна проблема, связанная с использованием смарт-контрактов в открытом blockchain, заключается в том, что ошибки при написании контрактов, включая дыры в безопасности, видны всем пользователям платформы.

В данное время ведутся исследования по реализации формальной верификации умных контрактов, которая бы доказывала, что реализованный контракт отвечает заявленным свойствам. В докладе Microsoft Research отмечается, что написание смарт-контрактов без брешей в безопасности может быть очень трудным на практике. Однако в докладе утверждается, что статический анализ опубликованных контрактов, как правило, позволяет выявить большинство распространенных уязвимостей .

В платформе Ethereum все умные контракты публично хранится на каждом узле сети blockchain. Данный подход имеет недостаток, связанный с проблемой производительности всей системы в целом: каждый узел сети обязан произвести все вычисления, протекающие в системе, в режиме реального времени, что приводит к замедлению скорости работы сети. Однако в данный момент ведется разработка новой версии протокола Ethereum, позволяющей обойди данное ограничение, и при этом не уменьшая гарантий безопасности платформы Ethereum.

2.5 Децентрализованные автономные организации

Децентрализованные автономные организации (decentralized autonomous organizations, DAO) – организации, управление которыми осуществляется умными контрактами. Все данные DAO, включая финансовые транзакции и управляющие умные контракты, содержаться в blockchain системе. Капитал DAO хранится в некоторой криптовалюте, балансом которой умный контракт организации имеет возможность управлять.

Использование blockchain системы гарантирует безопасность цифровой учётной книги (ledger), хранящую финансовые транзакции организации. Также, данный подход устраняет потребность в супервизоре финансовых транзакций (банк). Благодаря этому стоимость финансовых транзакций может существенно уменьшиться. После запуска, управление DAO осуществляется исключительно в рамках, определённых умными контрактами; человеческое влияние на организацию, противоречащее установленным контрактам, становиться невозможным.

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

Исходный код смарт-контрактов, после запуска DAO, практически невозможно изменить, что влечет крайне сложный процесс исправления ошибок в смарт-контрактах. Для исправления ошибок в контрактах DAO необходимо запустить новую DAO и договориться со всеми участниками о переносе финансовых средств в новую организацию. Поскольку исходный код смарт-контрактов, из-за особенностей их технической реализации, публично доступен всем заинтересованным лицам, найденные и опубликованные уязвимости в коде смарт-контрактов могут быть использованы третьей стороной для остановки работы организации и вывода финансовых средств из нее.

Наиболее известный на данный момент пример автономной организации – “The DAO” - венчурный фонд, запущенный в июне 2016 года на платформе Ethereum с начальным капиталом 150 миллионов USD. В коде смарт-контракта “The DAO” были обнаружены несколько уязвимостей. В средине июня 2016 года данные уязвимости были использованы для вывода финансовых средств способом, не предусмотренном создателями данной организации. Несмотря на некоторые механизмы блокировки снятия средств со счета фонда, попытка перевода средств оказалась успешной. Личность человека, осуществившего перевод так и не была установлена.

После этого происшествия сообщество Ethereum пришло к решению отката транзакции, приведшей к выводу средств из фонда “The DAO”. Поскольку изменения цепочки транзакций в blockchain системах является физически невозможным, сообщество Ethereum создало вторую ветвь цепочки Ethereum, из которой была удалена данная транзакция. Изначальная ветвь цепочки Ethereum существует и поддерживается некоторыми участниками и на момент написания данной работы. Она известна под названием “Ethereum Classic”. Однако данная ветвь не получила популярности, и количество майнеров Ethereum Classic существенно меньше количества майнеров Ethereum. Не смотря на этот факт, деятельность данного фонда была приостановлена . Данный факт подчеркивает важность верификации и тестирования смарт-контрактов перед запуском DAO.

Система самоуправления университетом, описанная в данной работе, по своей структуре и принципам работы является DAO – децентрализованной автономной организацией.

3. Система самауправления университетом

3.1 Система самоуправления и университет

Опишем как система самоуправления университетом может быть интегрирована в существующую структуру университета и какие изменения она привнесёт в процесс управления университетом.

Основным элементом системы самоуправления является рейтинг участников самоуправления университетом (студентов или преподавателей). Рейтинг участника определяется одним из модулей описываемой системы на основе активности участника, приносящей пользу университету (например, участие в конференциях от имени университета, организация спецкурсов и кружков по интересу, победа в профессиональных соревнованиях, помощь другим студентам в освоении материала и т.п.). Рейтинг участника прямо пропорционален тому, на сколько весомым будет голос участника при управлении университетом.

В случае если участник сам не имеет желания принимать участия в управлении университетом, он имеет возможность делегировать вес своего голоса любому другому участнику системы самоуправления университетом. Выбирая другого участника для передачи ему своего голоса, он тем самым косвенно принимает участие в управлении университетом. Таким образом в системе самоуправления реализуется модель делегативной демократии.

Любой участник системы самоуправления имеет возможность выдвинуть на рассмотрение некоторое предложение, касающееся вопросов управления системой университета. Во время рассмотрения предложения другие участники имеют возможность проголосовать за или против данного предложения. После завершения периода голосования, система самоуправления суммирует вес голосов участников, проголосовавших за принятие рассматриваемого предложения, и отнимает суммарный вес голосов участников, проголосовавших против данного решения. Если итоговая сумма весов положительна – предложение принимается и исполняется системой; в противном случае данное предложение отвергается.

В аналитическом виде данное правило решения о принятии или отклонении предложения (P) отображено в формулах (1), (2).

Приведём несколько примеров предложений, которые могут быть выдвинуты участниками системы самоуправления университетом:

  • Выбор предмета для спецкурса, проводимого в учебной группе.

  • Выборы старосты группы, потока.

  • Выделение средств бюджета университета на ремонт учебного корпуса университета.

3.2 Роли студентов и преподавателей в системе самоуправления университетом

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

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

Выплата заработной платы может быть описана в исходном коде предложения о проведении спецкурса и производиться автоматически, путём списания криптовалюты системы Ethereum (ETH) со внутреннего счёта системы самоуправления на счёт преподавателя спецкурса.

Данный подход к образованию помогает решить проблему привлечения специалистов, не работающих на постоянной основе преподавателями в университете, за счёт упрощения процесса организации нового спецкурса. Также данный подход повышает интерес студентов к изучению актуальных предметов, не преподаваемых на данный момент в университете.

3.3 Коллективное управление бюджетом университета

Для финансирования предлагаемых спецкурсов используется внутренний фонд системы самоуправления университетом. Для обеспечения доступа к ресурсам фонда из принятых предложений, средства данного фонда хранятся в криптовалюте ETH. Финансирование данного фонда производиться из средств университета.

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

Так как фонд системы самоуправления университетом управляется коллективно участниками системы при помощи смарт-контрактов, то данная система самоуправления является частным случаем децентрализованной автономной организации (DAO).

3.4 Техническая реализация предложений участников системы самоуправления

С технической точки зрения, предложения представляют собой EVM байткод, хранящийся в пространстве памяти смарт-контракта системы самоуправления университетом.

При утверждении предложения участника, данный байткод выполняется от имени смарт-контракта системы, благодаря чему предложение может оперировать всеми внутренними свойствами системы самоуправления, в том числе и финансовым бюджетом системы, представленным криптовалютой платформы Ethereum (ETH).

Байт-код предложения виден всем участникам системы самоуправления и не может быть модифицирован после опубликования предложения. Благодаря этим свойствам любой участник может определить, что представляет собой данное предложение и может узнать какие изменения оно повлечет за собой при его принятии.

Так как предложение исполняется смарт-контрактом, исполнение предложения при его принятии происходит автоматически. Вмешательство в исполнение принятого предложения третьей стороной не представляется возможным благодаря свойством системы Ethereum.

В случае если некоторый участник предпримет попытку атаки на отказ в обслуживании системы (DoS, Denial of Service) путём добавления чрезмерно большого количества предложений, не имеющих смысла, ему придётся понести финансовые потери, пропорциональные количеству предложений так как за каждую транзакцию в системе Ethereum любой пользователь обязан заплатить некоторое количество ETH. При штатном пользовании системой данные затраты пренебрежимо малы, однако при большом количестве запросов они превышают потенциальную выгоду, которую можно извлечь из DoS атаки .

В добавление к описанному типу защиты от DoS атак, может быть введено искусственное ограничение на количество выдвинутых предложений от одного участника.

3.5 Структура смарт-контрактов системы

Блок-схема структуры смарт-контрактов представлена на рисунке 3.1.

Рисунок 3.1 – структура умных контрактов системы студенческого самоуправления

Система смарт-контрактов состоит из четырёх компонент:

  1. Контракт Владения является базовым контрактом для остальных трёх контрактов. С его помощью осуществляется контроль доступа к изменению настроек дочерних контрактов. Например, в дочернем контракте к некоторой функции можно добавить модификатор доступа, который разрешит выполнение данной функции только владельцу (owner) контракта. Владелец контракта, имеет возможность передать свои права владения на другой Ethereum-адрес (метод transferOwnership).

  2. Контракт Рейтинга определяет рейтинг каждого участника студенческого самоуправления (метод balanceOf). Распределение рейтинга между участниками контролирует владелец контракта Unitoken с помощью метода transferFrom, который доступен только владельцу контракта.

  3. Контракт Делегирования позволяет участникам делегировать свой вес голоса (voteWeight), определяемый рейтингом из контракта Unitoken, другим участникам (delegateVote). Для избежания замкнутых циклов делегирования вес голоса уменьшается с каждым актом его делегирования.

  4. Контракт Ассоциации позволяет участникам выдвигать предложения-транзакции, в рамках которых возможно выполнить произвольный EVM-байткод от лица данного контракта (newProposal). Для выполнения предложения-транзакции необходимо провести голосование среди участников Ассоциации, при котором предложение может быть или одобрено и исполнено, или отклонено (vote).

Данные смарт-контракты реализованы на языке программирования Solidity. Программы языка программирования Solidity компилируются в EVM байткод и загружаются в сеть Ethereum для дальнейшего исполнения.

3.6 Типы интерфейсов взаимодействия с системой

На данном этапе разработки для использования доступны 2 типа интерфейса пользователя:

  • Консольный интерфейс.

  • Автосгенерированный интерфейс в Ethereum-совместимом браузере Mist.

Консольный интерфейс представляет собой консоль интерпретатора языка JavaScript с подключенными библиотеками для связи с процессом Ethereum-ноды, запущенной на компьютере пользователя (рисунок 3.2).

Рисунок 3.2 – пример консольного интерфейса

Пользователь запускает интерпретатор JavaScript, подключается к локальному процессу Ethereum-ноды с помощью библиотеки web3 (разработана в рамках проекта Ethereum), создает прокси-объект представляющий собой один из контрактов в сети Ethereum, а затем вызывает один из методов созданного объекта с заданными параметрами. При вызове метода происходит RPC-вызов соответствующей транзакции над данным контрактом, при этом в качестве результата RPC-вызова метода возвращается идентификатор транзакции или, в случае если транзакция была константная, её возвращаемое значение.

Пример автосгенерированного интерфейса можно видеть на рисунке 3.3.

Рисунок 3.3 – пример автосгенерированного интерфейса в браузере Mist

С помощью данной страницы пользователь может просматривать результаты исполнения константных методов контракта (центральная часть экрана), а также исполнять различные транзакции над контрактом (правая часть экрана). Например, как видно на рисунке 6, в случае контракта Unitoken, пользователю доступна информация о рейтинге пользователя по его адресу (константный метод "balanceOf").

Данный интерфейс представляет собой HTML/CSS страницу, инкапсулирующую соответствующие вызовы библиотеки web3. Данная библиотека подключается к локальной Ethereum-ноде и взаимодействует с ней про одному из доступных протоколов (HTTP или IPC). Автосгенерированный оконный интерфейс является более удобным для пользователя по сравнению с консольным интерфейсом.

3.7 Пример использования системы самоуправления университетом

В данном примере мы рассмотрим каким образом пользователи могут делегировать вес своего голоса, добавлять предложения и голосовать за них. Пусть в системе имеется 4 участника. Начальный рейтинг участников указан в таблице 3.1. Изначально рейтинг участников численно равен весу их голосов.

Таблица 3.1 – изначальный рейтинг участников

Имя участника Участник 1 Участник 2 Участник 3 Участник 4
Рейтинг 500 300 200 0

Опишем процесс делегирования веса голоса от Участника 1 к Участнику 3.

Для делегирования своего голоса Участник 1 вызывает метод delegateVote контракта Delegation (рисунок 3.4). Тем самым он передаёт весь свой вес голоса Участнику 3. Однако при передаче веса голоса теряется 75% всего передаваемого веса (данный процент может быть изменён владельцем контракта Delegation). Распределение весов после произведённой операции отображено в таблице 3.2.

Таблица 3.2 – вес голоса участников после делегирования

Имя участника Участник 1 Участник 2 Участник 3 Участник 4
Вес голоса 0 300 325 0

Рисунок 3.4 – вызов метода delegateVote контракта Delegation в браузере Mist

Пускай далее Участник 1 выдвигает предложение о начислении 100 баллов рейтинга Участнику 4.

Для формирования предложения ему требуется создать байткод предложения. Необходимый для данного предложения байткод можно сформировать с помощью автосгенерированного браузером Mist пользовательского интерфейса. Для этого Участник 1 может предпринять попытку перевести 100 баллов рейтинга со своего аккаунта на аккаунт Участника 4. На рисунке 3.5 мы видим, что интерфейс выводит предупреждение, что совершаемая транзакция по переводу рейтинга будет заведомо отклонена системой, так как в системе самоуправления невозможно перевести рейтинг от одного участника другому напрямую. Однако из того же окна, изображенного на рисунке 3.5 мы можем извлечь EVM байткод данной транзакции, в котором содержится вызов метода transferFrom контракта, определяющего рейтинг участников. Так как перевод рейтинга между участниками невозможен, вызов данного метода запрещен участникам системы. Однако контракт Association имеет доступ к этому методу, так как с помощью данного метода и происходит начисление рейтинга участникам. При принятии предложения, его байткод исполняется от имени контракта Association и поэтому вызов метода transferFrom из байткода предложения произойдет успешно и рейтинг будет переведён Участнику 4 со внутреннего счета контракта Association.

Рисунок 3.5 – извлечение EVM байткода для создания предложения

Далее участник создаёт предложение с полученным байткодом (рисунок 3.6). Для этого он вызывает метод newProposal контракта Association.

Рисунок 3.6 – вызов метода newProposal контракта Association

В качестве аргументов данного метода мы передаём следующие параметры:

  • EVM байткод, в котором вызывается метод transferFrom контракта Unitoken (определяющего рейтинг), который списывает с внутреннего счёта контракта Association 100 баллов и перечисляет их Участнику 4.

  • Адрес контракта, у которого будет вызван метод, указанный в байткоде предложения (контракт Unitoken).

Содержимое созданного предложения отображено на рисунке 3.7.

Рисунок 3.7 – содержимое созданного предложения

После создания предложения происходит этап голосования. Участник 3 голосует за данное предложение, а Участник 2 против него. Участники 1 и 4 не имеют права голосовать, так как их веса голосов равны 0. Для голосования участникам необходимо вызвать метод vote контракта Association c указанием номера предложения и информацией о том, поддерживают ли они данное предложение или голосуют против него (рисунок 3.8).

Рисунок 3.8 – вызов метода vote контракта Association

После завершения этапа голосования, при условии принятия участниками данного предложения, происходит его выполнение. В нашем примере предложение Участника 1 было принято, так как сумма весов голосов за принятие (325) был больше весов голосов против принятия (300). При выполнении предложения, Участнику 4 начисляется 100 баллов рейтинга. Итоговое распределение рейтинга и весов голосов отображено в таблицах 3.3 и 3.4 соответственно.

Таблица 3.3 – итоговое распределение рейтинга участников

Имя участника Участник 1 Участник 2 Участник 3 Участник 4
Рейтинг 500 300 200 100

Таблица 3.4 – итоговое распределение веса голосов участников

Имя участника Участник 1 Участник 2 Участник 3 Участник 4
Вес голоса 0 300 325 100

Заключение

Разработанная система является основой для организации студенческого и преподавательского самоуправления университетом. Система позволяет выдвигать предложения по управлению университетом, а также голосовать за них каждому участнику системы самоуправления. Исполнение принятых предложений происходит автоматически. Система отвечает требованиям по безопасности, предъявляемым к подобным системам, а также не позволяет злоумышленникам подменить результаты голосования. Данные свойства достигаются за счёт децентрализованной природы данной blockchain-системы.

В дальнейшем планируется оптимизировать пользовательский интерфейс системы в сторону удобности и простоты пользования системы. Также планируется обеспечить анонимность участников голосования.

Список использованных источников

1. Болонский процесс [Электронный ресурс] – Режим доступа: https:/​/​ru.wikipedia.org/​wiki/​Болонский_процесс. – Дата доступа: 14.12.2016.
2. Можейко В., Беларусь и Болонский процесс: реальные плюсы и минусы Европейского пространства высшего образования [Электронный ресурс] – 2015. – Режим доступа: http:/​/​liberalclub.biz/​беларусь-и-болонский-процесс-реальны/. – Дата доступа: 08.01.2017.
3. Можейко В., Болонский процесс для Беларуси. Дорожная карта, а не à la carte [Электронный ресурс] – 2016. – Режим доступа: http:/​/​journalby.com/​news/​bolonskiy-process-dlya-belarusi-dorozhnaya-karta-ne-la-carte-766. – Дата доступа: 21.01.2017.
4. Можейко В., Болонский процесс. Что это такое и зачем он Беларуси [Электронный ресурс] – 2016. – Режим доступа: http:/​/​journalby.com/​news/​bolonskiy-process-chto-eto-takoe-i-zachem-belarusi-769. – Дата доступа: 19.01.2017.
5. Дианкина М.С., Роль и место студенческого самоуправления в системе воспитания студентов [Электронный ресурс] – Режим доступа: http:/​/​www.ssc.smr.ru/​media/​journals/​izvestia/​2010/​2010_3_336_339.pdf. – Дата доступа: 08.12.2016.
6. Студенческое самоуправление Беларуси [Электронный ресурс] – 2013. – Режим доступа: https:/​/​aboss.by/​sites/​default/​files/​page-2013/​book-studencheskoe-samoupravlenie-belarusi.pdf. – Дата доступа: 03.04.2017.
7. Delegative democracy // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​en.wikipedia.org/​wiki/​Delegative_democracy. – Дата доступа: 08.12.2016.
8. Делегативная демократия // tradition.wiki [Электронный ресурс] – Режим доступа: https:/​/​traditio.wiki/​Делегативная_демократия. – Дата доступа: 08.12.2016.
9. Bitcoin block hashing algorithm // bitcoin.it [Электронный ресурс] – Режим доступа: https:/​/​en.bitcoin.it/​wiki/​Block_hashing_algorithm. – Дата доступа: 06.01.2017.
10. Blockchain database // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​en.wikipedia.org/​wiki/​Blockchain_(database). – Дата доступа: 04.01.2017.
11. Цепочка блоков транзакций // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​ru.wikipedia.org/​wiki/​Цепочка_блоков_транзакций. – Дата доступа: 04.01.2017.
12. Умный контракт // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​ru.wikipedia.org/​wiki/​Умный_контракт. – Дата доступа: 15.01.2017.
13. Eth cryptocurrency overview // Cryptocompare [Электронный ресурс] – Режим доступа: https:/​/​www.cryptocompare.com/​coins/​eth/​overview. – Дата доступа: 25.01.2017.
14. Short Paper: Formal Verification of Smart Contracts [Электронный ресурс] – Режим доступа: http:/​/​www.cs.umd.edu/​~aseem/​solidetherplas.pdf. – Дата доступа: 04.02.2017.
15. Платформа Ethereum // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​ru.wikipedia.org/​wiki/​Ethereum. – Дата доступа: 23.01.2017.
16. Ethereum // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​en.wikipedia.org/​wiki/​Ethereum. – Дата доступа: 23.01.2017.
17. Decentralized autonomous organization // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​en.wikipedia.org/​wiki/​Decentralized_autonomous_organization. – Дата доступа: 5.3.2017.
18. Ethereum Whitepaper [Электронный ресурс] – Режим доступа: https:/​/​github.com/​ethereum/​wiki/​wiki/​White-Paper#mining. – Дата доступа: 3.3.2017.
19. Univereum project [Электронный ресурс] – Режим доступа: https:/​/​github.com/​frostiq/​univereum. – Дата доступа: 01.05.2017.
20. Students' union // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​en.wikipedia.org/​wiki/​Students%27_union. – Дата доступа: 03.01.2017.
21. Информационная теория демократии // Wikipedia [Электронный ресурс] – Режим доступа: https:/​/​ru.wikipedia.org/​wiki/​Информационная_теория_демократии. – Дата доступа: 25.12.2016.
22. Дмитрий Г., Эффективность деятельности студенческих профсоюзов [Электронный ресурс] – Режим доступа: http:/​/​studrada.org/​library/​policy_paper_students.pdf.
Clone this wiki locally