HOME Blockchain ºí·ÏüÀÎ ±³À°&°­ÁÂ
ÀÌ´õ¸®¿ò ij½ºÆÛ: ºñÀÜƾ ¿À·ù Çã¿ë, CASPER & BFT

By Ethstaking

▎ ºñÀÜƾ ¿À·ù Çã¿ë: Byzantine Fault Tolerance (BFT)


ºñÀÜƾ ¿À·ù Çã¿ëÀº ³ëµåÀÇ À¯È¿¼º ¿©ºÎ¿¡ ´ëÇÑ ºÒÈ®½ÇÇÑ Á¤º¸°¡ ÀÖÀ» ¶§ ºÐ»êÇü ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÌ ³ëµå¿¡ »óÅ¿¡ ´ëÇØ °¡Áö´Â È®½Ç¼ºÀÇ Á¤µµ·Î Á¤Àǵȴ٠ÀÌ´õ¸®¿ò ÁöºÐ Áõ¸í(proof-of-stake)¿¡¼­ BFT´Â ´Ù¸¥ ³ëµåµéÀÌ ÇÕÀÇ¿¡ À̸£°í »õ·Î¿î ºí·ÏÀ» »ý¼ºÇÏ°Ô Çϸ鼭µµ “¾ÇÀÇÀûÀΔ ³ëµå°¡ ³×Æ®¿öÅ©¿¡¼­ À߸øµÈ °÷¿¡ ÀÚ±ÝÀ» Àü¼ÛÇÏ°Ô Çϴ ¸Þ½ÃÁö¸¦ Àü´ÞÇϴ ÇàÀ§¿¡ ´ëÇØ ÀúÇ×Çϴ ³×Æ®¿öÅ©ÀÇ ´É·ÂÀ̴٠ij½ºÆÛ(Casper)ÀÇ °³¹ßÀº ÀÌ´õ¸®¿ò ÁöºÐ Áõ¸í BFT ·¹À̾î(layer)¸¦ ¾ó¸¶³ª Å©°Å³ª ÀÛ°Ô ¸¸µå³ÄÀÇ ¹®Á¦¿¡ ÁßÁ¡À» µÐ´Ù

ÀÛ¾÷ Áõ¸í(Proof-of-work) ÇÕÀÇ ¾Ë°í¸®ÁòÀº Ã¤±¼ÀÚ¿¡°Ô ¾öû³­ ¾çÀÇ Àü·Â°ú ÄÄÇ»ÅÍ ¿¬»ê·ÂÀ» ¿ä±¸Çؼ­ ÀÌÁß ÁöºÒÀ» ¹æÁöÇϴ µ¿½Ã¿¡ “ºñÀÜƾ À屺 ¹®Á¦”·Î ºÒ¸®´Â nothing-at-stake ¹®Á¦¿¡ ´ëÇÑ ÇØ°áÃ¥À» Á¦½ÃÇÑ´Ù Casper´Â ÀÌ´õ¸®¿òÀÇ ÀÛ¾÷ Áõ¸í(PoW) ¾Ë°í¸®ÁòÀ» ´ëüÇϴ ÁöºÐ Áõ¸í(PoS) ¾Ë°í¸®ÁòÀ¸·Î¼­ ºñÀÜƾ À屺 ¹®Á¦¸¦ ÇØ°áÇϸ鼭µµ ÈξÀ ÀûÀº ¾çÀÇ Àü±â¿Í Àåºñ¸¦ »ç¿ëÇؼ­ °Å·¡ÀÇ È®Á¤¼º(finality)À» Á¦°øÇÑ´Ù

▎ ºñÀÜƾ À屺 ¹®Á¦ (Byzantine Generals Problem)


“ºñÀÜƾ À屺 ¹®Á¦”¶õ ¿ë¾î´Â °¢ÀÚ ºÎ´ë¸¦ ÁöÀ§Çϴ ÇÑ ±×·ìÀÇ ºñÀÜƾ Á¦±¹ À屺µéÀ̠óÇÑ ÇϳªÀÇ °¡Á¤ÀûÀΠ»óȲÀ¸·ÎºÎÅÍ ³ª¿Â °ÍÀÌ´Ù ±×µéÀº Æ¯Á¤ µµ½Ã¸¦ °ø°ÝÇÒÁöÀÇ ¿©ºÎ¸¦ °áÁ¤Çؾ߸¸ Çϴµ¥ À̶§, ºñÀÜƾ ±ºÀº ¸ðµç ºÎ´ë°¡ ´Ü°áÇؼ­ °ø°ÝÇÒ ¶§¿¡¸¸ ÀüÅõ¿¡¼­ À̱格ö ÀÖ´Ù ÇÏÁö¸¸ À屺µé °£ÀÇ Àüº¸´Â ½Å·ÚÇÏÁö ¸øÇÒ ¼öµµ ÀÖ´Ù À屺µé°ú ±× ºÎ´ëµéÀÌ ¸ðµÎ µ¿½Ã¿¡ °ø°ÝÇÒ ¶§¿¡¸¸ µµ½ÃÀÇ ¸·°­ÇÑ ±º´ë¸¦ ¹«Â ¼ö ÀÖ´Ù

