EN

e-Government будущего

В последнее время модно говорить об «электронном правительстве». О чем речь? Насколько Россия продвинулась в этой области? Каких ошибок нужно избежать? О реальных успехах российских разработчиков рассказывается на habrahabr.ru в статье Олега Стреленко, генерального директора проекта eGaaS.

Электронное правительство (e-Government) — способ предоставления информации и оказания уже сформировавшегося набора государственных услуг гражданам, бизнесу, другим ветвям государственной власти и государственным чиновникам, при котором личное взаимодействие между государством и заявителем минимизировано и максимально возможно используются информационные технологии.

Умный контракт (Smart contracts) — электронный алгоритм, описывающий набор условий, выполнение которых влечет за собой некоторые события в реальном мире или цифровых системах. Для реализации умных контрактов требуется децентрализованная среда, полностью исключающая человеческий фактор, а для возможности использования в умном контракте передачи стоимости требуется криптовалюта. Сторонники умных контрактов утверждают, что многие виды договорных отношений могут быть частично или полностью «самовыполняемыми» и самодостаточными. Умные контракты, основанные на криптографии, способны обеспечивать лучшую безопасность, чем традиционные контракты, основанные на праве, и снизить прочие трансакционные издержки, связанные с заключением договоров и возможными судебными издержками.

Слишком высокие трансакционные издержки могут помешать осуществлению экономического действия. Социальные и государственные институты позволяют снизить эти издержки при помощи формальных правил и неформальных норм. Мы все движемся к тому, что с каждым годом эти самые трансакционные издержки становятся все меньше и меньше за счет создания различных платформ вроде «Алибабы», возможности коммуникации через мессенджеры, взаимодействия с правительством посредством веб-сайтов и т.д. Учитывая, что смарт-контракты позволяют снизить издержки, логично предположить, что они тоже совсем скоро войдут в нашу жизнь также, как в нее вошли смартфоны, соцсети, e-Government, дистанционное образование, удаленная работа. Все что снижает издержки, рано или поздно становится мейнстримом.

Со смарт-контрактами в Эфириуме есть проблема, которая сводит на нет все преимущества. Если вписаться в неправильный контракт, то «попадешь» так же, как участники The DAO. Тогда к решению проблемы подключились разработчики Эфириума во главе с его основателем Виталиком Бутериным, по сути взяв на себя функции верховной власти. Виталик предложил проголосовать: вернуть деньги пострадавшим или оставить все как есть. Представьте, что бизнесмену заключить договор на $1 млрд и ему говорят – если что-то пойдет не так и в договоре найдется опечатка, то Виталик Бутерин во всем разберется и урегулирует ситуацию. Решать такие вопросы должны не разработчики ПО, а органы власти или независимая судебная система.

Hyperledger, Corda(R3) — что это и для чего

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

Самый главный недостаток Hyperledger, Corda в том, что они объединяют компании в разные не связанные между собой группы. Написать смарт-контракт, который будет работать с данными разных групп, уже будет невозможно (если только через костыли в виде ввода данных в контракт в ручном режиме или через специальный сервер, собирающий данные из внешних источников). То есть при выходе за пределы виртуальной машины возникает такая же проблема, как у Эфириума. Создание глобального объединения в Hyperledger и Corda не предусмотрено, так как платы за ресурсы в них нет, да и архитектура под это не заточена.

e-Government на блокчейне

В этой новости можно увидеть, казалось бы, что-то инновационное. Но представьте, что документы будут храниться не на сервере e-Government, а на серверах департаментов. Для поддержания этих серверов нужно нанимать специалистов, платить за канал, за электричество, обновлять вышедшее из строя оборудование и прочее. Это конечно хорошо, что подделать скан-копию документа никто не сможет, но ведь и на серверах e-govenrment вероятность такой подделки также не высока. При таком подходе ОАЭ может потратить к 2020 огромные суммы денег, а получить не сокращение издержек, а их увеличение.

Цифровая экономика в России

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

Оптимальная архитектура

Представьте, что есть возможность все построить с нуля. Как должно выглядеть само ядро архитектуры, чтобы трансакционные издержки можно было снизить до минимально возможных значений, при этом обеспечив должный уровень безопасности самой системы? В нашем варианте архитектуры мы видим 4 основные колонны: смарт-контракты, реестры, интерфейсы, блокчейн.

Смарт-контракты

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

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

