Опенсорс
May 20

👶 Дети майнят Bitcoin вместо домашки? А может, ВО ВРЕМЯ домашки? 🤯

Знаете, иногда натыкаешься на такие проекты, что сначала думаешь: "Что это за бред?". А потом присматриваешься и понимаешь – это гениальная сатира. Сегодня у нас как раз такой случай – встречайте CUDAAAAGH от Роберта Хитона, известного программиста-блогера.

Аттракцион невиданной эксплуа... эффективности: MinorMiner

Итак, Хитон представил миру "инновационную" платформу MinorMiner. Идея проста, как угол дома, и цинична донельзя:

  • Берем сложные вычисления (например, майнинг Bitcoin или, чем черт не шутит, обучение нейросеток).
  • Разбиваем их на миллионы и миллиарды элементарных арифметических задачек: 5+3=?, 10*5=?, 102 > 67 (y/n)?.
  • Подсовываем эти задачки школьникам под видом обычной домашней работы через "специализированную образовательную платформу".
  • Дети ("вычислительные партнеры", как их нежно называет автор) решают, а система собирает ответы и двигает большой расчет вперед.

"Домашние задания — это основное сырье, которое питает нашу машину. Нам нужны эти дети. Нет детей — нет биткойнов."
– Hobert Reaton (aka Robert Heaton), основатель MinorMiner

А как же ошибки? Пф-ф, все продумано! Каждая задачка отправляется двум "партнерам". Если ответы расходятся – эскалация на "более опытного партнера" (читай: отличника) для арбитража. Есть даже система рейтинга: упал ниже 4.3 звезд – добро пожаловать на "дополнительное обучение" или "искать образовательные возможности в другом месте". Демократия в чистом виде, не иначе 🌚.

Каждый ребенок в системе MinorMiner имеет рейтинг. Падение рейтинга ниже определенного уровня ведет к 'дополнительному обучению' или исключению. Эффективный менеджмент ресурсов, не правда ли?

CUDAAAAGH: Python-либа для порабощения... простите, распределенных Вычислений

Сердцем этой "гениальной" схемы является Python-библиотека CUDAAAAGH (Centralized Underage Distributed Arithmetic - Automated Assignment And Group Hashing). Название – уже песня!

Работает это так:

1. Устанавливаем: pip install CUDAAAAGH

2. Запускаем сервер для "ручных вычислений":

from CUDAAAAGH import start_server
import asyncio

if __name__ == "__main__":
    asyncio.run(start_server(host="127.0.0.1", port=8000))

3. В своем коде используем кастомный тип CUDAAAAGHInt вместо обычных целых чисел:

from CUDAAAAGH import CUDAAAAGHInt, set_compute_endpoint

# Configure the endpoint
set_compute_endpoint("http://localhost:8000/compute")

a = CUDAAAAGHInt(10)
b = CUDAAAAGHInt(5)

# Эта операция будет отправлена ребенку для решения
result = a + b 
print(f"10 + 5 = {result}") 

# А эта займет "несколько тысяч лет"
# hash_result = sha256("Hello!", CUDAAAAGHInt)
# print(f"SHA-256 hash: {hash_result}")

