The paper description of Agorata https://agorata.io/whitepaper.pdf
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
10 KiB

\documentclass[twoside]{article}
\usepackage{blindtext} % Package to generate dummy text throughout this template
\usepackage[sc]{mathpazo} % Use the Palatino font
\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
\linespread{1.05} % Line spacing - Palatino needs more space between lines
\usepackage{microtype} % Slightly tweak font spacing for aesthetics
\usepackage[english]{babel} % Language hyphenation and typographical rules
\usepackage[hmarginratio=1:1,top=32mm,columnsep=20pt]{geometry} % Document margins
\usepackage[hang, small,labelfont=bf,up,textfont=it,up]{caption} % Custom captions under/above floats in tables or figures
\usepackage{booktabs} % Horizontal rules in tables
\usepackage{lettrine} % The lettrine is the first enlarged letter at the beginning of the text
\usepackage{enumitem} % Customized lists
\setlist[itemize]{noitemsep} % Make itemize lists more compact
\usepackage{abstract} % Allows abstract customization
\renewcommand{\abstractnamefont}{\normalfont\bfseries} % Set the "Abstract" text to bold
\renewcommand{\abstracttextfont}{\normalfont\small\itshape} % Set the abstract itself to small italic text
\usepackage{titlesec} % Allows customization of titles
\renewcommand\thesection{\Roman{section}} % Roman numerals for the sections
\renewcommand\thesubsection{\roman{subsection}} % roman numerals for subsections
\titleformat{\section}[block]{\large\scshape\centering}{\thesection.}{1em}{} % Change the look of the section titles
\titleformat{\subsection}[block]{\large}{\thesubsection.}{1em}{} % Change the look of the section titles
\usepackage{authblk}
\usepackage{graphicx}
\usepackage{svg}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{fancyhdr} % Headers and footers
\pagestyle{fancy} % All pages have headers and footers
\fancyhead{} % Blank out the default header
\fancyfoot{} % Blank out the default footer
\fancyhead[C]{Agorata $\bullet$ July 2022 $\bullet$ \href{https://agorata.io}{agorata.io}} % Custom header text
\fancyfoot[RO,LE]{\thepage} % Custom footer text
\newcommand\blfootnote[1]{%
\begingroup
\renewcommand\thefootnote{}\footnote{#1}%
\addtocounter{footnote}{-1}%
\endgroup
}
\usepackage{titling} % Customizing the title section
\usepackage{hyperref} % For hyperlinks in the PDF
%----------------------------------------------------------------------------------------
% TITLE SECTION
%----------------------------------------------------------------------------------------
\setlength{\droptitle}{-4\baselineskip} % Move the title up
\pretitle{\begin{center}\Huge\bfseries} % Article title formatting
\posttitle{\end{center}} % Article title closing formatting
\title{Agorata} % Article title
\author{%
\textsc{Lev Chizhov}$^{1,2}$\\
\normalsize \href{https://ennucore.com}{@ennucore} % Your email address
%\and % Uncomment if 2 authors are required, duplicate these 4 lines if more
%\textsc{Jane Smith}\thanks{Corresponding author} \\[1ex] % Second author's name
%\normalsize University of Utah \\ % Second author's institution
%\normalsize \href{mailto:jane@smith.com}{jane@smith.com} % Second author's email address
}
\date{\today} % Leave empty to omit a date
\renewcommand{\maketitlehookd}{%
\begin{abstract}
\noindent Agorata is an implementation of the idealized economic agent, or, specifically, an aggregator of smart contracts. It combines one or more contracts proposed by the members of the network in a deal which can be evaluated as profitable for Agorata with low risks. Using this approach, Agorata can provide infrastructure for loans, flashloans, bets, derivatives, bridging between chains, and many more financial instruments.
\end{abstract}
}
%----------------------------------------------------------------------------------------
\begin{document}
% Print the title
\maketitle
\blfootnote{$^{1}$ Moscow Institute of Physics and Technology}
\blfootnote{$^{2}$ Ludwig-Maximilians-Universität München}
\tableofcontents
%----------------------------------------------------------------------------------------
% ARTICLE CONTENTS
%----------------------------------------------------------------------------------------
\section{Introduction and overview}
\indent There is a variety of standard financial organizations that provide their capital for some simple purely financial deals: banks, brokers, gambling institutions, betting institutions and many more. Most of them have their own DeFi counterparts, as well as some services that are only possible on the blockchain --- for example, flashloans.
All of these organizations can be generalized to an economic agent that has a utility function and who takes the deal if and only if it is the most beneficial in terms of this function. These particular implementations, however, only consider a very limited subset of deals. Also, all of them work only with purely financial deals which include not more than 3 parties\footnote{An example of such a deal with three parties is a stanard deal on a financial market.}, including the financial organization.
Technologies of decentralization and smart contracts in particular provide the foundation for a much more fundamental entity --- one which goes far beyond standard simple templated purely-financial deals. Instead, this entity can be the implementation of the general economic agent. It can analyze deal proposals and combine them into a very complex deal, which it will evaluate and participate in. As a result, this entity can serve as a liquidity provider, loan broker, a service for finding a counterparty. It is worth noticing that as the blockchain technologies spread into multiple fields (not only financial), a service like that can become much more versatile and participate in deals including various assets (domain names, art, computational resources are the examples of what can be possible now, future applications will go much further).
The goal of this whitepaper is to present such an entity --- Agorata.
\section{Decision-making algorithm}
In this chapter, the strategy for making decisions will be described.
\subsection{Deal representation}
A deal proposal is made by the user in the form of a smart contract. A smart contract is considered as an entity with which other entities (users, smart contracts) can interact via messages\footnote{The message concept used here is from The Open Network (TON). A message can include tokens, commands, information, code.}.
For a state of the contract we can determine the messages that can be sent to the contract and for each of them --- the response messages and the next state. The deal is represented as a tree with states as leafs and actions (messages) as edges. Depending on the actions, the deal has a total outcome --- the number of tokens that were gained/spent by the agent.
\begin{figure}[!htb]
\centering
\includegraphics[width=0.6\linewidth]{graph.png}
\caption{Deal representation.}
\label{fig:01}
\end{figure}
Each action (message) has parameters $\theta$, including:
\begin{enumerate}
\item $t$ --- the time at which the message is sent.
\item $s$ --- the sender of the message.
\item tokens sent with the message.
\item any other possible information.
\end{enumerate}
The parameter space for each action can be constrained --- the smart contract can reject some of the messages. For instance, this can lead to the entire space consisting of a single element (the contract rejects everything except for one specific message, e.g. a specific person sending a specific amount of tokens).
The main parameters of the state are the financial outcomes for the smart contracts.
The state is written as a function of all parameters of all actions in a formal language.
\subsection{Agent parameters}
\begin{enumerate}
\item $T_{0}$ is the maximum deal duration --- i.e., the horizon after which the benefits of the deal are not considered.
\item $\tau$ is the charachteristic time of discount --- $\exp({\frac{1\,year}{\tau}}) - 1$ is the minimal yearly rate for a loan.
\item $r$ is the risk parameter for currency switching --- the agent will only agree to swap no less than $(1+r)x$ in one currency for $x$ in another.
\end{enumerate}
Given these parameters, the value function $V((x_{i}), (t_{i}))$ (or $V(S)$) can be determined. It takes the sequence of values $(x_{i}, t_{i})$, where $x_{i}$ are the incoming/outcoming tokens from the agent.
\subsection{Deal evaluation}
The agent considers the worst case of the deal from the perspective of game theory: the best (from the perspective of the value function) actions of the agent and the ``worst'' actions of the counteragents.
This sequence of events is the run through the value function in order to make a decision.
Thus, a deal is considered profitable for the agent ($A$) $\iff$ $p(S_{i})$ $\iff$
$$V(S_{i})>0 \vee \\ (\forall a_{ij} (V(S_{ij}) > 0 \vee a.s = A) \wedge a_{ij}: V(S_{ij})>0)$$
The algorithm starts at the node $S_{0}$, then considers all the possible actions (including the abscence of one) and calls the algorithm at $S_{0i}$. If there is any action of the counteragent that makes the contract non-profitable for the agent, the deal is considered non-profitable. If there is no possible action and the state includes profit for the agent, the deal is considered acceptable.
\subsection{Examples}
\begin{figure}[!htb]
\centering
\begin{subfigure}[b]{0.48\textwidth}
\centering
\includegraphics[width=\textwidth]{flashloan_graph.png}
\caption{Flashloan}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.48\textwidth}
\centering
\includegraphics[width=\textwidth]{loan_graph.png}
\caption{Loan}
\end{subfigure}
\caption{Graphs for some simple contracts}
\end{figure}
\section{Contract evaluation algorithm}
In the previous section of the article we specified how the decisions are made. One of the most important parts of the process is finding out whether there exists any action that makes the deal profitable or unprofitable. It is also important to know which actions the agent should make to maximize its output. How do we do that?
The state parameters are represented as functions of action parameters expressed in a formal language. This allows to make all the decision based on mathematically proven algorithms.
\subsection{Building the formal tree}
\subsection{Considering the deal}
% Here it's about the path consideration algo + formal maximization + *template matching*
\section{Applications}
\subsection{Flashloans}
\subsection{Loans}
\subsection{Bridges}
\subsection{Bets}
\subsection{More complex examples}
\section{Conclusion}
\end{document}