Las consecuencias involuntarias del diseño del producto

Esta es una charla que di recientemente en Devcon IV el 31 de octubre de 2018. Se ha modificado ligeramente para una audiencia en línea más amplia ya que la leerás en lugar de escucharla.

Hola, soy Taylor y soy el fundador y CEO de MyCrypto. Anteriormente fundé MyEtherWallet.

En caso de que no esté familiarizado, MyCrypto es una interfaz que le permite interactuar con la cadena de bloques Ethereum. Puede almacenar su Ether y tokens a través de MyCrypto, enviarlos, cambiar entre diferentes monedas, interactuar con contratos inteligentes y más.

Somos un equipo remoto de aproximadamente 20 personas y nuestro increíble equipo está distribuido por todo el mundo.

He estado creando productos que tienen usuarios reales en este espacio desde 2015. Esos usuarios me han enseñado mucho sobre mí, mi proceso de diseño y lo que puede suceder incluso si eres excepcionalmente cuidadoso.

Hoy vamos a explorar las consecuencias no deseadas del diseño del producto. Y muchos de ustedes pueden estar sentados aquí pensando: "¿Qué diablos significa eso?"

Significa que en los primeros días logramos arruinar muchas cosas. Tomamos muchas decisiones que no fueron necesariamente las mejores decisiones que pudimos tomar. Y, desafortunadamente, estas decisiones tuvieron algunos efectos secundarios no deseados, como la pérdida de fondos y la confusión de los usuarios.

Quiero ser claro. No estoy haciendo esto para ser negativo o para llamar ciertos productos (especialmente el mío ). La realidad es que, literalmente, cualquiera podría cometer estos errores. Y si no tenemos cuidado, estos errores volverán a suceder.

Espero que todos en este ecosistema puedan aprender y crecer de los errores de otras personas para que no repitamos la historia y finalmente podamos estar más seguros, más seguros y proporcionar una mejor experiencia para todos.

Entonces, comencemos con uno de los mayores errores que cometí con una de las interacciones más fundamentales en MyCrypto: crear una nueva cuenta.

Tenemos que retroceder en el tiempo hasta agosto de 2015. Ethereum acababa de lanzarse. Esto fue antes de MyCrypto y, de hecho, antes de "MyEtherWallet". Era solo "Ether Wallet" viviendo en una URL de páginas de Github. Así es como se veía.

Cuando llegaste al sitio web, no era nada lujoso. Sin explicaciones Sin diálogo de incorporación prolongado. Solo una interfaz que le solicita que genere una nueva billetera. Escribiste una contraseña y presionaste un botón. Eso es.

Al hacer clic en este botón, solo escupiría toda su información. Tu clave privada. Códigos QR. Archivos JSON. Dirección. Auge.

Y, por cierto, me encantó esto. Desde la perspectiva de UX, era casi tan simple como podría ser. Me encantó que pudiéramos eliminar todo el desorden y la mierda y simplemente darle a la gente lo que necesitaban. Generar una nueva billetera literalmente tomó un clic.

El problema era que, aunque realmente queríamos hacer que el proceso de generar una nueva billetera fuera lo más rápido, fácil y sin fricciones posible, tenía la desagradable consecuencia de que las personas no guardaran sus claves privadas.

Debido a que le dimos al usuario su dirección por adelantado, pudieron copiar la dirección y enviar fondos a la nueva cuenta sin guardar su clave privada. En algún punto del camino, se darían cuenta: "Vaya, no tengo ninguna forma de acceder realmente a mi billetera". Esto finalmente resultó en la pérdida de fondos.

¿Cómo resolvimos esto? Dejamos de darle al usuario sus claves y direcciones privadas por adelantado. Arriba está la nueva interfaz en MyCrypto.

  • Primero, ingresas una contraseña. Y confirma la contraseña.
  • Luego te obliga a guardar tu archivo de almacén de claves. Para continuar, debe descargar este archivo.
  • E incluso entonces no le damos su dirección. En cambio, hacemos que el usuario desbloquee su billetera.

Así es, debe desbloquear su billetera utilizando el archivo que acaba de descargar antes de poder obtener su dirección con éxito. Esto garantiza que el usuario haya creado su billetera, haya realizado una copia de seguridad de la billetera y pueda desbloquearla exitosamente de vez en cuando en el futuro.

