paint-brush
¿Cuál es la diferencia entre IPFS y Ethereum Swarm?por@thebojda
6,208 lecturas
6,208 lecturas

¿Cuál es la diferencia entre IPFS y Ethereum Swarm?

por Laszlo Fazekas6m2022/12/25
Read on Terminal Reader

Demasiado Largo; Para Leer

IPFS es el sistema más antiguo (en el buen sentido). Tiene muchos casos de uso, está bien documentado y es ampliamente utilizado. Hay muchos proveedores de IPFS centralizados y también puede usar FileCoin para almacenar su contenido. Ethereum Swarm es relativamente nuevo y está en desarrollo, pero tiene algunas propiedades muy interesantes. El almacenamiento y la recuperación de contenido anónimo, la gestión DHT súper eficiente y la sólida compatibilidad con Ethereum son características únicas de esta solución.
featured image - ¿Cuál es la diferencia entre IPFS y Ethereum Swarm?
Laszlo Fazekas HackerNoon profile picture

El almacenamiento de datos en la cadena de bloques es costoso, por lo que si necesita almacenar una gran cantidad de datos en el "estilo de la cadena de bloques" (de forma inmutable, sin permiso y distribuida), debe usar una solución de almacenamiento externo. La opción más común es usar IPFS , pero hay otros jugadores en el mercado. Uno de ellos es el Ethereum Swarm . En este artículo, le presentaré las similitudes y diferencias entre Swarm e IPFS para ayudarlo a elegir la solución de almacenamiento adecuada para su próximo proyecto.


IPFS (el acrónimo de InterPlanetary File System) fue fundado en 2014 por Protocol Labs. Es un protocolo de sistema de archivos distribuido que utiliza el direccionamiento de contenido para identificar de forma única cada archivo en un espacio de nombres global. IPFS no tiene un sistema de incentivos real, es por eso que Protocol Labs creó FileCoin en 2017, que es su propia cadena de bloques centrada en el almacenamiento.


La idea de Ethereum Swarm surgió de Gavin Wood, uno de los fundadores de Ethereum. En 2015 Viktor Trón y Daniel Nagy se hicieron cargo del proyecto dentro del equipo Geth de la Fundación. Después de una ICO exitosa, hacen su propio viaje como un proyecto autónomo respaldado por la Fundación Ethereum. Hoy en día (en 2022), Swarm tiene más o menos funciones completas y se desarrolla activamente.


Ambos sistemas proporcionan un sistema distribuido, inmutable y direccionable por contenido con su propio sistema de incentivos y criptomoneda, y también ambos se basan en libp2p . A continuación, haré una comparación paso a paso de los dos sistemas.

Lógica de almacenamiento

IPFS es básicamente una comunidad de proveedores de almacenamiento donde los nodos publican contenido al que hace referencia su hash de contenido. La lista de nodos de almacenamiento para un hash se almacena en un DHT . Si desea recuperar contenido, en el primer paso debe encontrar la lista de pares en el DHT por el hash de contenido. En el segundo paso, la identificación del par debe traducirse a una dirección IP, y en el tercer paso, puede descargar el contenido del par dado en la dirección IP.


Ethereum Swarm tiene una lógica diferente porque almacena el contenido en sí mismo en el DHT. Llaman a este sistema DISC (Distributed Immutable Store for Chunks), y todo el sistema está diseñado para hacer que este DHT sea eficiente. Por ejemplo, cuando un nodo elige otros nodos para conectarse, elige pares para cada orden de proximidad (es decir, orden de magnitud de distancia desde su propia dirección). Debido a la conectividad de Kademlia, encontrar un trozo es muy rápido en este sistema. Cuando un nodo quiere recuperar un fragmento, pregunta a sus pares. Si un par tiene el contenido, lo devuelve, si no, pregunta por sus pares, etc. El contenido siempre se almacena en nodos que tienen una pequeña distancia de Kademlia y, debido a la conectividad de Kademlia, siempre es posible encontrar un camino de longitud logarítmica. Cuando el nodo de almacenamiento recibe la solicitud de recuperación, devuelve el contenido al nodo solicitante, que a su vez lo retransmite al nodo que lo solicitó, etc. hasta que llega al origen de la solicitud. Swarm llama a este método de reenvío Kademlia y proporciona anonimato. Los nodos solo conocen a los pares que solicitan el contenido, pero nadie sabe quién es el origen de la solicitud o el contenido. Es algo similar a lo que hace la red Tor para anonimizar las solicitudes. Pero el anonimato es solo una de las ventajas de reenviar Kademlia. También ayuda a distribuir el contenido, pero escribiré sobre esto más adelante.

contenido mutable

Si desea almacenar contenido mutable (por ejemplo, una página web que cambia con frecuencia) en IPFS , puede usar IPNS . En IPNS, la dirección del contenido mutable es una clave pública y la dirección del contenido inmutable subyacente está firmada por su parte de clave privada. La clave pública -> asignaciones de contenido firmado se publican en la DHT. Si el contenido cambia, el propietario del contenido firma el nuevo hash de contenido y lo publica para la clave pública, de modo que los recuperadores puedan actualizar la asignación de contenido a partir de él.


