Descripción general

Farcaster es un protocolo suficientemente descentralizado para crear aplicaciones sociales. La descentralización total significa que dos personas que quieran comunicarse siempre podrán comunicarse. También significa que los desarrolladores pueden acceder a datos públicos en la web sin permiso.

Concepto de diseño

Ha habido muchos intentos de descentralizar las redes sociales, haciendo diferentes concesiones en descentralización, escalabilidad y usabilidad. ActivityPub eligió la federación, SecureScuttlebutt optó por la ruta peer-to-peer y Peepeth está basado en blockchain.

Farcaster toma prestadas ideas de algunos de esos proyectos pero hace diferentes concesiones. Su arquitectura se entiende mejor como el producto de tres decisiones de diseño:

Espacio de nombres flexible

Un usuario puede tener varios nombres de usuario de diferentes espacios de nombres. Los nombres pueden provenir de un espacio de nombres descentralizado, que es resistente a la censura, o de un espacio de nombres centralizado, que es gratuito y fácil de usar.

La cuenta de un usuario tiene un identificador numérico único 413241, por ejemplo, que se asigna al nombre de usuario que posee. Utilice contratos de Ethereum para rastrear identificadores, asegurando que dos usuarios siempre puedan encontrarse y comunicarse.

estado global

Muchas redes descentralizadas están federadas, pero esto rompe la garantía de acceso sin permiso a los datos públicos. También complica la experiencia de los desarrolladores al exigirles que rastreen muchos servidores no confiables.

Farcaster almacena todos los datos del usuario en un servidor llamado Hub. Cualquiera puede ejecutar un centro conectado a todos los demás centros a través de una red p2p. Cuando un usuario envía un mensaje nuevo a un centro, el mensaje se propaga a todos los demás centros. Cada centro debe almacenar datos válidos para todos los usuarios o será excluido de la red.

alquiler de bodega

Permitir a los usuarios almacenar cantidades ilimitadas de datos perjudica la salud de la red. Los usuarios malintencionados pueden crear miles de millones de mensajes de spam, lo que dificulta que los desarrolladores y usuarios utilicen la web. También imposibilita el funcionamiento de concentradores diseñados para hardware básico.

Farcaster cobra a los usuarios un alquiler por almacenar datos en la red. Pague una tarifa anual al acuerdo para garantizar una cierta cantidad de espacio en el centro. Esto frena el spam y anima a los usuarios a limpiar datos menos valiosos en la red.

concepto​

El protocolo tiene cinco pilares principales:

Cuentas, que representan a los usuarios en la red.

Nombre de usuario, apuntando a la cuenta

Firmantes, que publican mensajes en nombre de las cuentas.

Mensajes, que representan actualizaciones públicas de una cuenta.

Almacenamiento, que debe ser alquilado por la cuenta para publicar mensajes.

Cuenta

Una cuenta Farcaster representa una entidad única en la red. Cada cuenta tiene un ID de Farcaster o fid, que es un identificador numérico único como 78213. Las identidades se emiten y administran en cadena mediante un contrato de Ethereum llamado IdRegistry.

El usuario realiza una transacción al IdRegistry para obtener un nuevo fid. La dirección propietaria del fid se denomina dirección de depósito de garantía del usuario. IdRegistry garantiza que los fids se puedan transferir entre direcciones y que no haya dos direcciones que tengan el mismo fid.

Nombre de usuario

Se puede utilizar un nombre de usuario para identificar o hacer referencia a una cuenta. Los usuarios pueden conectar varios nombres a una cuenta, pero solo uno puede estar activo. Farcaster admite nombres de ENS publicados dentro o fuera de la cadena.

Farcaster en fcast.id Cada cuenta de Farcaster puede solicitar un nombre gratuito. Los usuarios también pueden usar nombres en otros espacios de nombres de ENS, como .eth. Se debe enviar una prueba firmada a la red para obtener un nombre de usuario.

Firmado por

Un firmante es un par de claves criptográficas que se utiliza para firmar un mensaje. Cada cuenta puede tener varios firmantes, lo cual resulta útil si desea compartir la propiedad de la cuenta o utilizar varias aplicaciones al mismo tiempo. Farcaster utiliza el contrato KeyRegistry para gestionar firmantes en cadena.

El firmante es la clave Ed25519 generada fuera de la cadena. La cuenta registra al firmante realizando una transacción en KeyRegistry utilizando la clave pública del firmante. Luego, la clave privada se puede utilizar para firmar el mensaje y publicarlo en la red.

Deja un mensaje

Los mensajes son actualizaciones públicas de Farcaster, como publicar una publicación, seguir a alguien o agregar una imagen de perfil. La red admite múltiples tipos de mensajes, cada uno con sus propias propiedades, requisitos y semántica. Los mensajes se almacenan completamente sin conexión en Farcaster Hub.

Los mensajes están codificados como protobuf y el firmante de la cuenta debe codificarlos y firmarlos. Siempre que haya suficiente espacio de almacenamiento, los usuarios pueden publicar mensajes en el Hub. El centro verifica la validez del firmante de cada mensaje antes de aceptarlo.