¡Esto redujo la cantidad de pérdida que estábamos viendo día a día (y también ayudó enormemente con la cantidad de tickets de soporte que recibíamos en ese momento)!

¿Qué podemos aprender de esto?

A veces la fricción es algo bueno. Debe obligar a las personas a guardar la información necesaria. Debe forzar a las personas a seguir el camino correcto, incluso si ese camino tiene algunos pasos adicionales involucrados. Los usuarios siempre, siempre, tomarán la ruta más fácil. Si no los obliga literalmente a guardar su clave privada o frase inicial, no lo harán.

Educarlos sobre por qué es importante. Recuérdeles sin cesar. Pero, sobre todo, no les permita tomar un camino alternativo. Recuerde, el objetivo final es lograr que las personas utilicen criptomonedas con éxito y si pierden el acceso a sus fondos, no tuvo éxito.

El siguiente ejemplo es bastante aterrador y lo he visto cada vez con más frecuencia. Es la práctica de guardar claves privadas u otra información secreta en el almacenamiento local.

Si es un desarrollador de dapp, desea crear la experiencia más fluida posible. Puede parecer una gran idea guardar el acceso de un usuario a su billetera en su navegador para que no tenga que hacer una copia de seguridad. Pero, por favor, no lo hagas.

Veamos un ejemplo de cuán terriblemente mal puede ir esto.

Este es EtherDelta, pero no son los únicos culpables de esto. EtherDelta fue uno de los intercambios descentralizados más utilizados en 2017.

EtherDelta también tiene una funcionalidad de "crear cuenta" en su sitio web. (Sí, tampoco te obligan a hacer una copia de seguridad de tu clave privada).

Pero está bien porque lo guardan en el almacenamiento local para usted. / s

Para aquellos que no saben, el almacenamiento local es como una cookie. Es otra forma de guardar información en el navegador del usuario para que si abandona el sitio web o cierra el navegador y luego regresa al sitio web, puede leer esta información y volver a acceder o autenticar su cuenta.

Si observa de cerca, puede ver la clave privada que le escupieron previamente y allí está nuevamente, guardada en el almacenamiento local, sin cifrar.

Esto es increíblemente peligroso. El almacenamiento local no es un lugar seguro para los secretos. No es un lugar seguro para claves privadas. Y es especialmente peligroso para los sitios web de criptomonedas porque son un gran objetivo para los atacantes.

Ahora, sé que dije que no estaba dando esta charla para avergonzar a los creadores de productos, pero voy a ser franco sobre esto: estoy avergonzando a EtherDelta. Porque en diciembre de 2017, fueron pirateados. Ya deberían haber aprendido su lección. No lo hicieron. Todavía están guardando claves para el almacenamiento local hasta el día de hoy.

En diciembre pasado, los atacantes redirigieron el sitio web a un sitio falso de EtherDelta. Parecía idéntico al EtherDelta original. La gente no tenía idea de que estaban en un sitio falso.

Esto es malo en sí mismo, ya que cualquiera que visite el sitio web no sabe que está en un sitio web malicioso y es propenso a ingresar información secreta, como claves privadas, que van directamente a los servidores de los piratas informáticos.

Sin embargo, con EtherDelta fue especialmente malo porque guardaron sus claves privadas en el almacenamiento local. Cualquiera que simplemente visitara el sitio web tenía sus llaves y, por lo tanto, sus fondos, robados.

Permítanme decirlo nuevamente: cualquiera que leyó las noticias, se asustó y simplemente visitó EtherDelta, les robaron sus claves privadas y luego les robaron fondos. El usuario no tuvo que hacer nada más que visitar el sitio web comprometido. El alcance de la pérdida nunca se ha determinado completamente, pero fue enorme y habría sido más pequeño si no hubieran guardado las claves privadas en el almacenamiento local.

Esto es algo sumamente perjudicial para el ecosistema, los usuarios y la seguridad de todos.

Una vez más, los sitios web de criptomonedas son un gran objetivo para los atacantes. Tenemos que estar seguros y a salvo. Eso significa su propia seguridad personal, la seguridad de su empresa, la seguridad de su sitio web y, sobre todo, la seguridad de su usuario,

