Tendermint - kukgini/blockchain GitHub Wiki

Description

ProofOfStake 의 λ³€ν˜•

각 블둝인 Validators 듀에 μ˜ν•΄ μ„œλͺ…λœλ‹€.

Validator λŠ” μžμ‹ μ˜ 코인을 BondingTransaction 으둜 잠금으둜써 μ°Έμ—¬ν•œλ‹€.

각 Validator 의 VotingPower λŠ” 잠근 μ½”μΈμ˜ λŸ‰μ— λΉ„λ‘€ν•œλ‹€.

μž„λ¬΄λ₯Ό λ‹€ν•œ Validator λŠ” UnbindingTransaction 을 κ²Œμ‹œ(posting)ν•˜κ³  μ•½κ°„ μ‹œκ°„μ΄ μ§€λ‚œν›„ (UnbondingPeriod) μžμ‚°μ„ 돌렀 λ°›λŠ”λ‹€ (Unlock).

총 VotingPower 의 2/3 λ₯Ό λ„˜λŠ” μ„œλͺ…을 λ°›μ•˜μœΌλ©΄ κ·Έ 블둝은 Valid ν•œ κ²ƒμœΌλ‘œ νŒμ •ν•œλ‹€.

Fork κ°€ 생길 경우 μ–‘μͺ½ 체인에 λͺ¨λ‘ μ„œλͺ…ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€. 이 경우 λˆ„κ΅°κ°€ 이 증거λ₯Ό ν¬ν•¨ν•œ EvidenceTransaction 을 μ œμΆœν•˜λ©΄ ν•΄λ‹Ή Validator λŠ” μ²˜λ²Œλ°›λŠ”λ‹€(Punished)

이 처벌 방법은 ShortRangeAttack (예λ₯Ό λ“€μ–΄ BribeAttack) 은 ν•΄κ²°ν•  수 μžˆμœΌλ‚˜ LongRangeAttack 은 ν•΄κ²°ν•˜μ§€ λͺ»ν•˜λŠ” 문제점이 μžˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ Nxt 같은 κ³³μ—μ„œλŠ” LongRangeFork κ°€ μƒμ„±λ˜μ§€ λͺ»ν•˜λ„둝 μ œν•œν•œλ‹€.

References