Add new talk

This commit is contained in:
rfl 2024-11-02 09:53:30 +01:00
parent 9cfa932af3
commit 87c5e3e626
Signed by: rfl
GPG key ID: 48B0E5DDF8FA62EF
44 changed files with 748 additions and 0 deletions

View file

@ -0,0 +1,512 @@
\documentclass[11pt,xcolor={dvipsnames},hyperref={pdftex,pdfpagemode=UseNone,hidelinks,pdfdisplaydoctitle=true},usepdftitle=false,169]{beamer}
\usepackage{minimal-theme}
\usepackage{qrcode}
\usepackage{todonotes}
\usepackage[normalem]{ulem}
% Enter presentation title to populate PDF metadata:
\hypersetup{pdftitle={ethereum-monetary-strategies}}
% Enter path to PDF file with figures:
% \newcommand{\pdf}{figures.pdf}
\newcommand{\fnurl}[1]{{\footnotesize \url{#1}}}
\renewcommand{\lastslide}{
\begin{frame}
\centering
Vielen Dank für eure Aufmerksamkeit\\
\vspace{2cm}
\begin{tabular}{cc}
\includegraphics[height=0.3cm]{figures/mail-icon} & rfl@flipdot.org \\
\includegraphics[height=0.3cm]{figures/matrix-icon} & @rfl:flipdot.org \\
\includegraphics[height=0.3cm]{figures/mastodon-icon} & rfl@social.flipdot.org
\end{tabular}
\end{frame}
}
\begin{document}
% Enter title:
\title{\centering{Das Ethereum Netzwerk und \\\hspace{1.5cm} seine Monetäre Strategien}}
\information
%
% Enter URL to research paper (can be commented out):
%[https://]
%
% Enter authors:
{\centering rfl}
%
% Enter location and date (can be commented out):
{\centering somewhere\\2024-11-03}
\frame{\titlepage}
\begin{frame}
\centering
Folien\\
\vspace{1cm}
\qrcode[height=5cm]{https://code.flipdot.org/rfl/talks}\\
\vspace{1cm}
\url{https://code.flipdot.org/rfl/talks}
\end{frame}
\begin{frame}
\frametitle{Was ist Ethereum?}
\centering
\begin{figure}
\includegraphics[height=0.8\textheight]{figures/blind-men-and-elephant}
\end{figure}
\fnurl{https://en.wikipedia.org/wiki/Blind_men_and_an_elephant}
\end{frame}
\begin{frame}
\frametitle{Ethereum ist ...}
\begin{itemize}
\item<1-> eine Idee
\item<2-> ein Soziales Netzwerk
\item<3-> eine Blockchain
\item<4-> ein Geld des Internets
% \item<4-> das Geld des Internets (?)
\end{itemize}
\end{frame}
\begin{frame}
\heading{Ethereum ist eine Idee}
\end{frame}
\begin{frame}
Anfänge:
\begin{itemize}
\item Bitcoin (2009)
\item Whitepaper (2013)
\item Stiftung Ethereum (2014)
\item Genesisblock (2015)
\end{itemize}
\end{frame}
\begin{frame}
\begin{minipage}{0.39\textwidth}
Ziele:
\begin{itemize}
\item Dezentralisierung
\item Unzensierbarkeit
\item Transparenz
\item Benutzbarkeit
\end{itemize}
\end{minipage}
\begin{minipage}{0.6\textwidth}
\centering
\visible<2->{
\begin{figure}
\includegraphics[width=0.8\textwidth]{figures/blockchain-trilemma}
\end{figure}
\fnurl{https://learn.swyftx.com/blockchain/blockchain-trilemma}
}
\end{minipage}
\end{frame}
\begin{frame}
\heading{Ethereum ist ein Soziales Netzwerk}
\end{frame}
\begin{frame}
\begin{minipage}{0.5\linewidth}
\begin{itemize}
\item Foren
\item Blogs
\item Social-Media Beiträge
\item Konferenzen
\item Verbesserungsdiskussionen
\end{itemize}
\end{minipage}
\begin{minipage}{0.49\linewidth}
\begin{figure}
\includegraphics<1>[width=\textwidth]{figures/ethresearch}
\includegraphics<2>[width=\textwidth]{figures/ethmagicians}
\includegraphics<3>[width=\textwidth]{figures/finematics}
\includegraphics<4>[width=\textwidth]{figures/vitalik-blog}
\end{figure}
\end{minipage}
\end{frame}
\begin{frame}
\frametitle{Hauptakteure}
\begin{itemize}
\item Kern-Entwicklerteam (offen nach Eignungsphase)
\item Podcaster
\item Benutzer durch Social-Media Beiträge
\item Ethereum Stiftung (eher selten)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Verbesserungsdiskussionen}
\begin{itemize}
\item engl. EIP = Ethereum Improvement Proposal
\item Variabler Umfang, kann alles Mögliche enthalten
\begin{itemize}
\item von utopischen Visionen
\item über Mathematischen Beweise
\item bis zu ausführlichen Vorbereitung der Änderungen
\end{itemize}
\item Diskussionen werden nahezu vollständig offen im Internet geführt
\item Einigung unter den Hauptakteuren führt zur Änderung
\item Mitunter auch nicht möglich, dann eventull Spaltung der Systeme
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Beispiel}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{figures/eip-1559-text}
\end{figure}
\end{frame}
\begin{frame}
\heading{Ethereum ist eine Blockchain}
\end{frame}
\begin{frame}
\frametitle{Computercode}
\begin{itemize}
\item Unterschied zwischen Spezifikation und Anwendung
\item es gibt nur eine Spezifikation, aber unzählige Anwendungen in den
verschiedensten Programmiersprachen
\item Anzahl der Programmierer der Spezifikationen $<100$\\
{\footnotesize \url{https://github.com/ethereum/consensus-specs}}
\item Anzahl der Programmierer der Anwendungen $>20000$\\
{\footnotesize z.B. \url{https://github.com/ethereum/go-ethereum}}
\item Automatische Tests, ob Anwendungen die Spezifikationen erfüllen
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Grundlagen}
Man will ...
\begin{itemize}
\item Zustände ausfallsicher speichern
\item nur zulässige Änderungsvorgänge unfälschbar durchführen
\item alles für Beobachter transparent nachvollziehbar
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Interlude: Public key Kryptographie}
\centering
\begin{figure}
\includegraphics[width=0.3\textwidth]{figures/public-key-cryptography-0}
\end{figure}
\begin{minipage}{0.49\textwidth}
\centering
\begin{figure}
\includegraphics[width=0.8\textwidth]{figures/public-key-cryptography-1}
\end{figure}
\end{minipage}
\begin{minipage}{0.49\textwidth}
\centering
\begin{figure}
\includegraphics[width=0.8\textwidth]{figures/public-key-cryptography-2}
\end{figure}
\end{minipage}
\fnurl{https://en.wikipedia.org/wiki/Public-key_cryptography}
\end{frame}
\begin{frame}
\frametitle{Ledger}
\begin{itemize}
\item Sammlung von allen ``Wer hat was?'' Aussagen
\item Adresse ist gleich öffentlicher Schlüssel
\item Wallet verwaltet geheimen Schlüssel
\item Nur Eigentümer des geheimen Schlüssels kann Transfer initialisieren
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Transaktionen}
Statt Alice gibt Bob 5 Euro heißt es nun:
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/eth-transaction}
\end{figure}
\fnurl{https://inevitableeth.com/home/ethereum/blockchain/transaction}
\end{frame}
\begin{frame}
\frametitle{Smart Contracts}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/vending-machine}
\end{figure}
\fnurl{https://finematics.com/smart-contracts-explained/}
\end{frame}
\begin{frame}
\frametitle{Storage}
\begin{minipage}{0.5\textwidth}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/patricia-trie}
\end{figure}
\fnurl{https://medium.com/codechain/modified-merkle-patricia-trie-how-ethereum-saves-a-state-e6d7555078dd}
\end{minipage}
\begin{minipage}{0.45\textwidth}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/state-distribution}
\end{figure}
\fnurl{https://vitalik.eth.limo/general/2024/10/23/futures4.html}
\end{minipage}
\end{frame}
\begin{frame}
\frametitle{EVM}
\begin{minipage}{0.49\textwidth}
\begin{itemize}
\item EVM = ethereum virtual machine
\item EVM ist Turing-vollständig
\item Halting-Problem ist unentscheidbar
\end{itemize}
\end{minipage}
\begin{minipage}{0.49\textwidth}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/vyper-code}
\end{figure}
\fnurl{https://whiteboardcrypto.com/vyper-signed-integers/}
\end{minipage}
\end{frame}
\begin{frame}
\frametitle{Gas}
\begin{itemize}
\item Synthetisches Verbrauchsgut
\item verhindert nicht-endende Berechnungen
\item Jeder Berechnungsschritt kostet Gas
\item Rückabwicklung bei unzureichender Vorsorge
\item Entkopplung Transaktionskosten von ETH-Preis
\end{itemize}
\centering
\visible<2>{
\begin{figure}
\includegraphics[width=\textwidth]{figures/gas-calculation}
\end{figure}
\fnurl{https://finematics.com/what-is-gas-ethereum-high-transaction-fees-explained/}
}
\end{frame}
\begin{frame}
\heading{Ethereum ist ein Geld des Internets (?)}
% heading{Ethereum ist das Geld des Internets (?)}
\end{frame}
\begin{frame}
\frametitle{Proof of Stake (- Metapher)}
\centering
\begin{minipage}{0.49\textwidth}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/colosseum-old}
\end{figure}
\fnurl{https://en.wikipedia.org/wiki/Colosseum}
\vspace{1.8cm}
\end{minipage}
\hspace{0.1cm}
\begin{minipage}{0.4\textwidth}
\centering
\begin{figure}
\includegraphics[width=0.8\textwidth]{figures/scroll-validator-rights}
\end{figure}
\vspace{0.1cm}
\fnurl{https://picsart.com/ai-image-generator/}\\
{\footnotesize prompt: an ancient looking scroll for obtaining the rights of
a validator in a proof of stake system}
\end{minipage}
\end{frame}
\begin{frame}
\frametitle{Proof of Stake (etwas mehr Details)}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/proof-of-stake-roles}
\end{figure}
\fnurl{https://medium.com/coinmonks/eth2-0-phase-0-basics-for-new-contributors-8a0a22bc38c7}
\end{frame}
\begin{frame}
\frametitle{Rendite für Validierung - \sout{Inflation} Issuance}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/staked-eth-apr}
\end{figure}
\vspace{-0.2cm}
\fnurl{https://old.reddit.com/r/ethstaker/comments/k9wf4x/estimated_timeline_of_apr_and_eth_staked/}
\end{frame}
\begin{frame}
\frametitle{Statistiken}
\centering
\begin{figure}
\includegraphics[width=0.8\textwidth]{figures/staked-eth-validators-over-time}
\includegraphics[width=0.8\textwidth]{figures/staked-eth-economic-security-over-time}
\end{figure}
\fnurl{https://dune.com/hildobby/eth2-staking}
\end{frame}
\begin{frame}
\frametitle{EIP1599}
\begin{itemize}
\item Transaktionspreis = Basispreis + Prioritätspreis
\item ETH des Basispreises wird vernichtet
\item ETH des Prioritätspreises bekommt der Blockbauer
\item Basispreis ist abhängig von vorheriger Blockgröße
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.95\textwidth]{figures/basefee-changes}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Basepreis Beispiel}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/base-fee-example}
\end{figure}
\fnurl{https://ethereum.org/en/developers/docs/gas/}
\end{frame}
\begin{frame}
\frametitle{Statistiken}
\centering
\begin{figure}
%\includegraphics<1>[width=0.8\textwidth]{figures/ultrasound-money-0}
\includegraphics<1>[width=\textwidth]{figures/ultrasound-money-1}
\includegraphics<2>[width=\textwidth]{figures/ultrasound-money-2}
\end{figure}
\vspace{-0.2cm}
\fnurl{https://ultrasound.money/}
\end{frame}
\begin{frame}
\frametitle{Das Ultra Sound Money Meme}
\centering
\begin{figure}
\includegraphics[width=\textwidth]{figures/ultra-sound-money-meme}
\end{figure}
\fnurl{https://twitter.com/drakefjustin/status/1304064879662227456}
\end{frame}
\begin{frame}
\frametitle{Skalierung}
\begin{itemize}
\item Gas Ziel: 15.000.000 (halb voller Block)
\item Gas pro Transaktion: 21.000
\item ergibt theoretisches Maximum von 59.5 TPS
\item nicht erreicht wegen Konkurrenz durch Smartcontracts
\item im Vergleich andere Zahlungssysteme
\begin{itemize}
\item Bitcoin 7TPS
\item Ethereum (praktisch) 13 TPS
\item Visa $\sim$1,700 TPS (nach eigener Aussage)
\item Mastercard $\sim$5,000 TPS (nach eigener Aussage)
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Rollups (-Metapher)}
Ethereum als eine stark befahrene Autobahn und Transaktionen als Autos
(Erklärung erdacht durch ein LLM). Rollups Vorgang:
\begin{itemize}
\item Sammeln von Transaktionen: Anstatt dass jedes Auto (Transaktion) auf der
Hauptautobahn (Ethereum) fährt, werden sie auf einem Parkplatz (Rollup)
gesammelt.
\item Verarbeitung außerhalb der Kette: Die Transaktionen werden in diesem
separaten Bereich verarbeitet, abseits der Autobahn.
\item Komprimierung: Nach der Verarbeitung wird eine \emph{mathematisch
äquivalente} Zusammenfassung aller dieser Transaktionen erstellt, fast wie
eine Liste der Autos, die durchgefahren sind.
\item Rückmeldung: Diese Zusammenfassung wird dann an das Ethereum-Netzwerk
gesendet und nimmt dabei viel weniger Platz ein, als wenn jedes Auto einzeln
auf der Autobahn gefahren wäre.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{EIP4844}
\begin{itemize}
\item Spezieller Speicherplatz für Rollups
\item für die Zusammenfassung der einzelnen Tansaktionen
\item BLOBS = Binary Large Object
\item Ziel: 3 BLOBS pro Block, 6 maximal
\item Preisfindung mit EIP1559 ähnlichem Prozess
\item erst Anfang des Jahres eingeführt
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Blob Statistiken}
\centering
\begin{figure}
\only<1>{\includegraphics[width=0.9\textwidth]{figures/ultrasound-money-3}}
\only<2>{\includegraphics[width=0.9\textwidth]{figures/ultrasound-money-4}}
\only<3>{\includegraphics[width=0.9\textwidth]{figures/ultrasound-money-5}}
\end{figure}
\fnurl{https://ultrasound.money/}
\end{frame}
\begin{frame}
\frametitle{Rollups Statistiken}
\centering
\begin{figure}
\only<1>{\includegraphics[width=0.9\textwidth]{figures/scaling-activity}}
\only<2>{
\includegraphics[width=0.9\textwidth]{figures/scaling-activity-history}
\includegraphics[width=0.9\textwidth]{figures/scaling-value-locked}
}
\end{figure}
\fnurl{https://l2beat.com/}
\end{frame}
\begin{frame}
\frametitle{Ausblick: Aktuelle Diskussionen}
\begin{itemize}
\item Maximum Stake Target
\item MEV Burn (vgl Bonusslide)
\item Enshrined Rollup
\item Multidimensional Gaspricing
\item State Expiry
\item Quantumresistant Cryptography
\end{itemize}
\end{frame}
\lastslide
\begin{frame}
\frametitle{Bonus: Ökonomische Rente}
\begin{itemize}
\item in der Community bekannt als MEV = Maximal Extractable Value
\item allgemein: Abfolge der Transaktionen ist wichtig
\item Gewinne werden mitunter als Diebstahl an der Gemeinschaft gesehen
\end{itemize}
\centering
\begin{figure}
\includegraphics[width=0.7\textwidth]{figures/mev-strategies}
\end{figure}
\fnurl{https://finematics.com/decoding-mev-past-present-future/}
\end{frame}
\begin{frame}
\frametitle{Bonus Bonus: Quadratische Förderung}
\centering
\begin{figure}
\includegraphics<1>[width=0.7\textwidth]{figures/qf-0}
\includegraphics<2>[width=0.6\textwidth]{figures/qf-1}
\includegraphics<2>[width=0.6\textwidth]{figures/qf-2}
\end{figure}
\fnurl{https://finematics.com/quadratic-funding-explained/}
\end{frame}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View file

@ -0,0 +1,236 @@
% source: https://github.com/pmichaillat/latex-presentation/blob/main/presentation.sty
% ---- Select text fonts -----
% Apply more sophisticated fonts
\usefonttheme{professionalfonts}
% Select text font
\usepackage{sourcesanspro}
% Define semibold font series
\DeclareRobustCommand{\sbseries}{\fontseries{sb}\selectfont}
\DeclareTextFontCommand{\textsb}{\sbseries}
% Select monospaced font
\usepackage{sourcecodepro}
% Select font encoding
\usepackage[T1]{fontenc}
% Select URL font
\usepackage{url}
% ---- Select math fonts -----
% Select symbol font
\usepackage{MnSymbol}
% Select calligraphic and blackboard-bold fonts
\usepackage[cal=euler,bb=fourier]{mathalpha}
% Enable bold math characters
\newcommand{\hmmax}{0} % Avoid "Too many math alphabets" error
\newcommand{\bmmax}{0} % Avoid "Too many math alphabets" error
\usepackage{bm}
% Select font for Roman letters, Greek letters, digits, and punctuation
\usepackage[italic,eulergreek,nolessnomore,noparenthesis,noplusnominus,noequal,nohbar]{mathastext}
% Correct spacing around certain Roman letters
\MTsetmathskips{y}{2mu}{0mu}
\MTsetmathskips{j}{2mu}{0mu}
% ---- Select Beamer theme ----
% Select theme
\usetheme{Boadilla}
% Select color theme
\usecolortheme[]{seagull}
% Make covered elements transparent
\setbeamercovered{transparent}
% Remove navigation symbols
\setbeamertemplate{navigation symbols}{}
% ---- Adjust slide layout ----
% Set layout on title page
\setbeamertemplate{title page}[default][left,leftskip=-8pt]
% Set margins on regular pages
\setbeamersize{text margin left=5mm,text margin right=5mm}
% ---- Adjust spacing ----
% Set spacing between lines
\usepackage[onehalfspacing]{setspace}
% Set spacing on lines
\usepackage{microtype}
% Remove ligatures
\DisableLigatures[f]{encoding = *, family = * }
% ---- Adjust font sizes and shapes ----
% Set title font
\setbeamerfont{title}{size=\huge, series=\scshape}
% Set author font
\setbeamerfont{author}{size=\large}
% Set frame title font
\setbeamerfont{frametitle}{series=\scshape}
% Ensure uniform capitalization of frame title, and lower title
\setbeamertemplate{frametitle}{\vskip3mm\MakeLowercase{\insertframetitle}}
% Format continuation count for multipage slides
\setbeamertemplate{frametitle continuation}{[\insertcontinuationcount]}
% Set list font
\setbeamerfont{itemize/enumerate subbody}{size=\normalsize} % Second level
\setbeamerfont{itemize/enumerate subsubbody}{size=\normalsize} % Third level
% Set theorem fonts
\setbeamerfont{block title}{series=\sbseries,size=\normalsize} % Title
% Set button font
\setbeamerfont{button}{size=\footnotesize}
% ---- Adjust colors ----
% Define colors
\colorlet{BlackGray}{black!85!}
\colorlet{DarkGray}{gray!60!}
\colorlet{LightGray}{gray!30!}
% Set title color
\setbeamercolor{title}{fg=BlackGray}
% Set frame title color
\setbeamercolor{frametitle}{fg=BlackGray}
% Set text color
\setbeamercolor{normal text}{fg=BlackGray}
% Set list items color
\setbeamercolor{itemize item}{fg=DarkGray} % Itemized list, first level
\setbeamercolor{itemize subitem}{fg=DarkGray} % Itemized list, second level
\setbeamercolor{itemize subsubitem}{fg=DarkGray} % Itemized list, third level
\setbeamercolor{enumerate item}{fg=DarkGray} % Numbered list, first level
\setbeamercolor{enumerate subitem}{fg=DarkGray} % Numbered list, second level
\setbeamercolor{enumerate subsubitem}{fg=DarkGray} % Numbered list, third level
% Set theorem colors
\setbeamercolor{block title}{fg=BlackGray,bg=LightGray} % Title
\setbeamercolor{block body}{fg=BlackGray,bg=LightGray} % Body
% Set footer color
\setbeamercolor{footline}{fg=DarkGray}
% Set button colors
\setbeamercolor{button}{fg=DarkGray, bg=white}
% ---- Format title slide ----
% Title capitalization and underline
\let\oldtitle\title
\renewcommand{\title}[1]{\oldtitle[]{\MakeLowercase{#1}\vspace{-5mm}\\\color{BlackGray}{\rule{\textwidth}{2pt}}\vspace{1cm}}}
% Define custom commands with complex argument specifications
\usepackage{xparse}
% Paper information
\NewDocumentCommand{\information}{o g g}{%
\author[]{#2%
\IfValueT{#3}{\vspace{5mm}\\#3}%
\IfValueT{#1}{\vspace{5mm}\\\color{DarkGray}{\footnotesize Available at \url{#1}}}%
}\date[]{}}
% ---- Format lists ----
% Format itemized lists
\setbeamertemplate{itemize item}{\textbullet} % First-level item
\setbeamertemplate{itemize subitem}{\textendash} % Second-level item
\setbeamertemplate{itemize subsubitem}{\textsquare} % Third-level item
% Format numbered lists
\setbeamertemplate{enumerate item}[default] % First-level item
\setbeamertemplate{enumerate subitem}{\alph{enumii}.} % Second-level item
\setbeamertemplate{enumerate subsubitem}{\roman{enumiii}.} % Third-level item
% ---- Create text alerts ----
% Standard alert
\NewDocumentCommand{\al}{o g}{%
\IfNoValueTF{#1}{\textcolor{RubineRed}{#2}}%
{\textcolor<#1>{RubineRed}{#2}}}
% Green, positive alert
\NewDocumentCommand{\alg}{o g}{%
\IfNoValueTF{#1}{\textcolor{Green}{#2}}%
{\textcolor<#1>{Green}{#2}}}
% Red, negative alert
\NewDocumentCommand{\alr}{o g}{%
\IfNoValueTF{#1}{\textcolor{Red}{#2}}%
{\textcolor<#1>{Red}{#2}}}
% Blue, zero alert
\NewDocumentCommand{\alb}{o g}{%
\IfNoValueTF{#1}{\textcolor{NavyBlue}{#2}}%
{\textcolor<#1>{NavyBlue}{#2}}}
% ---- Format figures and tables ----
% Enhance table formatting
\usepackage{booktabs}
% Enable multiple rows in table
\usepackage{multirow}
% Customize captions
\usepackage{caption}
% Format captions
\captionsetup{labelformat=empty,size=normalsize}
% Center figures
\let\oldincludegraphics\includegraphics
\renewcommand{\includegraphics}[2][]{\centering\oldincludegraphics[#1]{#2}}
% ---- Format theorems ----
\setbeamertemplate{blocks}[rounded][shadow=false]
% Define new theorems
\newtheorem{proposition}{Proposition}
\newtheorem{assumption}{Assumption}
\newtheorem{remark}{Remark}
% ---- Create section slide ----
\newcommand{\heading}[1]{\LARGE\scshape\color{BlackGray}\singlespacing\MakeLowercase{#1}}
% ---- Create last slide ----
\newcommand{\lastslide}{{\setbeamercolor{normal text}{bg=LightGray}\begin{frame}\end{frame}}}
% ---- Define shortcuts for pictograms ----
\newcommand{\up}{\textuparrow\,}
\newcommand{\down}{\textdownarrow\,}
\renewcommand{\flat}{\textrightarrow\,}
\newcommand{\then}{$\rightsquigarrow\,$}
\newcommand{\so}{{$\Rightarrow\,$}}
% ---- Remove or insert slide numbers ----
% Remove slide numbers by default
% \setbeamertemplate{footline}{}
% Uncomment the line below to insert slide numbers
\setbeamertemplate{footline}[frame number]