Conocemos las intenciones de EtherDelta y otros dapps en este ecosistema: están tratando de facilitar este proceso. Lo están haciendo para que las personas no tengan que recuperar su clave privada de inmediato. Están tratando de evitar obligar a las personas a volver a ingresar sus claves cada vez.

Pero, sin querer, pintaron un gran objetivo en sus espaldas. Los atacantes podrían ver este popular sitio basado en navegador. Podrían ver a todos los usuarios y fondos que fluyen a través de este sitio web. Básicamente saludaron a los atacantes y piratas informáticos y dijeron: "¡Hola, estoy aquí! ¡Ven y recógeme!"

Y luego, cuando los piratas informáticos encontraron con éxito un punto de entrada, resultó en una mayor pérdida. Esto es simplemente inaceptable.

Si eres un desarrollador de dapp y estás tratando de hacer que la experiencia sea más libre de fricciones, te aplaudo. Sin embargo, no guarde secretos en el almacenamiento local.

No es filosófico ni complicado. No importa cuánto mejor mejore la vida de las personas. Es peligroso y pinta un objetivo gigante en tu espalda y finalmente resultará en pérdida.

No lo guardes sin cifrar. No lo guardes encriptado. No guardes secretos en el almacenamiento local.

Avanzando! En el último ejemplo, cubrimos cómo almacenar información secreta en el almacenamiento local puede ser peligroso. ¿Pero qué pasa si no es información secreta? ¿Qué pasa si es solo información normal? El almacenamiento local puede ser realmente útil y puede ayudar a simplificar la experiencia. ¿Puedes usarlo para otra información?

Echemos un vistazo al ENS Dapp original de cuando el ENS se lanzó por primera vez en mayo de 2017. La forma en que funciona el ENS es que hace una oferta por un nombre de ENS, luego espera unos días y otras personas pueden ofertar por ese nombre, y entonces revelas tu oferta para ganar la subasta.

Debido a que todo está descentralizado y en blockchain y los montos de las subastas y las ofertas son secretos, debe proporcionar cierta información para revelar su nombre ENS. Necesita el monto de su oferta, el monto de su oferta enmascarada y una cadena secreta de caracteres. Las diferentes aplicaciones trataban estos datos de manera diferente, pero uno de los dapps guardaba esta información en el almacenamiento local.

Los desarrolladores de este dapp en particular tenían buenas intenciones. En lugar de decirle a los usuarios, "debes recordar esto y aquello y guardar esto y también, asegurarte de no perderlo", simplemente lo guardaron para ellos. Es lo perfecto para abstraerse durante un proceso ya bastante complejo.

El problema era, especialmente en el espacio de la criptomoneda, a la gente le encanta usar diferentes dispositivos y / o TOR y / o modo incógnito. Usamos todas estas cosas para proteger nuestra privacidad. Sin embargo, al hacerlo, también evita que persistan cosas como cookies y elementos guardados en el almacenamiento local. Cuando cierra la ventana del navegador, esa información desaparece.

Poco después de que se presentaron las primeras ofertas y estaban listas para ser reveladas, los canales de soporte se inundaron repentinamente con informes de personas que no podían revelar sus ofertas ya que habían perdido información.

Guardar esta información en el almacenamiento local involuntariamente condujo a subastas que no se pudieron revelar si las personas hubieran utilizado incógnito o un dispositivo diferente.

Afortunadamente, los desarrolladores solucionaron el problema muy, muy rápido e hicieron un punto de educar a las personas y darles una forma de respaldar esta información externamente.

Podemos ver las intenciones de este dapp, y otros dapps, queremos abstraer la complejidad. Queremos que el usuario tenga que realizar menos acciones. No queremos abrumar al usuario con todos los detalles de lo que sucede detrás de escena porque al usuario no le importa realmente. El usuario quiere obtener su nombre ENS, no entender el funcionamiento interno del sistema.

Lamentablemente, en este caso, resultó en usuarios confusos que no pudieron revelar sus ofertas y no hubo forma de recuperar esta información una vez que se perdió.

No quiero tocar mi propia bocina, pero ya había aprendido mi lección sobre cómo hacer una copia de seguridad de claves privadas en este momento. Lo anterior es cómo manejamos esta misma situación con la ENS.

