-
[κ°λ ] Blockchain κ°λ°νκΈ° :: dapp (νμ€μν μ±) μ΄λ? dapp ꡬ쑰, νλ¦, μ€λ§νΈ 컨νΈλνΈSECURITY/Blockchain 2022. 1. 5. 15:35
본격μ μΌλ‘ blockchain μ λν΄ κ³΅λΆν΄λ³΄κ³ μ§μ ꡬνν΄λ³Ό μ μλ κΈ°νκ° μ겨μ, κ·Έ λ΄μ©μ μμΌλ‘ λ€λ£¨λλ‘ νκ² μ΅λλ€. κ°λ μ μ -> μ€μ ꡬν -> ν μ€νΈ λ° λ°°ν¬ κΉμ§ μ§νν μμ μ λλ€.
* μ΄λ리μ λ€νΈμν¬λ₯Ό μ¬μ©ν κ²μ΄λ―λ‘, μλ λ΄μ©μ μ΄λ리μ λ€νΈμν¬ μ κΈ°λ°μ λ‘λλ€.
Dapp (νμ€μν μ±) μ΄λ?
μ€μν, νμ€μν, λΆμ°ν. λ§μ΄ λ€μ΄λ΄€μ μ μμ§λ§ ν·κ°λ¦΄ μ μλ κ°λ μ΄λ―λ‘ λ¨Όμ μ§κ³ λμ΄κ°κ² μ΅λλ€.
- μ€μν(centralized) μ ν리μΌμ΄μ : λ¨μΌνκ±°λ μ€μνλ μ£Όμ²΄κ° μ μ΄νλ μμ€ν μ κΈ°λ°μΌλ‘ λ§λ€μ΄μ§ μ±. λ°λΌμ μ¬μ©μκ° μλΉμ€λ₯Ό μ 곡νλ 주체λ₯Ό μ λ’°νλ κ²μ μ μ λ‘ μλν©λλ€. μλΉμ€λ₯Ό μ λ’°νμ§ μλλ€λ©΄ μ¬μ©μλ μ¬μ©νμ§ μμ κ²μ΄κ³ , κ·Έμ λ°λΌ μλΉμ€μ 주체λ μ λ’°μ±μ λλ¦λλ‘μ λ°©μμΌλ‘ μ¬μ©μμκ² μ΄νν΄μΌ ν©λλ€.
- νμ€μν(decentralized) μ ν리μΌμ΄μ
(Dapp): μ΄λ‘ μ μΌλ‘, κ°μ λ€λ₯Έ μ£Όμ²΄κ° μμ νκ³ μλ λ
Έλμμ 볡μ λμ΄ μ€νν©λλ€. μ¦, λ
Έλλ₯Ό μμ νλ μ£Όμ²΄κ° λ¨μΌνλμ΄μμ§ μμ΅λλ€. μμ μ£Όμ²΄κ° λ§μμλ‘ νμ€μνλ μ²λ¦¬κ° κ°λ₯νλ―λ‘ μ 체 λ€νΈμν¬μ μ λ’°λλ μ¬λΌκ°λλ€.
μ΄λ κ±°λ μ€ν λ° κ²μ¦μ λ λ¦½μ± (λͺ¨λ μ°Έμ¬μκ° κ²μ¦ μμ μ λμ) κ³Ό ν¬λͺ μ± (κ±°λλ₯Ό μ²λ¦¬νλ μ½λ νμΈ κ°λ₯)μ μ 곡νλ, μΉ μ νλ μΌμ΄μ μ μλ‘μ΄ λ³ν μ€ νλμ λλ€. μ¬μ©μμ 곡κΈμ μ¬μ΄μ μ λ’°κ° νμν λͺ¨λ μμ€ν μ ν¬λͺ μ±μ λμ΄κΈ° μν΄ μ¬μ©λλ©°, μ΄λ¬ν νμκ° μλ κ³³μμλ νμ€μνκ° 100% μ λ΅μ΄ λμ§λ μμ΅λλ€. - λΆμ° μ ν리μΌμ΄μ : νλμ λ€νΈμν¬ λ΄μ μλ μ¬λ¬ μλ²μμ μ ν리μΌμ΄μ μ΄ μ€νλ©λλ€. μ¦, 주체λ νλμ΄λ μ¬λ¬ μλ²λ₯Ό μ¬μ©ν΄μ μλΉμ€λ₯Ό μ 곡νλ€λ κ²μ λλ€. μΌλ°μ μΈ μΉ μ ν리μΌμ΄μ μ λ°©μμ΄λ©°, μΉ μλ², λ°μ΄ν°λ² μ΄μ€ μλ² λ±μΌλ‘ ꡬμ±λ©λλ€. μ€λͺ μ 보면 μ΄ν΄κ° κ°λ― μ΄λ κ²°κ΅ μ€μν μ±μ ννμ λλ€.
Dapp μ ꡬ쑰
μ²μ Dapp μ μ νλ€λ©΄ κ·Έλμ λκ° μλ²κ³ , λκ° ν΄λΌμ΄μΈνΈμΈμ§ ν·κ°λ¦΄ μ μμ΅λλ€. (λνμ : λ)
λ°λΌμ, Dapp μ κ΅¬μ‘°κ° μ΄λ»κ² λλμ§
- ν΄λΌμ΄μΈνΈ: μΉ/μ±
μΌλ°μ μΌλ‘, java script κ° ν¬ν¨λ μΉ νλ‘κ·Έλ¨.
Web3.js λΌλ μλ°μ€ν¬λ¦½νΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ νΉμ μλ²μ μ§μ ν΅μ ν μ μμ΅λλ€.
보ν΅μ μ ν리μΌμ΄μ μ΄ κ°μ§λ ν΄λΌμ΄μΈνΈμ ν° μ°¨μ΄κ° μμ΅λλ€. - μλ²: P2P λ€νΈμν¬
νμ€μν μλ²λ P2P λ€νΈμν¬μ λλ€. μ¦, νλμ λ¨μΌ μ£Όμ²΄κ° μ€μμμ μ‘°μ νλ ννκ° μλλΌ κ° λ Έλκ° μλ‘ ν΅μ νλ©° κ°μ μ½λλ₯Ό μ€ννκ³ κ°μ λΈλ‘μ²΄μΈ λ°μ΄ν°λ² μ΄μ€λ₯Ό κ°μ΅λλ€.
μ΄λ, λ Έλλ λͺ¨λ λ Έλμ μ°κ²°λ νμλ μκ³ , μ 체λ₯Ό κ΄μ₯νλ λ§μ€ν° λ Έλ λν μ‘΄μ¬νμ§ μμ΅λλ€.
λ Έλ κ°μ μ°κ²° κ΄κ³λ₯Ό λ μ¬λ €λ³΄λ©΄, λͺ κ°μ λ Έλμλ§ μ°κ²°λμ΄ μμ΄λ μλ‘μλ‘ ν΅μ μ ν΅ν΄ λΉ λ₯΄κ² μ 체 λ€νΈμν¬μ λ°μ΄ν°λ₯Ό μ λ¬ν μ μμ΅λλ€.- λΈλ‘μ²΄μΈ νλ νΌμ μ§μνλ λ€μν P2P λ€νΈμν¬: λΉνΈμ½μΈ, μ΄λ리μ λ±
νμμ API μλ²μ ν΄λΌμ΄μΈνΈ κ°μ κ΄κ³λ₯Ό μ μ΄ν΄νκ³ μλ€λ©΄, Dapp μ κ²°κ΅ ν΄λΌμ΄μΈνΈκ° API κ° μλλΌ νΉμ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ μλ²μ ν΅μ νλ κ²μ΄κ³ , μλ²λ λ¨μΌ μλ²κ° μλλΌ μ¬λ¬ λ Έλ κ°μ μ°κ²°λ‘ ꡬμ±λμ΄ μλ€κ³ μ΄ν΄νλ©΄ μ¬μΈ κ²μ λλ€.
Dapp μ νλ¦
Dapp μ κ°λ¨ν μλ νλ¦μ μ΄ν΄λ³΄λ©΄ λ€μκ³Ό κ°μ΅λλ€.
1) μ¬μ©μ μ΄λ²€νΈλ μΉ νμ΄μ§μ js μμ μ²λ¦¬ν©λλ€.
2) μ΄λ²€νΈ λ°μ μ web3.js λΌμ΄λΈλ¬λ¦¬ ν¨μλ₯Ό μ¬μ©νμ¬ μ€λ§νΈ 컨νΈλνΈμ μ°κ²°λ μ΄λ리μ λ Έλμ μ°κ²°νκ³ μ΄λ²€νΈμ λ§λ ν¨μ Aλ₯Ό νΈμΆν©λλ€.
3) μ°κ²°λ λ‘컬 μ΄λ리μ λ Έλ (ex. κ°λ°μ μ»΄ν¨ν°) λ λ©μμ§λ₯Ό μ²λ¦¬νκ³ κ²μ¦ν ν νΌμ΄ λ Έλλ‘ μ λ¬ν©λλ€.
4) κ±°λλ΄μμ΄ μ±κ΅΄ λ Έλλ₯Ό λ§λ λκΉμ§ μ νν©λλ€.
5) κ° λ Έλλ μ block μ λ°μΌλ©΄ ν΄λΉ block μ κ°λ³ κ±°λλ΄μμ΄ μ μμ μΈμ§ + μ 체 block μ΄ μ ν¨νμ§ κ²μ¦ν©λλ€. μ΄ν block μ μ‘΄μ¬νλ λͺ¨λ κ±°λλ΄μμ μ²λ¦¬νλ©° μ΄ κ³Όμ μμ κ³μ½ μνμ μ ν¨μ±μ μμμ μΌλ‘ νμΈν©λλ€. (ν©μ)
6) κ²μ¦μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄ Confirmation μ΄λ²€νΈλ₯Ό λ°μμν€κ³ , μΉ UI λ₯Ό ν¬ν¨νμ¬ μ°κ²°λ λͺ¨λ ν΄λΌμ΄μΈνΈμ μ νλ©λλ€. μ΄λ₯Ό UI κ° νλ©΄μ μΆλ ₯ν©λλ€.
μ΄λ, λλΆλΆμ λΈλ‘체μΈμ 'μ 체 λ Έλ' μ 'μ±κ΅΄ λ Έλ' λ‘ κΈ°λ₯μ μΌλ‘ λ Έλλ₯Ό ꡬλΆνλ©° λ€μμ μ°¨μ΄κ° μμ΅λλ€.
μ 체 λ Έλ μ±κ΅΄ λ Έλ μ±κ²© κ±°λλ΄μμ μλμΌλ‘ μ²λ¦¬ κ±°λλ΄μμ μ κ·Ήμ μΌλ‘ μ²λ¦¬ μ λΈλ‘ μμ± λΆκ°λ₯
(λ¨, μμ μ λ‘컬 λΈλ‘체μΈμλ μΆκ° κ°λ₯)κ°λ₯
(κ±°λλ΄μμ λͺ¨μ μ λΈλ‘μ μμ±νκ³ κΈ°μ‘΄ λΈλ‘체μΈμ μΆκ°νλ κ²μ΄ μ£Όμ λͺ©μ )μ νμ± κ²μ¦ μν μν νΉμ§ μ νμ± κ²μ¦μ μν΄μλ§ κ±°λλ₯Ό μ€ν.
λΈλ‘체μΈμ μ½μ μ μμ§λ§ μΈ μλ μλ€.μνΈννλ₯Ό μ§κΈλ°κΈ° μν΄
μλμ§κ° λ§μ΄ μμλλ μμ μ μν.μ€λ§νΈ 컨νΈλνΈ (Samrt Contract)
μ€λ§νΈ 컨νΈλνΈλ λΈλ‘μ²΄μΈ κΈ°λ°μΌλ‘ λ€μν ννμ κ³μ½μ 체결νκ³ μ΄ννλ κ²μ λ§ν©λλ€.
μ΄ κ³μ½μλ κΈμ΅, λΆλμ° κ³μ½, ν¬ν λ±μ λ€μν κ³μ½μ΄ κ°λ₯ν©λλ€.
λΉνλ¦ λΆν λ¦°μ΄ μ΄λ리μμ΄λΌλ κ°μ ννλ₯Ό λ§λ€κ³ ꡬνν κ²μΌλ‘, (κΈ°μ‘΄ λΉνΈμ½μΈμ λ£μΌλ €λ€κ° μκ²¬μ΄ μμ©λμ§ μμ μ§μ λ§λ ..)
Solidity λΌλ νλ‘κ·Έλλ° μΈμ΄λ₯Ό ν΅ν΄ μ§μ μ€λ§νΈ 컨νΈλνΈ μ½λ (κ³μ½ 쑰건, λ΄μ© λ±) λ₯Ό μμ±ν μ μκ³ , λΈλ‘μ²΄μΈ λ€νΈμν¬μ λ°°ν¬ν¨μΌλ‘μ μ¬μ©μ κ°μ κ³μ½μ ν΄λΉ μ½λλ₯Ό ν΅ν΄ μνν μ μμ΅λλ€.
μμλ‘ λ€μκ³Ό κ°μ ννκ° μμ μ μμ΅λλ€.
μ μ½λλ remix λ‘ μμ±ν μ€λ§νΈ 컨νΈλνΈ μ½λμ΄λ©°, λ μ¬μ©μκ° μ½μΈμ μ£Όκ³ λ°λ 'κ³μ½'μ λν μ½λμ λλ€.
μ΄λ κ² μ¬μ©μ κ°μ ν©μκ° μ΄λ£¨μ΄μ ΈμΌ νλ κ³μ½μ ννλ₯Ό κ°μ§λ '무μΈκ°'μ λν΄ κ·Έ λ‘μ§μ μμ±νκ³ μννλλ‘ νλ κ²μ μλ―Ένλ€κ³ μ΄ν΄ν΄λ μ’μ κ² κ°μ΅λλ€.
μ΄μμΌλ‘ Dapp μ λν κ°λ μ μΈ λΆλΆκ³Ό ꡬ쑰μ μΈ λΆλΆμ μ΄ν΄λ³΄μμ΅λλ€.
'SECURITY > Blockchain' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