Farcaster Overview. Часть 1

Farcaster - это открытый протокол, позволяющий создавать социальные приложения.

Introduction. Вступление

4 проблемы, которые пытаются решить Farcaster:

  1. Authentication  
    Боб должен быть уверен, что сообщение, которое он получил от Алисы, пришло именно от Алисы и никто посторонний в него не вмешался. Нужно иметь возможность аутентифицировать сообщения.

  2. Identity
    Децентрализованные социальные сети должны выдавать децентрализованные личности. Алиса должна с лёгкостью переходить из одного приложения в другое не теряя свою "личность".

  3. Availability 
    Данные должны быть всегда доступны, независимо от того, в каком приложении вы находитесь. Доступность требует, чтобы данные могли быстро перемещаться между приложениями. То есть если Боб перейдёт в другое приложение, он всё ещё должен видеть сообщения из других приложений.

  4. Consistency 
    Разные приложения могут иметь разные возможности. К примеру, Алиса в приложении A может поставить два лайка на сообщение, тогда как Боб и Клэр в приложении Б и В только один, тогда Клэр может принять за действительность первое сообщение о лайке, а Боб второе. Следовательно при использование разных приложений, пользователи могут получить разное представление о том, что произошло и из-за этого происходит разрыв состояний.  
    Поэтому нужна сеть, которая применяет определенные правила согласованности и может делает однозначные выводы. Тогда более раннее сообщение будет отброшено и Боб с Клер будет считать действительным только одно, одинаковое для обоих, сообщение.

Trustworthy Identities. Надёжность личности

Алиса и Боб имеют уникальные identities в децентрализованных социальных сетях. Они могут подписывать свои сообщения или действия. Но важно, чтобы идентификаторы были децентрализованы.

Алиса может выбрать себе имя (например, @alice) и использовать его. Но иногда децентрализованные имена не заслуживают доверия и не особо полезны. Например: 
Алиса использует имя @google. Когда Боб просматривает сообщения, то видит все эти сообщения отправленные от @google, а не от Алисы.
А это дерьмово.

Farcaster хотят найти способ сделать имена заслуживающие доверия.Их подход - введение новой концепции - Farcaster ID.

Вместо того, чтобы присваивать себе удобочитаемые имена, Алиса получаетFID - числовой идентифткатор (выглядит примерно так: 3489). Он используется во всех сообщениях. ID полностью децентрализован, он выдан смарт-контрактом специально для вас.

Farcaster ID
Farcaster ID

Но возникает неудобство. Если Боб захочет упомянуть Алису в посте, ему придется ввести @3489.  
Поэтому Farcaster позволяют Алисе выбрать ещё и имя пользователя (например @alice), которое будет связано с этим идентификатором. Это происходит в отдельной системе - вторичная система идентификация. Она нужна в основном для того, чтобы легче идентифицировать пользователь.

Ключевое различие между этими двумя системами, то что первая полностью децентрализована. Как только Алиса её получила, она остается за ней на всю жизнь.

Authentication. Аутентификация

Нужен способ аутентификации сообщений.

Адреса Ethereum фактически являются парами public и private keys, которые могут использоваться для создания подписи. Алиса создаст подпись с помощью закрытого ключа, а когда Боб его получит, то по индентификатору найдет пользователя в блокчейне и сможет всё проверить.

Но в этом способе есть проблема!Допустим, Алиса пользуется приложением с телефона, значит ей нужно загрузить private key на телефон. Тогда приложение может украсть ваши данные, вашу личность.

Один из способов Farcaster решить эту проблему, заключается в том, что они не позволяют приложению брать ваши ключи. Каждое приложение генерирует "signer".Вместо создания подписи Алиса создает другое сообщения, называемое "signer message". Оно включает в себя адрес Алисы (custody), signer адрес и подпись.
Сustody адрес (адрес Алисы) связан с парой ключей (public и private keys), которой управляет сама Алиса. Подпись создаётся custody адресом, поэтому Алиса создаёт цепочку от своего адреса, к подписывающей стороне, а подписывающей сторона подписывает этой подписью сообщение.

1 - custody address, 2 - public и private keys, 3 - signer message, 4 - signer, 5 - message
1 - custody address, 2 - public и private keys, 3 - signer message, 4 - signer, 5 - message

Account Recovery. Восстановление аккаунта

Алиса может потерять свою пару ключей и тогда потеряет доступ к аккаунту. В централизованных социальных сетях есть различные пути восстановления данных, например с помощью почты. В децентрализованной сети нужна похожая система для защиты Алисы, но без ущерба для децентрализованного владения её личностью.

Один из способов - разрешить вторичный идентификатор, который настраивается лично. Алиса может назначитьвторой адрес - адрес восстановления, который будет связан с этим же идентификатором.Например, она назначила адрес Боба (0x9889). В случае утери ключей, Алиса попросит Боба сделать передачу ID с одного адреса на другой. Боб отправляет запрос на передачу, который записывается в блокчейн.  Он сообщает, что хочет переместить идентификатор. Только спустя 7 дней Боб может завершить перемещение отдельной транзакцией и в этот момент происходит своп ID (с адреса ox1234 на ox5678).

Период задёржки необходим для предотвращения ситуаций, когда Боб стал враждебным и, например, хочет захватить ваш аккаунт. Если в этот момент вы имели контроль над своей учётной записью, то вы сможете сделать отмену транзакцию на перемещениие идентификатора.

Статья написана по материалам YouTube: ссылка - клик

Если статья оказался для вас полезной, подписывайся

lisiiichka.eth
Subscribe to Lisichka
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.