# `L2` - Универсальный крипто-процессор (white paper)
## **1. Введение**
В современном мире каждый из нас ежедневно совершает множество транзакций. Мы оплачиваем покупки, переводим деньги, авторизируемся в веб-приложениях, пересылаем криптовалюту, отправляем подписанную ЭЦП (электронно-цифровой подписью) отчетность в налоговую. Все эти операции с технической точки зрения являются одним и тем же — транзакциями. **Транзакция** — сообщениие с кодом аутентификации, который служит для проверки личности пользователя. Перечисленные транзакции являются транзакциями **первого слоя**. Такие транзакции генерируются и обрабатываются с использованием различных протоколов, предусмотренных разработчиками системы, в рамках которой эти транзакции ходят. В Биткойне используется протокол, описанный и реализованный [Сатоши Накамото](https://bitcoin.org/bitcoin.pdf), в Apple pay/Google pay/Visa/MC/AMEX - используются протокол токенизированных платежей [EMV Payment Tokenisation](https://www.emvco.com/emv-technologies/payment-tokenisation/), в Фейсбуке - протокол авторизации [OAUTH](https://oauth.net/2/).
Некоторые транзакции первого слоя имеют недостатки. Биткойн, например, обладает ограниченной пропускной способностью и относительно высокой стоимостью транзакции, банковские переводы — требуют наличия счета в банке и ограничения по сумме и назначению перевода и т.п. Но главная проблема заключается в том, что практически никакие транзакции первого слоя автоматически не поддерживают напрямую работу с транзакциями первого слоя другой системы. Например, невозможно получить доступ к платному контенту на сайте без использования бекенда этого сайта, который связывает факт оплаты в платежном слое и разрешение на получения доступа к контенту в слое авторизации. Разработка таких связей затратна, и хотя многие из них предоставляются в виде готовых решений, использование их влечет дополнительные расходы и ненужные риски: риск неавторизованного доступа, риск компрометации данных для получения доступа, риск авторизации разными пользователями по одним и тем же данным и другие риски.
Для устранения описанных недостатков мы решили создать сеть для транспорта и обработки транзакций во **втором слое** - `L2 Network` (`L2N`). Мы не первые, кто пытается создать систему второго слоя. Один из самых ярких и успешных примеров — разработчки Lightning Network (`LN`). `LN` — это протокол, реализующий сеть второго слоя над биткойн-подобными блокчейнами на основе технологии платежных каналов. Платежные каналы открываются между двумя узлами сети после блокировки в блокчейне определенного количества токенов с каждой стороны. После открытия канала, пользователи могут мгновенно переводить друг другу токены в рамках заблокированной суммы. Однако, реализация этой перспективной технологии в рамках `LN` имеет существенные недостатки. К ним относится чрезмерная техническая сложность присоединения к сети и необходимость постоянного онлайн присутствия для пользователя. Помимо этого серьезное ограничение `LN` состоит в работе исключительно с транзакциями первого слоя биткойн-подобных блокчейнов. Наша же цель состоит в реализации технологии платежных каналов со всеми преимуществами`LN` (мгновенные платежи, безопасность пользовательских данных), без недостатков этого протокола. Кроме этого сеть должна работать не только над всеми распространенными блокчейнами, но и вообще над любыми траназкциями первого слоя, включая фиатные платежи, работу с персональными данными, авторизацию и т.д.

## **2. Пользовательская нода (узел сети)/Кошелек**
Для реализации требований безопасности каждый пользователь в `L2N` должен являться полноценным узлом сети (нодой). Вместе с этим для привлечения широкой аудитории необходимо, чтобы присоединение к сети было простым и быстрым для подавляющего большинства пользоватей интернета. Ну и наконец, использование сети подразумевает, что чувствительные пользовательские данные хранятся на стороне пользователя и должны быть максимально защищены.
Решения наподобие расширения браузера или установки софта на компьютер не подходят по ряду из перечисленных причин. На наш взгляд, единственное подходящие решение на сегодняшний день — использование стандартов W3C [`Web Payments`](https://www.w3.org/blog/wpwg/) и [`WebauthN`](https://www.w3.org/TR/webauthn/). `Web paymants` разработан ведущими технологическими и финтех компаниями для повсеместного внедрения в веб-приложения токенезированных платежей. Примером работы `WP` является современная реализация [Apple Pay](https://applepaydemo.apple.com) и [Google Pay](https://developers.google.com/web/fundamentals/payments). `WebauthN` разработан для безопасной многофакторной аутентификации пользоватея без использования паролей. Оба стандарта основываются на криптосистемах с открытым ключем, где для подтверждения подписи к сообщению нет необходимости публиковать приватный ключ с помощью которого был сгенерированна подпись. Это означает, что при оплате GooglePay/ApplePay не передаются данные карточек пригодные для совершения повторного платежа, передается только специальный платежный токен, идентифицирующий пользователя и подтверждающий факт оплаты на определенную сумму.
> https://applepaydemo.apple.com

> https://developers.google.com/web/fundamentals/payments
{%youtube colCcgKoLUM %}
Использование этих стандартов позволило нам создавать для каждого пользователя легкую ноду сети (`keyless`) способную обрабатывать транзакции первого и второго слоя. Нода устанавливается в один клик в особо защищенный анклав браузера (`платежный хендлер`), туда же, где хранятся данные карточек в GooglePay/ApplePay. При установке ноды на основании данных аутентификации для пользователя генерируется мастер-ключ. Данные аутентификации включают идентификатор устройства пользователя и один из трех факторов аутентификации (пароль/ физический ключ/ биометрическая информация). Использование указанных данных является необходимым и достаточным требованием современных банковских норм к [безопасносной аутентификации пользователей](https://www.paymentscardsandmobile.com/strong-customer-authentication-what-matters-most-to-online-shoppers/).
Транзакции пользователя генерируются на основании мастер-ключа в хендлере, поэтому пользовательские данные никогда не покидают его устройство. Таким образом для кражи данных конкретного пользователя необходимо взломать платежных хендлер, разработанный Google, что не может быть экономически оправдано.

Транзакции в `keyless` подразумевают не только совершение платежей, как в `LN`, но и возможности, например, авторизации на сайте. Использование `keyless` в этом аспекте будет аналогично для пользователя facebook авторизации, но будет существенно безопаснее за счет использование хендлера, а так же предоставит ряд дополнительных возможнстей. Например, покупка конкретной единицы контента вместо подписки.
### **2.1. Виртуальная машина L2 VM**
После того как мы добились безопасного хранения и простого пользовательского интерфейса кошелька перед нами стояла последняя задача — научиться корректно обрабатывать транзакции в различных сетях первого слоя. Блокчейн-транзакции, онлайн-платежи, авторизация по логину и паролю имеют принципиально разный интерфейс и некоторые из них имеют весьма сложную логику (в частности платежные каналы биткойна). Так как передача данных пользователя недопустима, процессинг должен полностью осуществляться в хендлере на стороне пользователя. Одновременно сложность предлагаемого решения предъявляет высокие требования к компетенциям разработчика. Учитывая эти жесткие ограничения, мы приняли решение создать вирутальную машину на базе эфирной виртуальной машины (EVM1), которая позволила бы скрыть все сложности разработки от сторонних программистов, использующих `keyless` и позволила бы максимально быстро тиражировать разработку.
Виртуальная машина (`L2 VM`) — это по сути мини-процессор, который работает в платежном хендлере пользователя и обрабатывает его транзакции. `L2 VM` может обрабатывать транзакции первого и второго слоя, причем не имеет значения, что будет выступать в роли первого слоя, вирутальная машина сможет обрабатывать любые типы транзакций.

## 3. Протокол второго слоя (`SLAP`).
> Second Layer Application Protocol
Необходимость обеспечения корректной работы сети и невозможность для широкого круга пользователей быть постоянно онлайн требует разделения участников сети на две группы: **професиональных участников** и **пользователей**. Пользователь может открыть платежный канал только с профессиональным участником. Профессиональные участники используют сеть `L2N` в своих бизнес-процессах для извлечения прибыли, они могут открывать каналы как с пользователями, так и между собой. Главным условием для профессиональных участников являются инвестиции в привлечение пользователей и поддержание своих узлов сети в постоянной доступности. Взамен такие участники делят между собой комиссии, возникающие при конвертации между первыми слоями различных систем. На уровне протокола в системе реализован автоматический обмен между всеми подключенными в систему токенами, а для обеспечения потребности в крупных обменах для профессиональных участников реализованна платформа обмена с книгой заявок. Для пользователей обеспечивается максимально комфортный пользовательский опыт с отсутствием требования постоянной доступности, что является важным преимуществом перед многими системами второго слоя.
Основные возможности для профессиональных участников заключаются в построении на основе технологии бизнес-процессов. Вот некоторые из них:
1. Криптовалютная биржа. Совмещение централизованной постановки ордеров и децентрализованного хранения средств трейдеров.
2. Мгновенный обменник. Возможность осуществление мгновенного обмена токенов и отсутствие необходимости содержать инфраструктуру для хранения активов.
3. Лицензионная продажа контента. Возможность точечной продажи контента с поддержкой микроплатежей и поминутной тарфикацией.
4. Автоматизированный онлайн-магазин. Продажа готового решения без необходимости
5. Гемблинг и букмекинг. Поддержка ставок без необходимости депозита в реальном времени.
## 4. Подробные сценарии использования.
Ключевые КП:
1. Просто.
2. Быстро.
3. Интегрированно во все(https://w3c.github.io/web-share/).
### 4.1. Криптовалютная биржа.
Основным преимуществом биржи созданной с использованием технологии **L2N** является возможность обеспечить гарантированную сохранность средств пользователя, находящихся на торговом депозите. Это возможно благодаря тому, что между пользователем и биржей открыт платежный канал, в котором задепонированы средства пользователя, но расходуются они только в момент постановки лимитного или исполнения маркетного ордера. Мгновенные транзакции в платежных каналах позволяют совместить надежность децентрализованных бирж с функциональностью централизованных.
Другим важным преимуществом для владельцев биржи является отсуствие необходимости содержать инфраструктуру горячих и холодных кошельков и нести риски с ней связанные. Все средства находятся в контрактах платежных каналов, что исключает возможность их потери из-за злого умысла сотрудников или хакерской атаки.
Для пользователя биржи может предложить новый опыт пополнения и вывода средств без необходимости вводить адрес кошелька, поскольку **L2N** по умолчанию интегрирована с кошельком keyless. Все вводы-выводы средств осуществляются автоматически.
### 4.2. Мгновенный обменник.
Для мотивации профессиональных игроков держать открыте позиции, создавая тем самым ликвидность на бирже, в состав биржи введен интерфейс мнгновенного обмена.
Когда трейдер размещает лимитный ордер в книгу заявок, этот ордер автоматически попадает в пул провайдера ликвидности, выполняющего роль [автоматизированного маркет-мейкера](https://paper.dropbox.com/doc/L2--A0rIOvCObQIqojQuh4ef4RU4AQ-O80yREBTnEKitVY8tpYpv), который регулирует курс обмена исходя из потоков заявок на покупку и продажу.
Пользовательский интерфейс мгновенного обмена реализован в виде встраиваемого виджета для размещения на сторонних веб-ресурсах для обмена токенов с целью хранения. Помимо этого доступна функция автоматической конвертации при оплате.
Коммисию за эти обмены делят между собой оператор ордербука(**l2.exchange**) и инвесторы провайдера ликвидности(**l2.trader**).
### 4.3. Лицензионная продажа контента.
Сегодня в мире активно растет потребление контента. Люди проводят все больше времени за просмотрами сериалов, прохождением онлайн-курсов и чтением книг. Однако из-за устаревших технологий авторизации, производителям контента все еще не удается должным образом монетизировать контент и надежно защититься от пиратства. Построение системы защиты контента затратно, но даже самая лучшая защита не может надежно запретить пользователю свободно распространять свои регистрационные данные среди сколь угодно широкого круга лиц. Кроме этого, невозможность работать с микро-платежами и эффективно разграничивать доступ к контенту вынуждает бизнес продавать контент крупными блоками (в виде подписки на газету или курса целиком), хотя гораздо выгоднее было бы предоставить пользователю возможность купить отдельные статьи или уроки отдельно.
Перечисленные недостатки обусловлены необходимостью напрямую связывать платежный слой и слой авторизации через бекенд поставщика услуги. По мере усложнения логики таких связей сложность их разработки вырастает нелинейно. В `L2N` используется принципиально иная схема предоставления авторизации — на основе криптографического подтверждения права на доступ к контенту. Иными словами в "традиционном" подходе, когда пользователь запрашивает доступ, бекенд сервиса проверяет, есть ли в БД запись о том, что пользователь имеет доступ к этому контенту, а в `L2N` запрашивает транзакцию, включающую токен, который подтверждает право доступа. Получение такого токена может происходить в первом слое любой другой системы в результате оплаты, получения промо рассылки, бартера и т.п. Производителю контента не нужно думать об этом, потому что первые слои в `L2N` связаны на уровне протокола.
Благодаря тому, что транзакция может включать дополнительную информацию подход `L2N` является намного более гибким. В перспективе он позволит осуществлять доступ к определенному типу контента, на определенное время, определенного уровня и т.д. Дополнительном преимуществом является то, что `keyles` как универсальное средство идентификации не может быть передан другому лицу из-за крайней чувствительности информации, содержащейся в нем. Это решает проблему передачи авторизационных данных и позволит производителю контента убедиться, что контент потребляется исключительно тем пользователем, который имеет на него права, в тех границах, в котрых эти права установлены. Причем продаваемые кусочки контента могут быть практически сколько угодно малы вплоть до отдельных видео или статей. Огромным экономическим преимуществом явялется то, что при использовании `L2N` компаниям вообще не потребуется использовать бекенд для разграничения и предоставления прав доступа, что позволит существенно сэкономить на разработке и инфрастуктуре.
Рассмотрим пример. Видеомейкер хочет выложить на сайте несколько видео и открывать доступ к просмотру каждого за 1 доллар. В обычном случае ему надо интегрировать с бекендом платежку и сохранять в базу информацию о платеже за конкретное видео. После запроса на доступ к видео бекенд проверяет в базе, есть ли там информация о платеже за это видео для этого пользователя и в зависимости от результата предоставляет доступ. Весь этот механизм требует хранить пользовательские данные и связывать их между собой. В случае использования `L2N` весь этот механизм излишен.
Видеомейкер подключает ноду `L2N` к сайту, выкладывает контент и устанавливает цену. Пользователь оплачивает видео `L2N` чезер свою ноду любым удобным способом (любая фиатная или криптовалюта, бартер) и получает токен доступа, на основе которого собирает транзакцию доступа к видео. Нода `L2N` на стороне видеомейкера проверяет транзакцию и предоставляет доступ к видео конкретному пользователю. Вознаграждение за контент видеомейкер получает в любом удобном ему первом слое.
### 4.4. Автоматизированный онлайн-магазин.
Использовагие L2N позволит существенно упростить и удешевить создание онлайн-магазина. Основное преимущество состоит в отсутствии необходимости хранить и обрабатывать пользовательские данные при осуществелении покупки. Фактически весь функционал онлайн магазина в рамках работы с L2N сводится к составлению каталога с ценами на товар. Такой каталог на порядок проще реализовать и актуализировать с точки зрения трудозатрат, чем классическую инфраструктуру онлайн-магазина.
Не обязательно представлять в виде каталога весь ассортимент магазина, можно создавать отдельные подборки товаров объединенные по какому-то принципу. Отсутсвие связи процесса продаж с бекендом магазина позволяет помещать эти мини-подборки в виде баннеров или виджетов на сторонние ресурсы, что предельно сокращает воронку продаж и повышает эффективность маркетинга. В предельном случае технология позволяет вообще не иметь сайта онлайн-магазина, а продавать исключительно через виджеты, размещенные на страницах источника трафика.
### 4.5. Гемблинг и букмекинг.
Из-за отстутсвия должного регулирования в большинстве стран игорная индустрия и букмекеры находятся в серой зоне. Большинство платежных систем работают с такими компаниями неохотно. Для пользователей это означает высокие комиссии, сложность в использовании и высокую вероятность блокировки их средств. У некоторых участников рынка, обман пользователей является частью "бизнес-стратегии", что вынуждает добросовестных игроков тратить чрезмерное количество ресурсов и годами нарабатывать репутацию для доказательства свей благонадежности. Все это ведет к черезвычайно высоким комиссиям для игроков, делает игру слишком невыгодной и существенно сокращает потенциальный рынок.
L2N позволит решить проблему доверия между участниками рынка на уровне технологии и сократить чрезвычайно высокие транзакционные комиссии, одновременно улучшив пользовательский опыт. Это возможно благодаря полному вынесению процессинга на сторону L2N и разделения бизнес процесса создания игрового софта и обработки платежей. Работа в платежных каналах позволит обеспечить пользователю гарантию сохранности средств и выплаты выигрыша. Одновременно это позволит осуществлять микро-платежи, например для депозита за покерными столом или для ставки каждой отдельной ставки в онлайн-казино. Гемблинг компании могут предложить пользователям прием средств и вывод в любой валюте поддерживаемой keyless благодаря встроеному обменнику. Теоретически возможны даже экзотические варианты вроде ставок в одной валюте, а выплаты в другой.
## 5. Конкурирующие решения
### 5.1. Lightning Network
Основная ссылка: https://lightning.network/
### 5.2. Raiden Network
Основная ссылка: https://raiden.network/
### 5.3. Perun Network
Основная ссылка: https://perun.network/
### 5.4. Ethereum: Liqudity Network
Основная ссылка: https://liquidity.network/
Описание [TEX.LN на ethhub](https://docs.ethhub.io/built-on-ethereum/decentralized-exchanges/layer-2-based/what-is-layer-2-based/)