Библиотека перехватывает стандартные арифметические операции (+, -, *, //) и даже битовые операции (&, |, ^, <<, >>), разлагая последние на последовательности более простых действий, понятных "вычислительным партнерам".

"Светлое" будущее: оптимизация учебных программ и параллельные дети

Производительность? Ну, пока один ребенок считает хэш SHA-256 примерно 2000 лет. Но не волнуйтесь, у Хитона есть план:

  • Параллелизация: Зачем одному ребенку мучиться над одним хэшем? Можно же разбить задачу на независимые куски и раздать разным детям! И даже внутри одной операции, например XOR, можно найти, что распараллелить. Хитон даже приводит пример асинхронного __xor__:
import asyncio

class CUDAAAAGHInt:
    # ... (пропущен конструктор и другие методы для краткости) ...

    async def __xor__(self, other: 'CUDAAAAGHInt') -> 'CUDAAAAGHInt':
        async def compute_bit_xor(i: int) -> 'CUDAAAAGHInt':
            # ... (логика вычисления одного бита XOR асинхронно) ...
            # bit_self_task = asyncio.create_task(self._ith_bit(CUDAAAAGHInt(i)))
            # bit_other_task = asyncio.create_task(other._ith_bit(CUDAAAAGHInt(i)))
            # bit_self = await bit_self_task
            # bit_other = await bit_other_task
            # xor_bit = bit_self + bit_other - CUDAAAAGHInt(2) * bit_self * bit_other
            # return xor_bit << CUDAAAAGHInt(i)
            # ЗАГЛУШКА: Реальная логика из блогпоста была бы здесь
            # Временно упростим, чтобы не перегружать
            val_i_self = (self.val >> i) & 1
            val_i_other = (other.val >> i) & 1
            xor_val_i = val_i_self ^ val_i_other
            return CUDAAAAGHInt(xor_val_i << i) # Упрощенный возврат для примера

        max_bits = max(self.val.bit_length(), other.val.bit_length())
        tasks = [compute_bit_xor(i) for i in range(max_bits)]
        all_bits = await asyncio.gather(*tasks)
        
        result = CUDAAAAGHInt(0)
        for bit in all_bits:
            result = result + bit # Здесь CUDAAAAGHInt сложение тоже "улетает" детям
        return result
    
    # ... (остальные методы, как _ith_bit, bit_length) ...
    # ЗАГЛУШКА: для полноты примера
    def __init__(self, val: int): self.val = val
    def __add__(self, other): return CUDAAAAGHInt(self.val + other.val) # Примерная реализация
    async def _ith_bit(self, i: 'CUDAAAAGHInt') -> 'CUDAAAAGHInt': return CUDAAAAGHInt((self.val >> i.val) & 1)
    def bit_length(self) -> int: return self.val.bit_length()

Обратите внимание, что даже в примере параллелизации XOR, каждая элементарная операция (сложение, сдвиг) внутри compute_bit_xor и финальное суммирование результатов через result = result + bit снова будут отправляться 'вычислительным партнерам'.

  • Оптимизация учебной программы: Зачем мучиться с разложением XOR на сложения, если можно просто... научить детей считать XOR? MinorMiner активно лоббирует включение битовых операций в программу первого класса, а полного расчета SHA-256 – в программу седьмого. Девиз: "No Child Left Unmined". 😱
  • Teacher Incentive Alignment (TIA): Учителя ("Distribution Associates") получают процент от хэшей, намайненных их учениками. Говорят, после этого количество "домашки" у некоторых выросло на 1,000,000%.

И это не предел! После Bitcoin – AI. Ведь матричная алгебра это "просто сложение и умножение в забавных символах". А потом и облачные вычисления: "Везде, где у компьютера обычно электрон, мы заменим его ребенком, делающим домашнее задание по математике".

Что это за дичь?

На мой взгляд, это блестящий образец сатиры. Роберт Хитон взял несколько самых горячих и больных тем современного IT и довел их до абсолютного абсурда:

  • Криптовалютный хайп и "зеленый" майнинг: Вот вам по-настоящему "экологичный" способ добычи – детский труд!
  • AI-революция и жажда вычислительных мощностей: Зачем GPU, если есть миллионы школьников?
  • Оптимизация и автоматизация всего и вся: Дооптимизировались до ручного труда, но под соусом "инноваций".
  • Современное образование и его "реформы": Лоббирование абсурдных изменений в учебные программы ради сиюминутной "выгоды" – знакомо, не правда ли?
  • Корпоративная риторика: Все эти "вычислительные партнеры", "ассоциаты по дистрибуции", "программы мотивации" – чистейшая пародия на язык современных корпораций, прикрывающий порой весьма неприглядные вещи.

Это напоминает мне ситуацию с некоторыми "образовательными" платформами, которые, под видом передачи знаний занимаются чем угодно, но не реальным образованием. Хитон просто экстраполировал эту идею на вычислительные ресурсы.

Трансформирует ли CUDAAAAGH IT-индустрию? Конечно, нет. Это даже не proof-of-concept, а скорее proof-of-absurdity. Но он, как кривое зеркало, высвечивает многие наши современные заскоки. И, возможно, заставляет задуматься: а не занимаемся ли мы иногда чем-то подобным, просто в менее очевидной форме?