°¢°¢ÀÇ À屺°ú ±×ÀÇ ºÎ´ë´Â Áö¸®ÀûÀ¸·Î ¼­·Î ¸Ö¸® ¶³¾îÁ® ÀÖÀ¸¸ç Áß¾Ó ±Ç·ÂÀÌ ¾ø´Ù ±×¸®°í ±×µé¿¡°Ô °ø°ÝÀ» Áö½ÃÇϴ ¸Þ½ÅÀú°¡ Àü´ÞÇÑ ´ÜÀÏ ¸Þ½ÃÁöÀÇ À¯È¿¼º¿¡ ¸ðµç À屺µéÀÌ µ¿ÀÇÇؾ߸¸ Çù°øÀÌ °¡´ÉÇÏ°Ô µÇ¾î ÀÖ´Ù ¸¸¾à ¾î¶² ¼öÀÇ À屺µéÀº ºÎ´ë°¡ ±× µµ½Ã¸¦ °ø°ÝÇϵµ·Ï ¸í·ÉÇÏ°í, ÇÑ À屺¸¸ÀÌ “³ª»Û” Àüº¸¸¦ ¹Þ¾Ò°Å³ª ±×°¡ ¹è½ÅÀÚÀ̱⠶§¹®¿¡ ÈÄÅð ¶Ç´Â °ø°ÝÀ» À¯º¸Çϴ ¸í·ÉÀ» ÇÑ´Ù¸é, Çù°øÀ» ÇÒ ¼ö ¾ø°Ô µÇ°í ±× °á°ú ºñÀÜƾ ±ºÀÇ °ø°ÝÀº ½ÇÆзΠ³¡³­´Ù

ºñÀÜƾ ¿À·ù Çã¿ë

ÀÌ´õ¸®¿ò¿¡¼­, ºñÀÜƾ À屺 ¹®Á¦´Â Ä³½ºÆÛ ÁöºÐ Áõ¸í(Casper PoS)À¸·Î ÇØ°áµÇ´Â ÇÕÀÇÀÇ ¹®Á¦ÀÌ´Ù ³ëµåµéÀº ÀáÀçÀûÀΠÀÌÁß ÁöºÒÀ» ¹æÁöÇϱâ À§Çؼ­ ºí·ÏüÀο¡ ¿Ã¹Ù¸¥ ºí·ÏÀÇ Ãß°¡¿Í °ü·ÃÇÑ ÇÕÀǸ¦ ¹Ýµå½Ã ÀÌ·ï¾ß¸¸ ÇÑ´Ù ÀÌ »óȲ¿¡¼­ “ºñÀÜƾ ¿À·ù”(Byzantine Fault)¶õ ¿©·¯ ³ëµåµé¿¡°Ô ´Ù¸¥ ³×Æ®¿öÅ© ½ÅÈ£¸¦ º¸³»´Â ³ëµåÀ̸砱נ°á°ú ÀϺΠ³ëµåµéÀÌ ºñ-ÇÁ·ÎÅäÄÝ ÇàÀ§¸¦ µû¸£°Ô µÈ´Ù ÀÌ´õ¸®¿ò ³×Æ®¿öÅ©ÀÇ “ºñÀÜƾ °íÀå”(Byzantine Failure)Àº ³×Æ®¿öÅ© ºÒ´ÉÀ¸·Î À̾îÁö´Âµ¥, ¾î¶² ³ëµå°¡ ¿©·¯ Âü¿©Àڵ鿡°Ô ´Ù¸¥ ½ÅÈ£¸¦ Á¦°øÇϴ ºñÀÜƾ ¿À·ù(Byzantine fault) ¶§¹®ÀÌ´Ù ±×·¯¹Ç·Î µÑ ´Ù ¿À·ù·Î °£ÁÖÇؼ­ ÀÌ´õ¸®¿òÀÇ ¿À·ù-°¨Áö ½Ã½ºÅÛÀÌ ÀÛµ¿ÇÑ´Ù

▎ BFT-style proof-of-stake algorithmÀº ¾î¶»°Ô ÀÛµ¿Çϴ°¡?

