🌈W2_DAY_10_ 볡슡 + κΈ°μ΄ˆμ•”ν˜Έν•™

RoRAΒ·2023λ…„ 3μ›” 27일
0

TECHIT_BlockChain_School_3

λͺ©λ‘ 보기
7/9

πŸͺ‚ 2023. 03. 23. Monday_ γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹μ—Žλ“œλ € 뻗쳐ㅋㅋㅋㅋㅋㅋㅋㅋㅋ πŸͺ‚


βœ… 볡슡 + 타원곑선. . . . . πŸ™‚πŸ˜πŸ˜Ά

Intro

μ•ˆλ…•ν•˜μ„Έμš”!😁
μ˜€λŠ˜μ€ TECHIT-블둝체인 슀쿨 3기의 DAY - 10 μ‹œκ°„μž…λ‹ˆλ‹€ ~!~!~!!!πŸ‘πŸ‘πŸ‘

λͺ¨λ‘ ν•¨κ»˜ 4κ°œμ›” λ™μ•ˆ ν•˜λ‚˜μ˜ 멋진 ν”„λ‘œμ νŠΈλ₯Ό μ™„μ„±ν•˜λŠ” κ·Έλ‚ κΉŒμ§€ ν™”μ΄νŒ…ν•©μ‹œλ‹€ !

* 이 κ³³μ—μ„œλŠ” 당일에 배운 λ‚΄μš©μ„ λ³΅μŠ΅ν•˜λŠ” μš©λ„λ‘œ 글을 μž‘μ„±ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

* μ˜€λŠ˜μ€ μ €λ²ˆ 주에 λ°°μ› λ˜ λ‚΄μš©μ„ λ‹€μ‹œ ν•œ 번 λ³΅μŠ΅ν•˜κ³ , 타원곑선을 ν™œμš©ν•œ '지갑 생성 κ³Όμ •'에 λ‚΄μš©μ„ λ³΅μŠ΅ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
β €β €β €β €
β €β €


βœ… 볡슡

πŸ‘‰ λŒ€μΉ­ν‚€ vs λΉ„λŒ€μΉ­ν‚€ ( μ–‘λ°©ν–₯μ„± μ•”ν˜Έν™”λ°©μ‹)

βœ”οΈ λŒ€μΉ­ν‚€

β €β €β–ͺ️ μ•”ν˜Έν™” λ³΅ν˜Έν™”μ‹œ 같은 ν‚€ μ‚¬μš©
β €β €β–ͺ️ μ€‘μš”ν•œ ν‚€(=κ°œμΈν‚€) λŠ” λ³΅ν˜Έν™”ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
β €β €β €β €
β €β €
βœ”οΈ λΉ„λŒ€μΉ­ν‚€

β €β €β–ͺ️ μ•”ν˜Έν™” λ³΅ν˜Έν™”μ‹œ λ‹€λ₯Έ ν‚€ μ‚¬μš©
β €β €
β €β €

πŸ‘‰ μΆ©λŒκ°€λŠ₯μ„±

βœ”οΈ λΉ„λ‘˜κΈ°μ§‘μ›λ¦¬

β €β €β € β €β €πŸ”Έex1)λ“ˆκΈ° 4λ§ˆλ¦¬μ— 집 3κ°œκ°€ μžˆμ„ 경우
β €β €β € β €β € -> 1λ“ˆκΈ° 1집을 ν•˜κ³  μ‹Άμ§€λ§Œ, λ§ˆμ§€λ§‰ λ“ˆκΈ°λŠ” μžλ¦¬κ°€ μ—†λ‹€.
β €β €β € β €β € -> μ–΄μ©” 수 없이 1μ§‘μ—λŠ” 2마리 λ“ˆκΈ°κ°€ 있게 λœλ‹€.

β €β €β € β €β € => SHA-256을 보면, input κ°’ >>>>> output κ°’
β €β €β € β €β € => 수 λ§Žμ€ inputκ°’ μ€‘μ—μ„œ λ™μΌν•œ output값이 λ‚˜μ˜¬ 수 μžˆλ‹€.
β €β €β € β €β €πŸ”Έ 즉. SHA-256을 ν†΅ν•œ 좜λ ₯값이 μΆ©λŒν•  κ°€λŠ₯성이 μžˆμŒμ„ μ˜λ―Έν•œλ‹€.
β €β €
β €β €

