Cadena de Bloques, IoT y el Futuro del Transporte: Entender la Moneda de Motoro
Los contratos inteligentes de código abierto, IoT y Ethereum funcionan en conjunto con una nueva moneda de utilidad para hacer el transporte más accesible y reducir el desperdicio de vehículos. En este artículo, el desarrollador Freelance de Ethereum de Toptal, Michał Mikolajczyk, explica las motivaciones y la metodología detrás de la última iniciativa de su nueva empresa.
Los contratos inteligentes de código abierto, IoT y Ethereum funcionan en conjunto con una nueva moneda de utilidad para hacer el transporte más accesible y reducir el desperdicio de vehículos. En este artículo, el desarrollador Freelance de Ethereum de Toptal, Michał Mikolajczyk, explica las motivaciones y la metodología detrás de la última iniciativa de su nueva empresa.
Founder/CEO of a blockchain IoT startup and community leader for Toptal Warsaw, Michal has a wide range of full-stack experience.
Expertise
El alquiler descentralizado de vehículos inspiró el proyecto software de código abierto cadena de bloques y IoT, de donde ha surgido la moneda de utilidad Motoro. En un futuro previsible, se podrá acceder a los contratos inteligentes públicos que se describen a continuación, a través de interfaces de aplicaciones distribuidas (ĐApp). La puesta en marcha VIKING GARAGE ya proporciona acceso a mejores alquileres de motocicletas en Europa y el sudeste asiático. Las historias atestiguan que ha habido un impulso en la investigación y el desarrollo de un protocolo abierto para el alquiler motorizado de máquinas de igual a igual a través de la tecnología Cadena de Bloques.
Las conferencias técnicas son siempre una fiesta intelectual. La energía masiva se centra en mejorar a la humanidad. La creatividad que se gasta en imaginar un futuro mejor nunca decepciona. Pero también hay precauciones contra la tecnología que sale mal, como cuando Stephen Hawking advirtió recientemente que la IA podría convertirse en nuestra perdición. Este contraste definitivamente allana el camino para discusiones interesantes durante los viajes de Uber.
La otra cara es más brillante. Ahora tenemos tecnología que nos permite dar forma rápidamente a nuestro mundo. Creamos nuevos niveles de abstracción sobre la tecnología de ayer y aprovechamos muchas máquinas existentes de formas inimaginables por sus creadores. Después de una inmersión profunda en dos de las tecnologías contemporáneas más calientes—cadena de bloques y IoT—surgen ideas con el potencial de un impacto social y económico significativo. El tipo de impacto que crearía un millón de empleos. Pero, ¿qué tipos de casos de uso prácticos de cadena de bloques IoT existen para lograr esto dentro de la industria del transporte?
En ocasiones, en tales casos, las soluciones son sorprendentemente simples.
En VIKING GARAGE, ayudamos a los propietarios de motocicletas a ganar dinero alquilando sus bicicletas. En otras palabras, hemos construido una economía de intercambio de motocicletas que ha alterado la industria del transporte personal. Y ahora estamos presentando la moneda de utilidad Motoro. Pero demos un paso atrás para que veas por qué lo necesitamos.
Aprovechando las Máquinas Existentes para una Vida Mejor
Una faceta importante de la industria general del transporte en todo el mundo es que las máquinas y vehículos nuevos generalmente son costosos. Por el contrario, el acceso al hardware existente es mucho menos costoso y, a menudo, la calidad es similar. Algunas empresas operan simplemente alquilando máquinas, que a menudo son arrendadas por las instituciones financieras. (Esa situación es bastante diferente del estado actual del software).
En particular, los vehículos utilizados en obras de construcción, en granjas agrícolas, en el transporte e incluso en el sector minorista son demasiado caros para comprar en proyectos puntuales. Esto incluye el transporte personal, y esa es la razón por la que tenemos servicios de viaje compartido como Taxify.
Uber Black, la oferta de lujo, también es una gran experiencia en las ciudades más grandes del mundo, y por un precio pequeño. Ese es el punto de compartir: el acceso a productos de alta calidad se vuelve fácil y económico. Realmente solo necesitamos vehículos de Tesla cuando nos movemos de un lugar a otro: la propiedad puede considerarse un artefacto de usabilidad. ¿Quién quiere preocuparse por la degradación de la batería a lo largo de los años o, peor aún, por el robo de automóviles? Elegiría el Polestar 1—cuando salga en abril, ni siquiera será posible comprarlo “para mantenerlo”.
La propiedad puede considerarse un artefacto de usabilidad.
La tendencia a alejarse de la propiedad hacia un enfoque más utilitario es una gran oportunidad para todos los propietarios de máquinas. Mientras escribo esto, pienso en los excelentes mecánicos, corredores y dueños de motocicletas que conocí en Indonesia durante nuestra estadía de tres meses. A menudo, sus motocicletas eran la riqueza principal (y a veces la única) que poseían.
Solo en ese país se venden 7 millones de motocicletas nuevas cada año. Sin embargo, era casi imposible alquilar bicicletas específicas—en este caso, motos de cross—para el mediano plazo, hasta que recurrí a propietarios privados. Al tratar con propietarios privados, el acceso a ese tipo de motocicletas mejoró enormemente, y los precios bajaron a una fracción de lo que las grandes empresas solicitaban. La persona era propietaria de una máquina, no la necesitaban en ese momento, y yo quería pagar para usarla. Funcionó.
Eso fue bastante simple. ¿Por qué no escalarlo?
¡Se Acerca el Problema!
En realidad, hacer un negocio escalable que brinde servicios de calidad no es simple. Incluso si la primera transacción fue buena, fue mayormente suerte. Me consideraría un realista: confío en que si algo puede salir mal, entonces en el transcurso de cien mil transacciones, probablemente así será—muchas veces.
Las máquinas son peligrosas. Los accidentes de motocicleta pueden ser especialmente mortales. Cuando ocurren accidentes, entonces por ley, y por el bien del seguro, se encontrará una causa—pero ¿dónde deja eso al propietario y al conductor? Como ingenieros, comprendemos la prevalencia del error humano. En VIKING GARAGE, queremos capacitar a las personas para que viajen y los propietarios puedan ganar dinero alquilando máquinas. Reconocemos la posible responsabilidad y tenemos la intención de minimizar el riesgo. Queremos que la transacción se mantenga entre el propietario y el arrendatario porque queremos brindar un medio abierto, transparente y seguro para que las personas puedan alquilar vehículos y viajar.
Entonces, ¿qué puede posiblemente salir mal? Inicialmente, puede ser bastante difícil incluso acceder a motocicletas en alquiler. Suponiendo que superemos eso, y hay una máquina disponible, entonces la pregunta hecha por los propietarios es: “¿Qué pasa si alguien se la roba?” ¡Ese es un gran problema! Por el contrario, los corredores preguntan: “¿Y si daño la moto?” Eso podría resolverse con un seguro y un contrato formal de alquiler. Otra pregunta que suelen hacer los pasajeros es: “¿De quién será la culpa si tengo un accidente?” Obviamente, existen normas de tráfico, pero debemos tener en cuenta el estado mecánico de la máquina porque las máquinas pueden fallar. Añade a eso la cuestión de la confianza formal entre el propietario y el arrendatario, y entre cada uno de ellos y las autoridades locales.
En la lista anterior hay cinco problemas importantes: Logística de acceso, robo, uso responsable y responsabilidad, estado de la máquina y confianza. Parece que sólo tenemos tres soluciones tradicionales: acuerdos de alquiler, seguro y normas de tráfico. Esas soluciones han fallado en numerosas ocasiones. ¿Tenemos que considerar todo eso, sólo para alquilar una máquina? En el caso de VIKING GARAGE, donde queremos que las personas se renten máquinas entre sí a escala global y se mantengan a salvo, la respuesta es: ¡Sí! Consideremos cómo la nueva tecnología puede ayudarnos.
¿Quién Hace Cadena de Bloques IoT?
La buena noticia es que ahora tenemos la tecnología para resolver los problemas antes mencionados y/o mejorar las soluciones existentes. Hagamos una lista de los problemas una vez más, para mayor claridad:
- Acceso a las máquinas
- Robo
- Uso responsable y responsabilidad por daños
- Estado de la máquina y calidad del servicio
- Confianza formal
Una solución inicial, y sobre la que vamos a desarrollar, fue representar las máquinas y las transacciones de alquiler en una red pública descentralizada. Algunos libros distribuidos, o cadena de bloques, parecían un ajuste natural. En particular, nuestra atención se vio atrapada por la creciente popularidad y cuasi-completamiento de la cadena de bloques de Ethereum.
Para permitir el procesamiento de transacciones, dos tipos de contratos inteligentes serían suficientes: (a) uno para representar a los propietarios y los pasajeros/arrendatarios y (b) otro para representar las máquinas. Existe otro requisito: un protocolo para minimizar las posibilidades de fraude y malentendidos, sin la participación de terceros. Es probable que un conjunto de pruebas físicas de alquiler deba documentarse con la mayoría de los acuerdos. Desarrollar dicho algoritmo puede ser complicado pero esencialmente con sólo un puñado de contratos inteligentes, se puede usar una cadena de bloques como plataforma base para compartir economías. Es muy conveniente porque la función nativa de las cadena de bloques es facilitar el consenso distribuido y las transacciones seguras.
Aquí está un primer esbozo de una representación de máquina como un contrato inteligente de Ethereum, escrito en Solidity. El contrato ya tiene una interfaz para alquileres simples, incluido un sistema de depósito en garantía. El código se compila correctamente y sirve para delinear qué tan simples y efectivas pueden ser las soluciones.
pragma solidity ^0.4.18;
import '../node_modules/zeppelin-solidity/contracts/token/ERC20Basic.sol';
import '../node_modules/zeppelin-solidity/contracts/token/SafeERC20.sol';
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions; this simplifies the implementation of "user permissions."
*/
contract MachineRepresentation {
using SafeERC20 for ERC20Basic;
address public owner;
address public pendingRenter;
address public renter;
string public model;
string public make;
string public vin;
uint256 public rentalPrice;
uint256 public rentalCount;
// ERC20 basic token contract being held
ERC20Basic public token;
event MachineRental(address indexed _machine, address indexed _owner, address indexed _renter, uint256 startTime, uint256 endTime, uint256 _rentalPrice);
event RentalClaimed(address indexed _machine, address indexed _renter, uint256 claimedTime);
event MachineReturned(address indexed _machine, address indexed _renter, uint256 returnTime);
event ReturnConfirmed(address indexed _machine, address indexed _owner, uint256 claimedTime);
/**
* @dev The MachineRepresentation constructor sets the original `owner` of the contract to the sender
* account. It also sets the model, make, and VIN of the machine.
*/
function MachineRepresentation(string _model, string _make, string _vin) public {
owner = msg.sender;
model = _model;
make = _make;
vin = _vin;
rentalCount = 0;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Throws if called by any account other than the renter.
*/
modifier onlyRenter() {
require(msg.sender == renter);
_;
}
/**
* @dev Throws if called by any account other than the pending renter (temporary role).
*/
modifier onlyPendingRenter() {
require(msg.sender == pendingRenter);
_;
}
/**
* @dev Allows the owner to rent out the machine to the renter, and specify the start and end time
* and also the price for the rental
*/
function rentMachine(address _pendingRenter, uint256 startTime, uint256 endTime, uint256 price) public onlyOwner {
require(_pendingRenter != address(0));
rentalPrice = price;
MachineRental(this, owner, _pendingRenter, startTime, endTime, price);
pendingRenter = _pendingRenter;
}
/**
* @dev Allows the pendingRenter address to finalize the transfer and provide a token contract, with the cash to hold
*/
function claimRental(ERC20Basic _token) onlyPendingRenter public {
require(rentalPrice <= _token.balanceOf(this));
token = _token;
renter = pendingRenter;
pendingRenter = address(0);
RentalClaimed(this, renter, now);
}
/**
* @dev Allows the renter address to return the machine, and transfer the cash from the held contract, to the machine
owner
*/
function returnMachine() onlyRenter public {
uint256 amount = token.balanceOf(this);
require(rentalPrice <= amount);
token.safeTransfer(owner, amount);
MachineReturned(this, renter, now);
}
/**
* @dev Allows the owner address to confirm the return of the machine
*/
function confirmReturn() onlyOwner public {
renter = address(0);
rentalPrice = 0;
rentalCount++;
ReturnConfirmed(this, owner, now);
}
}
Debo señalar que se necesitan más que unos pocos contratos inteligentes finitos para cubrir todos los muchos tipos posibles de transacciones de alquiler. Vemos la necesidad de una biblioteca modular con contratos reutilizables, mínimos inteligentes, construidos con flexibilidad en mente y enfocados en el alquiler de vehículos. Eso permitiría a otros ingenieros construir contratos finales para sus casos de uso. Empresas de relevo, proporcionando interfaces ĐApp con los contratos, probablemente podrían crecer simplemente al ser puerta de entrada a tipos específicos de contratos inteligentes.
Entonces, ¿qué valor agrega exactamente la cadena de bloques Ethereum?
En primer lugar, los contratos de alquiler serían transparentes. Toda la información en la cadena de bloques público es, bueno, pública. Es posible hacer referencia a datos que se mantienen en secreto y seguros en otro lugar, pero la referencia permanecería pública. Esencialmente, cada acuerdo de alquiler, junto con los detalles que acuerden las dos partes, estaría a disposición del público.
En segundo lugar, esa información sería segura, porque una copia de ella se distribuiría en todo el libro mayor descentralizado (cadena de bloques). La huella se mantendría presente para siempre, o al menos hasta que un giro rígido modificara explícitamente los bloques utilizados para facilitar las transacciones—pero las posibilidades de eso son cercanas a cero.
En tercer lugar, la información también sería segura, ya que todas las transacciones en la cadena de bloques de Ethereum deben verificarse, es decir, se debe lograr el consenso.
La cuarta razón para usar blockchain es que los contratos son autoejecutables. Una vez que se haya firmado, no se requieren más acciones del usuario para evaluar si se cumplieron las condiciones enumeradas en el contrato; es decir, a menos que las partes acuerden agregar dichos requisitos. Tenga en cuenta, sin embargo, que los contratos no pueden acceder directamente a la información del mundo exterior. La razón de esto es que Ethereum requiere que todos sus cambios de estado pueden ser validados por cualquier persona, en cualquier momento.
Por lo tanto, se necesitan autoridades de confianza para validar la información entrante desde fuera de la cadena de bloques y alimentarla con datos. Ese papel fue llenado por servicios llamados oráculos, el más popular de ellos es Oraclize. Se puede lograr cierta descentralización refiriéndose a grupos de oráculos, como lo hace Oraclize. Pero el estado actual de la tecnología deja a uno queriendo mejores soluciones. Por ejemplo, ¿qué pasaría si las máquinas de alquiler pudieran reemplazar oráculos?
La quinta razón: los contratos inteligentes son autoejecutables. Esto significa que, después de la firma, y cuando se cumplen las condiciones establecidas, los contratos inteligentes son capaces de tomar medidas para resolver el acuerdo. Todo en los contratos es claro y automatizado, desde la firma del documento hasta la finalización del acuerdo. Las condiciones y consecuencias establecidas son inmutables. Dichos contratos son seguros para ambas partes y no tienen sorpresas.
Al comparar esos cinco puntos (respaldados de forma nativa por la tecnología cadena de bloques ampliamente utilizada y de rápida evolución) con la alternativa (tener que crear soporte para transacciones y contratos seguros y protegidos, desde cero) la pregunta inicial cambia. ¿Por qué no querríamos usar tecnología de cadena de bloques?
De hecho, hay algunas razones para no hacerlo. Todas las transacciones de cadena de bloques requieren gas para ejecutarse, lo que significa que deben pagarse. El costo promedio actual de una transferencia estándar en la cadena de bloques Ethereum es de 1 dólar. La segunda razón es que la cadena de bloques es bastante lenta. La tercera razón es que toda la información es pública. Sería simplemente peligroso, y a menudo ilegal, mantener los datos personales vulnerables en un almacén de datos accesible para todos, sin la posibilidad de cambiar o borrar esos registros.
Debo señalar que los costos de transacción y la velocidad difieren mucho entre las cadena de bloques. La cadena de bloques de Ethereum es extremadamente popular en este momento, pero con el surgimiento de cadenas de retransmisión como el proyecto Polkadot, pronto surgirán plataformas más adecuadas. La descentralización es la característica más importante, y es un hecho con cualquier tecnología de contabilidad distribuida.
En cuanto a la privacidad, en última instancia, los datos almacenados en la cadena de bloques con acuerdos formales deberían ser mínimos. Los usuarios serían referenciados por las direcciones de sus billeteras, que son algo anónimas, o seudónimas.
Motoro: Construyendo una Comunidad Ciber-física
Volvamos a los cinco problemas mencionados con las máquinas para compartir. Ahora podemos describir claramente cómo los sistemas ciber-físicos bien abastecidos, que consisten en ĐApps conectados a cadena de bloques, combinados con SaaS fuera de cadena y módulos de IoT de hardware y software, pueden resolver los problemas mencionados anteriormente:
1. Acceso a Máquinas
Los contratos inteligentes utilizados para representar máquinas se almacenarían en la cadena de bloques pública. Esas representaciones serían independientes de cualquier negocio central y podrían figurar en varias ĐApps, reutilizadas de acuerdo con la voluntad y la disponibilidad.
2. Hurto
La identificación de las máquinas tiene el efecto más fuerte cuando la unión se expresa tanto en el lado del software (cadena de bloques) como en el lado del hardware (sistemas de IoT incorporados). La red ciberfísica consistiría en microcontroladores, conectado a los módulos de las máquinas, como los conectores de diagnóstico a bordo (por ejemplo, OBD-II) o las unidades de control del motor (ECU). Dichos microcontroladores proporcionarían los datos a los contratos inteligentes, utilizados para identificar las máquinas. Se convertirían así en oráculos de hardware.
Dependiendo del tipo de conexión electrónica, la conectividad a Internet y, finalmente, las cláusulas, que las partes acuerden en el contrato inteligente para el alquiler, el atributo de autoaplicación del contrato podría extenderse a las máquinas físicas.
Hay dos tipos de interacciones: leer desde la máquina y escribir en ella. Ejemplos simples de tales interacciones serían activar el rastreo GPS en caso de que la máquina no se devolviera, o incluso apagar el encendido o la inyección de combustible, o cambiar la asignación de combustible al punto donde la máquina ya no esté operativa.
Se requiere extrema precaución cuando se trata de dispositivos que pueden escribir y cambiar el estado de las máquinas. Los riesgos obvios para la seguridad humana, señalando la necesidad de aplicaciones responsables, indica la gran potencia debajo de tales sistemas IoT.
3. Responsabilidad y Uso Responsable de Máquinas
Las mejoras en este aspecto son un efecto directo de la transparencia, la autoejecución y la autoaplicación de los contratos inteligentes destinados a ser utilizados como contratos de alquiler. Dichos documentos pueden incluir todas las cláusulas que las partes decidan.
Otros tipos de documentos, como fotos o videos, que indican el estado previo y posterior al alquiler de la máquina se pueden almacenar en la cadena de bloques como evidencia en el caso de conflictos.
Los contratos inteligentes también podrían obligar a contratos de depósitos garantizados, como en el ejemplo anterior. Cada paso de la transacción y su resolución, junto con todos los activos, serán en todo momento transparentes y predecibles.
4. Estado de la Máquina y Calidad del Servicio
Las máquinas pueden verse realmente bien en las fotos, e incluso funcionar aparentemente bien cuando se las inicia, pero muchas fallas pueden permanecer ocultas al principio. Problemas como rodamientos gastados, sobrecalentamiento, y muchos otros pueden requerir conocimiento específico para notar, quizás común a mecánicos, pero no a la población general.
Sin embargo, esas fallas muy probablemente se presentarán y arruinarán la experiencia del arrendatario, quizás causando más problemas. Imagínate que la gasolina gotea en un motor caliente, ¡esa era el doble de tu experiencia personal en dos motocicletas diferentes!
Este problema puede ser abordado por la comunidad. Recompensar a los usuarios por describir su experiencia en comentarios y entregar un sistema de puntuación, mejoraría instantáneamente la situación. Distinguir los comentarios y puntajes aplicados a las máquinas de los dados a los propietarios de máquinas ayudará a evaluar el estado mecánico, el servicio y la calidad de la comunicación. Además, esa información podría abarcar las economías de intercambio.
5. Confianza Formal
Este último problema se resuelve junto con los dos anteriores. La naturaleza de los contratos inteligentes contribuye a la transparencia del acuerdo, mientras que la comunidad evaluará rápidamente si un usuario está actuando maliciosamente.
En particular, ĐApps podría agregar una opción para imprimir una versión del contrato, aplicada en un esquema de contrato de alquiler, típico de la región y las autoridades locales, ¡y surge la solución genérica!
Las soluciones descritas en esta sección nos permiten, en nuestra opinión, mejorar en gran medida la situación actual con los alquileres de transporte personal. Las opciones de falla se minimizan y se pueden construir soluciones adicionales sobre ese conjunto básico. El proceso difícil y arriesgado de alquilar máquinas se vuelve menos difícil y más fácil de administrar al introducir un sistema y comunidad ciber-física.
Motoro, la Pieza que Falta (¡Obviamente!)
Es importante destacar que Motoro se puede usar con otros tipos de vehículos, como máquinas de construcción y agrícolas.
Motoro es un identificador ERC20, lo que significa que obedece los estándares, se puede usar en la cadena de bloques pública de Ethereum y se puede cambiar por Ethereum y otros identificadores ERC20. Es disruptivo porque:
- Es una moneda global para el alquiler de motocicletas.
- Tiene documentos incorporados, tales como alquiler de motocicletas, venta al por menor o acuerdos de servicio, desplegables a la cadena de bloques pública de Ethereum.
- Es de código abierto, con un servicio dedicado inicial—el inicio de alquiler de motocicletas descentralizado VIKING GARAGE—y una API abierta.
- Permite el intercambio directo de alquiler de motocicletas, servicios y productos, así como la mayoría de las monedas.
- Proporciona acceso rápido al transporte personal en todo el mundo, utilizando la infraestructura existente y la disponibilidad global de motocicletas, también para aquellos con una licencia de conducir regular.
- Recompensa la actividad de los miembros de la comunidad entregando nuevas monedas para publicar comentarios y puntajes.
Hablamos de motocicletas todo el tiempo porque esas son las máquinas con las que trabajamos en VIKING GARAGE. También son muy utilizables y no muy costosas en comparación con otros tipos de máquinas. Además, hacen ese sonido genial y van realmente rápido con un giro del acelerador. Sin embargo, es importante enfatizar que Motoro se puede usar con otros tipos de vehículos, como máquinas de construcción y agrícolas.
El Camino Por Delante
Anticipamos el siguiente impacto global inicial de Motoro:
- Nuevos Trabajos: Cientos de miles de propietarios de motocicletas, obteniendo nuevos beneficios de las motocicletas existentes. (Ya estamos observando esto en VIKING GARAGE.)
- Cambios de Mercado: Un aumento mundial en el alquiler de motocicletas privadas y el uso general de motocicletas, y una caída en las ventas de motocicletas.
- Mejora de la calidad de vida para los propietarios y ciclistas de motocicletas: El mayor efecto será visible en el sudeste asiático, debido a la nivelación de los precios mundiales debido al denominador común, Motoro.
- Escalar a otras áreas: Motoro se usa en otras economías de compartición de máquinas y se integra con tecnología IoT.
- Activo rentable para inversión: Motoro es una moneda de utilidad estándar, diseñada para el alquiler de vehículos directos. También se puede usar para pagar alquileres a través de VIKING GARAGE y otras economías de vehículos compartidos en el futuro, en cualquier parte del mundo. Cuanta más gente confíe en la moneda descentralizada de alquiler de vehículos, más valdrá la moneda.
Si estás interesado en participar en este movimiento global, que abarca IoT y cadena de bloques, hay muchas maneras de hacerlo de inmediato. Puedes contribuir a nuestros proyectos de código abierto en GitHub. Otra forma es comenzar a usar VIKING GARAGE, como propietario de un vehículo o máquina. Finalmente, te invitamos a que te unas a nosotros en uno de nuestros eventos de Toptal Community—talleres de cadena de bloques IoT—en Campus Warsaw (Google Space) en Polonia, donde discutiremos y planificaremos la evolución de Motoro. Para eso, simplemente busca Toptal en su página de eventos. La próxima reunión en 2018 es el 20 de marzo. ¡Las personas de todos los niveles de habilidades son bienvenidas ya que podemos aprender juntas y creamos soluciones de IoT de fuente abierta basadas en cadena de bloques!
Referencias:
- The Bitcoin Whitepaper, “Bitcoin: A Peer-to-Peer Electronic Cash System”
- Smart Contracts: Building Blocks for Digital Markets
- A Solution for the Problems of Translation and Transparency in Smart Contracts
- OpenZeppelin, a framework to build secure smart contracts on Ethereum
- The Ethereum Whitepaper, “A Next-Generation Smart Contract and Decentralized Application Platform”
- An Answer to “How can an Ethereum contract get data from a website?”
Warszawa, Poland
Member since September 17, 2014
About the author
Founder/CEO of a blockchain IoT startup and community leader for Toptal Warsaw, Michal has a wide range of full-stack experience.