# 블ë¡ì²´ì¸ì˜ ë™ê¸°í™” ìµœì‹ ë…¸ë“œ ìƒíƒœë¥¼ ë”°ë¼ ê°€ê¸° 위해 네트워í¬ì— ì°¸ì—¬í• ë•Œ 새 노드가 사용하는 여러 가지 ë°©ë²•ì„ ì„¤ëª…í•©ë‹ˆë‹¤. ë¨¼ì €, ë…ìžì—게 다ìŒê³¼ ê°™ì€ Grin ë˜ëŠ” Mimblewimbleì˜ íŠ¹ì„±ì„ ë¨¼ì € ì „ì œ í•˜ê³ ì„¤ëª…í•˜ê² ìŠµë‹ˆë‹¤. * 해당 ë¸”ë¡ ì•ˆì˜ ëª¨ë“ ë¸”ë¡ í—¤ë”는 ì²´ì¸ ì•ˆì— ì‚¬ìš©í•˜ì§€ 않는 ì¶œë ¥ê°’ì˜ ëª¨ë“ ë£¨íŠ¸í•´ì‹œë¥¼ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. * ìž…ë ¥ ë˜ëŠ” ì¶œë ¥ì€ ì „ì²´ ë¸”ë¡ ìƒíƒœë¥¼ 무효화하지 ì•Šê³ ì„ ë³€ì¡°ë˜ê±°ë‚˜ 위조 ë 수 없습니다 ì˜¤ì§ ë³´ì•ˆ 모ë¸ì— ì˜í–¥ì„ 줄 수있는 주요 노드 ìœ í˜•ê³¼ ê³ ê¸‰ ì•Œê³ ë¦¬ì¦˜ì—만 ì˜ë„ì 으로 ì´ˆì ì„ ë‘ê³ ìžˆìŠµë‹ˆë‹¤. 예를 들어 í—¤ë” ìš°ì„ ê°™ì€ ëª‡ëª‡ 추가 ê°œì„ ì ë“¤ì„ ì¤„ 수 있는 íœ´ë¦¬ìŠ¤í‹±ì€ ìœ ìš©í•˜ì§€ë§Œ ì´ ì„¹ì…˜ì—서는 언급하지 ì•Šì„것입니다. ## Full ížˆìŠ¤í† ë¦¬ ë™ê¸°í™” ### 설명 ì´ ëª¨ë¸ì€ ëŒ€ë¶€ë¶„ì˜ ë©”ì´ì € í¼ë¸”ë¦ ë¸”ë¡ì²´ì¸ ì—ì„œ "í’€ 노드"ê°€ 사용하는 모ë¸ìž…니다. 새로운 노드는 ì œë„¤ì‹œìŠ¤ 블ë¡ì— 대한 ì‚¬ì „ ì •ë³´ë¥¼ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. 노드는 네트워í¬ì˜ 다른 피어와 ì—°ê²°ë˜ì–´ 피어ì—게 ì•Œë ¤ì§„ ìµœì‹ ë¸”ë¡(호ë¼ì´ì¦Œ 블ë¡)ì— ë„달 í• ë•Œê¹Œì§€ 블ë¡ì„ ìš”ì²í•˜ê¸° 시작합니다. 보안 모ë¸ì€ 비트 ì½”ì¸ê³¼ 비슷합니다. ì „ì²´ ì²´ì¸, ì´ ìž‘ì—…, ê° ë¸”ë¡ì˜ ìœ íš¨ì„±, ì „ì²´ ë‚´ìš© ë“±ì„ ê²€ì¦ í• ìˆ˜ 있습니다. ë˜í•œ Mimblewimble ë° ì „ì²´ UTXO 세트 ì‹¤í–‰ë“¤ì„ í†µí•´ 훨씬 ë” ë¬´ê²°ì„± ê²€ì¦ì´ 잘 수행ë 수 있습니다. ì´ ëª¨ë“œì—서는 ì €ìž¥ê³µê°„ 최ì í™” ë˜ëŠ” 대ì—í 최ì 화를 ì‹œë„하지 않습니다 (예를 들ìžë©´ ìœ íš¨ì„± ê²€ì¦ í›„ Range proof ê°€ ì‚ì œ ë 수 있습니다). 여기서 중요한 ê²ƒì€ ê¸°ë¡ ì•„ì¹´ì´ë¸Œë¥¼ ì œê³µí•˜ê³ ë‚˜ì¤‘ì— í™•ì¸ ë° ì¦ëª…ì„ í•˜ê²Œ 하는 것입니다. ### ë¬´ì—‡ì´ ìž˜ëª» ë 수 있나요? 다른 블ë¡ì²´ì¸ê³¼ ë™ì¼í•˜ê²Œ 아래와 ê°™ì€ ë¬¸ì œê°€ ìƒê¸¸ 수 있습니다. * ì—°ê²°ëœ ëª¨ë“ ë…¸ë“œê°€ ë¶€ì •ì§í•˜ë‹¤ë©´ (sybil 공격 ë˜ëŠ” 그와 비슷한 ìƒíƒœë¥¼ ë§í•©ë‹ˆë‹¤.), ì „ì²´ ì²´ì¸ ìƒíƒœì— 대해 거짓ë§ì„ í• ìˆ˜ 있습니다. * ì—„ì²ë‚œ 마ì´ë‹ 파워를 가진 누군가가 ì „ì²´ 블ë¡ì²´ì¸ 기ë¡ì„ 다시 쓸 수 있습니다. * Etc. ## 부분 블ë¡ì²´ì¸ ížˆìŠ¤í† ë¦¬ ë™ê¸°í™” ì´ ëª¨ë¸ì—서는 ë³´ì•ˆì— ëŒ€í•´ì„œ 가능한 í•œ ì 게 ​​타협하면서 매우 ë¹ ë¥¸ ë™ê¸°í™”를 위힌 최ì 화를 í•˜ë ¤ê³ í•©ë‹ˆë‹¤. 사실 보안 모ë¸ì€ 다운로드 í• ë°ì´í„°ì˜ ì–‘ì´ í›¨ì”¬ ì ìŒì—ë„ ë¶ˆêµ¬í•˜ê³ í’€ 노드와 ê±°ì˜ ë™ì¼í•©ë‹ˆë‹¤. 새로 네트워í¬ì— 참여하는 노드는 블ë¡í—¤ë“œì—ì„œ ë¸”ë¡ ìˆ˜ë§Œí¼ ë–¨ì–´ì§„ ê°’ì¸ `Z`ë¡œ 미리 구성ë©ë‹ˆë‹¤. ( ì›ë¬¸ì—서는 horizon `Z` ë¡œ 표현ë˜ì—ˆìŠµë‹ˆë‹¤. 블ë¡í—¤ë“œ - ë¸”ë¡ = `Z`ë¼ê³ í• ìˆ˜ 있습니다. - ì—ìž ì£¼ ) 예를 들어 `Z = 5000` ì´ê³ 헤드가 ë†’ì´ `H = 23000` ì— ìžˆìœ¼ë©´, 가장 ë†’ì€ ë¸”ë¡ì€ 가장 긴 ì²´ì¸ì—ì„œ 높ì´ê°€ `h = 18000`ì¸ ë¸”ë¡ìž…니다. ë˜í•œ 새로운 노드ì—는 ì œë„¤ì‹œìŠ¤ 블ë¡ì— 대한 ì‚¬ì „ ì •ë³´ê°€ 있습니다. 노드는 다른 피어들과 ì—°ê²°í•˜ê³ ê°€ìž¥ 긴 ì²´ì¸ì˜ í—¤ë“œì— ëŒ€í•´ 알게 ë©ë‹ˆë‹¤. 가장 ë†’ì€ ë¸”ë¡ì˜ ë¸”ë¡ í—¤ë”(horizon block ì´ë¼ê³ ì›ë¬¸ì— 표시ë˜ì–´ ìžˆìŒ - ì—ìž ì£¼ )를 ìš”ì²í•˜ë©° 다른 í”¼ì–´ì˜ ë™ì˜ê°€ 필요하게 ë©ë‹ˆë‹¤. 컨센서스가 `h = H - Z`ì— ì´ë¥´ì§€ 않으면 노드는 `Z`ê°’( horizon Z ë¼ê³ ì›ë¬¸ì— 표시ë˜ì–´ ìžˆìŒ - ì—ìž ì£¼ )ì„ ì ì°¨ ì¦ê°€ì‹œì¼œ 컨센서스가 ì´ë£¨ì–´ì§ˆ 때까지`h`를 뒤로 ì´ë™ì‹œí‚µë‹ˆë‹¤. 그런 ë‹¤ìŒ ê°€ìž¥ 긴 블ë¡ì—ì„œì˜ ì „ì²´ UTXO ì •ë³´ë¥¼ 얻습니다. ì´ ì •ë³´ë¥¼ 통해 다ìŒì„ ì¦ëª…í• ìˆ˜ 있습니다. * ëª¨ë“ ë¸”ë¡í—¤ë”ì•ˆì— ìžˆëŠ” 해당 ì²´ì¸ì˜ ì „ì²´ ë‚œì´ë„ * 예ìƒë˜ëŠ” ì½”ì¸ ê³µê¸‰ëŸ‰ê³¼ ê°™ì€ ëª¨ë“ UTXO ì‹¤í–‰ê°’ì˜ í•©. * 블ë¡í—¤ë”ì— ìžˆëŠ” 루트 해시와 매치ë˜ëŠ” ëª¨ë“ UTXOì˜ ë£¨íŠ¸í•´ì‹œ 블ë¡ì˜ ìœ íš¨ì„± 검사가 완료ë˜ë©´ 피어는 ë¸”ë¡ ì½˜í…ì¸ ë¥¼ `Z`ê°’ì—ì„œ (from the horizon ì´ë¼ê³ ì›ë¬¸ì— 표시ë˜ì–´ ìžˆìŒ - ì—ìž ì£¼) 헤드까지 ë‹¤ìš´ë¡œë“œí•˜ê³ ìœ íš¨ì„±ì„ ê²€ì‚¬ í• ìˆ˜ 있습니다. ì´ ì•Œê³ ë¦¬ì¦˜ì€ `Z`ì˜ ë§¤ìš° ë‚®ì€ ê°’ (ë˜ëŠ” `Z = 1`ì¸ ê·¹ë‹¨ì ì¸ ê²½ìš°ì—ë„)ì—ì„œë„ ìž‘ë™í•©ë‹ˆë‹¤. 그러나 ì–´ëŠ ë¸”ë¡ì²´ì¸ì—ì„œë„ ë°œìƒí• 수있는 ì •ìƒì ì¸ í¬í¬ ë•Œë¬¸ì— ë‚®ì€ ê°’ì´ ë¬¸ì œê°€ ë 수 있습니다. ì´ëŸ¬í•œ ë¬¸ì œë¥¼ ë°©ì§€í•˜ê³ ë¡œì»¬ ê²€ì¦ëœ ì„ ëŠ˜ë¦¬ë ¤ë©´ 최소한 ë©°ì¹ ë¶„ëŸ‰ì˜ `Z`ê°’ì—ì„œ 최대 몇 ì£¼ê°„ì˜ `Z`ê°’ì„ ì‚¬ìš©í•˜ëŠ” ê²ƒì„ ê¶Œìž¥í•©ë‹ˆë‹¤. ### ë¬´ì—‡ì´ ìž˜ëª» ë 수 있나요? ì´ ë™ê¸°í™” 모드는 간단하게 설명 í• ìˆ˜ 있지만 어떻게 ë³´ì•ˆì„ ìœ ì§€ í• ê²ƒì¸ê°€ì— ëŒ€í•´ì„ ë¶ˆë¶„ëª…í•´ ë³´ì¼ ìˆ˜ 있습니다. 여기서는 몇몇 가능 í• ìˆ˜ 있는 공격 ìœ í˜•ê³¼ 퇴치 ë°©ì‹ ë° ê¸°íƒ€ 가능한 실패 ì‹œë‚˜ë¦¬ì˜¤ì— ëŒ€í•´ 설명합니다. ### 공격ìžê°€ 가장 긴 블ë¡ì—ì„œ 부터 ìƒíƒœë¥¼ ìœ„ì¡°í•˜ë ¤ê³ í• ë•Œ ì´ ê³µê²©ì€ ë…¸ë“œê°€ 네트워í¬ì™€ 올바르게 ë™ê¸°í™”ë˜ì—ˆë‹¤ê³ 노드가 ì¸ì‹í•˜ë„ë¡ í•˜ë‚˜ ì‹¤ì œë¡œ 노드가 위조 ìƒíƒœì— 있게 합니다. ì´ì— 대해 아래와 ê°™ì€ ì—¬ëŸ¬ ì „ëžµì„ ì‹œë„ í• ìˆ˜ 있습니다. * ì™„ì „ížˆ 가짜지만 ìœ íš¨í•œ ìµœì‹ ë¸”ë¡ìƒíƒœ (horizon state ë¼ê³ ì›ë¬¸ì— í‘œì‹œë˜ ì–´ìžˆìŒ - ì—ìž ì£¼) ì¼ë•Œ (í—¤ë” ë° ìž‘ì—… ì¦ëª… í¬í•¨), 최소한 í•˜ë‚˜ì˜ ì •ì§í•œ 피어가 ìžˆë‹¤ê³ ê°€ì •í•˜ë©´, UTXO ì„¸íŠ¸ì˜ ë£¨íŠ¸ 해시와 ë¸”ë¡ í•´ì‹œë„ ë‹¤ë¥¸ í”¼ì–´ì˜ ìˆ˜í‰ ìƒíƒœì™€ ì¼ì¹˜í•˜ì§€ 않습니다. * ìœ íš¨í•œ ë¸”ë¡ í—¤ë”ì´ì§€ë§Œ 가짜 UTXO 세트ì¼ë•Œ, í—¤ë”ì˜ UTXO ì„¸íŠ¸ì˜ ë£¨íŠ¸ 해시는 노드가 ìˆ˜ì‹ í•œ UTXO 세트 ìžì²´ì—ì„œ 계산 í•œ 것과 ì¼ì¹˜í•˜ì§€ 않습니다. * 가짜 ì´ ë‚œì´ë„를 가진 ì™„ì „ížˆ ìœ íš¨í•œ 블ë¡ìœ¼ë¡œ 노드를 가짜 í¬í¬ë¡œ ìœ ë„í• ê²½ìš°, ì „ì²´ ë‚œì´ë„ê°€ 변경ë˜ë©´ ë¸”ë¡ í•´ì‹œê°€ 변경ë˜ë©° ì–´ë–¤ ì •ì§í•œ í”¼ì–´ë„ í•´ë‹¹ í•´ì‹œì— ìœ íš¨í•œ 헤드를 ìƒì„±í•˜ì§€ 않습니다. ### 로컬 UTXO ížˆìŠ¤í† ë¦¬ 보다 ì˜¤ëž˜ëœ í¬í¬ê°€ ë°œìƒí•˜ë ¤ í• ë•Œ 노드는 ìµœì‹ ë¸”ë¡ ë†’ì´ (horizon height - ì—ìž ì£¼) ë¡œ ì„¤ì •ëœ ì „ì²´ UTXO를 다운로드 했습니다. 만약 수í‰ì„ H + deltaì— ìžˆëŠ” 블ë¡ì—ì„œ í¬í¬ê°€ ë°œìƒí•˜ë©´ UTXO ì„¸íŠ¸ì˜ ìœ íš¨ì„±ì„ ê²€ì‚¬ í• ìˆ˜ 없습니다. ì´ ìƒí™©ì—ì„œ 노드는 `Z '= Z + delta`ì¸ ìƒˆë¡œìš´ `Z`ê°’ (new horizon - ì—ìž ì£¼) ì„ ê°€ì§„ ë™ê¸°í™” 모드로 ëŒì•„ ê°ˆ 수 ë°–ì— ì—†ìŠµë‹ˆë‹¤. (네트ì›ì—ì„œ 받아들여지는) 승리한 í¬í¬ëŠ” í˜„ìž¬ì˜ (우리ì˜) 헤드보다 ìž‘ì—… ì¦ëª…ì˜ ì´ ëŸ‰ì´ ë” ë§Žì€ í—¤ë“œì¼ ë¿ì´ë¼ì„œ í˜„ìž¬ì˜ í—¤ë“œë³´ë‹¤ ë” ì ì€ ìž‘ì—… ì¦ëª…ì¸ Z + deltaì˜ ë‹¤ë¥¸ í¬í¬ëŠ” 무시 ë 수 있습니다. ì´ ë°©ë²•ì„ ìœ„í•´ì„œ ëª¨ë“ ë¸”ë¡ í—¤ë”ì—는 해당 블ë¡ê¹Œì§€ì˜ ì´ ì²´ì¸ ë‚œì´ë„ê°€ í¬í•¨ë©ë‹ˆë‹¤. #### ì²´ì¸ì´ ì™„ì „ížˆ í¬í¬ë˜ì—ˆì„ ë•Œ 하드í¬í¬ê°€ ë°œìƒí•˜ë©´ 네트워í¬ê°€ 분리ë˜ê³ 새로운 노드는 하드í¬í¬ê°€ ë°œìƒí–ˆì„ 때로 ìžì‹ ì˜ ìµœì‹ ë¸”ë¡ ìƒíƒœ(horizon)ì„ í•ìƒ ë˜ëŒë¦´ ê²ƒì„ ê°•ì œí•©ë‹ˆë‹¤. ì§§ì€ ê¸°ê°„ì˜ í•˜ë“œí¬í¬ì—는 ë¬¸ì œê°€ ë˜ì§€ 않지만 장기 ë˜ëŠ” ì™„ì „í•œ 하드í¬í¬ì—ì„ ë¬¸ì œê°€ ë 수 있습니다. ì´ëŸ¬í•œ ìƒí™©ì„ 방지하기 위해, 피어는 ì—°ê²°ì´ ë ë•Œ 하드í¬í¬ ê´€ë ¨ 기능 (피어가 노출하는 피ì³ì˜ bitmask)ì„ í•ìƒ 확ì¸í•´ì•¼í•©ë‹ˆë‹¤. ### 몇몇 노드가 가짜 ìµœì‹ ë¸”ë¡ (호ë¼ì´ì¦Œ 블ë¡)ì„ ì§€ì†ì 으로 줄 ë•Œ 피어가 만약 hì˜ í—¤ë”ì—ì„œ ì»¨ì„¼ì„œìŠ¤ì— ë„달 í• ìˆ˜ 없으면 서서히 뒤로 ëŒì•„갑니다 (블ë¡ì˜ ìœ íš¨ì„±ì„ í™•ì¸í•˜ê¸° 위해). 뒤로 물러나는 ìœ íš¨ì„±ì„ í™•ì¸í•˜ëŠ” 경우, 사기꾼 피어는 시스템ì 으로 í•©ì˜ê°€ ì´ë¤„ì§€ëŠ”ê²ƒì„ ë§‰ê³ ê°€ì§œ í—¤ë”를 ë³´ë‚´ ì¤Œìœ¼ë¡œì¨ ëª¨ë“ ìƒˆë¡œìš´ 피어가 ì œë„¤ì‹œìŠ¤ 블ë¡ê¹Œì§€ (ìœ íš¨ì„±ì„ í™•ì¸í•˜ê¸° 위해) 뒤로 ì´ë™í•˜ê²Œ í•¨ìœ¼ë¡œì¨ í•ìƒ í’€ 노드가 ë˜ë„ë¡ ê°•ì œ í• ìˆ˜ 있습니다. ìƒê¸° 얘기한 ìƒíƒœëŠ” ìœ íš¨í•œ ë¬¸ì œì´ê¸´ 하지만 ì´ëž˜ì™€ ê°™ì´ ëª‡ê°€ì§€ 완화 ì „ëžµì´ ìžˆìŠµë‹ˆë‹¤. * 피어는`Z`ê°’ (Horizon Z)ì—ì„œ ìœ íš¨í•œ ë¸”ë¡ í—¤ë”를 ì œê³µí•´ì•¼í•©ë‹ˆë‹¤. 여기ì—는 ìž‘ì—… ì¦ëª…ì´ í¬í•¨ë©ë‹ˆë‹¤. * ìµœì‹ ë¸”ë¡ (Horizon) ì£¼ìœ„ì˜ ë¸”ë¡ í—¤ë” ê·¸ë£¹ì€ ê³µê²© ë¹„ìš©ì„ ì¦ê°€ 시키ë„ë¡ ìš”ì²ë°›ì„ 수 있습니다. * í˜„ì €í•˜ê²Œ ë‚®ì€ ìž‘ì—… ì¦ëª…ì„ ì œê³µí•˜ëŠ” ìƒì´í•œ ë¸”ë¡ í—¤ë”는 거부 ë 수 있습니다. * ì‚¬ìš©ìž ë˜ëŠ” 노드 ìš´ì˜ìžëŠ” ë¸”ë¡ í•´ì‹œë¥¼ 확ì¸í•˜ë„ë¡ ìš”ì²ë°›ì„ 수 있습니다. * ìµœí›„ì˜ ìˆ˜ë‹¨ìœ¼ë¡œ ìœ„ì˜ ì „ëžµ 중 ì–´ëŠ ê²ƒë„ íš¨ê³¼ì ì´ì§€ 않으면 ì²´í¬í¬ì¸íŠ¸ë¥¼ ì‚¬ìš©í• ìˆ˜ 있습니다.