πŸ‘‰ SHA-256_ max κ°’

βœ”οΈ SHA-256
β €β €β–ͺ️ 단방ν–₯μ„± μ•”ν˜Έν™”λ°©μ‹μ΄λ‹€. (= 검증을할 λ•Œ μ‚¬μš©ν•œλ‹€.)

β €β €β–ͺ️ 256 == μš©λŸ‰μ„ μ˜λ―Έν•œλ‹€.
β €β €β–ͺ️ 256λΉ„νŠΈ == 2μ§„μˆ˜μ˜ 256자리 == 16μ§„μˆ˜μ˜ 64자리

β €β €β € β €β €πŸ”Έmaxκ°’μ—λŠ” μ œν•œ 있음!
β €β €β € β €β €πŸ”Έmin값은 거의 λ¬΄ν•œμ •~~~
β €β €β €β €
β €β €


βœ… κΈ°μ΄ˆμ•”ν˜Έν•™( 지갑 생성 κ³Όμ •..πŸ™‚πŸ˜πŸ˜Ά)

πŸ‘‰ Key & μ£Όμ†Œ

βœ”οΈ Key
β €β €β–ͺ️ 코인에 λŒ€ν•œ μ†Œμœ κΆŒμ„ μž…μ¦μ‹œμΌœμ£ΌλŠ” μˆ˜λ‹¨.

β €β €β € β €β €πŸ”Έκ°œμΈ ν‚€ : 16μ§„μˆ˜λ‘œ ν˜•μ„±λœ μˆ«μžλ‹€.
β €β €β € β €β €πŸ”Έκ³΅κ°œ ν‚€ : κ·Έλž˜ν”„μ—μ„œ μ’Œν‘œλ₯Ό μ˜λ―Έν•œλ‹€.
β €β €

βœ”οΈ μ£Όμ†Œ
β €β €β–ͺ️ λ‚˜μ˜ 지갑 μ£Όμ†Œλ₯Ό μ˜λ―Έν•œλ‹€.
β €β €β–ͺ️ μ£Όμ†Œλ‘œλΆ€ν„° κ³΅κ°œν‚€λ₯Ό 역좔적할 수 μ—†λ‹€!(= 단방ν–₯μ„± νŠΉμ§•)
β €β €

βœ”οΈ Key & μ£Όμ†Œ (+ 거래)
β €β €β–ͺ️ λˆμ„ μ‚¬μš©ν•  λ•Œ == κ°œμΈν‚€λ‘œλΆ€ν„° ν˜•μ„±λœ μ„œλͺ… μ‚¬μš© == κ°œμΈν‚€ μ§μ ‘μ‚¬μš© X

β €β €β € β €β €πŸ”Έex1) κ±°λž˜μ‹œ λΉ„νŠΈμ½”μΈ μ£Όμ†Œλ₯Ό μ‚¬μš©ν•œλ‹€.
β €β €β € β €β € => privateν‚€λ‘œλΆ€ν„° ν˜•μ„±λœ digital signiture
β €β €
β €β €
β €β €β–ͺ️ λˆμ„ 받을 λ•Œ == κ³΅κ°œν‚€λ‘œλΆ€ν„° ν˜•μ„±λœ μ£Όμ†Œ μ‚¬μš©

β €β €β €β €
β €β €

πŸ‘‰ Key ν˜•μ„± κ³Όμ • (타원곑선 ν™œμš©)

βœ”οΈ κ°œμΈν‚€λŠ” μˆ«μžλ‹€ !
βœ”οΈ κ³΅κ°œν‚€λŠ” μ’Œν‘œλ‹€ !

βœ”οΈ κ°œμΈν‚€λ‘œλΆ€ν„° κ³΅κ°œν‚€κ°€ ν˜•μ„±λœλ‹€.
β €β €β–ͺ️ μœ„μ—μ„œ μ •μ˜ν•œ 것과 달리 μˆ«μžκ°€ κ°‘μžκΈ° μ’Œν‘œκ°€ 될 수 μ—†λ‹€.
β €β €
β €β €

βœ”οΈ 타원곑선에 적용
β €β €β–ͺ️ 타원 곑선은 x좕에 λŒ€ν•΄μ„œ λŒ€μΉ­μ΄λ‹€.(= yκ°’μ˜ λΆ€ν˜Έλ§Œ λ‹€λ₯΄λ‹€.)

