b'\n_START_ARTICLE_\nProblema del consenso\n_START_PARAGRAPH_\nEl problema del consenso es un problema fundamental de los sistemas distribuidos que consiste en poner de acuerdo a m\xc3\xbaltiples procesos en algo. Es el problema de averiguar c\xc3\xb3mo un conjunto de procesos de computaci\xc3\xb3n aislados que solo pueden comunicarse con mensajes se ponen de acuerdo sobre algo. El consenso es f\xc3\xa1cil en ausencia de fallos pero se convierte en algo dif\xc3\xadcil en escenarios intrincados de fallo con la presencia de canales imperfectos, ca\xc3\xaddas de participantes, violaci\xc3\xb3n de sincronizaciones o incluso cuando algunos de ellos pueden conspirar para que ese consenso no se produzca (comportamiento malicioso)._NEWLINE_La soluci\xc3\xb3n a este tipo de problemas toma la forma de un algoritmo o protocolo (protocolo de consenso o algoritmo de consenso) y es usado por todos los procesos que no tienen un comportamiento malicioso.\n_START_SECTION_\nImportancia\n_START_PARAGRAPH_\nEn general, los sistemas distribuidos son propensos a fallos ya sea por ca\xc3\xaddas o fallos intencionados (problema de los generales bizantinos). Para conseguir que los sistemas sean m\xc3\xa1s fiables se intenta que sean lo m\xc3\xa1s tolerantes frente a dichos fallos. Una de las estrategias m\xc3\xa1s habituales para conseguirlo es mediante la r\xc3\xa9plica de informaci\xc3\xb3n. El sistema de r\xc3\xa9plica de informaci\xc3\xb3n es fiable pues la informaci\xc3\xb3n reside en varios nodos. Sin embargo, es un reto mantener la consistencia entre los nodos que comparten informaci\xc3\xb3n a la vez en un entorno en el que puede haber fallos (sistema tolerante a fallos). De esto se encargan los algoritmos o protocolos de consenso._NEWLINE_Por ejemplo: supongamos una base de datos distribuida que replica un estado com\xc3\xban. Para mantener el estado consistente, cada r\xc3\xa9plica tiene que aplicar las mismas operaciones en el mismo orden para que su copia del estado sea consistente con el resto. Por tanto habr\xc3\xa1 un protocolo de consenso que tratar\xc3\xa1 de mantener el estado consistente entre las m\xc3\xbaltiples r\xc3\xa9plicas conectadas as\xc3\xadncronamente no confiables\xe2\x80\x8b'