Almacenamiento​

El almacenamiento otorga a una cuenta el derecho de publicar mensajes en la red. Se alquila pagando una cuota anual, similar a como se alquila espacio en un servidor web. El almacenamiento se gestiona y rastrea en cadena mediante el contrato StorageRegistry.

El almacenamiento se mide en unidades, y una unidad otorga a una cuenta el derecho de almacenar una cierta cantidad de mensajes. Cualquiera puede pagarle a StorageRegistry para alquilar una unidad de almacenamiento para una cuenta. El precio y el tamaño de cada unidad de almacenamiento variarán según la oferta y la demanda.

Arquitectura​

Las redes sociales descentralizadas tienen muchos requisitos que son difíciles de cumplir en un solo sistema. Los usuarios deben poder crear, poseer y transferir cuentas de forma descentralizada. Los mensajes que crean deben viajar casi en tiempo real y, a menudo, se envían en grandes cantidades. Estos objetivos solo se pueden lograr utilizando una arquitectura híbrida que combine sistemas dentro y fuera de la cadena.

Los contratos en cadena se utilizan para operaciones poco frecuentes donde la coherencia y la descentralización son importantes. Las cuentas, los nombres de usuario, el almacenamiento y las claves se gestionan mediante una serie de contratos de Ethereum.

Los sistemas fuera de línea se utilizan para operaciones frecuentes donde el rendimiento es crítico. Los mensajes creados por cuentas de usuario se almacenan y propagan en la red p2p del centro Farcaster. A diferencia de blockchain, esta red utiliza un modelo de consenso eventual, que permite una rápida propagación de mensajes a cambio de un modelo de coherencia más débil.

contrato de registro​

El contrato de registro en la red principal de Optimism gestiona las identidades de las cuentas, los firmantes y el almacenamiento. Hay tres contratos principales:

Registro de identificación: emita fid para crear una cuenta nueva

Registro de almacenamiento: realice un seguimiento de cuánto espacio de almacenamiento tiene cada cuenta

Registro de claves: permite que las cuentas registren firmantes de mensajes

Estos contratos son de diseño simple, no actualizables y tienen un ciclo de vida limitado. Estos contratos se implementan en modo confiable y solo Farcaster puede registrar nuevas cuentas. Después de un período de prueba, dejarán de tener permiso para que cualquiera pueda registrar una cuenta. Este cambio no se puede deshacer.

oficina de registro de cédulas de identidad

El registro de identificación emite nuevas cuentas de Farcaster para direcciones de Ethereum. Los usuarios pueden realizar transacciones para obtener un identificador numérico único para una dirección, conocido como Farcaster ID o fid. Una dirección solo puede contener un fid a la vez, pero se pueden transferir libremente. La cuenta puede especificar una dirección de recuperación desde la cual se puede transferir el fid en cualquier momento.

registro de tienda

El registro de almacenamiento alquila unidades de almacenamiento a cuentas por una tarifa anual. Las cuentas deben poseer al menos una unidad de almacenamiento para publicar mensajes en Farcaster. Los precios de almacenamiento están determinados por el contrato en USD, pero deben pagarse en ETH. Los oráculos de Chainlink determinan los tipos de cambio que se actualizan como máximo una vez cada 24 horas. Farcaster controla los precios, los tipos de cambio, las unidades disponibles y el tamaño de cada unidad y varían según la oferta y la demanda.

Registro de claves

Un registro de claves permite que una cuenta registre a un firmante que puede escribir mensajes en su nombre. Los firmantes se pueden agregar o eliminar en cualquier momento, pero una vez eliminados no se pueden volver a agregar. Se puede agregar un firmante a varias cuentas. El firmante es la clave pública Ed25519 y debe estar firmado por el solicitante (es decir, la cuenta que solicita la clave). Puede ser la cuenta del usuario o la cuenta de una aplicación que quiera operar en nombre del usuario.

desplegar

Centro​

El centro autentica, almacena y replica mensajes de cuentas a otros centros. La aplicación ejecuta el centro para leer y escribir en Farcaster en tiempo real. Los concentradores se ejecutan en hardware básico y son conceptualmente similares a los flujos de datos de alto rendimiento y bajo nivel. La mayoría de las aplicaciones deben copiar datos centrales a una base de datos para facilitar la indexación y consulta.

Cada centro almacena el estado global completo o los mensajes creados por cada cuenta en la red. El límite máximo de unidades de almacenamiento para almacenar el registro garantiza que el tamaño del estado global sea limitado. A diferencia de los nodos de Ethereum, los centros son, en última instancia, consistentes y pueden desordenar los mensajes. Esto hace que la lectura y la escritura sean muy rápidas, pero la hace más compleja a la hora de interpretar los cambios.

Verificar

Cuando se recibe un mensaje, se le aplica un hash y se compara su firma con los contratos del registro de ID y del registro de claves. El mensaje también especifica reglas de validación adicionales que el centro verifica antes de fusionar.

Almacenamiento​