β €β €β–ͺ️ κ·Έλž˜ν”„μ—λŠ” μ‹œμž‘μ μ΄ ν‘œμ€€μœΌλ‘œ μ •ν•΄μ Έ 있으며, μ—¬λŸ¬ 연산듀이 μ‘΄μž¬ν•œλ‹€.

β €β €β–ͺ️ κ°œμΈν‚€ : λͺ‡ 번 연산을 ν•  지 κ²°μ •ν•΄ μ€€λ‹€.
β €β €β–ͺ️ κ³΅κ°œν‚€ : κ°œμΈν‚€λ‘œλΆ€ν„° λ‚˜μ˜¨ κ²°κ³Ό
β €β €
β €β €

βœ”οΈ 타원곑선 κ³±μ…ˆ 방식 ν™œμš©
β €β €β–ͺ️ ν•œ 직선 μœ„μ— μžˆλŠ” μ„œλ‘œ λ‹€λ₯Έ 3점의 합은 0이닀.

β €β €β–ͺ️ 2점의 ν•© == λ‹€λ₯Έ ν•œ 점을 x좕에 λŒ€ν•΄ λŒ€μΉ­μ΄λ™ν•œ κ²°κ³Ό
β € β €β €=> 즉, μ ˆλŒ€ 값은 κ°™μœΌλ‚˜ yκ°’μ˜ λΆ€ν˜ΈλŠ” λ‹€λ₯΄λ‹€ !

β €β €β € β €β €πŸ”Έex1) ν•œ 직선 μœ„μ— μžˆλŠ” 3개의 점 쀑 2개의 점이 κ°€κΉŒμšΈ 경우
β €β €β € β €β € -> κ°€κΉŒμš΄ 2개의 점을 μ—°κ²°ν•  ν•„μš”κ°€ μ—†λ‹€. (= 접선이 되기 λ•Œλ¬Έ)

β €β €


πŸ‘‰μ°Έκ³ λ¬Έν—Œ

β €β €β–ͺ️ λΉ„νŠΈμ½”μΈ μ½”μ–΄ - κΉƒν—ˆλΈŒ : https://github.com/bitcoin/bitcoin
β €β €β €β €=> μ‹€μ œ μ½”μ–΄λ₯Ό μ‚΄νŽ΄λ³΄λ©΄, header에 hash값이 λΉ μ Έμžˆλ‹€.
β €β €β €β €=> hash 값은 GetHash() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€.
β €β €

β €β €β–ͺ️ Bitcoin core : https://blog.lopp.net/who-controls-bitcoin-core-/
β €β €β–ͺ️ SHA-256 : https://emn178.github.io/online-tools/sha256.html
β €β €

β €β €β–ͺ️ λ³΅ν˜Έν™” : https://crackstation.net/
β €β €β €β €=> μ €μž₯이 μ•ˆλ˜μ–΄ μžˆλŠ” 값듀은 λ³΅ν˜Έν™” 결과값을 찾을 수 μ—†λ‹€.
β €β €β €β €=> μ™„μ „ λ‹¨μˆœ λ³΅ν˜Έν™” 예제만 κ°€λŠ₯. ex)123정도
β €β €

β €β €β–ͺ️ μ•”ν˜Έν™” λ³΅ν˜Έν™” : https://encode-decode.com/des-encrypt-online/
β €β €β–ͺ️ ν‚€λ₯Ό μ‚¬μš©ν•œ μ•”ν˜Έν™” λ³΅ν˜Έν™” : https://www.devglan.com/online-tools/rsa-encryption-decryption
β €β €

β €β €β–ͺ️ 타원곑선을 ν™œμš©ν•œ 지갑 생성 κ³Όμ •
β €β €β €β €: https://royalforkblog.github.io/2014/08/11/graphical-address-generator/
β €β €β €β €: https://www.geogebra.org/m/xDFZT5F6
β €β €β €β €: https://curves.xargs.org/

β €β €β €


πŸ“Œ DAY-10

κ·Έλ ‡κ΅¬λ‚˜. κ·ΈλŸ°κ±°κ΅¬λ‚˜ . 음. 였. κ·Έλ ‡κ΅¬λ‚˜ .

0개의 λŒ“κΈ€