Buenas prácticas

2/15
Recursos

Aportes 3

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Controlar el uso de gas, es controlar el uso de nuestros contratos:

Una correcta utilizacion del gas hace que los metodos funciones y el uso de nuestro contrato sea aprovechado al maximo, que sea muy eficiente y tambien vamos a reducir costos a nivel financiero, sobre todo evitar posibles usos incorrectos del gas, por ejemplo si nosotros exponemos una llamada externa en nuestros contratos, vamos a evitar que puedan hacer excesivas operaciones con el control correcto del gas, por lo tanto siempre que se pueda en una llamada externa hay que poner un limite de gas, un tope, para que justamente el contrato o el codigo que se vaya a utilizar luego de la llamada externa no aproveche esta utilizacion del gas para hacer algo malintencionado.

Tambien tenemos a mano las librerias, lo bueno de las librerias es que no tenemos que reinventar la rueda, es decir, cuando vamos a escribir un codigo, para resolver determinada operacion, no tenemos que reeplantearnos y volver a escribir todo el desarrollo, sino que podemos aprovechar estos contratos que ya estan escritos, y estan auditados, entonces es una gran medida de seguridad para poder utilizar y sobre todo ganar tiempo a nivel de desarrollo, no olvidemos que muchas de estas librerias que estan publicadas hoy, estan hechas por desarrolladores que son expertos.

Control de accesso:

El control de Acceso va a limitar que un usuario que no tenga permisos pueda ejecutar funciones en nuestros contratos, sobre todo esto va a prevenir que de repente en un token pueda venir un usuario y pueda emitir monedas sin ser administrador/owner por lo tanto, tomar estas medidas y controlar el correcto uso del contrato a nivel de roles y permisos es una gran medida de seguridad para prevenir que estos usuarios accedan y ejecuten acciones que no queremos en nuestros contratos

Bloquear el contrato:

Imaginemos que ocurre algun problema o detectamos alguna falla o comportamiento indebido en el uso del contrato, automaticamente podemos bloquear el contrato, podemos dejar en pausa y podemos tomar alguna medida al respecto: ej, tratar de actualizar una version distinta al contrato para no perder la informacion y tambien arreglar el error o simplemente evitar que una falla o vulnerabilidad siga siendo atacada, entonces podemos poner en pausa nuestro contrato

Tenemo sque tener en cuenta:

Si aplicamos gestion de permisos, de roles, o simplemente bloqueamos el contrato, vamos a estar atentando contra la descentralizacion del mismo, entonces aca tenemos que ser muy cuidadosos en que nuestro proyecto, nuestro contrato no se convierta en algo decentralizado si no deseamos que asi sea, lo mejor para los escenarios descentralizados es justamente que la misma red, o participantes gestionen que todo funcione de forma correcta, pero en algunos casos el control de acceso nos va a servir de gran manera

Transferencias y Hook:

Un tema fundamental a la hora de interactuar con los distintos contratos en la red son las transferencias y las funciones que reciben transferencias de parte de los contratos, por lo tanto son conceptos que tenemos que entender bien en profundidad, muchos de los ataques vienen por el lado de no conocer a fondo por no saber como se realzian estas transacciones o como se realizan a nivel de seguridad, por ej establecer un limite de gas, entonces entendiendo muy bien el flujo de transferencias y de recepcion de ethers en la red, evita que nuestros contratos tengan muchisimos factores de ataques de los que estan siendo explotados y que nosotros podamos prevenir entendiendo bien conceptos

  • Controlar el uso del gas: Nos ayuda a:

    • Mejorar el performance
    • Reducir costos
    • Evitar la ejecucion de codigo con malas intenciones.
  • Utilizacion de librerias: No reinventamos la reuda, Nos ofrecen soluciones a desafios que podemos econtrar con nuestros proyectos.

    • Son soluciones avaladas: Ya han sudo probadas y auditados. lo cual es confiable para utilizar
  • Control de acceso: Prevenir que un usuario sin permisos ejecute codigo en nuestro contrato

    • Prevenir es mejor que lamentar
  • Bloquear un contrato: En caso de detectar un ataque y tomar medidas para salvarlo.

  • Transferencias y Hooks: Conocer a fondo el duncionamiento de cómo enviar Ether desde un contrato y cómo un contraro recibe transferencias es clave para prevenir vulnerabilidades

Nota: Ejercer el control de un contrato puede convertir nuestro proyecto en un escenario centralizado.

uy no