BFT ¹æ½Ä ÁöºÐ Áõ¸íÀ» ´Þ¼ºÇϱâ À§Çؼ­, Ä³½ºÆ۴ µÎ °¡Áö ±ÔÄ¢À» ¸í½ÃÇÑ´Ù

  1. È®Á¤¼º(finality) ±ÔÄ¢Àº Hash°¡ °áÁ¤µÈ °ÍÀ¸·Î °£ÁֵǴ ½Ã±â¸¦ °áÁ¤ÇÑ´Ù
  2. Slashing ±ÔÄ¢Àº ¾ÈÁ¤µÈ ÀÌ´õ¸®¿ò ÁּҷΠȮÀεȠºí·Ï »ý¼ºÀÚ(validator) ³ëµå°¡ ¹®Á¦ µÉ ¼ÒÁö°¡ Àִ ÇàÀ§(¿¹¸¦ µé¾î, µ¿½Ã¿¡ ´Ù¼öÀÇ °æÀï ºí·Ï¿¡ voting ÇÔ)¸¦ ÇÑ °ÍÀ¸·Î °£Áֵɠ¶§, À§¹ÝÀÇ °á°ú ±× ³ëµåÀÇ ¿¹Ä¡±Ý »èÁ¦¸¦ °áÁ¤ÇÑ´Ù

Proof-of-work ¾Ë°í¸®Áò¿¡¼­´Â ºí·Ï »ý¼ºÀÚ°¡ ÀûÇÕÇÑ ¸ñÇ¥ ÇؽÃÀÇ ³­½º(nonce)¸¦ Ã£¾Æ¾ß ÇÑ´Ù ÀÌ°ÍÀº ¿¬»ê·Â ÁýÁßÀûÀÌ°í ½Ã°£ÀÌ ¸¹ÀÌ °É¸®Áö¸¸, °á°ú¸¦ Áõ¸íÇϴ ÇÁ·Î¼¼½º´Â ¸Å¿ì ´Ü¼øÇϴ٠ij½ºÆÛ¿Í °°Àº BFT ¹æ½ÄÀÇ proof-of-stake ¾Ë°í¸®ÁòÀº ¿Ã¹Ù¸£°Ô ºí·Ï¿¡ “vote(ÅõÇ¥)”ÇÑ ³ëµåµé¿¡°Ô º¸»óÀ» ÇÏÁö¸¸, °á°ú¸¦ Áõ¸íÇϴ °ÍÀº ¾î·Á¿î °úÁ¤À» °ÅÄ£´Ù ºí·Ï °ËÁõÀº ¿©·¯ È¸Â÷ÀÇ ÅõÇ¥¸¦ ÅëÇØ ÀÌ·ç¾îÁö´Âµ¥, ¸ðµç ³ëµå´Â ¸Å È¸Â÷¿¡ ÀϺΠƯÁ¤ ºí·Ï¿¡ ÅõÇ¥¸¦ Çà»çÇÑ´Ù Á¤Á÷ÇÏ°í ¿Â¶óÀΠ»óÅ¿¡ Àִ ¸ðµç ³ëµåµéÀº ÁÖ¾îÁø ¾î¶² ºí·ÏÀÌ “Á¤±Ô”(üÀÎÀÇ ÀϺÎ)ÀÎÁöÀÇ ¿©ºÎ¸¦ ¿µ±¸ÀûÀ¸·Î ÇÕÀÇÇÑ´Ù

ºñÀÜƾ ¿À·ù°¡ ¹ß»ýÇÒ °¡´É¼ºÀ» °¡Áø ³×Æ®¿öÅ© »ó¿¡¼­, ´Ù¸¥ ³ëµåµéÀÌ ¾î¶² ³ëµå¸¦ “bad”·Î ¼±¾ðÇÏ°í ±×°ÍÀ» ³×Æ®¿öÅ©¿¡¼­ ¹èÁ¦Çϴ °ÍÀº ¾î·Á¿î ÀÏÀε¥, ¿ì¼± ¾î¶² ³ëµå°¡ ³ª»Û °ÍÀÎÁö¿¡ ´ëÇÑ ÇÕÀÇ°¡ ÀÌ·ç¾îÁ®¾ß Çϱ⠶§¹®ÀÌ´Ù ÀÌ´õ¸®¿ò ºí·Ï »ý¼ºÀÚ ³ëµåµéÀÌ ÁöÈÖ°üÀÌ°í, ±×µéÀÇ ³×Æ®¿öÅ© °í¸®°¡ ¸Þ½ÅÀú(Àü·É)À̶ó°í »ó»óÇغ¸ÀÚ ºñÀÜƾ ¿À·ù Çã¿ëÀº “¼±ÇÑ” ³ëµåµéÀÌ °ú¹Ý¼ö ÇÕÀÇ¿¡ À̸£¸é ´Þ¼ºµÇ¸ç, ¿©±â¼­ ±âº» ¹«È¿ÅõÇ¥ °ª(default null vote value)ÀÌ ´©¶ôµÈ ¸Þ½ÃÁö¿Í ³ª»Û ³ëµå·ÎºÎÅÍÀÇ ¸Þ½ÃÁö¿¡ ÁÖ¾îÁø´Ù ±×¸®°í ¸¸¾à À¯È¿ÇÏÁö ¾ÊÀº (Null) ÅõÇ¥µéÀÌ °ú¹Ý¼öÀ̸é, ÇÕÀÇ ¾øÀ½(“ÈÄÅð”)À¸·Î »çÀü-Á¤ÀǵȠ±âº» Àü·«ÀÌ »ç¿ëµÈ´Ù

