513 lines
15 KiB
TeX
513 lines
15 KiB
TeX
|
\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}
|