From b61c14c2d759c06aa466bbcb6e5f67fd46e4588e Mon Sep 17 00:00:00 2001 From: David Rusu Date: Thu, 5 Jun 2025 15:54:14 -0400 Subject: [PATCH] initial implementation of lottery and total stake inference v2 --- cryptarchia/total-stake-inference-v2.ipynb | 161 +++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 cryptarchia/total-stake-inference-v2.ipynb diff --git a/cryptarchia/total-stake-inference-v2.ipynb b/cryptarchia/total-stake-inference-v2.ipynb new file mode 100644 index 0000000..7090106 --- /dev/null +++ b/cryptarchia/total-stake-inference-v2.ipynb @@ -0,0 +1,161 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "id": "f443be50-1b6b-41e2-ad7c-5ac96a92d620", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from dataclasses import dataclass" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "id": "fb9d4f63-ec30-453f-bcd0-569bbec371dd", + "metadata": {}, + "outputs": [], + "source": [ + "# cryptarchia lottery function\n", + "\n", + "def phi(f, alpha):\n", + " return 1 - (1-f)**alpha" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "id": "f48a89b1-4344-40e5-bf5a-daf62ec78c28", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAc1UlEQVR4nO3dC2yV5f0H8F8rA2+0CIilsQjqvGwKKiozOv8oKAJBjWzzghEdwUsAJ2RTmnjDmMCmc26KuiUqM4PpXBQnRAzCBI3oBEOcxhEhoDgBN41UMBaE/vO+WTuOgFzW43nafj7Jk9P3ct4+x9PaL7/ned5T1tDQ0BAAAAkpL3UHAAC+SkABAJIjoAAAyRFQAIDkCCgAQHIEFAAgOQIKAJAcAQUASE67aIG2bt0aH374YXTs2DHKyspK3R0AYDdk94b97LPPorq6OsrLy1tfQMnCSU1NTam7AQDshdWrV8ehhx7a+gJKVjlpfIEVFRWl7g4AsBvq6uryAkPj3/FWF1Aah3WycCKgAEDLsjvTM0ySBQCSI6AAAMkRUACA5AgoAEByBBQAIDkCCgCQHAEFAEiOgAIAJEdAAQCSI6AAAMkRUACA5AgoAEByBBQAIDkCCgCQnHal7kCKek6cXbC9asrQkvUFANoiFRQAIDkCCgCQHAEFAGj5AWXhwoUxbNiwqK6ujrKyspg5c2bB8Wzfjtpdd93VdE7Pnj23Oz5lypTmeUUAQNsLKBs3bow+ffrE1KlTd3h8zZo1Be2RRx7JA8jw4cMLzrvjjjsKzhs3btzevwoAoG2v4hk8eHDedqaqqqpg+5lnnomzzjorDj/88IL9HTt23O5cAICiz0FZt25dzJ49O0aNGrXdsWxIp0uXLnHiiSfmwz9ffvnlTq9TX18fdXV1BQ0AaL2Keh+U3//+93ml5KKLLirYf/3118dJJ50UnTt3jldeeSVqa2vzYZ577rlnh9eZPHlyTJo0qZhdBQDaSkDJ5p+MGDEi9t1334L9EyZMaPq6d+/e0b59+7jmmmvyINKhQ4ftrpMFmG2fk1VQampqitl1AKA1BpSXXnopli1bFk888cQuz+3Xr18+xLNq1ao4+uijtzuehZYdBRcAoHUq2hyUhx9+OPr27Zuv+NmVpUuXRnl5eXTr1q1Y3QEAWnMFZcOGDbF8+fKm7ZUrV+YBI5tP0qNHj6YhmCeffDJ++ctfbvf8RYsWxWuvvZav7Mnmp2Tb48ePj8svvzwOOuig//X1AABtMaAsXrw4DxeNGueGjBw5MqZNm5Z//fjjj0dDQ0Nceuml2z0/G6rJjt9+++356pxevXrlAWXbOSYAQNtW1pAliRYmq9BUVlbG+vXro6Kiotmv79OMAaC0f799Fg8AkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgJYfUBYuXBjDhg2L6urqKCsri5kzZxYcv/LKK/P927bzzjuv4JxPPvkkRowYERUVFdGpU6cYNWpUbNiw4X9/NQBA2wwoGzdujD59+sTUqVN3ek4WSNasWdPU/vjHPxYcz8LJ22+/HXPnzo1Zs2bloefqq6/eu1cAALQ67fb0CYMHD87b1+nQoUNUVVXt8Ng777wTc+bMiddffz1OPvnkfN99990XQ4YMibvvvjuvzAAAbVtR5qC8+OKL0a1btzj66KPjuuuui48//rjp2KJFi/JhncZwkhk4cGCUl5fHa6+9tsPr1dfXR11dXUEDAFqvZg8o2fDOY489FvPmzYuf//znsWDBgrzismXLlvz42rVr8/CyrXbt2kXnzp3zYzsyefLkqKysbGo1NTXN3W0AoCUP8ezKJZdc0vT18ccfH717944jjjgir6oMGDBgr65ZW1sbEyZMaNrOKihCCgC0XkVfZnz44YdH165dY/ny5fl2Njflo48+Kjjnyy+/zFf27GzeSjanJVvxs20DAFqvogeUDz74IJ+D0r1793z7tNNOi08//TSWLFnSdM78+fNj69at0a9fv2J3BwBojUM82f1KGqshmZUrV8bSpUvzOSRZmzRpUgwfPjyvhqxYsSJuvPHGOPLII2PQoEH5+ccee2w+T2X06NHx0EMPxebNm2Ps2LH50JAVPADAXlVQFi9eHCeeeGLeMtnckOzrW2+9NfbZZ59488034/zzz4+jjjoqvwFb375946WXXsqHaRpNnz49jjnmmHxOSra8+Iwzzojf/e533hEAYO8qKP3794+GhoadHn/++ed3eY2s0jJjxow9/dYAQBvhs3gAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUAKDlfxZPW9Rz4uzt9q2aMrQkfQGAtkAFBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACALT8gLJw4cIYNmxYVFdXR1lZWcycObPp2ObNm+Omm26K448/Pg444ID8nCuuuCI+/PDDgmv07Nkzf+62bcqUKc3zigCAthdQNm7cGH369ImpU6dud+zzzz+PN954I2655Zb88amnnoply5bF+eefv925d9xxR6xZs6apjRs3bu9fBQDQqrTb0ycMHjw4bztSWVkZc+fOLdh3//33x6mnnhrvv/9+9OjRo2l/x44do6qqam/6DAC0ckWfg7J+/fp8CKdTp04F+7MhnS5dusSJJ54Yd911V3z55Zc7vUZ9fX3U1dUVNACg9drjCsqe+OKLL/I5KZdeemlUVFQ07b/++uvjpJNOis6dO8crr7wStbW1+TDPPffcs8PrTJ48OSZNmlTMrgIAbSGgZBNmf/SjH0VDQ0M8+OCDBccmTJjQ9HXv3r2jffv2cc011+RBpEOHDttdKwsw2z4nq6DU1NQUq+sAQGsMKI3h5L333ov58+cXVE92pF+/fvkQz6pVq+Loo4/e7ngWWnYUXACA1qldscLJu+++G3/961/zeSa7snTp0igvL49u3bo1d3cAgLYQUDZs2BDLly9v2l65cmUeMLL5JN27d48f/OAH+RLjWbNmxZYtW2Lt2rX5ednxbChn0aJF8dprr8VZZ52Vr+TJtsePHx+XX355HHTQQc376gCAthFQFi9enIeLRo1zQ0aOHBm33357/OUvf8m3TzjhhILnZdWU/v3750M1jz/+eH5utjqnV69eeUDZdo4JANC27XFAyUJGNvF1Z77uWCZbvfPqq6/u6bcFANoQn8UDACRHQAEAkiOgAADJEVAAgOQIKABAcgQUACA5AgoAkBwBBQBIjoACACRHQAEAkiOg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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Generate stake distribution\n", + "\n", + "stake = np.random.pareto(5, 1000)\n", + "_ = plt.hist(stake, bins=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "id": "f9897d4a-07e4-4742-89e4-62b5c6b8f353", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(252.8198890263855)" + ] + }, + "execution_count": 189, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# True Total Stake\n", + "stake.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "id": "a86cc4b3-1b4b-4d41-9d83-db714226a3fc", + "metadata": {}, + "outputs": [], + "source": [ + "T = 388800\n", + "f = 1/30\n", + "D_ell = 88.99380507797717\n", + "\n", + "\n", + "# Running one epoch of the cryptarchia lottery\n", + "\n", + "alpha = stake / D_ell\n", + "p_lottery = phi(f, alpha)\n", + "wins = np.random.uniform(0, 1, (T, len(stake))) < p_lottery" + ] + }, + { + "cell_type": "code", + "execution_count": 190, + "id": "e993f286-400b-4338-84fe-b1ef00325056", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(214.7003014729989)" + ] + }, + "execution_count": 190, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Total Stake Inference\n", + "\n", + "empirical_slot_activation_rate = (wins.sum(axis=1) != 0).sum() / T\n", + "error = f - empirical_slot_activation_rate\n", + "\n", + "beta = 0.8\n", + "\n", + "h = beta * (D_ell / f)\n", + "D_next = D_ell - h * error\n", + "D_next" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51484f42-1991-4e82-9f24-857ae679cbe4", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07cc2be0-f5e7-4584-8188-010df76529c1", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}