data/conditions/action — тут, думаю, всё примерно понятно, это есть и у Эфириума и прочих. По сути, просто программный код. А вот условия изменения можно разобрать подробнее.

На обычном хостинге у вас есть код на PHP, который изменять можете только вы и админы хостинга. На серверах классического электронного правительства доступ есть у каких-то программистов/сисадминов, может у кого-то еще. Если кто-то что-то изменит, подотрет логи, а потом выяснится, что про VCS все забыли, то можно натворить очень много пакостей и остаться не причем. Для защиты от таких ситуаций у нас все изменения навсегда сохраняются в блокчейне. А если нет прав на изменение, то и изменить ничего не получится. Исключение — супер-права, но если кто-то с такими полномочиями добавил хотя бы одну запятую в код контракта, то это тоже навсегда сохранится в блокчейне. При этом будет записано, кто и когда произвел изменение.

Оплата потребляемых ресурсов

Кто будет платить за работу смарт-контракта? Смарт-контракт может иметь циклы и запросы к БД с миллиардом строк.

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

Ниже приведен пример смарт-контракта, который просто обновляет данные в реестре граждан.

Чтобы изменить такой контракт необходимо пройти проверку, которая происходит в MainConditions. При выполнении контракта средства за ресурсы спишутся с кошелька 0875-3553-1112-8181-5545.

Реестры

Если вы пользуетесь классической СУБД, то при выключенном логировании можно смело менять данные через консольку и никто этого не заметит — главное договориться о доступе к серверу в e-Government. Чтобы снизить вероятность такого происшествия, требуется серьезная регламентация на физическом уровне, которая, говорят, часто не соблюдается. У нас эта проблема решается на уровне ядра.

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

Интерфейсы

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

Необходимо учитывать, что эти страницы будут создавать не только государственные органы, но и компании, и простые граждане. Компания может захотеть создать каталог товаров. Кто-то создаст площадку, где граждане смогут продавать свои товары. Кто-то создаст аналог “Алибабы”, каталог собственников жилья и т.д. и т.п.

Оплата потребляемых ресурсов

Вот тут есть одна проблема. Каждый запрос к БД должен кем-то оплачиваться. Если за это будет платить гос-во, то что произойдет, если кто-то будет постоянно вытягивать из БД сотни миллионов строк, нагружая при этом сервера? Логично предположить, что платить должен создатель страницы или группа создателей (как за обычный облачный хостинг). Но тогда на страницы компаний будут заходить конкуренты и специально потреблять ресурсы. Для защиты можно тяжелые страницы поместить в закрытый доступ и пускать к ним только при согласии оплатить потраченные ресурсы самим посетителем страницы, а владельцам страниц дать возможность блокировать доступ к бесплатным страницам для граждан, у которых заела клавиша F5 (CMD+r). Но в большинстве случаев расходы будут минимальными, и задумываться об оплате и блокировках не придется.

Блокчейн

Читатели, которые хорошо знакомы с технологией блокчейн, наверняка задаются вопросом — а кто будет нодами? Хранить государственные данные в открытом виде на данный момент неприемлемо. Даже если мы их зашифруем и снаружи оставим только ID, то по истории транзакций можно будет понять, кто есть кто. Лично я убежден, что будущее за открытым блокчейном, но в текущих реалиях допустим пока только закрытый тип.

Нода — это ЦОД, блоки подписываются по очереди раз в секунду. Кол-во ЦОД должно быть более трех. Если их будет 2, тогда в случае вилки невозможно будет понять, у кого верные данные, придется пересобирать базу данных с самого первого блока.

То есть, если кто-то захочет через консольку записать в БД x=1, там где x было 0, а потом обратиться к этому значению из кода смарт-контракта, то на всех остальных нодах транзакция просто не пройдет, а в тот момент, когда в коде контракта кто-то пропишет if x==0, то скомпрометированная нода не сможет принять такой блок, в то время как остальные примут, в итоге те, кто принял, будут работать в своей ветке блокчейна, а скомпрометированая нода в своей, что на маршрутизаторе отобразится в виде разных хэшей.

Интересный вопрос — кто будет собственником ЦОД — государство или частная компания?

Заключение

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

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

В данной статье описана архитектура, которая позволит внедрить смарт-контракты в e-Government, что может привести к значительному сокращению бюрократии и ускорению всех экономических процессов.