Recordamos sin cesar a las personas que guarden esta información. Les dijimos durante el proceso de subasta. Les dijimos en el diálogo de confirmación, justo antes de que enviaran. Lo mostramos después de que enviaron. Les dimos la capacidad de capturar y guardar una cadena. Todavía teníamos montones de tickets de soporte, pero afortunadamente la mayoría de la gente había guardado cierta información y pudimos ayudarlos a resolver su lío de ofertas, en lugar de tener que descartarlas como una causa perdida.

¿Qué podemos sacar de este ejemplo? Sabemos que no es aceptable guardar secretos en el almacenamiento local. Puede ser aceptable guardar información no secreta en el almacenamiento local. Sin embargo, si guarda cosas en el almacenamiento local para facilitar la vida de las personas, asegúrese de no confiar en ellas para conservar la información. Los entornos de usuario pueden y cambian.

Cuando tomo decisiones de diseño, a menudo juego a este juego llamado "Mejor caso / Peor caso". Esto me obliga a ser realmente explícito con las elecciones que estoy haciendo.

Pregúntese: "¿Cuál es el mejor resultado posible?" En este caso, el usuario puja sin problemas un nombre, lo revela y no necesita tomar ninguna medida para revelarlo.

"¿Cuál es el peor de los casos?" El usuario no puede revelar sus ofertas y su ETH se pierde.

Para mí, el mejor resultado posible no compensa el peor resultado posible. Ninguna cantidad de pérdida es una experiencia aceptable. ¿Qué pasos podemos tomar para mitigar la pérdida? ¿Cómo podemos cambiar esta interacción para mejorarla? Estas son las preguntas que debemos hacernos durante las fases de diseño y desarrollo.

Ahora, pensemos en esas mismas preguntas con algo como la configuración o las preferencias del usuario. Supongamos que recuerda que un usuario prefiere una determinada moneda o idioma o que prefiere usar su aplicación en "modo nocturno".

  • Mejor caso: cuando el usuario vuelve a su sitio nuevamente, el dapp recuerda que el usuario prefiere un cierto idioma o esquema de color.
  • En el peor de los casos: el usuario debe volver a seleccionar esa configuración cuando vuelva a visitar el sitio.

Para mí, esto es para lo que se debe usar el almacenamiento local porque no es el fin del mundo si esa información se pierde, ni esa información tiene ningún valor para los piratas informáticos.

Aunque hasta ahora nos hemos centrado en los sitios de cifrado, estas lecciones no se limitan al espacio blockchain. Los niños grandes también toman decisiones que pueden tener consecuencias no deseadas. Incluso Google

Cuando configura una nueva cuenta de Google, lo obligan a agregar un número de teléfono y una dirección de correo electrónico anterior.

Veamos el proceso de configuración de una nueva cuenta, un proceso que probablemente todos ustedes hayan hecho varias veces.

Primero, se le pide que proporcione su material estándar: nombre, dirección de correo electrónico, contraseña.

A continuación, le pide su número de teléfono. Usted está obligado a proporcionar un número de teléfono para que puedan enviarle un mensaje de texto con un código de confirmación.

Ahora que he verificado la cuenta con mi número de teléfono, me pide que configure una dirección de correo electrónico de respaldo (y alguna otra información personal).

Una vez que configure su cuenta, si explora la configuración de su cuenta, verá que puede recuperar su cuenta en cualquier momento utilizando esta dirección de correo electrónico o número de teléfono. Que te forzaron a darles.

Arriba está lo que sucede si hago clic en "Olvidé mi contraseña". Ahora, puede pensar que tener un correo electrónico o un número de teléfono de recuperación es algo bueno. Si olvida su contraseña, ¡estará bien! Solo puedes recuperarlo.

El problema es que los piratas informáticos y los atacantes también pueden "recuperar" sus cuentas.

Google no aclara cómo eliminar realmente estas opciones como una opción de recuperación.

No hay un botón "eliminar". Tienes que editarlo. Eliminar todo el contenido. Y luego diga "hecho". Esperaría ver un error, pero le permite guardar el campo vacío y elimina efectivamente la dirección de correo electrónico.