En Ethereum Swarm , hay dos tipos de fragmentos. Uno es el fragmento direccionado de contenido "habitual" y el otro es el fragmento de propietario único. La dirección del fragmento de propietario único es un hash del propietario y una identificación única. Estos fragmentos de propietario único también son inmutables, pero puede crear la ID a partir de un nombre de tema y un número de serie. Cuando cambia el contenido, simplemente debe aumentar el número de serie y publicar una nueva parte. Los retrievers pueden sondear el sistema y, si hay un fragmento nuevo disponible con un número de serie más alto, pueden actualizar el contenido. Swarm llama a estas fuentes de estructura numeradas en serie.

Sistema incentivador

Si desea almacenar contenido en el IPFS , tiene más opciones. Simplemente puede elegir un proveedor centralizado como Infura o Pinata, cargar su contenido y pagar la tarifa de almacenamiento para que su contenido esté disponible en IPFS, o simplemente puede ejecutar un nodo IPFS en su máquina y publicarlo usted mismo.


Otra forma es usar FileCoin, que es la cadena de bloques "oficial" de IPFS (también desarrollada por Protocol Labs, que desarrolló IPFS). FileCoin es básicamente un mercado para proveedores de almacenamiento donde puede hacer contratos para almacenar su contenido. Los mecanismos de la red FileCoin mantienen seguro su contenido y sancionan a los proveedores contratados que no conservan su contenido o no lo ponen a disposición. Si recupera el contenido y se alcanza un umbral de transferencia de datos, debe pagar una tarifa.


Ethereum Swarm utiliza su propio sistema de pago en lugar de una cadena de bloques, que es algo similar a los canales de pago como Lightning Network , pero un poco diferente. Cuando un nodo paga a otro, lo hace mediante cheque. Estos cheques son similares a los cheques del mundo real, documentos firmados que se pueden usar para retirar dinero del contrato de chequera del nodo.


En Swarm, la transferencia de datos tiene una tarifa. Si un nodo envía datos a su par, se cuenta una pequeña tarifa. Cada conexión entre pares tiene un saldo, y si este saldo llega a un límite, el nodo le da un cheque al otro. Todo se sale de la cadena. Solo cobrar el cheque necesita la acción de la cadena de bloques.


Si desea recuperar contenido, debe pagar al compañero que se lo proporciona. Si tiene el contenido, puede quedarse con la tarifa completa, pero si no, tiene que pagar por su par que lo da. Esta lógica incentiva a los nodos a almacenar localmente el contenido popular, por lo que Swarm actúa como una CDN adaptativa.


En la red Swarm, no hay proveedores individuales. El contenido siempre se almacena en los nodos que tienen la distancia Kademlia más pequeña de su hash (Swarm llama a estos nodos vecindarios). Es una propiedad esencial de Swarm mantener el DHT efectivamente buscable. Puede publicar contenido en cualquier nodo, lo que lo empujará al par más cercano, lo que lo empujará al mejor lugar de almacenamiento. El método es muy similar a la recuperación de contenido pero en la dirección opuesta. Si desea almacenar su contenido en la red, debe adjuntarle un sello postal. Un sello postal es algo así como un cheque que se puede cobrar solo si puede demostrar que conserva el contenido.

Interoperabilidad de Ethereum

La interoperabilidad de Ethereum es el campo donde Ethereum Swarm es realmente fuerte. Como almacenamiento "oficial" de Ethereum, todo es "compatible con Ethereum".


Por ejemplo, la dirección del nodo se deriva de la dirección Ethereum del propietario. Debido a esto, podemos usar el sistema de reenvío de fragmentos para enviar mensajes cifrados a nodos determinados. Swarm llama a esta técnica PSS, que es el sucesor del protocolo de mensajería Ethereum Whisper.


El propietario de los fragmentos de propietario único también es la dirección de Ethereum y el método de firma es el mismo que el de Ethereum, por lo que simplemente puede verificarlo en un contrato inteligente o usarlo para asignar metadatos en las fuentes. Cuando creé MyETHMeta (un sistema de metadatos similar a Gravatar para cuentas de Ethereum), tuve que usar un contrato inteligente para almacenar la dirección de Ethereum -> asignaciones de URL de metadatos. Con Swarm, se puede hacer mediante un simple feed sin blockchain.


Los trozos de enjambre son árboles Merkle . Esto significa que la dirección del fragmento es la raíz de Merkle del contenido. Esto es útil si los verifica en contratos inteligentes porque puede crear fácilmente pruebas de inclusión para el contenido. Por ejemplo, si desea almacenar una lista blanca larga (> 1000 elementos), puede almacenarla en Swarm en lugar de blockchain y verificar la membresía mediante un contrato inteligente utilizando pruebas de Merkle. O puede crear paquetes acumulativos completos en Swarm donde la raíz del estado también es la dirección de contenido para todo el estado.

Conclusión

Como puede ver, ambas soluciones de almacenamiento tienen sus puntos fuertes y débiles.


IPFS es el sistema más antiguo (en el buen sentido). Tiene muchos casos de uso, está bien documentado y se usa ampliamente. Hay muchos proveedores de IPFS centralizados y también puede usar FileCoin para almacenar su contenido.


Ethereum Swarm es relativamente nuevo y está en desarrollo, pero tiene algunas propiedades muy interesantes. El almacenamiento y la recuperación de contenido anónimo, la gestión DHT súper eficiente y la sólida compatibilidad con Ethereum son características únicas de esta solución.