Nostr привернув багато уваги та привернув увагу недавнє доповнення до списку альтернативних соціальних платформ, які заборонено рекламувати в Twitter. І це також набирає обертів, оскільки стало зрозуміло, що купівля Twitter Ілоном Маском принципово не змінила свободу вираження думок на платформі — користувачі досі заборонений з непослідовних і довільних причин, і люди шукають децентралізовану альтернативу, яка не є чимось на зразок Mastodon, де оператор сервера все ще має можливість контролювати вашу особу.
Незважаючи на недавню увагу, протокол Nostr і перша реалізація сервера ретрансляції були створені розробником наприкінці 2020 року. fiatjaf. До великого сплеску уваги це був просто тихий, нішевий протокол, який просто намагався бути легким рішенням проблем Twitter і Mastodon. В обох системах ваша особистість/ім’я користувача – це просто річ, якою керує той, хто керує сервером. Оскільки Mastodon є об’єднаною системою з кількома різними серверами, які спілкуються один з одним, принципово не змінює цю реальність. Чий би сервер ви не використовували для розміщення облікового запису, ви повністю контролюєте, чи можете ви його використовувати чи ні. Навіть якщо ви використовуєте свій власний сервер, інші оператори серверів можуть додавати в чорний або білий список сервери, яким буде дозволено спілкуватися з їхніми. Це призвело до великої кількості розділів у «Fediverse» різних серверів Mastodon і робить ідею простого запуску власного безглуздим. Інші оператори серверів все одно можуть піддаватися цензурі, що не дозволяє користувачам бачити ваш вміст у своїй стрічці.
Основна відмінність між Nostr і чимось на зразок Mastodon полягає в тому, що замість використання імені користувача, яке належить оператору сервера, кожен користувач використовує пару відкритих/приватних ключів для обробки цієї функції. Це те, що оператор сервера не може просто вилучити у вас або заблокувати. Це один із основних будівельних блоків, на основі якого будується загальний протокол Nostr.
Далі — «події». Це основний тип об’єкта/даних, який використовується клієнтами та серверами ретрансляції, до яких підключаються клієнти, щоб надсилати та отримувати повідомлення. Загальна ідея протоколу полягає в тому, що клієнти надсилають події на сервери ретрансляції, які потім, у свою чергу, зберігають та індексують їх, а інші клієнти можуть спілкуватися з серверами ретрансляції, щоб запитувати події, які вони отримали та зберегли. В оригіналі NIP (податковий ідентифікаційний номер) 01визначено три різні типи подій:
- 0: надсилає метадані про користувача, як-от ім’я користувача, зображення, біографію тощо.
- 1: надсилає текстові повідомлення та основний вміст
- 2: рекомендує сервери ретрансляції для підключення людей, які слідують за автором події
Усі події структуровані певним чином. Вони включають відкритий ключ творця, мітку часу, коли вони були створені, їх тип (або тип у специфікації), корисне навантаження вмісту та підпис автора події. Вони також можуть мати теги, що посилаються на інші події чи користувачів, і мати значення ID, яке є хешем усього, крім підпису творця (подібно до TXID для транзакцій Bitcoin). Це дає змогу гарантувати, що повідомлення дійсно було створено власником відкритого ключа в ньому шляхом перевірки підпису (і особи, яка володіє цим ключем, якщо він не зламаний), і гарантувати, що повідомлення не було змінено після вони це підписали. Подібно до того, як ви не можете змінити транзакцію Bitcoin після її підписання, не анулюючи її, ви не можете змінити подію Nostr після того, як її підписав творець, щоб це не було очевидним шахрайством.
Система типів подій була значно розширена в порівнянні з оригінальним NIP. Існує тип події для зашифрованих прямих повідомлень, встановлення спільного ключа шляхом об’єднання закритого ключа відправника з відкритим ключем одержувача, що призводить до того самого ключа, який ви отримаєте, об’єднавши відкритий ключ відправника з особистим ключем одержувача (ось як БІП 47 і тихі платежі працюють). Існують також типи для змінних подій і ефемерних подій. У випадку замінної події (очевидно), вони розроблені таким чином, що оригінальний творець події може підписати нову, щоб замінити стару. Сервери ретрансляції, що відповідають специфікації, автоматично видаляють старішу подію зі свого сховища та починають обслуговувати новіші версії клієнтам після отримання. Ефемерні події розроблено таким чином, що вони транслюватимуться будь-кому, хто підписався на їх творця, коли надсилатимуться на ретранслятор, але сервери ретрансляції не повинні їх зберігати. Це створює можливість перегляду повідомлень лише тим, хто перебуває в мережі під час трансляції. Існує навіть тип події, який сигналізує про реакцію (наприклад, лайки або емодзі) на події інших людей.
Щодо останнього, події також можуть містити теги. Наразі існують типи тегів для подій (для посилання на точну подію Nostr), відкритих ключів (для позначення тегами або посилання на інших користувачів) і тем (для імітації функціональності, як-от теми електронних листів). Усі вони можуть включати вказівники на певні ретрансляційні сервери, з яких можна отримати дані, щоб користувачі могли фактично взаємодіяти між серверами, тобто користувач, який публікує свій вміст на одному ретрансляційному сервері, може взаємодіяти та посилатися на вміст, створений іншим користувачем, який публікує на інший ретрансляційний сервер у спосіб, який дозволяє будь-якому користувачеві узгоджено отримувати весь потік взаємодій у належному порядку та без великих труднощів у з’ясуванні, де знайти відповідні дані.
Всередині оригінального NIP надається специфікація того, як клієнти повинні взаємодіяти з серверами ретрансляції через структуру повідомлень/даних підписки, яка включає фільтри для того, які події клієнт зацікавлений отримати. Ці фільтри можуть визначати відкриті ключі користувачів, точні події, типи подій і навіть конкретні часові рамки, в які вони бажають отримати їх на основі попередніх критеріїв. Ви навіть можете надіслати префікси відкритих ключів або ідентифікатори подій, наприклад «1xjisj…». і отримувати будь-яку подію або події з відкритого ключа, які починаються з цього короткого рядка (це може бути корисним, щоб приховати від сервера ретрансляції те, що ви насправді хотіли переглянути).
Загалом, протокол є дуже простою, узагальненою схемою для передачі повідомлень між користувачами, яка охоплює такі важливі речі, як гарантія цілісності повідомлень і хто їх надіслав з використанням ідентифікаторів відкритих ключів, а також полегшує інфраструктуру на сервері для сервери ретрансляції, які можуть бути надзвичайно централізованими або дозволяти користувачеві запускати власний персональний сервер ретрансляції, безперебійно взаємодіючи один з одним і не спричиняючи масового хаосу в разі заборони користувача на одному сервері ретрансляції. Вони можуть перейти на інший або запустити свій власний, і їх деплатформування з попереднього сервера не втрачає їх цифрової ідентичності чи підписників, оскільки вони все ще зберігають контроль над своїм закритим ключем, і користувачі можуть автентифікувати його, коли знаходять їх в іншому місці.
Сервери ретрансляції також можуть працювати як завгодно. Вони можуть працювати безкоштовно, можуть стягувати мікроплатежі за публікацію чи завантаження повідомлень, і це так навіть НПВ для вимагання підтвердження роботи у стилі hashcash для надсилання повідомлення. Вони можуть бути єдиним сервером ретрансляції для розміщення та обслуговування лише ваших публікацій для інших користувачів, або вони можуть бути сервером, що працює у великому масштабі, наприклад Twitter чи Reddit (клієнти можуть відображати та впорядковувати інформацію, як завгодно, що дозволяє емулювати практично будь-яку соціальну мережу медіаплатформа, яка існує сьогодні). Усе це може бездоганно взаємодіяти й не закривати користувача. Ви можете заборонити їм публікувати вміст на вашому сервері ретрансляції, але зрештою ви не можете заборонити їм переглядати вміст, який ви розміщуєте на своєму сервері ретрансляції, або заборонити іншим користувачам знаходити їхній вміст на інших серверах.
Це дуже спрощений протокол із великим відкритим простором для розробки, що гарантує користувачам можливість завжди взаємодіяти один з одним незалежно від того, який оператор релейного сервера вирішить розмістити чи ні. Це водночас його найбільша сила і найбільша слабкість. Незважаючи на те, що він гарантує розробникам свободу створювати без жорстких обмежень складного протоколу, існує також багато проблем, з якими він стикається, і які не вирішує сам протокол.
У наступній статті, яку я напишу, я розповім про деякі проблеми, які, на мою думку, виникають, і про потенційні шляхи їх вирішення, але наразі я просто скажу, що з точки зору простоти дизайну та можливостей, які він відкриває для людей build, Nostr зробив дуже хорошу роботу, враховуючи, що це дітище однієї людини, і лише невелика кількість людей наразі справді зробили внесок у саму специфікацію протоколу.
Це гостьовий пост від Shinobi. Висловлені думки повністю належать їм і не обов’язково збігаються з думками BTC Inc або Bitcoin Magazine.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://bitcoinmagazine.com/technical/what-makes-nostr-a-different-social-platform
- 2020
- 7
- a
- здатність
- Здатний
- МЕНЮ
- рахунки
- через
- насправді
- після
- ВСІ
- дозволяє
- альтернатива
- завжди
- та
- Інший
- будь
- увагу
- перевіряти справжність
- автоматично
- Backend
- заборонений
- заснований
- основний
- оскільки
- ставати
- перед тим
- за
- буття
- між
- Великий
- Біткойн
- Журнал Bitcoin
- біткойні транзакції
- біткойнери
- блоки
- віщати
- БТД
- BTC Inc.
- будувати
- Створюємо
- побудований
- Викуп
- не може
- випадок
- викликаючи
- централізована
- зміна
- хаос
- заряд
- Вибирати
- ясно
- клієнт
- клієнтів
- об'єднання
- спілкуватися
- складність
- складний
- Компрометація
- З'єднуватися
- беручи до уваги
- обмеження
- зміст
- внесок
- контроль
- контроль
- Core
- Обкладинки
- створений
- створює
- творець
- Критерії
- В даний час
- дані
- Децентралізований
- дизайн
- призначений
- Розробник
- розробників
- різний
- цифровий
- цифрова ідентифікація
- прямий
- дисплей
- скачати
- Падіння
- під час
- кожен
- Елон
- Елон Маск
- в іншому місці
- зашифрованих
- Весь
- повністю
- по суті
- налагодження
- і т.д.
- Навіть
- Event
- Події
- НІКОЛИ
- все
- Крім
- існує
- розширений
- виражений
- надзвичайно
- сприяння
- Fediverse
- Отримано
- Фільтри
- знайти
- виявлення
- Перший
- стікаються
- після
- шахрайство
- Безкоштовна
- Freedom
- від
- функція
- функціональність
- принципово
- набирає
- Загальне
- отримати
- даний
- Go
- добре
- хороша робота
- найбільший
- гарантувати
- гарантії
- гість
- Guest Post
- жменя
- обробляти
- мішанина
- має
- господар
- хостинг
- Як
- Однак
- HTTPS
- ідея
- тотожності
- Особистість
- реалізація
- важливо
- in
- включати
- includes
- індекс
- індивідуальний
- інформація
- Інфраструктура
- замість
- цілісність
- взаємодіяти
- взаємодіючих
- Взаємодії
- зацікавлений
- взаємодіяти
- питання
- IT
- сам
- робота
- ключ
- ключі
- Дитина
- великий
- останній
- Led
- дозволяє
- легкий
- список
- шукати
- втрачати
- серія
- журнал
- підтримувати
- РОБОТИ
- багато
- масивний
- Мастодонт
- Медіа
- повідомлення
- повідомлення
- метадані
- мікроплатежі
- рухатися
- множинний
- Маск
- обов'язково
- Нові
- наступний
- наш
- Очевидний
- Старий
- ONE
- онлайн
- відкрити
- Відкриється
- працювати
- оператор
- Оператори
- Думки
- порядок
- оригінал
- Інше
- загальний
- власний
- яка перебуває у власності
- власник
- володіє
- Проходження
- платежі
- Люди
- людина
- персонал
- картина
- частина
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- можливостей
- можливість
- пошта
- Пости
- потенціал
- запобігати
- попередження
- попередній
- приватний
- Private Key
- проблеми
- просування
- доказ
- правильний
- протокол
- громадськість
- публічний ключ
- відкриті ключі
- реакція
- Реальність
- Причини
- отримати
- отримано
- отримання
- останній
- рекомендує
- відображати
- Незалежно
- доречний
- замінювати
- запросити
- результати
- повертати
- прогін
- біг
- то ж
- шкала
- схема
- плавно
- бачачи
- Захопити
- Сервери
- виступаючої
- загальні
- Короткий
- підпис
- Сигнал
- підписаний
- аналогічний
- простота
- просто
- одночасно
- з
- один
- So
- так далеко
- соціальна
- соціальні медіа
- соціальні платформи
- рішення
- Рішення
- деякі
- що в сім'ї щось
- Простір
- конкретний
- специфікація
- пар
- Як і раніше
- Стоп
- зберігання
- зберігати
- зберігати
- сила
- структура
- структурований
- представляти
- передплата
- такі
- передбачуваний
- система
- Systems
- TAG
- балаканина
- говорити
- terms
- Команда
- їх
- річ
- речі
- три
- через
- відмітка часу
- до
- сьогодні
- топ
- Усього:
- тяги
- угода
- Transactions
- ПЕРЕГЛЯД
- Типи
- Зрештою
- використання
- користувач
- користувачі
- використовує
- значення
- перевірка
- вид
- пустощі
- хотів
- слабкість
- Що
- Чи
- який
- в той час як
- Білий список
- ВООЗ
- хто б не
- волі
- без
- Work
- б
- запис
- Ти
- вашу
- зефірнет