Oh, pero se pone peor. Si elimina el correo electrónico o el teléfono de recuperación, cada vez que inicie sesión en Google intentarán que vuelva a agregarlo.

Entonces, ¿por qué es esto malo?

Piensa en tus cuentas de gmail ahora mismo. Probablemente tenga uno que use para Coinbase u otro intercambio, ¿verdad? Tal vez se llama dan.loves.crypto.so.much@gmail.com.

Y esta es la cuenta en la que te has tomado el tiempo para asegurarte de que sea segura. Tiene habilitado 2FA, ha pasado por todas las configuraciones, tiene mucho cuidado con eso.

El problema es que cuando creó la cuenta proporcionó su dirección de correo electrónico anterior, libertarian.dreamer@gmail.com, como una opción de recuperación.

Y cuando configuró ese correo electrónico, le proporcionó firstname.lastname@gmail.com como una opción de recuperación muy profesional.

Y ese correo electrónico se configuró usando su antigua etiqueta de jugador de la escuela secundaria que ya ni siquiera admite que tiene.

Entonces, aunque haya asegurado su dan.loves.crypto.so.much@gmail.com, esa cuenta es tan segura como su antigua etiqueta de jugador de la escuela secundaria. La contraseña para esa cuenta, que probablemente ni siquiera recuerde en este momento, está protegiendo todas sus criptomonedas en todos sus intercambios en este momento.