BFT´Â Àüü ³ëµåµéÀÌ ¾î¶² ³ëµå°¡ ¾ÇÀÇÀû(bad)ÀÎÁö ÇÕÀÇÇÒ ¼ö ¾øÀ» ¶§ ÇϳªÀÇ ¾ÇÀÇÀû ³ëµå¸¦ ¸·¾Æ³»Áö¸¸, ¿©±â¿¡¼­ ÀÌ·¯ÇÑ ÇÕÀǴ ³×Æ®¿öÅ©°¡ Áö¼ÓÀûÀ¸·Î ¿î¿ëµÉ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ®¾ß ÇÑ´Ù 50% ÀÌ»óÀÇ ¼±ÇÑ ³ëµåµé¿¡ ÀÇÇØ »ý¼ºµÈ Æ÷Å©(fork, ºÐ±â)´Â ³²¾ÆÀִ ÀáÀçÀûÀΠ¾ÇÀÇÀû ³ëµåµé¿¡ ÀÇÇØ »ý¼ºµÈ ¾î¶² Æ÷Å©º¸´Ù ´õ ³ôÀº Á¡¼ö¸¦ ¾ò´Â´Ù ÇÏÁö¸¸ ³ëµåµéÀº 51% Âü¿©·Î »ý¼ºµÈ Æ÷Å©°¡ µÇµ¹·ÁÁöÁö ¾ÊÀ» °Å¶õ È®½ÅÀ» ÇÏÁö ¸øÇÑ´Ù ÀÌÀ¯´Â ¾ó¸¶³ª ¸¹Àº ³ëµå°¡ ºñÀÜƾÀÎÁö ¾Ë ¼ö ¾ø±â ¶§¹®ÀÌ´Ù µû¶ó¼­, Ä³½ºÆÛ ³ëµåµéÀº ¾ÐµµÀûÀΠ´Ù¼ö ³ëµåÀÇ Âü¿©°¡ ÀÖÀ» °æ¿ì¿¡¸¸ ºí·ÏÀÌ È®Á¤µÈ °ÍÀ¸·Î °£ÁÖÇÑ´Ù

ºñÀÜƾ ¿À·ù Çã¿ëÀº µ¿±â½Ä PoW ³×Æ®¿öÅ©¿¡¼­ 50% ±×¸®°í ºÎºÐÀû µ¿±â½Ä ¶Ç´Â ºñµ¿±â½Ä PoS ³×Æ®¿öÅ©¿¡¼­ 33%ÀÌ´Ù PoWÀÇ 50% ¿À·ù Çã¿ëÀº ³×Æ®¿öÅ© Áö¿¬ÀÌ Á¦·Î¶ó´Â °¡Á¤ÇÏ¿¡, ½ÇÁ¦ »óȲ¿¡¼­ °üÂûµÇ±â·Î´Â ÀÌ´õ¸®¿òÀÇ ¿À·ù Çã¿ëÀÌ ¾à 46%ÀÌ°í ºñÆ®ÄÚÀÎÀº 49.5%ÀÌ´Ù PoS ³×Æ®¿öÅ© Áö¿¬ÀÌ ºí·Ï ½Ã°£°ú °°À» ¶§ ¿À·ù Çã¿ëÀº 33%±îÁö ³»·Á°£´Ù µû¶ó¼­, ¾ÇÀÇÀûÀΠ³ëµåÀÇ ¼ýÀÚ°¡ Àüü ³ëµåÀÇ 1/3°ú °°°Å³ª ³ÑÁö ¾ÊÀ¸¸é ÀÌ ¼Ö·ç¼ÇÀº Á¦´ë·Î ÀÛµ¿ÇÑ´Ù

0
0
I love this posting (Send donation)
·Î±×ÀÎ

»Ñ¼Å»Ñ¼ÅÀÇ ´Ù¸¥ Æ÷½ºÆ® º¸±â
Comments 0°³, 60ÀÚ ÀÌ»ó ´ñ±Û¿¡´Â ÅäÅ« 50°³ (BUGS)¸¦ µå¸³´Ï´Ù.
50 tokens (BUGS) will be given to comments longer than 60 characters.
Show all comments
ù¹ø° ´ñ±ÛÀ» ³²°ÜÁÖ¼¼¿ä.
iconÀαâ Æ÷½ºÆ®
¿©¹é
¿©¹é
Back to Top