Cuando se valida un mensaje, se almacena en el conjunto de mensajes. Cada tipo de mensaje tiene un conjunto de reglas definidas para fusionar mensajes y manejar situaciones en las que la cantidad de mensajes excede el límite de usuarios. Normalmente, los mensajes más antiguos acaban desechándose. Las reglas están diseñadas para que los mensajes agregados en cualquier orden siempre resulten en el mismo conjunto.

Copiar

Cuando se almacena un mensaje, se envía a otros centros a través de la red de chismes libp2p. Los mensajes que no llegan a través de chismes se recuperan mediante sincronización diferencial, un proceso periódico fuera de banda. La sincronización diferencial compara el árbol Merkle de ID de mensajes entre dos concentradores y recupera los mensajes faltantes. El centro monitorea a sus compañeros y califica su comportamiento. Un par puede ser ignorado por sus pares si no acepta mensajes válidos, se queda atrás o chatea demasiado.

Implementación

Hubble: implementación de Hub en Typecript y Rust

Nombre de usuario

Los usuarios pueden asociar un nombre de ENS con su cuenta para que otros puedan mencionarlos fácilmente en los mensajes. Los nombres deben tener menos de 16 caracteres y contener únicamente letras minúsculas, números o guiones para evitar ataques de homógrafos.

Farcaster actualmente admite dos nombres de ENS:

fnames, son gratuitos y administrados por Farcaster.

Nombres .eth, que cuestan dinero y están controlados por el usuario.

Gobernancia

Farcaster utiliza consenso aproximado y código en ejecución como modelo de gobernanza. El cambio ocurre cuando alguien hace una sugerencia, obtiene soporte y publica un código de trabajo. Dependiendo del cambio, es necesario convencer a diferentes grupos:

Los desarrolladores de protocolos optan por fusionar los cambios en centros y contratos.

Los desarrolladores de aplicaciones eligen implementar estos cambios en su centro.

Usuarios, seleccionen las aplicaciones que quieran utilizar.

El consenso se desarrolla a medida que la gente acepta o rechaza el nuevo código. Farcaster no proporciona a nadie un proceso de votación vinculante, una función oficial ni derechos de veto. Demasiada estructura puede crear rigidez en el sistema, fomentar la politiquería y retardar el progreso. El consenso aproximado predispone la acción, fomenta la diversidad de puntos de vista y maximiza la descentralización, que es esencial para los protocolos a largo plazo. La mayoría de los cambios ocurren a través del proceso FIP.

FIP​

FIP, o Propuesta de mejora del teleyector, es el proceso de generar consenso en torno a los cambios de protocolo. FIP está inspirado en EIP de Ethereum y PEP de Python. Cualquiera puede redactar un FIP para proponer cambios:

Un proceso, como un cronograma de publicación de un acuerdo.

Estándares, como URI para activos en cadena

Una implementación, como agregar una nueva función de protocolo.

Lea más sobre FIP en FIP-0: Propuesta para Proponer una Propuesta. La lista final de propuestas se encuentra a continuación. Se hicieron propuestas en el foro de discusión y se aprobaron.

Tan pronto como salió el proyecto, V God publicó las últimas noticias, indicando que V God no tiene en cuenta este proyecto y pronto se convertirá en el nuevo líder.

El ex ejecutivo de Coinbase recauda 30 millones de dólares para el protocolo de red social descentralizada, liderado por a16z

Merkle Manufactory ha recaudado 30 millones de dólares en una ronda liderada por Andreessen Horowitz (a16z).

La incipiente empresa, dirigida por el ex ejecutivo de Coinbase Dan Romero, está trabajando para lanzar Farcaster, un protocolo "totalmente descentralizado" para crear redes sociales.

Un ex ejecutivo de Coinbase dijo el martes que su empresa, Merkle Manufactory, recaudó 30 millones de dólares en una ronda de financiación liderada por Andreessen Horowitz (a16z) para desarrollar un protocolo de red social llamado Farcaster.​

Dan Romero, quien dejó el intercambio en 2019, anunció la ronda de financiación en una publicación en su sitio web. Explicó que él y Varun Srinivasan, otro exdirector de Coinbase, comenzaron a trabajar juntos en 2020 en una idea llamada RSS+.​

"Nuestro objetivo era crear un protocolo neutral y confiable que permitiera a los usuarios tener una relación directa con sus audiencias y a los desarrolladores la libertad de crear nuevos clientes sin permiso", escribió. "Pasamos por varias iteraciones y finalmente construimos Farcaster, un. protocolo suficientemente descentralizado para construir redes sociales”.

Cripto estándar, Elad Gil, 1 confirmación, Scalar Capital, First Round Capital, Volt Capital, A Capital, Todd and Rahul's Angel Fund, Coinbase Ventures, Mischief, Ansa Capital, Haystack, Ribbit Capital, Capítulo uno, Multicoin Capital, Offline Ventures, Arquetipo , Canonical Crypto, Proof Group, Floodgate, Balaji Srinivsasan, 6529, Ray Tonsing y varios otros inversores ángeles también se unieron a la ronda.

#BinanceSquare >#Farcaster #BTC