Esa contraseña probablemente también se encuentre en uno de los muchos volcados de contraseña en línea en este momento. El hecho de que no lo recuerde no significa que un atacante no lo tenga en una lista en alguna parte. (psst ... puede ver cuántas veces sus diversas cuentas se han visto comprometidas en https://haveibeenpwned.com/)

Si un atacante obtiene acceso a cualquiera de sus cuentas de correo electrónico anteriores, es trivial que trabajen en la cadena y obtengan acceso a sus cuentas de intercambio y roben toda su criptografía (así como recopilar todo tipo de otros datos de servicios como Paypal, Dropbox, Google Drive, Apple, Facebook, Amazon, etc. Esta es una razón por la que nunca, nunca debes almacenar información secreta en Dropbox o Google Drive).

O, si no pueden ingresar a sus cuentas de correo electrónico, podrían simplemente transferir su número de teléfono o hacer un intercambio sim. Puede estar sentado aquí pensando: "Oh, soy poco tiempo. Solo estoy leyendo esta publicación criptográfica, pero realmente no soy nadie. No soy un objetivo ".

Incorrecto. Si estás leyendo esta publicación en este momento, estás en criptografía y eres un objetivo. Hay miles de atacantes que pasan todo el día, todos los días tratando de diseñar las compañías telefónicas. Intentan transferir su número o hacer un intercambio sim para que puedan acceder a sus cuentas de Google o sus cuentas de Apple o sus redes sociales y recopilar información y finalmente ingresar a sus cuentas de cambio para robar sus fondos.

Es una gran cosa que las cuentas de usuario se puedan recuperar. No me malinterpretes. Hay un montón de personas realmente inteligentes en este mundo de las criptomonedas que intentan encontrar una forma segura de brindar a los usuarios la capacidad de recuperar sus claves privadas.

Pero, y esto es un gran pero, si puede recuperar su cuenta, un hacker también puede potencialmente "recuperar" su cuenta.

¿Qué elecciones podemos hacer para mitigar esto como creador de un producto?

Esta es difícil porque la capacidad de recuperación es una característica inmensamente importante. Habría muchas más cuentas perdidas e información si esta función no estuviera disponible. No es del todo realista esperar que todos los usuarios de Google usen un Yubikey. Esa es una pregunta difícil.

Pero, piénsalo. Google sabe literalmente todo sobre nosotros. Leen todos nuestros correos electrónicos, saben qué sitios web visitamos, saben dónde estamos. Ya saben si eres un individuo de alto objetivo. Saben si tiene criptomonedas o tiene otros rasgos que lo convertirían en un objetivo para los piratas informáticos (por ejemplo, figuras públicas, celebridades, políticos).

Una cosa que Google podría hacer con todos esos datos es diferenciar entre individuos promedio y de alto riesgo. ¿Por qué no educar a las personas que son celebridades o políticos o poseedores de criptomonedas sobre cómo estar más seguros? ¿Por qué no obligarlos a eliminar los métodos de recuperación inseguros y utilizar los seguros en su lugar? Tal vez podrían usar algunos de esos datos para siempre.

Por favor, recuerde que mientras construye dapps, cada uno de sus usuarios es un objetivo para los atacantes. Debe priorizar la seguridad de sus usuarios, no solo la usabilidad.

PSA rápido: protege todas tus cuentas de Google, ¡incluso las antiguas! Elimine el correo electrónico y los números de teléfono de recuperación de cada una de sus cuentas de Google y agregue 2FA a través de Google Authenticator o Yubikey o su billetera de hardware Ledger. Use códigos de respaldo. No use la recuperación de correo electrónico / SMS. Sumérgete en tu configuración de seguridad de Google. Además, lea todas nuestras recomendaciones de seguridad. Por favor, no te hackeen.

Muy bien, casi listo!

Anteriormente hablé sobre uno de mis mayores errores. Pero este es mi mayor error absoluto y ha tenido consecuencias duraderas no solo en mi sitio web y mi empresa y mis usuarios, sino en todo el ecosistema porque la gente comenzó a seguir su ejemplo. Permitimos, en realidad recomendamos, que las personas ingresen claves privadas en nuestro sitio web.

Siempre pensé que la razón por la que no ingresas tu clave privada en un sitio web es porque los creadores del sitio web podrían salir de la estafa y robar todos tus fondos en algún momento.

Como fui el creador de este producto, sabía que no robaría el dinero de las personas y, por lo tanto, asumí que esta "regla" no se aplicaba a nosotros. Esto fue ingenuo.

Los vectores de ataque en la web son enormes.

  • Tienes que confiar en los creadores del sitio web.
  • Debe confiar en que el código en el sitio web es el mismo hoy que ayer.
  • Tienes que confiar en que los creadores del sitio web no han sido pirateados.
  • Tienes que confiar en que el DNS no fue pirateado.
  • Debe confiar en que está en el sitio web correcto y que el sitio web es legítimo y no una estafa.

A medida que estos diversos vectores de ataque se materializaron, hicimos mucho para educar a los usuarios sobre métodos más seguros para acceder a sus cuentas.

Comenzamos a gritarle a la gente a través de nuestro atroz diálogo de incorporación de 10 páginas que obligaba a los usuarios a hacer clic en cada diapositiva mientras los botones saltaban. Hicimos que nuestros usuarios marcaran las casillas reconociendo que no eran seguros. Agregamos fricción en cada paso del camino, tratando de hacer que la gente entienda los peligros.

Pero la educación no fue suficiente. Puedes gritar, gritar y pisotear todo lo que quieras, pero el usuario siempre tomará el camino más fácil. Si permite que las personas, sin importar cuánta fricción agregue, ingresen sus claves privadas en un sitio web, ingresarán sus claves privadas en un sitio web y eventualmente resultará en una pérdida.

Al permitir que las personas ingresen sus claves en nuestro sitio web, les inculcamos malos hábitos. Cuando las ICO se hicieron populares y un tipo diferente de persona se hizo cargo de nuestra base de usuarios, ingresaron sus claves privadas no solo en nuestro sitio web, sino en todos los sitios web. Cualquier sitio web que les ofreciera dinero gratis, por ejemplo.

Habíamos fallado.

Así que eliminamos la capacidad de usar claves privadas en nuestro sitio web.

Ya no damos a los usuarios la opción de tomar este camino fácil e inseguro. Si está en nuestro sitio web, debe descargar nuestra aplicación de escritorio.

Desde una perspectiva UX, se siente mal. Se siente como agregar fricción. Hace que el usuario tome medidas adicionales. No tenemos ninguna analítica, pero si la tuviéramos, ver esto sería doloroso. Estaríamos viendo el usuario después de que el usuario abandone aquí debido a este paso adicional.

Pero la realidad es que si dejamos que los usuarios sigan usando sus claves privadas en nuestro sitio web, se perderá más y más dinero. Por lo tanto, vale la pena. Vale la pena para mí y este ecosistema.

Al menos estoy perdiendo usuarios, no haciendo que esos usuarios pierdan dinero.

Siempre he querido reducir las barreras para ingresar al espacio blockchain. Quiero hacer que la experiencia de obtener y mantener criptografía sea lo más simple posible.

Al recomendar que las personas ingresen sus claves privadas en nuestro sitio web, sin querer creé un entorno en el que prosperaron los sitios web de phishing y los sitios web fraudulentos, los registradores fueron pirateados y los atacantes idearon formas cada vez más sofisticadas de robar dinero, como el reciente ataque BGP en MyEtherWallet .

Lo más decepcionante es que otros sitios en este ecosistema siguieron nuestro ejemplo, amplificando el problema y enseñando a los usuarios a copiar y pegar sus claves privadas en cualquier sitio web.

De nuevo, esto no es filosófico. Esto no es complicado. No permita que sus usuarios ingresen sus claves privadas o frases mnemotécnicas o frases iniciales o archivos de almacén de claves u otra información secreta en su sitio web. Período.

No es seguro Está entrenando a sus usuarios para que sean inseguros. Construye una aplicación Electron. Use una extensión de Chrome. Confíe en las billeteras de hardware MetaMask o Trust Wallet o Ledger o Trezor. Si no lo hace, pasará todo el día, todos los días protegiéndose contra estos ataques y tratando de educar a sus usuarios y crear modales bonitos que les griten a sus usuarios en lugar de centrarse en crear su producto como debería. obra. Vamos a estar a salvo por defecto.

Que hemos aprendido ¿Cuáles son las gloriosas conclusiones de todo lo que hemos estado hablando?

Primero, no subestimes a las personas que usan tu producto.

Sus usuarios son personas inteligentes, talentosas e inteligentes. Puedes educarlos. Puedes enseñarles. Ellos pueden aprender Se pueden volver a entrenar. Pueden entrar en criptografía por ti y tu producto.

¡Pero! También son ingenuos e ignorantes. Son muy, muy buenos para arruinar las cosas. Llevan suposiciones con ellos. El mundo les ha enseñado cualquier cosa y todo se puede recuperar y no existe una pérdida total y absoluta.

No los subestimes en ninguno de los extremos del espectro y prepárate para todo.

Luego, la gente siempre, siempre, tomará el camino más fácil. Si les permite omitir pasos o no hacer una copia de seguridad de sus claves privadas, omitirán esos pasos y no realizarán una copia de seguridad de sus claves privadas. Eventualmente afectará negativamente su producto y su reputación y, lo más importante, su experiencia con las criptomonedas.

¡Educación! ¡La educación ayuda mucho! Esas informaciones sobre herramientas y mensajes e iconos lindos que ayudan a las personas a identificar conceptos básicos pueden hacer maravillas. Pero solo va tan lejos. Debe crear buenos hábitos en sus usuarios y configurarlos para el éxito. Debe empoderar a sus usuarios.

Si descubre que sus materiales educativos comienzan a gritar a sus usuarios, es hora de dar un paso atrás y preguntarse cómo puede crear un producto que sea seguro de forma predeterminada.

Aprende de los errores de los demás. Les acabo de dar cinco ejemplos de formas en que ya hemos arruinado las cosas. Sin embargo, hay innumerables más. Trabajar juntos. Hablar entre sí. Compartir experiencias. Manténgase actualizado sobre lo que está sucediendo. Estudie dónde fallaron las personas y cómo ocurrieron los ataques. Haga que sea una prioridad para evitar que vuelva a suceder.

Esto va de la mano con el punto anterior: tenga en cuenta los diversos vectores de ataque que existen. Todo este mundo blockchain / cryptocurrency es muy, muy diferente. La pérdida de una sola cadena de información da como resultado la pérdida de fondos. El ROI para los atacantes es enorme y les permite gastar mucho tiempo, esfuerzo y creatividad en sus ataques. Evolucionan. Ellos cambian. Harán casi cualquier cosa para comprometer su empresa, su producto, su equipo o sus usuarios.

Siempre considere el "peor caso" frente al "mejor caso" al tomar decisiones de diseño. Incluso si el diseño puede dar como resultado una experiencia superior (el "mejor caso"), si el peor de los casos es la pérdida de fondos, entonces debe tomar medidas para evitar esa pérdida.

Date cuenta de que construir el futuro descentralizado es muy, muy difícil. Por eso es tan importante que todos trabajemos juntos y aprendamos unos de otros. Queremos ser descentralizados. No queremos conservar las claves privadas de las personas y ponerlas bajo custodia, pero eso significa que estamos entrando en una nueva frontera en autenticación, usabilidad y seguridad.

Dedique los recursos adecuados para resolver problemas complejos y evitar que sucedan cosas malas para usted, su empresa y sus usuarios.

Siempre lucha individualmente por ser mejor y siempre empuja a los que te rodean a ser mejores también.

Tenemos que darnos cuenta, si usted es un desarrollador o simplemente una persona promedio, si ha estado en este espacio durante un año o dos años o cinco años o dos meses, todos tienen su papel que desempeñar.

Si está viendo a otro creador de productos haciendo una elección perezosa, incluso si solo es una persona promedio en cripto-Twitter, juega un papel muy importante. Tienes la capacidad de hacer preguntas. Tiene la capacidad de responsabilizar a los creadores de productos. Señalar las cosas. Si están haciendo algo inseguro, cuestione su elección y presiónelos para que su producto sea más seguro.

Las mejores compañías tomarán en serio sus comentarios y preguntas y se esforzarán por ser mejores. Sé que realmente aprecio los mensajes que recibimos que cuestionan mis elecciones o señalan cosas, ya que me obligan a ser mejor.

Por último, construir juntos hace que construir este futuro descentralizado sea mucho más fácil. Este espacio es demasiado pequeño para la competencia real. Tenemos que trabajar todos juntos. Necesitamos construir este ecosistema. Aprender los unos de los otros. Ayudarse unos a otros. Apóyate el uno en el otro. Sé amable y servicial y conéctate para hacer que este ecosistema sea más fuerte y seguro.

Tenemos que pensar en ello como nosotros, "nosotros" siendo todos los que estamos leyendo esto ahora, frente al mundo. Y el mundo es el gran mundo que ni siquiera sabe qué es la criptomoneda y no tiene ninguna posibilidad de usarla en este momento.

No podemos estar luchando entre nosotros. No podemos estar instigando el drama de Twitter. No podemos estar lidiando con pequeños pedazos de mierda. Necesitamos estar mirando el panorama general. Necesitamos enfocarnos en el mundo y conquistarlo.

Me reuní con muchas personas en Devcon y noté una tendencia de personas que tenían un pie adentro y un pie afuera. Algunos trabajaban a tiempo parcial en el espacio o simplemente observaban desde lejos.

Déjame decirte esto: cada persona tiene la capacidad de mejorar este ecosistema. No importa si no sabes cómo codificar. Necesitamos personas que puedan escribir, copiar y diseñar. Necesitamos personas que tengan paciencia infinita para responder tickets de soporte. Necesitamos personas que se concentren en mejorar toda la experiencia.

Los necesitamos a todos. Necesitamos la gente del producto y los ingenieros y los gerentes de proyecto y los diseñadores e investigadores y todo lo demás. Necesitamos madres e hijas y padres e hijos e incluso los abuelos. Necesitamos personas de diferentes orígenes y orígenes. Aquellos que tienen educación universitaria y que no terminaron la escuela secundaria. Para que podamos construir un ecosistema global y descentralizado, las personas que construyen ese ecosistema que cualquier persona en este mundo entero puede usar, las personas que construyen necesitan reflejar ese mundo. No puede ser solo un grupo demográfico. No pueden ser solo los codificadores y los genios técnicos. Tiene que ser todos.

Si tiene un pie, necesito que intervenga completamente. Necesito que piense en sus habilidades únicas y sus experiencias únicas y descubra cómo puede mejorar este ecosistema.

Si desea ayudarnos específicamente en nuestra misión, envíenos un correo electrónico a jobs@mycrypto.com y contáctenos. Siempre estamos contratando personas notables que quieren marcar la diferencia.

Y eso es todo lo que tengo para ti hoy. Espero que puedas llevar esto contigo mientras sales y construyes, creas y ayudas a marcar el comienzo de este futuro descentralizado.

Espero que hayas hecho conexiones aquí que sean duraderas.

Muchas gracias por quedarte conmigo. Soy Taylor Monahan de MyCrypto. Los amo a todos.