Integración de SAP con Ethereum Mainnet

Es probable que haya oído hablar de Ethereum en el contexto de la criptomoneda, pero quizás no tanto en el contexto del software empresarial. En este blog aprenderás qué son Ethereum y Ethereum mainnet. Aprenderá lo fácil que es conectar un sistema basado en SAP ABAP a la red principal de Ethereum, probar una demostración y ver todo el código fuente relacionado.

La red Ethereum
En primer lugar, un recorrido relámpago por Ethereum y sus usos. Ethereum es un software que puede ejecutar en una red de computadoras denominadas nodos. Cada nodo puede considerarse idéntico a todos los demás. Los nodos pueden ejecutar programas simples llamados contratos inteligentes dentro de una máquina virtual llamada Ethereum Virtual Machine (EVM). Estos contratos inteligentes tienen acceso a recursos informáticos y de almacenamiento limitados.

Ethereum se ocupa de transacciones que pueden ser activadas por un usuario o proceso externo, pueden ejecutar un programa de contrato inteligente y cambiar el estado de los datos almacenados en la red Ethereum. Las transacciones se pueden publicar cada 15 segundos aproximadamente y son atómicas, tienen éxito o fracasan. Si fallan, todos los cambios que hicieron se deshacen. De manera similar a las transacciones de procesos comerciales de SAP, una transacción de Ethereum está destinada a realizar cierta lógica comercial y almacenamiento limitados. Ethereum no está diseñado para operaciones con mucho procesamiento, almacenamiento o muy baja latencia.

Puede pensar en la red Ethereum de esta manera, muchos nodos diferentes, cada uno con un EVM ejecutándose dentro de ellos:

Ethereum almacena los contratos inteligentes y los datos asociados con ellos en una estructura de datos llamada blockchain, a veces denominada simplemente una cadena. Las nuevas transacciones se agrupan en bloques y son validadas por todos los nodos de la red. Luego, las transacciones se agregan al final de la cadena, junto con una «huella digital» (un hash) que representa todos los bloques anteriores. Esta función de huella dactilar hace que sea intencionalmente muy difícil ajustar los datos de forma retrospectiva. La idea es que una vez que se publica una transacción, todos los nodos la han validado y es permanente.

Hasta ahora todo bien, aunque un poco aburrido. Lo interesante es que cuando este software Ethereum se ejecuta en una red de nodos, surge una característica especial. La característica especial es que incluso si los nodos individuales son operados por extraños en los que no necesariamente puede confiar, se puede confiar en la red general para procesar transacciones como lo pretendía el originador de la transacción. Esta red es muy resistente. Se puede confiar en la red en general incluso si muchos operadores de nodos comienzan a coludirse para manipular los datos que están procesando.

Esta característica especial puede denominarse «la red sin confianza». No existe una autoridad central, intermediario o tercero en quien se deba confiar para verificar que la red procesa las transacciones de manera honesta. La red de extraños «se hace política». Ethereum es un ejemplo de tecnología de contabilidad distribuida (DLT). La colección de transacciones en bloques se puede considerar como un libro mayor, y la red de nodos es la parte distribuida, por lo que forma un DLT.

Hay mucho más sobre cómo funciona Ethereum. El resumen anterior omite muchos detalles que no son relevantes para este artículo. Por ejemplo, Ethereum está estrechamente asociado con la criptomoneda, pero ese aspecto no es de interés aquí. Si quieres leer más, el libro Mastering Ethereum de Andreas Antonopolous es muy recomendable. Es gratis y de código abierto. Ethereum es joven, cumplió 5 años en julio de 2020 y es un proyecto en curso. El desarrollo de Ethereum 2.0 está en marcha, lo que, entre otras cosas, mejorará la escalabilidad. Este artículo se relaciona con el software Ethereum 1.0 que está disponible hoy.

Ethereum Mainnet
Como acaba de aprender, Ethereum es un software que puede ejecutar en un montón de computadoras en red. ¿Qué tan grande es un montón? Bueno, podría ejecutarlo en una red privada dentro de su empresa (una cadena de bloques privada), o podría abrirlo un poco y permitir que las partes conocidas tengan acceso y ejecuten nodos también, tal vez otras empresas con las que hace negocios. Cuando se conocen todas las partes que operan los nodos, la red se denomina blockchain autorizada. Las personas solo pueden unirse a la red si reciben permiso de quienes ya la están ejecutando. Una ventaja de las cadenas autorizadas es que toda la red, todos sus datos y lógica, se pueden ocultar a aquellos que no forman parte de ella. Esto es particularmente deseable cuando se trata de información sensible.

