Description
Subís el mismo código que subiste cien veces, solo que esta vez corre en una dirección pública, guarda plata de verdad, y no lo vas a poder editar nunca más. La demo anda, los tests están en verde, y nada de eso te dice si un desconocido puede leer esta noche tu bytecode desplegado y salir con todo lo que hay adentro. Esa es la trampa de Solidity: el lenguaje es chico y parece cualquier backend que ya escribiste, así que la línea que es inofensiva en un servicio normal acá vacía un contrato. Una llamada externa te reentra antes de que actualizaras un balance. Un send sin chequear deja fondos atrapados. Un entero desborda. Un control de acceso que olvidaste deja que un desconocido se quede con el contrato. Nadie adivina una contraseña; alguien encuentra el único orden que te salió mal y lo llama antes de que tu estado reaccione. Escribir Solidity no se trata de la sintaxis, se trata de aprender a leer tu propio contrato como lo va a leer el atacante: como el conjunto de movidas que le deja hacer a un desconocido, no las que vos quisiste.
Este libro te enseña a escribir Solidity como lo escribe la gente que guarda dinero real en la cadena: asumiendo que todo contrato es adversarial, que toda llamada externa es una trampa, y que toda línea queda desplegada para siempre. Arranca desde el contrato como una máquina de estados y construye el modelo que de verdad necesitás, cuánto cuestan en serio el storage y la memoria, en qué se diferencian las primitivas de dinero (payable, transfer, send, call) y cuál deja fondos atrapados, por qué la reentrada es el bug que sigue vaciando protocolos y cómo el patrón checks-effects-interactions lo frena, y el catálogo de formas en que se quedan con un contrato: control de acceso que olvidaste, phishing con tx.origin, desborde de enteros, valores de retorno sin chequear, manipulación de oráculos. Después construye la disciplina alrededor del código: testear un contrato contra un adversario con Foundry, medir y recortar el gas, emitir eventos en los que el mundo fuera de la cadena pueda confiar, desplegar y verificar para que la gente pueda leer lo que está confiando, y los patrones de upgrade que te dejan arreglar un error sin meter una puerta trasera. Los ejemplos son contratos reales que de verdad desplegarías, revisados por las formas específicas en que salen mal. Para ingenieros que van a desplegar un contrato que guarda fondos y quieren ser los que desplegaron el que no vaciaron.
¿Este libro es para vos?
Este libro es para: ingenieros que saben programar y ahora tienen que escribir un smart contract que guarda fondos reales, donde un bug no se arregla con un hotfix sino que es un error permanente, público y vaciable.
Lo que vas a encontrar adentro
- Capítulo 1: El contrato que no se podía parchear
- Capítulo 2: No hay base de datos. ¿Dónde guarda el contrato lo que tiene que recordar?
- Capítulo 3: El mismo balance leído cuatro veces, y cada lectura es plata de verdad
- Capítulo 4: La función que dejé pública, y el desconocido que la vació
- Capítulo 5: La billetera de un solo destinatario congeló el pago de todos los demás
- Capítulo 6: Tres líneas que parecían correctas, y una vault vacía para el domingo
- Capítulo 7: La lista corta de agujeros con nombre por donde se cuela casi todo hackeo
- Capítulo 8: El ahorro de gas que en silencio te cuesta un chequeo de seguridad
- Capítulo 9: El historial del usuario que ya no estaba porque nadie lo anotó
- Capítulo 10: Todo en verde, y igual la vaciaron. ¿Qué se les escapaba a los tests?
- Capítulo 11: El deploy es una puerta de un solo sentido. Leé cada argumento antes de cruzarla
- Capítulo 12: Tiene cuatro millones de dólares y un bug que no podés editar. ¿Y ahora?
- Capítulo 13: El colega que me vació en diez minutos un contrato que funcionaba


