해싱 알고리즘 (Hashing Algorithms)

해싱 알고리즘은 모든 크기의 입력 데이터를 고정된 크기의 출력(해시)으로 변환하는 수학적 함수로, 데이터 무결성, 비밀번호 저장 및 블록체인 합의에 사용됩니다.

해싱 알고리즘은 임의의 입력을 받아 해시 또는 다이제스트라고 하는 고정 길이 출력을 생성하는 기본적인 암호화 기본 요소입니다. 결정론적(동일한 입력은 항상 동일한 출력을 생성함)이고 계산이 빠르며 되돌릴 수 없도록(단방향 함수) 설계되었습니다.

암호화 해시 함수는 충돌 저항성(동일한 해시를 가진 두 개의 입력을 찾기 어려움), 역상 저항성(해시에서 입력을 찾기 어려움) 및 쇄도 효과(작은 입력 변경이 큰 출력 변경을 유발함)와 같은 추가 속성을 충족해야 합니다.

주요 알고리즘에는 SHA-256(비트코인, 널리 사용됨), Keccak-256(이더리움), SHA-3(NIST 표준), Blake2/Blake3(빠르고 안전함) 및 Poseidon(ZK 친화적)이 포함됩니다. 서로 다른 알고리즘은 보안, 속도 및 영지식 증명과 같은 특정 용도에 대한 적합성 측면에서 장단점을 제공합니다.

블록체인 용도에는 작업 증명 마이닝, 데이터 무결성을 위한 머클 트리, 주소 생성, 트랜잭션 ID 및 커밋 스킴이 포함됩니다. 해싱을 이해하는 것은 블록체인 보안 및 개발에 필수적입니다.

        graph LR
  Center["해싱 알고리즘 (Hashing Algorithms)"]:::main
  Pre_cryptography["cryptography"]:::pre --> Center
  click Pre_cryptography "/terms/cryptography"
  Pre_mathematics["mathematics"]:::pre --> Center
  click Pre_mathematics "/terms/mathematics"
  Rel_proof_of_work["proof-of-work"]:::related -.-> Center
  click Rel_proof_of_work "/terms/proof-of-work"
  Rel_digital_signatures["digital-signatures"]:::related -.-> Center
  click Rel_digital_signatures "/terms/digital-signatures"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

Generated ELI5 content

🤓 Expert Deep Dive

Generated expert content

❓ 자주 묻는 질문

해시를 되돌려 원래 입력을 얻을 수 없는 이유는 무엇입니까?

해시 함수는 임의의 양의 입력을 고정된 크기의 출력으로 압축하므로 많은 가능한 입력이 각 해시에 매핑됩니다(정보가 손실됨). 또한 역전을 계산적으로 불가능하게 만드는 수학적 복잡성으로 설계되었습니다. 이를 역상 저항성이라고 합니다.

비트코인은 어떤 해싱 알고리즘을 사용합니까?

비트코인은 작업 증명 마이닝 및 트랜잭션 해싱에 SHA-256(SHA-256d, 실제로는 이중 SHA-256)을 사용하고 주소 생성에 SHA-256과 결합된 RIPEMD-160을 사용합니다. 이러한 선택은 보안, 성능 및 알려진 공격에 대한 저항의 균형을 유지합니다.

해시 함수가 'ZK 친화적'이라는 것은 무엇을 의미합니까?

Poseidon 및 Pedersen과 같은 ZK 친화적 해시 함수는 영지식 증명 회로 내에서 사용할 때 효율적이도록 설계되었습니다. SHA-256과 같은 기존 해시는 증명 비용이 많이 드는 비트 단위 연산을 사용하기 때문에 ZK 증명에서 비용이 많이 듭니다. ZK 친화적 해시는 증명 시스템에 고유한 산술 연산을 사용합니다.

🔗 관련 용어

선행 지식:

📚 출처