Hay muchos casos de uso en los que las cadenas de bloques autorizadas pueden ser una buena elección. En estos casos, se puede utilizar software como Hyperledger Fabric de IBM, Quorum de JP Morgan y muchos otros. SAP ofrece opciones de Blockchain-as-a-Service para cadenas como estas y tiene una excelente documentación sobre los casos de uso. Si avanza rápidamente unos años, puede imaginar muchas cadenas autorizadas con cada organización perteneciente a muchas. Por lo tanto, la posible desventaja a largo plazo de las cadenas autorizadas es que la lógica y los datos terminan en múltiples silos parcialmente superpuestos.

De todos modos, el enfoque de este artículo no son las cadenas autorizadas, sino la red pública de Ethereum no autorizada la que interesa: la red principal de Ethereum. Es público, porque cualquiera, incluido usted, puede ejecutar un nodo en la red principal. Todo lo que necesita es hardware básico, software Ethereum y una conexión a Internet. De hecho, alrededor de 7,000 nodos están operando en la red principal en un momento dado, cada uno validando diligentemente cada transacción. Vale la pena enfatizar esto: cada nodo ejecuta las mismas transacciones. Este no es un procesamiento distribuido con el objetivo de aumentar el rendimiento. Este es un procesamiento distribuido con el objetivo de garantizar que se pueda confiar en la red. Se requeriría que más de la mitad de estos nodos se coluden para comenzar a manipular con éxito los datos. Ésta es la fuerza de un sistema distribuido tan grande.

No es necesario que ejecute un nodo usted mismo para usar mainnet. Puede enviar transacciones a cualquier nodo al que tenga derechos y la transacción se procesará. Una opción popular es usar un nodo Infura, pero tenga en cuenta que luego está confiando en Infura para operar sus nodos de manera justa.

Se puede pensar en la red principal como una infraestructura en la nube siempre activa por la que no tiene que pagar por adelantado. Se incurre en una pequeña tarifa por transacción que se paga a los operadores de nodo, generalmente unos pocos centavos de dólar, pero para las transacciones que usan más computación y almacenamiento, esto puede costar varios dólares. La tarifa se paga en la propia moneda interna de la red llamada Ether.

Puede imaginarse mainnet como un entorno informático global de instancia única, controlado por ninguna autoridad central, donde programas simples pueden ejecutar y almacenar pequeñas cantidades de datos sin riesgo de interferencia o corrupción. Lleve esta idea más allá e imagine muchas empresas conectadas a la red principal. Puede imaginarse la red principal actuando como un único bus de servicios empresarial global. En este contexto, mainnet a veces se denomina «bus mágico».

Casos de uso y privacidad de Mainnet
Mainnet tiene una gran superposición potencial con los casos de uso de cadenas autorizados, pero sin el efecto secundario de generar silos. La limitación de mainnet en este contexto es la privacidad.

Mainnet es pública por diseño. Todo el código de contrato inteligente es público. Todos los datos relacionados que almacena son públicos. Todas las transacciones son públicas. Entiende la idea y esto no suele ser adecuado para las empresas. En el ejemplo de demostración anterior, es probable que no desee que nadie sepa qué trato obtuvo con el cobalto.

El cifrado es una opción. Si confía en su cifrado lo suficiente como para que los datos cifrados sean públicos en Internet para siempre, esto podría ser viable. Esto puede adaptarse a algunos casos de uso, pero claramente no es perfecto.

Otra opción es no almacenar información confidencial en la red principal. En cambio, es posible almacenar evidencia de que se conoce información sensible, y no la información sensible en sí. Si bien esto puede parecer que Gandalf the Wizard ha comenzado a ejecutar proyectos de TI, es posible usar una tecnología llamada Zero Knowledge Proofs (ZKP). El principio detrás de los ZKP es que, si conozco un secreto, puedo convencer a alguien más de que conozco el secreto, sin revelar nada en absoluto sobre el secreto en sí.

Existe un proyecto de código abierto que busca permitir que las empresas colaboren a través de la red principal sin revelar información confidencial. Se llama Protocolo de línea de base. Los miembros fundadores incluyen Microsoft, AMD y Ernst & Young (quienes están detrás del proyecto Nightfall y también trabajan con ZKP). El protocolo de línea de base es una especificación y una implementación de referencia de código abierto. La comunidad del proyecto es amigable.

Conclusión
Ha visto lo fácil que es conectarse a la red principal de Ethereum y debería tener una mejor idea de lo que es. Este ejemplo usó .NET Core como la capa intermedia entre SAP y Ethereum, pero se podrían usar muchos lenguajes. Por ejemplo, para conectarse a Ethereum desde una interfaz de usuario basada en SAPUI5, puede usar la biblioteca web3.js.

Para seguir aprendiendo sobre Ethereum y mainnet, Ethereum.org tiene una sección dedicada al uso empresarial.

Pagina Orginal:



Categorías:Noticias

Deja un comentario

A %d blogueros les gusta esto: