Skip to content

Latest commit

ย 

History

History
444 lines (254 loc) ยท 63.3 KB

TechnicalWhitePaper.md

File metadata and controls

444 lines (254 loc) ยท 63.3 KB

EOS.IO ๊ธฐ์ˆ  ๋ฐฑ์„œ

- ์ดˆ์•ˆ ์ž‘์„ฑ์ผ: 2017๋…„ 6์›” 26์ผ, ๋ฒˆ์—ญ: ์ดํƒœ๋ฏผ (taeminlee), ๊ฐ์ˆ˜: ์กฐ์žฌ์šฐ (@clayop (https://steemit.com/@clayop)),
- 2017๋…„ 9์›” 3์ผ, 2์ฐจ๊ฐœ์ •์•ˆ @loum์™€ @testz๊ฐ€ ๋ฒˆ์—ญ.

์ดˆ๋ก: EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํƒˆ์ค‘์•™ํ™” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ˆ˜์ง ๋ฐ ์ˆ˜ํ‰ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋””์ž์ธ๋œ ์ƒˆ๋กœ์šด ๋ธ”๋ก์ฒด์ธ ๊ตฌ์กฐ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค(applications)์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์šด์˜์ฒด์ œ์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•จ์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ˆ˜๋ฐฑ ๊ฐœ์˜ CPU ์ฝ”์–ด ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ†ตํ•ด ๊ณ„์ •(accounts), ์ธ์ฆ(authentication), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(databases), ๋น„๋™๊ธฐ ํ†ต์‹ (asynchronous communication), ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์Šค์ผ€์ฅด๋ง(application scheduling)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ ๊ฑด์˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๋ฉด์„œ๋„, ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ์—†๊ณ , ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์ฒด์ธ ์•„ํ‚คํ…์ฒ˜ ๊ธฐ์ˆ ์ด ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์˜์‚ฌํ•ญ: ๋ณธ ๋ฐฑ์„œ์—์„œ ์–ธ๊ธ‰๋˜๋Š” ์•”ํ˜ธํ™”ํ ํ† ํฐ์€ EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์ฒด์ธ ์ƒ์— ์กด์žฌํ•˜๋Š” ํ† ํฐ์„ ์ง€์นญํ•ฉ๋‹ˆ๋‹ค. ์ด ํ† ํฐ์€ EOS ๋ถ„๋ฐฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ ์ƒ์— ์กด์žฌํ•˜๋Š” ERC-20 ๊ธฐ๋ฐ˜ ํ† ํฐ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ €์ž‘๊ถŒ ์†Œ์œ  ยฉ 2017 block.one

๋ˆ„๊ตฌ๋“ ์ง€ ํ—ˆ๊ฐ€ ์—†์ด ์›๋ž˜์˜ ์ถœ์ฒ˜์™€ ํ•ด๋‹น ์ €์ž‘๊ถŒ ๊ณ ์ง€๊ฐ€ ์–ธ๊ธ‰๋œ ๊ฒฝ์šฐ ๋น„์˜๋ฆฌ์ ์ด๊ณ  ๊ต์œก์ ์ธ ์šฉ๋„ (์ฆ‰, ์œ ๋ฃŒ ๋˜๋Š” ์ƒ์—…์  ๋ชฉ์  ์ด์™ธ์˜ ๋ชฉ์ )๋กœ ๋ณธ ๋ฐฑ์„œ์˜ ์ž๋ฃŒ๋ฅผ ์‚ฌ์šฉ, ๋ณต์ œ ๋˜๋Š” ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉด์ฑ… ์กฐํ•ญ: EOS.IO ๊ธฐ์ˆ  ๋ฐฑ์„œ๋Š” ์˜ค์ง ์ •๋ณด ์ œ๊ณต์˜ ๋ชฉ์ ์œผ๋กœ์จ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. block.one์˜ ์ •ํ™•์„ฑ์„ ๋ณด์ฆ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๋˜๋Š”์ด ๋ฐฑ์„œ์˜ ๊ฒฐ๋ก  ๋„๋‹ฌํ•˜๊ณ  ์ด ๋ฐฑ์„œ๋Š” "์žˆ๋Š” ๊ทธ๋Œ€๋กœ" ์ œ๊ณต ๋ฉ๋‹ˆ๋‹ค. block.one์€ ์ด ๋ฐฑ์„œ์—์„œ ๋„๋‹ฌํ•œ ๊ฒฐ๋ก ์˜ ์ •ํ™•์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฐฑ์„œ๋Š” "์žˆ๋Š” ๊ทธ๋Œ€๋กœ" ์ œ๊ณต๋˜๋ฉฐ ์ด๋Š” (๋‹จ, ์ด์— ํ•œ์ •๋˜์ง€๋Š” ์•Š์Œ) ๋ช…์‹œ์ ์ด๊ฑฐ๋‚˜ ๋ฌต์‹œ์ ์ธ ๊ฒƒ์œผ๋กœ์„œ ์–ด๋– ํ•œ ๋ณด์ฆ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (i) ์ƒํ’ˆ์„ฑ์— ๋Œ€ํ•œ ๋ณด์ฆ, ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•œ ์ ํ•ฉ์„ฑ, ํƒ€์ดํ‹€ ๋˜๋Š” ๋ฒ•๊ทœ์˜ ์œ„๋ฐ˜์ด ์—†์Œ; (ii) ๋ณธ ๋ฐฑ์„œ์˜ ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์—†๊ฑฐ๋‚˜ ์–ด๋–ค ๋ชฉ์ ์— ์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ; (iii) ๊ทธ๋Ÿฌํ•œ ๋‚ด์šฉ์ด ์ œ3์ž์˜ ๊ถŒ๋ฆฌ๋ฅผ ์นจํ•ดํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. block.one๊ณผ ๊ทธ ๊ณ„์—ด์‚ฌ๋Š” ์ด ๋ฐฑ์„œ์— ํฌํ•จ๋œ ์ •๋ณด์˜ ์‚ฌ์šฉ, ์ฐธ์กฐ ๋˜๋Š” ์‹ ๋ขฐ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์†ํ•ด์— ๋Œ€ํ•ด ๋ช…์‹œ์ ์œผ๋กœ ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋– ํ•œ ๊ฒฝ์šฐ์—๋„ block.one ๋˜๋Š” ๊ทธ ๊ณ„์—ด์‚ฌ ์ฑ…์ž„์„ ์ง€์ง€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ ๋˜๋Š” ๋‹จ์ฒด(entity)์˜ ๋ชจ๋“  ์†ํ•ด, ์†์‹ค, ์ฑ…์ž„, ๋น„์šฉ ๋˜๋Š” ์–ด๋– ํ•œ ์ข…๋ฅ˜์˜ ๋น„์šฉ์— ๋Œ€ ํ•œ ์ง์ ‘ ๋˜๋Š” ๊ฐ„์ ‘, ๊ฒฐ๊ณผ์ , ๋ณด์ƒ, ๋ถ€์ˆ˜์ , ์‹ค์ œ, ๋ชจ๋ฒ”, ์ง•๋ฒŒ์  ๋˜๋Š” ์˜ ์‚ฌ์šฉ, ์ฐธ์กฐ, ๋˜๋Š” ์ด ๋ฐฑ์„œ ๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค์˜ ์†์‹ค์„ ํฌํ•จํ•˜๋˜ ์ด ์ œํ•œ ์—†์ด, ์—ฌ๊ธฐ์— ํฌํ•จ ๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์˜์กด๋„ ๋Œ€ํ•œ ํŠน๋ณ„ ํ•œ ์ˆ˜์ต, ์ด์ต, ๋ฐ์ดํ„ฐ, ์‚ฌ์šฉ, ์˜์—…๊ถŒ ๋˜๋Š” ๊ธฐํƒ€ ๋ฌดํ˜• ์†์‹ค.

ํƒ„์ƒ ๋ฐฐ๊ฒฝ (Background)

๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ์€ 2008๋…„ ๋น„ํŠธ์ฝ”์ธ ํ™”ํ์˜ ์ถœํ˜„๊ณผ ํ•จ๊ป˜ ์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ, ์ดํ›„ ๊ธฐ์—…๊ฐ€์™€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•˜๋‚˜์˜ ๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ์—์„œ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋Ÿญ์ฒด์ธ ๊ธฐ์ˆ ์˜ ์ผ๋ฐ˜ํ™”๋ฅผ ์‹œ๋„ํ•ด ์™”์Šต๋‹ˆ๋‹ค.

๋‹ค์ˆ˜์˜ ๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋ถ„์‚ฐํ™” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜์˜€์ง€๋งŒ, BitShares์˜ ๋ถ„์‚ฐํ™” ๊ฑฐ๋ž˜์†Œ(2014) ๋ฐ Steem์˜ ์†Œ์…œ ๋ฏธ๋””์–ด ํ”Œ๋žซํผ(2016)๊ณผ ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ๋ธ”๋ก์ฒด์ธ์€ ์ด๋ฏธ ์ˆ˜๋งŒ ๋ช…์˜ ์ผ์ผ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์ง„ ๋ธ”๋ก์ฒด์ธ์œผ๋กœ ์„ฑ์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ดˆ๋‹น ์ˆ˜์ฒœ ๊ฑด์˜ ํŠธ๋žœ์žญ์…˜ ์ง€์›, 1.5์ดˆ์˜ ์ง€์—ฐ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ์‚ฌ์šฉ ์ˆ˜์ˆ˜๋ฃŒ์˜ ์ œ๊ฑฐ, ํ˜„์žฌ ์„œ๋น„์Šค๋˜๋Š” ์ค‘์•™ ์ง‘์ค‘ํ˜• ์„œ๋น„์Šค์™€ ์œ ์‚ฌํ•œ ์ˆ˜์ค€์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ œ๊ณต์„ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์กดํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ๋“ค์€ ๋น„์‹ผ ์ˆ˜์ˆ˜๋ฃŒ์™€ ์—ฐ์‚ฐ๋Šฅ๋ ฅ์˜ ํ•œ๊ณ„ ๋•Œ๋ฌธ์— ๋ธ”๋ก์ฒด์ธ์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ์— ์žˆ์–ด์„œ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์š”๊ตฌ์‚ฌํ•ญ (Requirements for Blockchain Application)

๋Œ€์ค‘์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ์œ„ํ•ด์„œ, ๋ธ”๋ก์ฒด์ธ ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹ค์Œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๋Š” ์œ ์—ฐํ•œ ํ”Œ๋žซํผ์„ ๊ฐ–์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋ฐฑ๋งŒ์˜ ์‚ฌ์šฉ์ž ํ—ˆ์šฉ (Support Millions of Users)

Ebay, Uber, AirBnB, Facebook ๊ณผ ๊ฐ™์€ ๊ธฐ์กด ์„œ๋น„์Šค์™€ ๊ฒฝ์Ÿํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์ˆ˜์ฒœ๋งŒ์˜ ์ผ์ผ ์‚ฌ์šฉ์ž๋ฅผ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ, ๋งŽ์€ ์‚ฌ์šฉ์ž๋“ค์ด ์žˆ์–ด์•ผ ์ด์šฉํ•  ์ˆ˜ ์—†๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค๋„ ์žˆ์œผ๋ฏ€๋กœ ๋งŽ์€ ์‚ฌ์šฉ์ž๋ฅผ ์ˆ˜์šฉํ•˜๋Š” ํ”Œ๋žซํผ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฌด๋ฃŒ ์‚ฌ์šฉ (Free Usage)

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋ฌด๋ฃŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์ด ํ•„์š”ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๋“ค์€ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ”Œ๋žซํผ์˜ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด๋ฃŒ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ์ด ๋” ๋„๋ฆฌ ์‚ฌ์šฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๊ฐœ๋ฐœ์ž์™€ ๊ธฐ์—…์€ ํšจ๊ณผ์ ์ธ ์ˆ˜์ต ์ฐฝ์ถœ ์ „๋žต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„ํŽธํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ๋ฒ„๊ทธ ํ•ด์†Œ (Easy upgrades and Bug Recovery)

๋ธ”๋ก์ฒด์ธ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ธฐ์—…์€ ๊ทธ๋“ค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ์†Œํ”„ํŠธ์›จ์–ด๋“ค์€ ์—„๊ฒฉํ•œ ๊ณต์‹์ ์ธ ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•˜๋”๋ผ๋„ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์•ˆ์ •์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„ (Low Latency)

์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์€ ์ˆ˜ ์ดˆ ์ดํ•˜์˜ ์ง€์—ฐ์‹œ๊ฐ„์˜ ์•ˆ์ •์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ธด ์ง€์—ฐ ์‹œ๊ฐ„์€ ์‚ฌ์šฉ์ž์˜ ๋ถˆ๋งŒ์„ ์ผ์œผํ‚ค๋ฉฐ, ์ด๋Ÿฌํ•œ ๋ธ”๋ก์ฒด์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ธ”๋ก์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ์กด์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ๊ฒฝ์Ÿ๋ ฅ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

์ˆœ์ฐจ(sequential) ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ (Sequential Performance)

๋ช‡๋ช‡ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ‘๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ž˜์†Œ(exchange)์™€ ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์€ ๋งŽ์€ ์–‘์˜ ๊ฑฐ๋ž˜๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ถฉ๋ถ„ํ•œ ์ˆœ์ฐจ์  ์„ฑ๋Šฅ์„ ์š”๊ตฌํ•˜๋ฏ€๋กœ, ํ”Œ๋žซํผ์€ ๋น ๋ฅธ ์ˆœ์ฐจ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ (Parallel Performance)

๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•˜๋‚˜์˜ ์ž‘์—…์„ ๋‹ค์ˆ˜์˜ CPU์™€ ์ปดํ“จํ„ฐ์— ์ž‘์—…๋ถ€ํ•˜๋ฅผ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (DPOS) (Consensus Algorithm)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก์ฒด์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ถ„์‚ฐ ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ์ง€๋ถ„ ์œ„์ž„ ์ฆ๋ช…(DPOS; Deleteged Proof-Of-Stake)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ ๋ณด์œ ์ž๋Š” ์ƒ์‹œ ์šด์˜๋˜๋Š” ํˆฌํ‘œ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋ธ”๋ก ์ƒ์‚ฐ์ž(block producer)๋ฅผ ์„ ์ถœํ•˜๊ณ , ๋ˆ„๊ตฌ๋‚˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋กœ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ธ”๋ก์„ ์ƒ์‚ฐํ•  ๊ธฐํšŒ๋Š” ๋ชจ๋“  ๋‹ค๋ฅธ ์ƒ์‚ฐ์ž๋“ค์ด ๋ฐ›์€ ์ „์ฒด ํˆฌํ‘œ ์ค‘ ๋ณธ์ธ์ด ๋ฐ›์€ ํˆฌํ‘œ ๋น„์œจ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ํ”„๋ผ์ด๋น— ๋ธ”๋ก์ฒด์ธ์—์„œ ๊ด€๋ฆฌ์ž๋Š” ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ IT ์ง์›์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ •ํ™•ํžˆ 3์ดˆ๋งˆ๋‹ค ๋ธ”๋ก์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์˜ค์ง ํ•œ ๋ช…์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋งŒ์ด ๋ธ”๋ก์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ๋ธ”๋ก์ด ์ƒ์‚ฐ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ํ•ด๋‹น ์‹œ์ ์˜ ๋ธ”๋ก ์ƒ์„ฑ์€ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 1๊ฐœ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ๋ธ”๋ก์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์„(skipped) ๊ฒฝ์šฐ, ๋ธ”๋ก์ฒด์ธ์˜ ์ƒ์„ฑ์€ 6์ดˆ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋ธ”๋ก๋“ค์€ 21๋ฒˆ์˜ ๋‹จ๊ณ„์˜ ๋ผ์šด๋“œ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ผ์šด๋“œ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค, 21๋ช…์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ์ƒˆ๋กœ ์„ ์ถœ๋ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ๋“ํ‘œ๋ฅผ ๋ฐ›์€ ์ƒ์œ„ 20๋ช…์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ๊ฐ ๋ผ์šด๋“œ ๋งˆ๋‹ค ์ž๋™์ ์œผ๋กœ ์„ ์ถœ์ด ๋˜๊ณ , ๋งˆ์ง€๋ง‰(21๋ฒˆ์งธ) ์ƒ์‚ฐ์ž๋Š” ๋‹ค๋ฅธ ์ƒ์‚ฐ์ž์™€์˜ ์ƒ๋Œ€์ ์ธ ํˆฌํ‘œ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ์„ ์ถœ๋ฉ๋‹ˆ๋‹ค. ์„ ํƒ๋œ ๋ธ”๋Ÿญ ์ƒ์„ฑ์ž๋Š” ๋ธ”๋Ÿญ ์ƒ์„ฑ ์‹œ๊ฐ„์— ์˜ํ•ด ์–ป์–ด์ง€๋Š” ์˜์‚ฌ ๋‚œ์ˆ˜(pseudorandom number)์— ๋”ฐ๋ผ ๋žœ๋คํ•˜๊ฒŒ ์„ž์—ฌ์ง‘๋‹ˆ๋‹ค. ๋ธ”๋ก ์ƒ์„ฑ ์ˆœ์„œ๋ฅผ ์„ž๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์ƒ์‚ฐ์ž์—๊ฒŒ ๊ท ํ˜•์ ์ธ ์—ฐ๊ฒฐ(balanced connectivity)์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒ์‚ฐ์ž๊ฐ€ ๋ธ”๋ก ์ƒ์„ฑ์— ์‹คํŒจ(misses a block)ํ•˜๊ณ  ์ง€๋‚œ 24์‹œ๊ฐ„ ๋™์•ˆ ์–ด๋– ํ•œ ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ๊ทธ๋Š” ๋ธ”๋ก์ฒด์ธ์— ๋ธ”๋ก ์ƒ์„ฑ ์ฐธ์—ฌ ์˜์‚ฌ๋ฅผ ์•Œ๋ ค์ฃผ๊ธฐ ์ „๊นŒ์ง€ ๋ธ”๋Ÿญ ์ƒ์„ฑ์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฏฟ์„ ์ˆ˜ ์—†๋Š”(unreliable) ์‚ฌ๋žŒ์„ ๋ธ”๋Ÿญ ์ƒ์„ฑ์—์„œ ๋ฐฐ์ œํ•˜๋ฏ€๋กœ, ๋†“์น˜๋Š” ๋ธ”๋ก์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ, ์ง€๋ถ„ ์œ„์ž„ ์ฆ๋ช…(DPOS) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ์€ ์–ด๋– ํ•œ ํฌํฌ(fork)๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํฌํฌ๊ฐ€ ๋ฐœ์ƒ๋˜๋ฉด, ํ•ฉ์˜๋Š” ๊ฐ€์žฅ ๊ธด ์ฒด์ธ์— ์ž๋™์œผ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์ด ๋™์ž‘ํ•˜๋Š” ์ด์œ ๋Š” ํŠน์ • ๋ธ”๋ก์ฒด์ธ ํฌํฌ์— ๋ธ”๋ก๋“ค์ด ์ถ”๊ฐ€๋˜๋Š” ์†๋„๊ฐ€ ๊ฐ™์€ ํ•ฉ์˜๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ธ”๋ก ์ƒ์„ฑ์ž์˜ ๋น„์œจ๊ณผ ์ง์ ‘ ์—ฐ๊ด€๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋” ๋งŽ์€ ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ์ฐธ์—ฌํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ์ด ์ ์€ ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ์ฐธ์—ฌํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ์— ๋น„ํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ, ์–ด๋– ํ•œ ๋ธ”๋ก ์ƒ์„ฑ์ž๋„ ๋™์‹œ์— ๋‘ ๊ฐœ์˜ ํฌํฌ์— ๋ธ”๋ก์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ์ด๋Ÿฌํ•œ ๊ฒƒ์ด ์ ๋ฐœ๋˜๋ฉด, ํ•ด๋‹น ๋ธ”๋ก ์ƒ์„ฑ์ž๋Š” ํˆฌํ‘œ์—์„œ ์ œ์™ธ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋‘๊ฐœ ์ด์ƒ์˜ ๋ธ”๋Ÿญ์ฒด์ธ์„ ์ƒ์„ฑํ•˜๋Š” ์•…์šฉ์ž๋Š” ์•”ํ˜ธํ•™์  ์ฆ๊ฑฐ(cryptographic evidence)์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ํ™•์ธ (Transaction Confirmation)

์ผ๋ฐ˜์ ์ธ DPOS ๋ธ”๋ก์ฒด์ธ์€ 100%์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž ์ฐธ์—ฌ์œจ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ธ”๋ก์˜ ์ „ํŒŒ(braodcasting) ์‹œ๊ฐ„๋ถ€ํ„ฐ ํ‰๊ท  1.5์ดˆ์˜ ์‹œ๊ฐ„์ด ํ๋ฅด๋ฉด ํŠธ๋žœ์žญ์…˜์€ 99.9%์˜ ์‹ ๋ขฐ๋„๋กœ ํ™•์ธ(confirm)๋ฉ๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„๊ทธ, ์ธํ„ฐ๋„ท ์†๋„ ์ €ํ•˜ ๋ฐ ๋น„์ •์ƒ์  ๋ธ”๋ก ์ƒ์‚ฐ์ž์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ์ƒํ™ฉ์—์„œ ๋‘ ๊ฐœ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ํฌํฌ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜๋ฅผ ๋ชป ๋ฐ”๊พธ๋„๋ก(irreversible) ํ™•์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ๋…ธ๋“œ๋Š” 21๋ช…์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž ์ค‘ 15๋ช…์˜ ํ™•์ธ(confirmation)์„ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋ณธ ์„ค์ •์— ๋”ฐ๋ฅด๋ฉด, ์ด๊ฒƒ(ํŠธ๋žœ์žญ์…˜ ํ™•์ธ)์€ ๋ณดํ†ต ์ƒํ™ฉ์—์„œ 45์ดˆ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋…ธ๋“œ๋Š” 21๋ช… ์ค‘ 15๋ช…์ด ํ™•์ธ(confirmed)๋˜๋ฉด ์ด ๋ธ”๋ก์€ ๋ฐ”๋€” ์ˆ˜ ์—†๊ณ , ๋ธ”๋ก์˜ ๊ธธ์ด์™€ ์ƒ๊ด€์—†์ด ๋‹ค๋ฅธ ๋ธ”๋Ÿญ์ฒด์ธ(ํฌํฌ)๋กœ ์ „ํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ๋Š” ํฌํฌ๊ฐ€ ๋ถ„๊ธฐ๋œ ํ›„ 9์ดˆ ์ด๋‚ด์— ์†Œ์ˆ˜ ํฌํฌ(minority fork)์— ์†ํ•ด์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฝ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ก์ฒด์ธ์— 2๊ฐœ์˜ ๋ธ”๋ก์ด ์—ฐ์†์ ์œผ๋กœ ์ถ”๊ฐ€๋˜์ง€ ์•Š์„(missed) ๊ฒฝ์šฐ, ์ด ๋…ธ๋“œ๋Š” 95% ํ™•๋ฅ ๋กœ ์†Œ์ˆ˜ ํฌํฌ์— ์†ํ•ฉ๋‹ˆ๋‹ค. 3๋ฒˆ ์—ฐ์†์œผ๋กœ ๋ธ”๋Ÿญ์ด ์ถ”๊ฐ€๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์†Œ์ˆ˜ ํฌํฌ์— ์žˆ์„ ํ™•๋ฅ ์ด 99%๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์šด์˜์ž์—๊ฒŒ ๋ฌด์–ธ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์‹ ์†ํ•˜๊ฒŒ ๊ฒฝ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ๋ˆ„๋ฝ๋œ(missed) ๋…ธ๋“œ, ์ตœ๊ทผ ์ฐธ์—ฌ์œจ ๋ฐ ๊ธฐํƒ€ ์š”์ธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•  ์•ˆ์ •์ ์ธ ์˜ˆ์ธก ๋ชจ๋ธ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ (warning)์— ๋Œ€ํ•œ ๋Œ€์‘์€ ๋น„์ฆˆ๋‹ˆ์Šค ํŠธ๋žœ์žญ์…˜์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ, ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋Œ€์‘์€ ๊ฒฝ๊ณ ๊ฐ€ ๋๋‚˜๋Š” 15/21์˜ ํ™•์ธ(confirmations)์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋ฐ˜ ์ง€๋ถ„ ์ฆ๋ช… (Transaction as Proof of Stake, TaPoS)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์ด ์ตœ๊ทผ ๋ธ”๋ก ํ—ค๋”์˜ ํ•ด์‰ฌ๊ฐ’์„ ํฌํ•จํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‰ฌ๊ฐ’์€ ๋‘ ๊ฐ€์ง€ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  1. ์ฐธ์กฐ ๋ธ”๋ก(referenced block)์ด ํฌํ•จ๋˜์ง€ ์•Š์€ ํฌํฌ์—์„œ ํŠธ๋žœ์žญ์…˜์ด ์žฌ์‹คํ–‰(replay)๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. ํŠน์ • ์‚ฌ์šฉ์ž์™€ ๊ทธ์˜ ์ง€๋ถ„(stake)์ด ํŠน์ • (๋ธ”๋Ÿญ์ฒด์ธ) ํฌํฌ์—์„œ ์กด์žฌํ•˜๋Š”์ง€ ๋„คํŠธ์›Œํฌ์— ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก, ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ๋ธ”๋ก์ฒด์ธ์„ ์ง์ ‘ ํ™•์ธ(confirm)ํ•˜๊ฒŒ ๋˜๊ณ , ์ด๊ฒƒ์€ ์œ„์กฐํ•˜์—ฌ ํ•ฉ๋ฒ•์  ์ฒด์ธ์˜ ๊ฑฐ๋ž˜๋ฅผ ์˜ฎ๊ธธ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์œ„์กฐ ์ฒด์ธ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์–ด๋ ต๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์ • (Accounts)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ชจ๋“  ๊ณ„์ •์ด 2~32 ๊ธ€์ž์˜ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ  ์ด๋ฆ„์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ณ„์ • ์ด๋ฆ„์€ ์ƒ์„ฑ์ž๊ฐ€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณ„์ •์€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ์— ๊ณ„์ • ์ •๋ณด์˜ ์ €์žฅ ๋น„์šฉ ์ด์ƒ์˜ ์ตœ์†Œ ๊ณ„์ • ์ž”์•ก(minimal account balance )์„ ๋ณด์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ • ์ด๋ฆ„์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค(namespaces)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, @domain ๊ณ„์ •์˜ ์†Œ์œ ์ž๋งŒ์ด @user.domain์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ž…ํ•˜์—ฌ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ๋น„์šฉ์„ ๋ถ€๋‹ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๊ธฐ์—…๋“ค์€ ์ด๋ฏธ ๊ด‘๊ณ ๋‚˜ ๋ฌด๋ฃŒ ์„œ๋น„์Šค ์ œ๊ณต์œผ๋กœ ๋‹จ์œ„ ์‚ฌ์šฉ์ž๋‹น ์ƒ๋‹นํ•œ ๋ˆ์„ ์ง€์ถœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๋น„๊ตํ•  ๋•Œ ์ƒˆ๋กœ์šด ๋ธ”๋ก์ฒด์ธ ๊ณ„์ •์— ๋ถ€๋‹ดํ•˜๋Š” ๋น„์šฉ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋ฏธ๋ฏธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ฐ€์ž…ํ•œ ์‚ฌ์šฉ์ž๋Š” ๊ณ„์ •์„ ์ค‘๋ณตํ•˜์—ฌ ๊ฐ€์ž…ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋ฉ”์‹œ์ง€์™€ ์ฒ˜๋ฆฌ๊ธฐ (Messages & Handlers)

ํ•œ ๊ณ„์ •์—์„œ ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ๊ตฌ์กฐํ™”๋œ ๋ฉ”์‹œ์ง€(structured message)๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์†ก์‹ ํ•˜์˜€์„ ๋•Œ ์ฒ˜๋ฆฌํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ(script)๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐ๊ฐ์˜ ๊ณ„์ •์ด ๋…๋ฆฝ๋œ ํ”„๋ผ์ด๋น— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(own private database)๋ฅผ ์ฃผ๊ณ , ์ž์‹ ์˜ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ๋งŒ์ด ์ด๊ฒƒ์— ์ ‘๊ทผํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ์Šคํฌ๋ฆฝํŠธ(Message handling scripts)์—์„œ ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. EOS.IO๋Š” ์Šค๋งˆํŠธ ์ปจํŠธ๋ ‰ํŠธ(smart contracts)๋ฅผ ๋ฉ”์‹œ์ง€(messages)์™€ ์ž๋™ํ™”๋œ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ(automated message handlers)์˜ ๊ฒฐํ•ฉ์œผ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์—ญํ•  ๊ธฐ๋ฐ˜ ๊ถŒํ•œ ๊ด€๋ฆฌ (Role Based Permission Management)

๊ถŒํ•œ ๊ด€๋ฆฌ(Permission management)๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ธ์ฆ(authorized)๋˜์—ˆ๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ํ˜•ํƒœ์˜ ๊ถŒํ•œ ๊ด€๋ฆฌ๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์„œ๋ช… ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ๊ณ , ์ด๋Š” ์ด๋ฏธ ํ•„์š”ํ•œ ์„œ๋ช…์„ ์•Œ๊ณ  ์žˆ์„ ๋•Œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ถŒํ•œ์€ ์‚ฌ์šฉ์ž์™€ ๊ทธ๋ฃน์— ๋ถ€์—ฌ๋˜๋ฉฐ ์ด๋“ค์€ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ณ„์ •๋ณ„๋กœ ๋ˆ„๊ฐ€, ์–ธ์ œ, ์–ด๋–ค ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•˜์—ฌ ์„ธ๋ฐ€ํ•˜๊ณ  ๋†’์€ ์ˆ˜์ค€์˜ ํ†ต์ œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„ ์–ธ์  ๊ถŒํ•œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(declarative permission management system)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ๊ณผ ๊ถŒํ•œ ๊ด€๋ฆฌ(authentication and permission management)๋ฅผ ํ‘œ์ค€ํ™”ํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ถŒํ•œ ๊ด€๋ฆฌ๊ฐ€ ๋ฒ”์šฉ์ ์ธ ๊ด€์ ์—์„œ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉฐ, ๋˜ํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ํฐ ๊ฐ€๋Šฅ์„ฑ์ด ์—ด๋ฆฌ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ณ„์ •์€ ๋‹ค๋ฅธ ๊ณ„์ •๋“ค(other accounts)๊ณผ ๊ฐœ์ธํ‚ค๋“ค(private keys)์˜ ๊ฐ€์ค‘์น˜ ์กฐํ•ฉ(weighted combination)์œผ๋กœ ์ œ์–ด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ˜„์‹ค์˜ ๊ถŒํ•œ ๊ตฌ์„ฑ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•œ ๊ณ„์ธต์  ์ธ์ฆ ๊ตฌ์กฐ(hierarchical authority structure)๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋˜ํ•œ ์ž๊ธˆ(funds)์— ๋Œ€ํ•œ ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ์ œ์–ด(multi-user control)๋ฅผ ์‰ฝ๊ฒŒ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ์ œ์–ด(Multi-user control)๋Š” ๋ณด์•ˆ ๊ด€์ ์—์„œ ๊ฐ€์žฅ ํฐ ๊ธฐ์—ฌ์ž(single biggest contributor)์ด๋ฉฐ, ์ด๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ•ดํ‚น์œผ๋กœ ์ธํ•œ ๋„๋‚œ์˜ ์œ„ํ—˜์„ ํฌ๊ฒŒ์œผ๋กœ ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ณ„์ •์—์„œ ํ‚ค ๋ฐ/๋˜๋Š” ๊ณ„์ •์˜ ์กฐํ•ฉ(combination of keys and/or accounts)์ด ํŠน์ • ๋ฉ”์‹œ์ง€ ์œ ํ˜•์„ ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž์˜ ์†Œ์…œ ๋ฏธ๋””์–ด ๊ณ„์ •์˜ ํ‚ค์™€ ๋ณ„๋„๋กœ ๊ฑฐ๋ž˜์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด, ๋‹ค๋ฅธ ๊ณ„์ •(other accounts)์— ํ‚ค๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ ๋„ ๋‹ค๋ฅธ ๊ณ„์ •์ด ์‚ฌ์šฉ์ž ๊ณ„์ •(user's account)์„ ๋Œ€์‹ ํ•˜์—ฌ ํ™œ๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ช…๋œ ๊ถŒํ•œ ์ˆ˜์ค€ (Named Permission Levels)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๊ณ„์ •์€ ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ๋ช…๋ช…๋œ ๊ถŒํ•œ(higher level named permissions)์œผ๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋˜๋Š” ๋ช…๋ช…๋œ ๊ถŒํ•œ ์ˆ˜์ค€(named permission levels)์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ ๋ช…๋ช…๋œ ๊ถŒํ•œ ์ˆ˜์ค€์€ ์ธ์ฆ ๋ฐฉ์‹(authority)์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์€ ๋‹ค๋ฅธ ๊ณ„์ •์˜ ํ‚ค์™€ ๋ช…๋ช…๋œ ๊ถŒํ•œ ๋ ˆ๋ฒจ์˜ ์ž์œ ๋กœ์šด ์กฐํ•ฉ์— ๋Œ€ํ•œ ์ž„๊ณ„ ๋‹ค์ค‘์„œ๋ช… ํ™•์ธ(threshold multi-signature check)์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๊ณ„์ •์˜ "์นœ๊ตฌ"๊ถŒํ•œ ์ˆ˜์ค€์„ ์„ค์ •ํ•˜๋ฉด ๊ทธ ๊ณ„์ •์˜ ์นœ๊ตฌ ์ค‘ ์•„๋ฌด๋‚˜ ๊ทธ ๊ณ„์ •์„ ๋™๋“ฑํ•˜๊ฒŒ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์˜ˆ์ œ๋กœ์„œ Steem ๋ธ”๋ก์ฒด์ธ์ด ์žˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” 3๊ฐ€์ง€ ํ•˜๋“œ ์ฝ”๋”ฉ๋œ ๋ช…๋ช…๋œ ๊ถŒํ•œ ์ˆ˜์ค€์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์†Œ์œ ์ž(owner), ํ™œ๋™(active), ํฌ์ŠคํŒ…(posting) ์ž…๋‹ˆ๋‹ค. ํฌ์ŠคํŒ… ๊ถŒํ•œ์€ ํˆฌํ‘œ๋‚˜ ๊ธ€์“ฐ๊ธฐ์™€ ๊ฐ™์€ ์†Œ์…œ ํ™œ๋™์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ™œ๋™ ๊ถŒํ•œ์€ ์†Œ์œ ์ž ๋ณ€๊ฒฝ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํ™œ๋™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์†Œ์œ ์ž(owner) ๊ถŒํ•œ์€ ์ฝœ๋“œ ์Šคํ† ๋ฆฌ์ง€(cold storage)๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๋ชจ๋“  ํ™œ๋™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. EOS.IO๋Š” steem์˜ ๊ฐœ๋…์„ ์ผ๋ฐ˜ํ™”ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๊ณ„์ • ์†Œ์œ ์ฃผ๊ฐ€ ํ™œ๋™ ๊ทธ๋ฃน์„ ํฌํ•จํ•˜๋Š” ๋…์ž์ ์ธ ๊ณ„์ธต(hierarchy)์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ช…๋œ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ ๊ทธ๋ฃน (Named Message Handler Groups)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐ๊ฐ์˜ ๊ณ„์ •์ด ๋…์ž์ ์ธ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ๋ช…๋ช…(named)ํ•˜๊ณ  ์ค‘์ฒฉ ๊ทธ๋ฃนํ™”(nested groups)ํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ช…๋œ ๋ฉ”์‹œ์ง€ ํ•ธ๋“ค๋Ÿฌ ๊ทธ๋ฃน(named message handler groups)๋“ค์€ ์ž์‹ ์˜ ๊ถŒํ•œ ์ˆ˜์ค€์„ ์„ค์ •ํ•  ๋•Œ ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ๋ถ€ํ„ฐ ์ฐธ์กฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ ๊ทธ๋ฃน์€ ๊ณ„์ • ์ด๋ฆ„์ด๋ฉฐ, ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ์€ ํŠน์ • ๊ณ„์ •์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๊ฐœ๋ณ„์ ์ธ ๋ฉ”์‹œ์ง€ ํƒ€์ž…(individual message type)์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทธ๋ฃน๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐธ์กฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @๊ณ„์ •๋ช….๊ทธ๋ฃนA.ํ•˜์œ„๊ทธ๋ฃนB.๋ฉ”์‹œ์ง€ํƒ€์ž… (@accountname.groupa.subgroupb.MessageType)

์ด๋Ÿฌํ•œ ๋ชจํ˜•์„ ์ด์šฉํ•˜์—ฌ ๊ฑฐ๋ž˜์†Œ์˜ ๊ณ„์•ฝ์„ ๊ฑฐ๋ž˜ ๋‹จ์œ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ž…๊ธˆ๊ณผ ์ถœ๊ธˆ์„ ๋ณ„๊ฐœ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฑฐ๋ž˜ ๊ณ„์•ฝ์˜ ๊ทธ๋ฃนํ™”๋Š” ๊ฑฐ๋ž˜์†Œ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ถŒํ•œ ๋งคํ•‘ (Permission Mapping)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ณ„์ •๋ณ„๋กœ ์–ด๋– ํ•œ ๊ณ„์ •์˜ ๋ช…๋ช…๋œ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ ๊ทธ๋ฃน๊ณผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๋ช…๋ช…๋œ ๊ด€๋ฆฌ ์ˆ˜์ค€ ๊ฐ„์˜ ๋งคํ•‘์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐ ๊ณ„์ •์ด ์–ด๋–ค ๊ณ„์ •์˜ ๋ช…๋ช… ๋œ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ ๊ทธ๋ฃน(Named Message Handler Group of any account)๊ณผ ๊ทธ๋“ค ์ž์‹ ์˜ ๋ช…๋ช…๋œ ๊ถŒํ•œ ๋ ˆ๋ฒจ(their own Named Permission Level) ๊ฐ„์˜ ๋งคํ•‘์„ ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณ„์ • ์†Œ์œ ์ž๋Š” ํ•ด๋‹น ๊ณ„์ • ์†Œ์œ ์ž์˜ ์†Œ์…œ ๋ฏธ๋””์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ "์นœ๊ตฌ" ๊ด€๋ฆฌ ๊ทธ๋ฃน๊ณผ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งคํ•‘์„ ํ†ตํ•ด, ์–ด๋–ค ์นœ๊ตฌ๋“ค์ด๋ผ๋„ ๊ณ„์ • ์†Œ์œ ์ž์ฒ˜๋Ÿผ ๊ณ„์ • ์†Œ์œ ์ž์˜ ์†Œ์…œ ๋ฏธ๋””์–ด์— ๊ธ€์„ ํฌ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นœ๊ตฌ๋“ค์ด ๊ณ„์ • ์†Œ์œ ์ž์ฒ˜๋Ÿผ ๊ธ€์„ ํฌ์ŠคํŒ…ํ• ์ง€๋ผ๋„, ์นœ๊ตฌ๋“ค ์ž์‹ ์˜ ํ‚ค๋กœ ๋ฉ”์‹œ์ง€์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ์„œ, ์–ด๋–ค ์นœ๊ตฌ๊ฐ€ ๊ณ„์ •์„ ์‚ฌ์šฉํ–ˆ๊ณ  ๊ทธ๊ฐ€ ๋ฌด์—‡์„ ํ•˜์˜€๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ถŒํ•œ ๊ฒ€์‚ฌ (Evaluating Permissions)

@์•จ๋ฆฌ์Šค๊ฐ€ @๋ฐฅ์—๊ฒŒ "์•ก์…˜" ํƒ€์ž…์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋จผ์ € @์•จ๋ฆฌ์Šค๊ฐ€ @๋ฐฅ.๊ทธ๋ฃนA.ํ•˜์œ„๊ทธ๋ฃน.์•ก์…˜ ์ฒ˜๋ฆฌ๊ธฐ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๋งคํ•‘ํ•˜์˜€๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋งคํ•‘๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด, ๋งคํ•‘์ด ๋ฐœ๊ฒฌ๋  ๋•Œ ๊นŒ์ง€ @bob.groupa.subgroup, @bob.groupa, ๊ทธ๋ฆฌ๊ณ  @bob์˜ ์ˆœ์„œ๋กœ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ์— ๋Œ€ํ•œ ๋งคํ•‘์ด ์—†์œผ๋ฉด**@alice.active**๋กœ ๋ช…๋ช…๋œ ๊ถŒํ•œ ๊ทธ๋ฃน์œผ๋กœ ๋งคํ•‘๋œ ๊ฒƒ์„ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ ๋งคํ•‘์ด ํ™•์ธ์ด ๋˜๋ฉด, ์ž„๊ณ„ ๋‹ค์ค‘์„œ๋ช… ์ ˆ์ฐจ(threshold multi-signature process)์™€ ๋ช…๋ช…๋œ ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ธ์ฆ(authority associated with the named permission)์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ช…๋œ ์ธ์ฆ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•  ๊ฒฝ์šฐ, ์ƒ์œ„ ๊ถŒํ•œ์œผ๋กœ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ตœ์ข…์ ์œผ๋กœ ์†Œ์œ ์ž ๊ถŒํ•œ์ธ @alice.owner๋กœ ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ถŒํ•œ ๊ทธ๋ฃน( Default Permission Groups)

๋ชจ๋“  ๊ณ„์ •์€ ๋ชจ๋“  ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ๋Š” "์†Œ์œ ์ž(owner)" ๊ถŒํ•œ๊ณผ ์†Œ์œ ์ž ๋ณ€๊ฒฝ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ "ํ™œ๋™(active)" ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ทธ ์™ธ์˜ ๋‹ค๋ฅธ ๊ถŒํ•œ์€ "ํ™œ๋™(active)"์œผ๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋ฉ๋‹ˆ๋‹ค.

๊ถŒํ•œ ๊ฒ€์‚ฌ์˜ ๋ณ‘๋ ฌํ™” (Parallel Evaluation of Permissions)

๊ถŒํ•œ ๊ฒ€์‚ฌ ์ ˆ์ฐจ(permission evaluation process)๋Š” "์ฝ๊ธฐ"์ด๋ฉฐ, ํŠธ๋žœ์žญ์…˜์— ์˜ํ•œ ๊ถŒํ•œ์˜ ๋ณ€๊ฒฝ์€ ๋ธ”๋ก์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€๋Š” ์–ด๋– ํ•œ ์˜ํ–ฅ๋„ ๋ฐœํœ˜ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์˜ ๋ชจ๋“  ํ‚ค์™€ ๊ถŒํ•œ ๊ฒ€์‚ฌ๊ฐ€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚˜์•„๊ฐ€, ๋กค๋ฐฑํ•ด์•ผ ํ•˜๋Š” ๊ฐ’๋น„์‹ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„, ์‹ ์†ํ•œ ๊ถŒํ•œ ๊ฒ€์‚ฌ์˜ ๊ฐ€๋Šฅํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด๋Š” ๋ณด๋ฅ˜ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์‹ ๋  ๋•Œ ํŠธ๋žœ์žญ์…˜ ๊ถŒํ•œ์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฏธ ์Šน์ธ๋œ ํŠธ๋žœ์žญ์…˜์€ ๋‹ค์‹œ ๊ฒ€์‚ฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ „์ฒด์ ์ธ ๊ด€์ ์—์„œ, ๊ถŒํ•œ ๊ฒ€์‚ฌ(permission verification)๋Š” ํŠธ๋žœ์žญ์…˜์— ํ•„์š”ํ•œ ์—ฐ์‚ฐ์˜ ๋งŽ์€ ๋น„์ค‘์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ถŒํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ฝ๊ธฐ ์—ฐ์‚ฐ๋งŒ์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋ณ‘๋ ฌํ™”ํ•˜๋ฉด ์ „์ฒด ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

๋ฉ”์‹œ์ง€ ๋กœ๊ทธ(message log)๋กœ๋ถ€ํ„ฐ ๋ธ”๋ก์ฒด์ธ์˜ ๊ฒฐ์ •๋œ ์ƒํƒœ(deterministic state)๋กœ ์žฌ๊ตฌ์ถ•(replay, ์ƒˆ ๋…ธ๋“œ๊ฐ€ ๋ธ”๋Ÿญ์ฒด์ธ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐ›๋Š” ๊ฒƒ)ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ถŒํ•œ ๊ฒ€์‚ฌ๋ฅผ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ •์ƒ์ ์ธ ๋ธ”๋ก์— ํŠธ๋žœ์žญ์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ด ๊ณผ์ •์€ ๋„˜์–ด๊ฐˆ(skip) ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ์  ๋” ์ปค์ง€๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ์žฌ๊ตฌ์ถ•์— ๋“œ๋Š” ๊ณ„์‚ฐ ๋น„์šฉ์„ ํฐ ํญ์œผ๋กœ ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์‹œ์ง€์˜ ํ•„์ˆ˜ ์ง€์—ฐ ์‹œ๊ฐ„ (Messages with Mandatory Delay)

์‹œ๊ฐ„์€ ๋ณด์•ˆ์˜ ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, ๊ฐœ์ธ ํ‚ค(private key)๊ฐ€ ๋„๋‚œ๋‹นํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๊ธฐ ์ „์—๋Š” ์ด๋ฅผ ์•Œ๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ์— ๋ณด๊ด€๋˜๋Š” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ผ์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜์˜ ๋ณด์•ˆ(time based security)์€ ๋”์šฑ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ๋ฉ”์‹œ์ง€๊ฐ€ ๋ธ”๋ก์— ํฌํ•จ๋˜์—ˆ์ง€๋งŒ ์ ์šฉ๋˜๊ธฐ ์ด์ „์— ์ง€์ •ํ•œ ์‹œ๊ฐ„ ๋งŒํผ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„ ๋™์•ˆ์— ์ด ๋ฉ”์‹œ์ง€๋Š” ์ทจ์†Œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” ์ด๋ฉ”์ผ์ด๋‚˜ ๋‹จ๋ฌธ์œผ๋กœ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Œ์„ ์•ˆ๋‚ด๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ทธ๋“ค์ด ํ•ดํ‚น์„ ๋‹นํ•œ ๊ฒƒ์ด๋ผ๋ฉด, ๊ทธ๋“ค์€ ๊ณ„์ • ๋ณต๊ตฌ ์ ˆ์ฐจ๋ฅผ ํ†ตํ•ด ๊ณ„์ • ๋ณต๊ตฌ์™€ ๋ฉ”์‹œ์ง€ ์ฒ ํšŒ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์ง€์—ฐ ์‹œ๊ฐ„์€ ์ž‘์—…์˜ ์ค‘์š”๋„์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ปคํ”ผ ํ•œ์ž”์„ ๊ตฌ๋งคํ•˜๋Š” ๊ฒƒ์€ ์ง€์—ฐ์‹œ๊ฐ„์„ ๊ฐ–์ง€ ์•Š์•„ ๋ช‡ ์ดˆ ๋‚ด๋กœ ์ทจ์†Œ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋˜๋ฉฐ, ์ง‘์„ ์‚ฌ๋Š” ๊ฒƒ์ด๋ผ๋ฉด 72์‹œ๊ฐ„์˜ ๊ฑฐ๋ž˜ ์™„๋ฃŒ ์กฐ์ • ๊ธฐ๊ฐ„์„ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๊ณ„์ •์„ ์ƒˆ๋กœ์šด ๊ถŒํ•œ(new control)์œผ๋กœ ์ด์ „ํ•˜๋Š” ๊ฒƒ์€ 30์ผ์˜ ๊ธฐ๊ฐ„์„ ๋‘˜ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž์™€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค ๋„๋‚œ์œผ๋กœ๋ถ€ํ„ฐ ๋ณต๊ตฌ (Recovery from Stolen Keys)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์‚ฌ์šฉ์ž์˜ ํ‚ค๊ฐ€ ๋„๋‚œ๋‹นํ•˜์˜€์„ ๋•Œ, ๊ณ„์ •์— ๋Œ€ํ•œ ๋ณต๊ตฌ ์ž‘์—…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ • ์†Œ์œ ์ž๋Š” ์ตœ๊ทผ 30์ผ ์ด๋‚ด์— ์‚ฌ์šฉํ–ˆ ์†Œ์œ ์ž์˜ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์ง€์ •๋œ ๊ณ„์ • ๋ณต๊ตฌ ํ˜‘๋ ฅ์ž์™€ ํ˜‘๋ ฅํ•˜์—ฌ ๊ทธ ๊ณ„์ •์— ๋Œ€ํ•œ ์ž์‹ ์˜ ํ‚ค๋ฅผ ์žฌ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ • ๋ณต๊ตฌ ํ˜‘๋ ฅ์ž๋Š” ์†Œ์œ ์ž์˜ ํ—ˆ๊ฐ€ ์—†์ด ๊ณ„์ •์— ์ž‘์—…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ‚ค๋ฅผ ๊ฐ€์ง„ ํ•ด์ปค๋Š” ์ด๋ฏธ ๊ณ„์ •์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ณต๊ตฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ๋„ํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ณต๊ตฌ ํ”„๋กœ์„ธ์Šค์— ์ง„์ž…ํ•˜์—ฌ๋„ ๋ณต๊ตฌ ํ˜‘๋ ฅ์ž๋Š” ์ถ”๊ฐ€์ ์ธ ์‹ ๋ถ„ ์ฆ๋ช…์ด๋‚˜ 2์ฑ„๋„ ์ธ์ฆ(ํ•ธ๋“œํฐ์ด๋‚˜ ์ด๋ฉ”์ผ)์„ ์š”๊ตฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ํ•ด์ปค๋ฅผ ์œ„ํ—˜ํ•˜๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๊ทธ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ์–ป์ง€ ๋ชปํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์€ ๋‹จ์ˆœํ•œ ๋‹ค์ค‘์„œ๋ช… ํ•ฉ์˜(multi-signature arrangement)์™€ ๋งค์šฐ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋‹ค์ค‘์„œ๋ช… ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฝ์šฐ, ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์— ์ฐธ์—ฌํ•˜๋Š” ๋ณ„๋„์˜ ํšŒ์‚ฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณต๊ตฌ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ์ด์šฉํ•˜๋ฉด, ๋ณต๊ตฌ ํ˜‘๋ ฅ์ž๋Š” ๋ณต๊ตฌ๊ณผ์ •์—๋งŒ ๊ด€์—ฌํ•˜๋ฉฐ ํŠธ๋žœ์žญ์…˜์— ๊ด€ํ•ด์„œ๋Š” ์–ด๋– ํ•œ ์˜ํ–ฅ๋ ฅ๋„ ํ–‰์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ฐธ์—ฌ์ž๋“ค์— ๋Œ€ํ•œ ๋น„์šฉ๊ณผ ๋ฒ•์  ์ฑ…์ž„์„ ํฐํญ์œผ๋กœ ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฐ์ •๋ก ์  ๋ณ‘๋ ฌ ์‹คํ–‰ (Deterministic Parallel Execution of Applications)

๋ธ”๋ก์ฒด์ธ ํ•ฉ์˜(consensus)๋Š” ๊ฒฐ์ •๋ก ์  ํ–‰์œ„(์žฌํ˜„ ๊ฐ€๋Šฅํ•œ, deterministic behavior)์— ๋‹ฌ๋ ค์žˆ์Šต๋‹ˆ๋‹ค. (๊ฒฐ์ •๋ก ์ : ์–ด๋Š๋•Œ๋‚˜ ๊ฐ™์€ ์ž…๋ ฅ์— ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๊ฒƒ) ์ด๋Š” ๋ชจ๋“  ๋ณ‘๋ ฌ ์‹คํ–‰์€ ๋ฎคํ…์Šค(mutex)๋‚˜ ๋‹ค๋ฅธ ์ž ๊ธˆ ๊ธฐ๋ณธ์š”์†Œ(locking primitive) ์—†์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•จ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. (๋ฎคํ…์Šค: mutualy exclusive๋ผ๋Š” ์ž ๊ธˆ์ž„) ์ž ๊ธˆ(lock)์ด ์—†๋‹ค๋ฉด, ๋ชจ๋“  ๊ณ„์ •์ด ์ž์‹ ์˜ ํ”„๋ผ์ด๋น— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋งŒ ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ ๊ณ„์ •์ด ๋ฉ”์‹œ์ง€๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์—ฐ์‚ฐ์˜ ๋ณ‘๋ ฌ์„ฑ์ด ๊ณ„์ •๋ณ„๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋…๋ณ„์ ์ธ ์“ฐ๋ ˆ๋“œ(threads)๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์ด๋“ค์ด ๋ณ‘๋ ฌ๋กœ ํ‰๊ฐ€๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ณ„์ •์˜ ์ƒํƒœ(state)๋Š” ์ „๋‹ฌ๋ฐ›์€ ๋ฉ”์‹œ์ง€(messages)์—๋งŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ ์‹คํ–‰ ์Šค์ผ€์ฅด์„ ๋งŒ๋“ค๊ณ , ์ด๋Š” ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ด ์Šค์ผ€์ฅด์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •์€ ๊ฒฐ์ •๋ก ์ ์ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ํŠธ๋žœ์žญ์…˜์„ ์Šค์ผ€์ฅด๋งํ•  ๋•Œ ๋ณ‘๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ, ๋ฐ”๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ์‚ฌ์ดํด(cycle)์— ์ „๋‹ฌ๋˜๋„๋ก ์Šค์ผ€์ฅด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ถ€๋ถ„์  ๋ณ‘๋ ฌ ์‹คํ–‰(Part of parallel execution)์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ”๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ์ˆ˜์‹ ์ž(receiver)๊ฐ€ ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ๋กœ ์ธํ•ด ์ž์‹ ์˜ ์ƒํƒœ(state)๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ†ต์‹  ์ง€์—ฐ ์ตœ์†Œํ™” (Minimizing Communication Latency)

์ง€์—ฐ ์‹œ๊ฐ„(latency)์€ ํ•œ ๊ณ„์ •์—์„œ ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์  ๋ชฉํ‘œ๋Š” ๋‘ ๊ณ„์ • ์‚ฌ์ด์˜ ํ•œ ๋ธ”๋ก ์•ˆ์—์„œ ๋ฉ”์‹œ์ง€์˜ ๊ตํ™˜์ด ์•ž๋’ค๋กœ ์ด๋ฃจ์–ด์ง€๊ณ , ๋ฉ”์‹œ์ง€์˜ ๊ฐ„๊ฒฉ์ด 3์ดˆ ์ด๋‚ด์— ๋“ค์–ด๊ฐ€๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด, EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐ ๋ธ”๋ก์„ ์‚ฌ์ดํด(cycles)๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์ดํด์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ(threads)๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ํŠธ๋žœ์žญ์…˜๋“ค์˜ ๋ชฉ๋ก(list of transactions)์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํŠธ๋žœ์žญ์…˜(transaction)์€ ์ „๋‹ฌํ•˜๋Š” ๋ฉ”์‹œ์ง€์˜ ์ง‘ํ•ฉ(set of messages)์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ํŠธ๋ฆฌ(tree) ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ ˆ์ด์–ด(alternating layers) ๋‹จ์œ„๋กœ ์ˆœ์ฐจ(sequentially) ์ฒ˜๋ฆฌ๋˜๊ฑฐ๋‚˜ ๋ณ‘๋ ฌ(parallel) ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

    ๋ธ”๋ก(Block)

      ์‚ฌ์ดํด(Cycles) (์ˆœ์ฐจ ์ฒ˜๋ฆฌ)

        ์“ฐ๋ ˆ๋“œ(Threads) (๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ)

          ํŠธ๋žœ์žญ์…˜(Transactions) (์ˆœ์ฐจ ์ฒ˜๋ฆฌ)

            ๋ฉ”์‹œ์ง€(Messages) (์ˆœ์ฐจ ์ฒ˜๋ฆฌ)

              ์ˆ˜์‹ ์ž ๋ฐ ๊ณ„์ • ์•Œ๋ฆผ(Receiver and Notified Accounts) (๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ)

ํ•˜๋‚˜์˜ ์‚ฌ์ดํด์—์„œ ์ƒ์„ฑ๋œ ํŠธ๋žœ์žญ์…˜๋“ค์€ ์ด์–ด์ง€๋Š” ์–ด๋Š ์‚ฌ์ดํด ํ˜น์€ ๋ธ”๋ก์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ๋ธ”๋ก์— ์ง€์ •๋œ ์‹œ๊ฐ„(3์ดˆ)์ด ์ง€๋‚˜๊ฑฐ๋‚˜ ๋” ์ „๋‹ฌํ•  ํŠธ๋žœ์žญ์…˜์ด ์—†์„ ๋•Œ๊นŒ์ง€ ์‚ฌ์ดํด์„ ๊ณ„์† ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ •์  ๋ถ„์„(static analysis)์œผ๋กœ ํ•œ ๋ธ”๋ก์—์„œ ๋™์ผ ์‚ฌ์ดํด์— ๊ฐ™์€ ๊ณ„์ •์„ ์ˆ˜์ •ํ•˜๋Š” 2๊ฐœ ์ด์ƒ์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ํŠธ๋žœ์žญ์…˜์ด ์—†๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆ๋ณ€์„ฑ(invariant)์ด ์œ ์ง€๋˜๋ฉด, ํ•˜๋‚˜์˜ ๋ธ”๋ก์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋กœ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ๊ธฐ ์ „์šฉ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ (Read-Only Message Handlers)

์–ด๋–ค ๊ณ„์ •์€ ๋‚ด๋ถ€ ์ƒํƒœ์˜ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ํ†ต๊ณผ/์‹คํŒจ(pass/fail)์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌ๋ฉด ํŠน์ • ์‚ฌ์ดํด์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํฌํ•จ๋  ๊ฒฝ์šฐ ํ•ด๋‹น ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ๋Š” ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌ๋ฉด, ํŠน์ • ๊ณ„์ •์— ๋Œ€ํ•œ ์ฝ๊ธฐ ์ „์šฉ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๊ธฐ(read-only message handlers)๊ฐ€ ํŠน์ • ์‚ฌ์ดํด์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๊ธฐ๋Š” ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์ค‘ ๊ณ„์ •์˜ ์›์ž์  ํŠธ๋žœ์žญ์…˜ (Atomic Transactions with Multiple Accounts)

์ข…์ข… ๋ฉ”์‹œ์ง€์˜ ์ „๋‹ฌ ๋ฐ ์ ์šฉ์ด ๋‹ค์ˆ˜์˜ ๊ณ„์ •์—์„œ ์›์ž์„ฑ(atomically)์œผ๋กœ ๋ณด์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ๋‘ ๋ฉ”์‹œ์ง€๋Š” ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์— ์œ„์น˜ํ•˜๊ณ , ๋‘ ๊ณ„์ •์€ ๊ฐ™์€ ์“ฐ๋ ˆ๋“œ์— ํ• ๋‹น๋˜๋ฉฐ, ๋ฉ”์‹œ์ง€๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ์„ฑ๋Šฅ ๋ฉด์—์„œ ์ด์ƒ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋Ÿ‰์„ "์ฒญ๊ตฌ(billing)"๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ, ํŠธ๋žœ์žญ์…˜์— ์ฐธ๊ณ ๋œ ๊ณ„์ •์˜ ์ˆ˜ ๋งŒํผ ๋น„์šฉ์ด ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค.

์„ฑ๋Šฅ๊ณผ ๋น„์šฉ ๋•Œ๋ฌธ์—์„œ, 2๊ฐœ ์ด์ƒ์˜ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ณ„์ •๋“ค(heavily utilized accounts)์ด ์ฐธ์—ฌํ•˜๋Š” ์›์ž์  ์ž‘์—…(atomic operations)์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ ์ƒํƒœ์˜ ๋ถ€๋ถ„ ๊ฒ€์‚ฌ (Partial Evaluation of Blockchain State)

๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ์˜ ํ™•์žฅ์„ฑ์„ ๋ณด์žฅํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋ชจ๋“ˆํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ถ€๋งŒ ์‚ฌ์šฉํ•  ๋•Œ ์ „์ฒด๋ฅผ ๋‹ค ๊ตฌ๋™ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๊ฑฐ๋ž˜์†Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ์ž(exchange application developer)๋Š” ํ’€ ๋…ธ๋“œ(full node)๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ฑฐ๋ž˜์†Œ ์ƒํƒœ(exchange state)๋ฅผ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฑฐ๋ž˜์†Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์†Œ์…œ ๋ฏธ๋””์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์—ฐ๋™ํ•˜์—ฌ ๋™์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ’€ ๋…ธ๋“œ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ค‘ ์ผ๋ถ€๋ฅผ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๊ฐ€ ์ „๋‹ฌ๋ฐ›์€ ๋ฉ”์‹œ์ง€๋ฅผ ํ†ตํ•ด ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ „๋‹ฌ๋œ ๋ฉ”์‹œ์ง€ ์ „์†ก์€ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๊ณ„์ •๊ณผ์˜ ํ†ต์‹ ์— ์ค‘์š”ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‹ค๋ฅธ ๊ณ„์ •์˜ ์ƒํƒœ๊ฐ€ ๋™์ผํ•œ ๋จธ์‹ (same machine)์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•œ ๊ณ„์ •์ด ๋‹ค๋ฅธ ๊ณ„์ •์„ ๋™๊ธฐ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” "์ž ๊ธˆ(locks)"์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋„ ๋‹ค๋ฅธ ๊ณ„์ •์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜์ง€ ์•Š์œผ๋ฉด์ด ๋””์ž์ธ ํŒจํ„ด์ด ์†์ƒ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์ •์‚ฌ์ด์˜ ์ƒํƒœ ํ†ต์‹ (state communication)์€ ๋ธ”๋ก์ฒด์ธ์˜ ๋ฉ”์‹œ์ง€๋กœ ์ „๋‹ฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ๊ด€์  ์ตœ์„  ์Šค์ผ€์ฅด๋ง (Subjective Best Effort Scheduling)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ์–ด๋–ค ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ์–ด๋–ค ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ์ง€์— ๋Œ€ํ•˜์—ฌ ๊ฐ•์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ๊ณ„์‚ฐ ๋ณต์žก๋„์™€ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์š”๊ตฌ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ฃผ๊ด€์ ์ธ ์ธก์ •์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŠธ๋žœ์žญ์…˜์ด ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋  ๋•Œ ๋ชจ๋‘ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋„คํŠธ์›Œํฌ ๊ด€์ ์—์„œ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด 0.01ms์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋“ ์ง€ 10ms๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์— ์ƒ๊ด€์—†์ด ๊ฐ™์€ ์—ฐ์‚ฐ ๋Œ€์—ญํญ(computational bandwidth) ๋น„์šฉ์„ ์ฒญ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ ๊ฐœ๋ณ„์ ์ธ ์ธก์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ๋น„์šฉ์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ ๋ธ”๋ก ์ œ์ž‘์ž๋Š” ์ž์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ์ธก์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด ๊ฒฝ์šฐ์—๋„ ๋‹ค๋ฅธ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ๊ทธ ํŠธ๋žœ์žญ์…˜์ด ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ํŠธ๋žœ์žญ์…˜ ๋˜๋Š” ๊ณ„์ •์ด ๊ณผ๋„ํ•œ ์–‘์˜ ๊ณ„์‚ฐ ์šฉ๋Ÿ‰์„ ์†Œ๋น„ํ–ˆ๋‹ค๊ณ  ๊ฒฐ๋ก ์„ ๋‚ด๋ฉด, ๋ธ”๋ก์„ ์ƒ์„ฑํ•  ๋•Œ ๊ทธ๋“ค์€ ๋‹จ์ˆœํžˆ ๊ทธ ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ๋ธ”๋ก ์ œ์ž‘์ž๊ฐ€ ์œ ํšจํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผํ•˜๋ฉด ๊ทธ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ๋ช…์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋ผ๋„ ํŠธ๋žœ์žญ์…˜์ด ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ์ œํ•œ์„ ๋„˜์ง€ ์•Š์•„ ์ ํ•ฉํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผํ•˜๋ฉด ๋‹ค๋ฅธ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋„ ์ด๋ฅผ ์Šน์ธํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ด ๊ฒฝ์šฐ ๊ทธ ํŠธ๋žœ์žญ์…˜์„ ๋ฐ›์•„์ฃผ๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๋ฅผ ์ฐพ๊ธฐ๊นŒ์ง€ 1๋ถ„ ๊ฐ€๊นŒ์šด ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์„ค๋ช…: 21๋ช…์ด 3์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ธ”๋ก์„ ์ƒ์‚ฐํ•˜๋ฏ€๋กœ)

๊ฐ„ํ˜น ์–ด๋–ค ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„๋ฅผ ๋ช‡ ๋ฐฐ๋‚˜ ๋„˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ๋ธ”๋ก์— ํฌํ•จ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹ค์Œ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ๊ทธ ๋ธ”๋ก์„ ๊ฑฐ์ ˆํ•ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์Šน์ธ๊ณผ ๊ฑฐ์ ˆ์ด ๋™๋ฅ ์ธ ์ƒํƒœ(tie)์ด๋ฉด ๋‹ค์Œ ๋ธ”๋ก ์ƒ์‚ฐ์ž์— ์˜ํ•ด ์ด๊ฒƒ์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํฐ ๋ธ”๋ก(large block)์ด ๋„คํŠธ์›Œํฌ ์ „ํŒŒ ์ง€์—ฐ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ด์ƒ ํŒจํ„ด(pattern of abuse)์„ ํŒŒ์•…ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ๋‚˜์œ ์ƒ์‚ฐ์ž(rogue producer)์—๊ฒŒ ํ‘œ๋ฅผ ์ฃผ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ธ”๋ก ์ƒ์‚ฐ์ž์˜ ์ฃผ๊ด€์  ํ‰๊ฐ€๊ฐ€ ์žˆ๊ธฐ์— ๋ธ”๋ก์ฒด์ธ์€ ์ •ํ™•ํ•˜๊ณ  ๋ช…ํ™•ํ•œ ์‹คํ–‰ ์‹œ๊ฐ„ ๊ณ„์‚ฐ์˜ ์ธก์ •์„ ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค๊ณ„๋กœ, ํ•ฉ์˜๋ฅผ ์–ด๊ธฐ์ง€ ์•Š๊ณ  ์ตœ์ ํ™” ๊ธฐํšŒ๋ฅผ ๊ทน์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ช…๋ น(instructions)์„ ์ •ํ™•ํ•˜๊ฒŒ ์ง‘๊ณ„(count)ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ† ํฐ ๋ชจ๋ธ๊ณผ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ (Token Model and Resource Usage)

์ฃผ์˜์‚ฌํ•ญ: ๋ณธ ๋ฐฑ์„œ์—์„œ ์–ธ๊ธ‰๋˜๋Š” ์•”ํ˜ธํ™”ํ ํ† ํฐ์€ EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์ฒด์ธ ์ƒ์— ์กด์žฌํ•˜๋Š” ํ† ํฐ์„ ์ง€์นญํ•ฉ๋‹ˆ๋‹ค. ์ด ํ† ํฐ์€ EOS ๋ถ„๋ฐฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ ์ƒ์— ์กด์žฌํ•˜๋Š” ERC-20 ๊ธฐ๋ฐ˜ ํ† ํฐ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ธ”๋ก ์ฒด์ธ์€ ์ž์›์ด ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์•…์šฉ์„ ๋ง‰๊ธฐ์œ„ํ•œ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. EOS.IO๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ๊ณผ ํ•จ๊ป˜, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค์˜ 3 ๊ฐœ์˜ ๋„“์€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค: EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ์—์„œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์†Œ๋น„ํ•˜๋Š” ์ž์›์€(resources)์€ ์„ธ ๊ฐ€์ง€์˜ ๋„“๊ฒŒ ๋ถ„๋ฅ˜(class)ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋Œ€์—ญํญ๊ณผ ๋กœ๊ทธ ์ €์žฅ์†Œ(Log Storage) (๋””์Šคํฌ)
  2. ์—ฐ์‚ฐ๊ณผ ์—ฐ์‚ฐ ๋ฐฑ๋กœ๊ทธ(backlog) (CPU)
  3. ์ƒํƒœ ์ €์žฅ์†Œ (๋žจ)

๋Œ€์—ญํญ๊ณผ ์—ฐ์‚ฐ์€ ์ฆ‰์‹œ ์‚ฌ์šฉ๊ณผ ์žฅ๊ธฐ ์‚ฌ์šฉ์˜ 2๊ฐœ์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ๋ธ”๋ก ์ฒด์ธ์€ ๋ชจ๋“  ๋ฉ”์‹œ์ง€์˜ ๋กœ๊ทธ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ,์ด ๋กœ๊ทธ๋Š” ๋ชจ๋“  ์™„์ „๋…ธ๋“œ(full nodes)์— ์˜ํ•ด ์ €์žฅ๋˜๊ณ  ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์˜ ๋กœ๊ทธ( log of messages)๋ฅผ ๊ฐ€์ง€๊ณ , ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ์žฌ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์‹œ์ง€ ๋กœ๊ทธ๋กœ๋ถ€ํ„ฐ ์ƒํƒœ๋ฅผ ์žฌ์Ÿ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ๊ณ„์‚ฐ์„ ์—ฐ์‚ฐ ๋ถ€์ฑ„(computational debt)๋ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ์—ฐ์‚ฐ ๋ถ€์ฑ„๊ฐ€ ๊ณผ๋‹คํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๋ฉด, ๋ธ”๋ก์ฒด์ธ ์ƒํƒœ์˜ ์Šค๋ƒ…์ƒท(snapshot)์„ ์ €์žฅํ•˜๊ณ  ๊ณผ๊ฑฐ ์ด๋ ฅ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ์—ฐ์‚ฐ ๋ถ€์ฑ„๊ฐ€ ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜๋ฉด, ๋•Œ๋ก  1๋…„์˜ ํŠธ๋žœ์žญ์…˜์„ ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 6๊ฐœ์›”์˜ ์‹œ๊ฐ„์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ์น˜๋ช…์ ์ด๋ฏ€๋กœ ์—ฐ์‚ฐ ๋ถ€์ฑ„๋Š” ์ฃผ์˜ ๊นŠ๊ฒŒ ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ ์ƒํƒœ ์ €์žฅ์†Œ(blockchain state storage)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ„์ • ์ž”์•ก(account balances)๊ณผ ์ฃผ๋ฌธ์„œ(order books)์™€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํŠน์ • ์ƒํƒœ๋ฅผ ์ฝ์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์ด๊ฒƒ์„ ์ €์žฅํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๊ธ€์˜ ๋‚ด์šฉ๊ณผ ๋Œ“๊ธ€ ๋‚ด์šฉ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ์ฝ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ธ”๋ก์ฒด์ธ ์ƒํƒœ์— ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ๊ธ€/๋Œ“๊ธ€์˜ ์กด์žฌ ์—ฌ๋ถ€์™€ ํˆฌํ‘œ ํšŸ์ˆ˜์™€ ๋‹ค๋ฅธ ํŠน์„ฑ๋“ค์€ ๋ธ”๋ก์ฒด์ธ์˜ ์ƒํƒœ์— ๊ธฐ๋ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ๊ทธ๋“ค์ด ๊ฐ€์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€์—ญํญ, ์—ฐ์‚ฐ ๋Šฅ๋ ฅ, ์ƒํƒœ ํ—ˆ์šฉ๋Ÿ‰์„ ์•Œ๋ ค์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐ๊ฐ์˜ ๊ณ„์ •์ด 3์ผ๊ฐ„ ๊ณ„์•ฝ์—์„œ ๋ณด์œ ํ•œ ํ† ํฐ ์–‘์— ๋น„๋ก€ํ•˜๋Š” ์ž์›๋Ÿ‰์˜ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, EOS.IO ๊ธฐ๋ฐ˜์˜ ๋ธ”๋ก์ฒด์ธ์ด ์ถœ์‹œ๋œ ํ›„, ํ•œ ๊ณ„์ •์ด ์ „์ฒด ํ† ํฐ์˜ 1%๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ๊ณ„์ •์€ ์ „์ฒด ์ƒํƒœ ์ €์žฅ์†Œ์˜ 1%๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋Œ€์—ญํญ๊ณผ ์—ฐ์‚ฐ ํ—ˆ์šฉ๋Ÿ‰์€ ์ผ์‹œ์ (์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚˜์ค‘์— ๋‹ค์‹œ ์“ธ ์ˆ˜ ์—†์Œ)์ด๋ฏ€๋กœ ์ด๋“ค์€ ๋ถ€๋ถ„ ์˜ˆ๋น„ ์˜ˆ์•ฝ ๊ธฐ์ค€(fractional reserve basis)์— ๋”ฐ๋ผ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. EOS.IO์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ŠคํŒ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์—ญํญ ์‚ฌ์šฉ๋Ÿ‰์„ ์ œํ•œ(rate-limit bandwidth usage)ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ๊ด€์  ์ธก์ •๊ณผ ์ฃผ๊ด€์  ์ธก์ • (Objective and Subjective Measurements)

์—ฐ์‚ฐ ์‚ฌ์šฉ๋Ÿ‰์˜ ์ธก์ •(instrumenting computational usage)์€ ์„ฑ๋Šฅ๊ณผ ์ตœ์ ํ™”์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ชจ๋“  ๋ฆฌ์Šค์Šค ์‚ฌ์šฉ ์ œํ•œ์€ ๊ถ๊ทน์ ์œผ๋กœ ๋ธ”๋ก ์ƒ์‚ฐ์ž์˜ ๊ฐœ๋ณ„์ ์ธ ์ธก์ • ๋ฐฉ์‹๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•˜์—ฌ ์ฃผ๊ด€์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๊ฐ๊ด€์ ์œผ๋กœ ์ธก์ • ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ์ˆ˜์™€ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์€ ๊ฐ๊ด€์ ์œผ๋กœ ์ธก์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ๊ฐ๊ด€์  ์ธก์ •์— ๋Œ€ํ•ด ๋™์ผํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฃผ๊ด€์ ์ธ ์ธก์ •๋ณด๋‹ค ์—„๊ฒฉํ•œ ์ฃผ๊ด€์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ทจ์ธ ๋ถ€๋‹ด (Receiver Pays)

์ „ํ†ต์ ์œผ๋กœ, ์‚ฌ์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜คํ”ผ์Šค ๊ณต๊ฐ„, ์—ฐ์‚ฐ ๋Šฅ๋ ฅ, ๊ทธ ์™ธ์˜ ์š”์†Œ๋“ค์„ ๊ตฌ๋งคํ•ด์•ผ ํ•˜๋ฉฐ ์—ฌ๊ธฐ์—์„œ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ์ด ํŠน์ • ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•  ๋•Œ, ๋ฒŒ์–ด๋“ค์ธ ์ด์ต์˜ ์ผ๋ถ€๋Š” ์ด๋Ÿฌํ•œ ์‚ฌ์—… ๋น„์šฉ์„ ๊ฒฐ์žฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์–ด๋–ค ์›น ์‚ฌ์ดํŠธ๋„ ํ˜ธ์ŠคํŒ… ๋น„์šฉ์„ ์ถฉ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฉ๋ฌธ์ž์—๊ฒŒ ์›น ์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธ์„ ์œ„ํ•œ ์†Œ์•ก ๊ฒฐ์ œ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ, ํƒˆ์ค‘์•™ํ™” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ญ์‹œ ๊ณ ๊ฐ์œผ๋กœ ํ•˜์—ฌ๊ธˆ ๋ธ”๋ก์ฒด์ธ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ธ”๋ก์ฒด์ธ ์‚ฌ์šฉ๋ฃŒ๋ฅผ ์š”๊ตฌํ•˜์—ฌ์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋ก ์ฒด์ธ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ธ”๋ก์ฒด์ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์ง€๋ถˆ ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ์ œํ’ˆ์˜ ์ž์ฒด ์ˆ˜์ต ์ฐฝ์ถœ ์ „๋žต(own monetization strategy for its products)์„ ๊ฒฐ์ •ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ๋ฐฉ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๋ฆฌ์†Œ์Šค ํ—ˆ์šฉ๋Ÿ‰ ์œ„์ž„ (Delegating Capacity)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ์„ ์ถœ์‹œํ•˜์˜€์„ ๋•Œ, ํ•„์š”ํ•œ ๋Œ€์—ญํญ๋ณด๋‹ค ๋งŽ์€ ํ† ํฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†Œ์œ ์ž๋ฅผ ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ํ•ด๋‹น ์†Œ์œ ์ž๋Š” ๋‚จ์€ ๋Œ€์—ญํญ์„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์–‘๋„ํ•˜๊ฑฐ๋‚˜ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EOS.IO์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ์ด๋Ÿฌํ•œ ๋Œ€์—ญํญ ํ—ˆ์šฉ๋Ÿ‰์˜ ์–‘๋„๋ฅผ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด์— ๋งž์ถ”์–ด ๋Œ€์—ญํญ์„ ์žฌํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

ํ† ํฐ์˜ ๊ฐ€์น˜์™€ ํŠธ๋žœ์žญ์…˜ ๋น„์šฉ์˜ ๋ถ„๋ฆฌ (Separating Transaction costs from Token Value)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์˜ ํฐ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์—ญํญ์˜ ์–‘์ด ํ† ํฐ ๊ฐ€๊ฒฉ์— ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์œ ์ž๊ฐ€ ์ถฉ๋ถ„ํ•œ ์–‘์˜ ํ† ํฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ• ๋‹น๋œ(fixed) ์ƒํƒœ์™€ ๋Œ€์—ญํญ ์‚ฌ์šฉ๋Ÿ‰์˜ ๋ฒ”์œ„ ์•ˆ์—์„œ ์ œํ•œ ์—†์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ๊ฐœ๋ฐœ์ž์™€ ์‚ฌ์šฉ์ž๋Š” ํ† ํฐ ์‹œ์žฅ์˜ ๊ฐ€๊ฒฉ ๋ณ€๋™์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐ€๊ฒฉ ์ถ”์ด์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ง๋กœ, EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ํ† ํฐ์˜ ๊ฐ€์น˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ† ํฐ ๋‹น ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋Œ€์—ญํญ, ์—ฐ์‚ฐ ๋Šฅ๋ ฅ, ์ €์žฅ ๋Šฅ๋ ฅ์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฆ๊ธฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ๋ธ”๋ก์„ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ๋ณด์ƒ์œผ๋กœ ํ† ํฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ์˜ ๊ฐ€์น˜๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์—ญํญ, ์ €์žฅ์†Œ, ๊ณ„์‚ฐ๋Ÿ‰์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋ธ์€ ์ฆ๊ฐ€ํ•˜๋Š” ํ† ํฐ ๊ฐ’์„ ํ™œ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์ƒํƒœ ์ €์žฅ ๋น„์šฉ (State Storage Costs)

๋Œ€์—ญํญ๊ณผ ์—ฐ์‚ฐ ๋Šฅ๋ ฅ์€ ์œ„์ž„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ๊ฐ€ ์ œ๊ฑฐ๋˜๊ธฐ ์ „๊นŒ์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ์ €์žฅ์†Œ(storage of application state)๋ฅผ ์œ„ํ•œ ํ† ํฐ์„ ๋ณด์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ์ƒํƒœ๊ฐ€ ์˜์›ํžˆ ์œ ์ง€๋œ๋‹ค๋ฉด, ํ•ด๋‹น ํ† ํฐ์€ ์ˆœํ™˜ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์‚ฌ์šฉ์ž ๊ณ„์ •์€ ์–ด๋Š ์ •๋„์˜ ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ชจ๋“  ๊ณ„์ •์€ ์ตœ์†Œํ•œ์˜ ์ž”์•ก์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ์˜ ์ €์žฅ ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋ฉด ์š”๊ตฌ๋˜๋Š” ์ตœ์†Œ ์ž”์•ก์€ ์ค„์–ด๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ธ”๋ก ๋ณด์ƒ (Block Rewards)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก์ด ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๋ธ”๋ก ์ƒ์„ฑ์ž์—๊ฒŒ ๋ณด์ƒ์œผ๋กœ ํ† ํฐ์„ ์ค๋‹ˆ๋‹ค. ์ƒ์„ฑ๋˜๋Š” ํ† ํฐ์˜ ์–‘์€ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์ด ์ œ์ถœํ•œ ์š”๊ตฌ ๊ธˆ์•ก์˜ ์ค‘์•™๊ฐ’์œผ๋กœ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ƒ์‚ฐ์ž ๋ณด์ƒ์˜ ์ด๋Ÿ‰์ด ์—ฐ ํ† ํฐ ์ฆ๊ฐ€๋ถ„์˜ 5%๋ฅผ ๋„˜์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜œํƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (Community Benefit Applications)

๋ธ”๋ก ์ƒ์‚ฐ์ž๋ฅผ ์„ ์ถœํ•จ๊ณผ ๋”๋ถˆ์–ด, EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์˜ ์‚ฌ์šฉ์ž๋“ค์€ 3๊ฐœ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์Šค๋งˆํŠธ ์ปจํŠธ๋ ‰ํŠธ)์„ ์„ ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด 3๊ฐœ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์„ค์ •๋œ ์—ฐ๊ฐ„ ํ† ํฐ ๊ณต๊ธ‰๋Ÿ‰์—์„œ ๋ธ”๋ก ์ƒ์‚ฐ์ž์—๊ฒŒ ์ง€๊ธ‰ํ•œ ํ† ํฐ์„ ์ œ์™ธํ•œ ํ† ํฐ์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ์Šค๋งˆํŠธ ์ปจํŠธ๋ ‰ํŠธ๋“ค์ด ๋ฐ›๋Š” ํ† ํฐ์˜ ์–‘์€ ๊ฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ† ํฐ ์†Œ์œ ์ž๋“ค๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ํˆฌํ‘œ ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์„ ์ •๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜น์€ ์Šค๋งˆํŠธ ์ปจํŠธ๋ ‰ํŠธ๋Š” ํ† ํฐ ์†Œ์œ ์ž๋“ค์˜ ํˆฌํ‘œ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฑฐ๋ฒ„๋„Œ์Šค (Governance)

๊ฑฐ๋ฒ„๋„Œ์Šค๋Š” ์‚ฌ๋žŒ๋“ค์ด ์†Œํ”„ํŠธ์›จ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†๋Š” ์ฃผ๊ด€์  ๋ฌธ์ œ์— ๋Œ€ํ•˜์—ฌ ํ•ฉ์˜๋ฅผ ์ด๋ฃจ๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์˜ํ–ฅ๋ ฅ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ–‰์‚ฌํ•˜๋Š” ๊ฑฐ๋ฒ„๋„Œ์Šค ์ ˆ์ฐจ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ •์˜๋œ ๊ฐ€๋ฒ„๋„Œ์Šค ๊ณผ์ •์˜ ๋ถ€์žฌ๋กœ ์ธํ•ด, ์ด์ „์˜ ๋ธ”๋ก์ฒด์ธ๋“ค์€ ์ฆ‰ํฅ์ ์ด๊ณ  ๋น„๊ณต์‹์ ์ด๊ณ  ๋•Œ๋กœ๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋…ผ๋ž€์„ ์ผ์œผํ‚ค๋Š” ๊ฑฐ๋ฒ„๋„Œ์Šค ๋ฐฉ๋ฒ•์— ์˜์กดํ–ˆ์Šต๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž์—๊ฒŒ ๊ทธ ๊ถŒํ•œ์„ ์œ„์ž„ํ•œ ํ† ํฐ ์†Œ์œ ์ž๋กœ๋ถ€ํ„ฐ ๊ถŒํ•œ์ด ๋ฐœ์ƒ๋จ์„ ์ธ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ๊ณ„์ •์„ ๋™๊ฒฐํ•˜๊ณ , ๊ฒฐํ•จ์ด ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ, ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ์„ ๋ณ€๊ฒฝํ•˜๋Š” ํ•˜๋“œํฌํฌ๋ฅผ ์ œ์•ˆํ•˜๋Š” ์ œํ•œ์ ์ด๋ฉด ํ™•์ธ๋œ ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋ธ”๋ก ์ƒ์‚ฐ์ž๋ฅผ ์„ ์ถœํ•˜๋Š” ๊ฒƒ์€ EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์— ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ก์ฒด์ธ์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ธ”๋ก ์ƒ์‚ฐ์ž์˜ ์Šน์ธ์„ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์ด ํ† ํฐ ์†Œ์œ ์ž๋“ค์ด ์›ํ•˜๋Š” ๋ณ€๊ฒฝ์„ ๊ฑฐ๋ถ€ํ•˜๋ฉด ๊ทธ๋“ค์€ ๋‚™์„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ํ† ํฐ ์†Œ์œ ์ž์˜ ํ—ˆ๊ฐ€ ์—†์ด ๋ณ€๊ฒฝํ•˜๋ฉด, ๋ชจ๋“  ๋น„์ƒ์‚ฐ ํ’€ ๋…ธ๋“œ ๊ฒ€์‚ฌ์ž(non-producing full-node validators)(๊ฑฐ๋ž˜์†Œ ๋“ฑ)๋“ค์€ ์ด ๋ณ€๊ฒฝ์„ ๊ฑฐ๋ถ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณ„์ • ๋™๊ฒฐ (Freezing Accounts)

๊ฐ€๋” ์Šค๋งˆํŠธ ์ปจํŠธ๋ ‰ํŠธ๋Š” ๋น„์ •์ƒ์ ์ด๊ฑฐ๋‚˜ ์˜ˆ์ธกํ•˜์ง€ ๋ชปํ•œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ์˜๋„ํ–ˆ๋˜ ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์™ธ์—๋„ ๋น„์ •์ƒ์ ์ธ ์–‘์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๋Š” ์ทจ์•ฝ์ (exploit)์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๊ณ„์ •์— ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ฐ”๋กœ ์žก์„ ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ธ”๋ก์ฒด์ธ์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ ๋ธ”๋ก์— ํฌํ•จ๋˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ์„ ํƒํ•˜๋Š” ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ„์ •์„ ๋™๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ™œ์„ฑํ™”๋œ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค ๊ฐ„์˜ 17/21 ํˆฌํ‘œ๋ฅผ ํ†ตํ•ด ํŠน์ • ๊ณ„์ •์— ๋Œ€ํ•œ ๋™๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์ด ์ด ๊ธฐ๋Šฅ์„ ์•…์šฉํ•œ๋‹ค๋ฉด, ๊ทธ๋“ค์€ ํˆฌํ‘œ์—์„œ ์ œ์™ธ๋˜๊ณ  ๋™๊ฒฐ๋œ ๊ณ„์ •์€ ๋ณต์›๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณ„์ • ์ฝ”๋“œ ๋ณ€๊ฒฝ (Changing Account Code)

๋‹ค๋ฅธ ๋ชจ๋“  ์ˆ˜๋‹จ์ด ์‹คํŒจํ•˜๊ณ  "๋ฉˆ์ถ”์ง€ ์•Š์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜"์ด ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์ด ๋™์ž‘ํ•œ๋‹ค๋ฉด EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์ด ์ „์ฒด ๋ธ”๋ก์ฒด์ธ์˜ ํ•˜๋“œ ํฌํฌ ์—†์ด ๊ณ„์ •์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ • ๋™๊ฒฐ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ, ์ฝ”๋“œ์˜ ์ด๋Ÿฐ ๋ณ€๊ฒฝ์€ ์„ ์ถœ๋œ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค ๊ฐ„์˜ 17/21 ํˆฌํ‘œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ—Œ๋ฒ• (Constitution)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก์ฒด์ธ์—์„œ P2P ์„œ๋น„์Šค ์•ฝ์ •์„ ์ฒด๊ฒฐํ•˜๊ฑฐ๋‚˜, ์„œ๋ช… ํ•œ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ๊ตฌ์†๋ ฅ์žˆ๋Š” ๊ณ„์•ฝ์ธ "ํ—Œ๋ฒ•"์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ—Œ๋ฒ•์œผ๋กœ ์ฝ”๋“œ๋กœ ์ œ์•ฝ์„ ๊ฐ€ํ•˜๊ธฐ ์–ด๋ ค์šด ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์˜๋ฌด๋ฅผ ๊ทœ์ •ํ•˜๋ฉฐ, ์ƒํ˜ธ ๊ฐ„์˜ ๊ด€ํ• ๊ถŒ์„ ํ™•๋ฆฝํ•˜๊ณ  ๋ฒ•๋ฅ ์„ ์ œ์ •ํ•จ์œผ๋กœ ๋ถ„์Ÿ ํ•ด๊ฒฐ์„ ์‰ฝ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ—Œ๋ฒ•์˜ ๋‚ด์šฉ์€ ์ฝ”๋“œ์— ์˜ํ•ด ์™„์ „ํžˆ ์‹œํ–‰๋  ์ˆ˜์—†๋Š” ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์˜๋ฌด๋ฅผ ์ •์˜ํ•˜๊ณ  ์ƒํ˜ธ ์ธ์ • ๋œ ๋‹ค๋ฅธ ๊ทœ์น™๊ณผ ํ•จ๊ป˜ ๊ด€ํ• ๊ถŒ๊ณผ ์ค€๊ฑฐ๋ฒ• ์„ ํƒ์„ ํ™•๋ฆฝํ•˜์—ฌ ๋ถ„์Ÿ ํ•ด๊ฒฐ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋กœ ์ „ํŒŒ๋˜๋Š” ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์€ ์•ฝ๊ด€์˜ ํ•ด์‹œ(hash)๋ฅผ ์„œ๋ช…์— ํฌํ•จํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ช…์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๊ณ„์•ฝ์— ๊ตฌ์†๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์•ฝ๊ด€์€ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ์†Œ์Šค์ฝ”๋“œ ํ”„๋กœํ† ์ฝœ์˜ ์˜๋„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ, ๋ฒ„๊ทธ์™€ ๊ธฐ๋Šฅ์˜ ์ฐจ์ด๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ˆ˜์ •์‚ฌํ•ญ์ด ์ ํ•ฉํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ๊ณผ ํ—Œ๋ฒ•์˜ ๊ฐœ์ • (Upgrading the Protocol & Constitution)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ •์‹ ์†Œ์Šค ์ฝ”๋“œ ๋ฐ ํ—Œ๋ฒ•์œผ๋กœ ๊ทœ์ •๋˜๋Š” ํ”„๋กœํ† ์ฝœ์˜ ์ ˆ์ฐจ๋ฅผ ๊ทœ์ •ํ•˜๋ฉฐ, ๋‹ค์Œ์˜ ์ ˆ์ฐจ๋กœ ๊ฐœ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ ์•ฝ๊ด€์˜ ๊ฐœ์ •์„ ์ œ์•ˆํ•˜๊ณ  17/21 ์Šน์ธ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  2. ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ 17/21 ์Šน์ธ์„ 30์ผ๊ฐ„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ์ƒˆ ์•ฝ๊ด€์˜ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑฐ๋ž˜์— ์„œ๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ ์•ฝ๊ด€์˜ ๋ณ€ํ™”๋ฅผ ๋ฐ˜์˜ํ•˜๋„๋ก ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์„ ์ฑ„ํƒํ•˜๋ฉฐ, git ์ปค๋ฐ‹์˜ ํ•ด์‹œ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ์— ์ด๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ 17/21 ์Šน์ธ์„ 30์ผ๊ฐ„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  6. ์ฝ”๋“œ ๋ณ€๊ฒฝ์€ 7์ผ๊ฐ„์˜ ์†Œ์Šค์ฝ”๋“œ ์ ์šฉ ์œ ์˜ˆ๊ธฐ๊ฐ„์„ ์ฃผ๋ฉฐ, 7์ผ์ด ์ง€๋‚œ ์ดํ›„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  7. ์ƒˆ ์ฝ”๋“œ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๋Š” ๊ฐ•์ œ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋ณธ ์„ค์ •์— ๋”ฐ๋ฅด๋ฉด, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ์ž‘์—…์€ 23๋‹ฌ์ด ๊ฑธ๋ฆฌ๋ฉฐ, ํ—Œ๋ฒ•์˜ ๊ฐœ์ •์ด ํ•„์š” ์—†๋Š” ์น˜๋ช…์ ์ด์ง€ ์•Š์€ ๋ฒ„๊ทธ์˜ ์ˆ˜์ •์€ 12๋‹ฌ์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์‘๊ธ‰ ๋ณ€๊ฒฝ (Emergency Changes)

์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ๋‚˜ ๊ณต๊ฒฉ์ž๋กœ ์ธํ•œ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ๊ณผ์ •์„ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๊ฑฐ๋‚˜ ์น˜๋ช…์ ์ด์ง€ ์•Š์€ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ํ—Œ๋ฒ•์— ์–ด๊ธ‹๋‚ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ€์ƒ ๋จธ์‹  (Scripts & Virtual Machines)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ธ์ฆ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ณ„์ •์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •์„ ์กฐ์ •ํ•˜๋Š” ์ตœ์ดˆ์ด์ž ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์™€ ๊ฐ€์ƒ ๋จธ์‹ (virtual machine)์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์€ EOS.IO์˜ ๊ธฐ์ˆ  ์„ค๊ณ„๋กœ๋ถ€ํ„ฐ ๋…๋ฆฝ๋œ ์„ธ๋ถ€ ๊ตฌํ˜„ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์–ด๋– ํ•œ ์–ธ์–ด๋‚˜ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๋Š” ์ƒŒ๋“œ๋ฐ•์Šค ์ฒ˜๋ฆฌ๋˜๋ฉฐ ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์ด๋“ ์ง€ EOS.IO ์†Œํ”„ํŠธ์›จ์–ด API์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ‚ค๋งˆ ์ •์˜ ๋ฉ”์‹œ์ง€ (Schema Defined Messages)

๊ณ„์ • ๊ฐ„์˜ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋Š” ๋ธ”๋ก์ฒด์ธ ํ•ฉ์˜ ์ƒํƒœ์˜ ์ผ๋ถ€์ธ ์Šคํ‚ค๋งˆ(schema)์— ๋”ฐ๋ผ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ด ์Šคํ‚ค๋งˆ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ JSON ํ˜•์‹์˜ ๋ฉ”์‹œ์ง€ ์‚ฌ์ด์˜ ๊ฒฝ๊ณ„ ์—†๋Š”(seamless) ๋Œ€ํ™”๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์Šคํ‚ค๋งˆ ์ •์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Schema Defined Database)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋Š” ์œ ์‚ฌํ•œ ์Šคํ‚ค๋งˆ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ €์žฅ๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” JSON์œผ๋กœ ์ฒ˜๋ฆฌ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํšจ์œจ์ ์ธ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ์ €์žฅ ๊ด€๋ฆฌ๋˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ธ์ฆ ๋ถ„๋ฆฌ (Separating Authentication from Application)

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ํšจ์œจ์˜ ๊ทน๋Œ€ํ™”์™€ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ(transaction log)๋กœ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ(application state)๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•  ๋•Œ์˜ ๊ณผ๋‹ค ์—ฐ์‚ฐ( computational debt)์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ, EOS.IO๋Š” ์ธ์ฆ ๋ฐฉ๋ฒ•(authentication logic)์„ ์„ธ ๊ฐ€์ง€๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฉ”์‹œ์ง€์˜ ๋‚ด์  ์ผ๊ด€์„ฑ(internal consistency) ๊ฒ€์ฆ
  2. ๋ชจ๋“  ์ „์ œ ์กฐ๊ฑด(preconditions )์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
  3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ( application state)์˜ ๋ณ€๊ฒฝ

๋ฉ”์‹œ์ง€์˜ ๋‚ด์  ์ผ๊ด€์„ฑ ๊ฒ€์ฆ(internal consistency)์€ ์ฝ๊ธฐ ์—ฐ์‚ฐ์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๋ธ”๋ก์ฒด์ธ ์ƒํƒœ(blockchain state)์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ๋Œ€ํ•œ์˜ ๋ณ‘๋ ฌ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ํ•„์š” ์ž”์•ก(required balance)๊ณผ ๊ฐ™์€ ์ „์ œ ์กฐ๊ฑด์„ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์€ ์ฝ๊ธฐ ์—ฐ์‚ฐ์ด๋ฏ€๋กœ ์ด๊ฒƒ์€ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค์ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ์˜ ๋ณ€๊ฒฝ๋งŒ ์“ฐ๊ธฐ ์ ‘๊ทผ์„ ์š”๊ตฌํ•˜๊ณ , ์ด๊ฒƒ์€ ๊ฐ๊ฐ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋งˆ๋‹ค ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ(authentication)์€ ๋ฉ”์‹œ์ง€์˜ ์ ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ์ฝ๊ธฐ ์—ฐ์‚ฐ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹ค์ œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๊ณ„์‚ฐ์€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ํŠธ๋žœ์žญ์…˜์ด ๋ธ”๋ก์ฒด์ธ์— ํฌํ•จ๋˜์—ˆ๋‹ค๋ฉด ๋” ์ด์ƒ ์ธ์ฆ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹  ๋…๋ฆฝ ์•„ํ‚คํ…์ฒ˜ (Virtual Machine Independent Architecture)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ชฉ์ ์€ ๋‹ค์ˆ˜์˜ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ง€์›ํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ณธ ๋ฐฑ์„œ์—์„œ๋Š” ํŠน์ • ์–ธ์–ด๋‚˜ ๊ฐ€์ƒ๋จธ์‹ ์— ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์— ๊ด€ํ•˜์—ฌ ๊ธฐ์ˆ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ˜„์žฌ EOS.IO ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ๋ฐ˜ ๋ธ”๋ก ์ฒด์ธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๊ธฐ ์œ„ํ•ด ํ‰๊ฐ€ ์ค‘์ธ ๊ฐ€์ƒ ๋จธ์‹ ์€ 2๊ฐœ์ž…๋‹ˆ๋‹ค.

์›น์–ด์…ˆ๋ธ”๋ฆฌ (WASM; Web Assembly)

์›น ์–ด์…ˆ๋ธ”๋ฆฌ๋Š” ๊ณ ์„ฑ๋Šฅ์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ƒˆ๋กœ์ด ๋“ฑ์žฅํ•œ ์›น ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•˜์—ฌ ๊ฒฐ์ •๋ก ์ ์ด๋ฉฐ ์ƒŒ๋“œ๋ฐ•์Šค์ธ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์–ด์…ˆ๋ธ”๋ฆฌ์˜ ์žฅ์ ์€ ์—…๊ณ„์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์ง€์›์„ ๋ฐ›๋Š” ๊ฒƒ๊ณผ ์นœ์ˆ™ํ•œ ์–ธ์–ด์ธ C๋‚˜ C++๋กœ ์ปจํŠธ๋ ‰ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋”๋ฆฌ์›€ ๊ฐœ๋ฐœ์ž๋“ค์€์›น ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์ƒŒ๋“œ๋ฐ•์‹ฑ(sandboxing)ํ•˜๊ณ  ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ Ethereum flavored Web Assembly (EWASM) ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. EWASM์€ EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์‰ฝ๊ฒŒ ์ ์šฉํ•˜๊ณ  ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋”๋ฆฌ์›€ ๊ฐ€์ƒ ๋จธ์‹  (EVM; Ethereum Virtual Machine)

์ด ๊ฐ€์ƒ๋จธ์‹ ์€ ํ˜„์กดํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์Šค๋งˆํŠธ ์ปจํŠธ๋ ‰ํŠธ๋ฅผ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ๋“ค์˜ ์ž‘์—…๋ฌผ์„ EOS.IO ๋ธ”๋ก์ฒด์ธ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EVM์˜ ์ปจํŠธ๋ ‰ํŠธ๋Š” ์ƒŒ๋“œ๋ฐ•์Šค ์•ˆ์—์„œ ๊ตฌ๋™๋˜๋ฉฐ, ์•ฝ๊ฐ„์˜ ์กฐ์ •์„ ๊ฑฐ์น˜๋ฉด EOS.IO์˜ ๋ธ”๋ก์ฒด์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ ๊ฐ„ ํ†ต์‹  (Inter Blockchain Communication)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ธ”๋ก์ฒด์ธ ๊ฐ„ ํ†ต์‹ ์ด ์‰ฝ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”์‹œ์ง€ ์กด์žฌ ์ฆ๋ช…๊ณผ ๋ฉ”์‹œ์ง€ ์ˆœ์„œ ์ฆ๋ช…์˜ ์ƒ์„ฑ์„ ์†์‰ฝ๊ฒŒ ํ•จ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฆ๋ช…๋“ค์€ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์„ ๊ฐ์‹ธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ ๊ฐ„ ํ†ต์‹ ๊ณผ ์ฆ๋ช… ๊ฒ€์ฆ ๊ณผ์ •์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋กœ๋ถ€ํ„ฐ ์€๋‹‰๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ๊ณผ ๊ด€๋ จ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์•„ํ‚คํ…์ฒ˜์™€ ๊ฒฐํ•ฉ๋œ ์ด๋Ÿฌํ•œ ์ฆ๋ช…์€ ๋ธ”๋ก ๊ฐ„ ํ†ต์‹  ๋ฐ ์ฆ๋ช… ๊ฒ€์ฆ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋Ÿ‰ํ™”๋œ ํด๋ผ์ด์–ธํŠธ ๊ฒ€์ฆ(LCV)์„ ์œ„ํ•œ ๋จธํด ์ฆ๋ช… (Merkle Proofs for Light Client Validation)

ํด๋ผ์ด์–ธํŠธ๋“ค์ด ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์„ ๋•Œ, ๋‹ค๋ฅธ ๋ธ”๋ก์ฒด์ธ๋“ค๊ณผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๋ชจ๋“  ๊ฑฐ๋ž˜์†Œ๋Š” ์ „์ฒด ๋ธ”๋ก์ฒด์ธ ์ค‘ ๊ฑฐ๋ž˜์†Œ์˜ ์ž…/์ถœ๊ธˆ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ด€๋ฆฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๋ž˜์†Œ ์ฒด์ธ(exchange chain)์˜ ์ž…๊ธˆ์— ๋Œ€ํ•œ ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋จธํด ์ฆ๋ช…(lightweight merkle proofs of deposit)์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ธ”๋ก ์ƒ์‚ฐ์ž ์ „์ฒด๋ฅผ ์‹ ๋ขฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์ ์–ด๋„ ํ•ด๋‹น ์ฒด์ธ์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๋“ค์€ ๋‹ค๋ฅธ ๋ธ”๋ก์ฒด์ธ๊ณผ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์ตœ์†Œํ•œ์˜ ์—ฐ์‚ฐ ๋ถ€๋‹ด์„ ๊ฐ๋‹นํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

LCV(๊ฒฝ๋Ÿ‰ํ™”๋œ ํด๋ผ์ด์–ธํŠธ ๊ฒ€์ฆ)์˜ ๋ชฉํ‘œ๋Š” ์ƒ๋Œ€์  ๊ฒฝ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ๋ณด๊ณ  ์žˆ๋Š” ๋ˆ„๊ตฌ๋“ ์ง€ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ๋Œ€์  ๊ฒฝ๋Ÿ‰ ์ฆ๋ช…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ์–ด๋–ค ๋ธ”๋ก์— ํฌํ•จ๋˜์–ด ์žˆ๊ณ , ๊ทธ ๋ธ”๋ก์ด ๋ธ”๋ก์ฒด์ธ์˜ ์ธ์ฆ ์ด๋ ฅ(verified history)์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๋น„ํŠธ์ฝ”์ธ์€ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์—ฐ 4MB ๊ฐ€๋Ÿ‰์˜ ๋ธ”๋ก ํ—ค๋”์˜ ๋ชจ๋“  ๊ธฐ๋ก์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€์ •ํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์˜ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๋‹น 10๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ์œ ํšจํ•œ ์ฆ๋ช…(valid proof)์€ 512 ๋ฐ”์ดํŠธ๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. 10๋ถ„์˜ ๋ธ”๋ก ๊ฐ„๊ฒฉ์„ ๊ฐ€์ง€๋Š” ๋ธ”๋ก์ฒด์ธ์—์„œ ์ด ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, 3์ดˆ์˜ ๋ธ”๋ก ๊ฐ„๊ฒฉ์„ ๊ฐ€์ง€๋Š” ๋ธ”๋ก์ฒด์ธ์—์„œ ์ด๊ฒƒ์€ "๊ฒฝ๋Ÿ‰"์ด ์•„๋‹™๋‹ˆ๋‹ค.

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํŠธ๋žœ์žญ์…˜์ด ํฌํ•จ ๋œ ์‹œ์  ์ดํ›„์— ๋˜๋Œ๋ฆด ์ˆ˜์—†๋Š” ๋ธ”๋ก ํ—ค๋”๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๊ฐ€๋ฒผ์šด ์ฆ๋ช…์„ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์— ๋ณด์ด๋Š” ํ•ด์‰ฌ ์—ฐ๊ฒฐ ๊ตฌ์กฐ(hash-linked structure)๋ฅผ ์ด์šฉํ•˜์—ฌ 1,024๋ฐ”์ดํŠธ ์ดํ•˜์˜ ์ฆ๋ช…(proof)์„ ๊ฐ€์ง€๋Š” ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ์กด์žฌ ์ฆ๋ช…(existence prove)์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ฆ ๋…ธ๋“œ(validating nodes )๊ฐ€ ์ง€๋‚œ ํ•˜๋ฃจ ๊ฐ„(2MB์˜ ๋ฐ์ดํ„ฐ)์˜ ๋ชจ๋“  ๋ธ”๋ก ํ—ค๋”๋ฅผ ์œ ์ง€ํ•œ๋‹ค ๊ฐ€์ •ํ•˜๋ฉด, ํŠธ๋žœ์žญ์…˜์˜ ๊ฒ€์ฆ์„ ์œ„ํ•ด์„œ 200๋ฐ”์ดํŠธ์˜ ์ฆ๋ช…์ด๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๋Ÿ‰ ๊ฒ€์ฆ ๋ฐฉ์‹์„ ๋„์ž…ํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ํ•ด์‰ฌ-์—ฐ๊ฒฐ(hash-linking)์ด ํฌํ•จ๋œ ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ถ”๊ฐ€ ๋น„์šฉ์€ ๋งค์šฐ ์ ์œผ๋ฏ€๋กœ, ์ด ๋ฐฉ์‹์œผ๋กœ ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์„ ์ด์œ ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ฒด์ธ์— ์†ํ•œ ์ฆ๋ช…๋“ค์„ ๊ฒ€์ฆํ•  ๊ฒฝ์šฐ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ ์‹œ๊ฐ„/๊ณต๊ฐ„/๋Œ€์—ญํญ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ธ”๋ก ํ—ค๋”(์—ฐ๊ฐ„ 420MB)์˜ ์ถ”์ (tracking)์€ ์ฆ๋ช…์˜ ํฌ๊ธฐ๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•˜๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ์˜ ํ—ค๋”๋งŒ ์ถ”์ ํ•˜๋Š” ๊ฒƒ์€ ์ตœ์†Œ ์žฅ๊ธฐ ์ €์žฅ์†Œ ๊ด€๋ฆฌ์™€ ์ฆ๋ช… ์‚ฌ์ด์˜ ์ ˆ์ถฉ(trade off)์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์•ˆ์œผ๋กœ, ๋ธ”๋ก์ฒด์ธ์€ ๊ณผ๊ฑฐ ์ฆ๋ช…์˜ ์ค‘๊ฐ„ ํ•ด์‰ฌ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ์ง€์—ฐ ํ‰๊ฐ€(lazy evaluation) ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ฆ๋ช…์€ ์ด๋ฏธ ์•Œ๋ ค์ง„ ํฌ์†Œ ํŠธ๋ฆฌ(sparse tree)์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ํฌํ•จํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ• ์ง€๋Š” ๋จธํด ์ฆ๋ช…์„ ์ฐธ์กฐํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ํฌํ•จํ•˜๋Š” ์™ธ๋ถ€ ๋ธ”๋ก์˜ ๋น„์œจ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

์ƒํ˜ธ ์—ฐ๊ฒฐ์ด ์ผ์ • ๋น„์œจ ์ด์ƒ ์ด๋ฃจ์–ด์ง„๋‹ค๋ฉด, ๋‹จ์ˆœํ•˜๊ฒŒ ๋‹ค๋ฅธ ์ฒด์ธ์˜ ๋ชจ๋“  ๋ธ”๋ก ๊ธฐ๋ก์„ ํ•ด๋‹น ์ฒด์ธ์ด ๊ฐ€์ง€๊ฒŒ ํ•˜์—ฌ ๊ฒ€์ฆ์„ ์œ„ํ•ด ๋‘ ์ฒด์ธ์„ ๋ณผ ํ•„์š”๊ฐ€ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ๊ด€์ ์—์„œ ์ฒด์ธ ๊ฐ„ ์ฆ๋ช…์˜ ๋น„์œจ์„ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ฒด์ธ ๊ฐ„ ํ†ต์‹ ์˜ ์ง€์—ฐ ์‹œ๊ฐ„ (Latency of Interchain Communication)

์™ธ๋ถ€์˜ ๋‹ค๋ฅธ ๋ธ”๋ก์ฒด์ธ๊ณผ ํ†ต์‹ ํ•  ๋•Œ, ๋ธ”๋ก ์ƒ์‚ฐ์ž๋Š” ์ ํ•ฉํ•œ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›์•„๋“ค์ด๊ธฐ ์ด์ „์— ๋‹ค๋ฅธ ๋ธ”๋ก์ฒด์ธ์—์„œ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ํ™•์ธ ์ƒํƒœ์— ๋Œ์ž…ํ•˜์˜€์Œ์„ 100% ํ™•์‹ ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. EOS.IO ์†Œํ”„ํŠธ์›จ์–ด์™€ 21๋ช…์˜ ์ƒ์‚ฐ์ž์™€ 3์ดˆ ๋ธ”๋ก ์ƒ์„ฑ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š” DPOS(์ง€๋ถ„ ์œ„์ž„ ์ฆ๋ช…; Delegated Proof-Of-Stake)๋ฅผ ์ด์šฉํ•  ๋•Œ ์•ฝ 45์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ํŠน์ • ์ฒด์ธ์˜ ๋ธ”๋ก ์ƒ์‚ฐ์ž๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ์ƒํƒœ(irreversibility)๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ฑฐ๋ž˜์†Œ์— ์ทจ์†Œํ•œ ์ž…๊ธˆ์ด ์Šน์ธ๋˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ผ์ด ์ผ์–ด๋‚˜๋ฉฐ ์ฒด์ธ์˜ ํ•ฉ์˜ ๊ฒ€์ฆ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์™„์ „์„ฑ ์ฆ๋ช… (Proof of Completeness)

๋ธ”๋ก์ฒด์ธ ์™ธ๋ถ€์˜ ๋จธํด ์ฆ๋ช…์„ ์‚ฌ์šฉํ•  ๋•Œ, ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰๋œ ๊ฒƒ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฌด์‹œํ•˜๊ฑฐ๋‚˜ ๋น ์ง„ ํŠธ๋žœ์žญ์…˜์ด ์—†์Œ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์ƒ๋‹นํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์˜ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์„ ๋ชจ๋‘ ์•Œ๊ณ  ์žˆ์Œ์„ ์ฆ๋ช…ํ•˜๊ธฐ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํŠธ๋žœ์žญ์…˜ ์ด๋ ฅ์˜ ๋นˆํ‹ˆ(gap)์ด ์—†์Œ์„ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. EOS.IO๋Š” ๋ชจ๋“  ๊ณ„์ •๊ฐ„ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์— ์ผ๋ ฌ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ํŠน์ • ๊ณ„์ •์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์œผ๋ฉฐ, ์ˆœ์„œ์— ๋งž์ถ”์–ด ์ฒ˜๋ฆฌ๋˜์—ˆ์Œ์„ ์ฆ๋ช…ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ์ผ๋ ฌ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก  (Conclusion)

EOS.IO ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฒ€์ฆ๋œ ๊ฐœ๋…๊ณผ ์‹ค์งˆ์ ์ธ ๊ฒฝํ—˜์„ ํ†ตํ•ด ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ์˜ ๊ทผ๋ณธ์ ์ธ ๋ฐœ์ „์„ ๋Œ€ํ‘œํ•˜๋Š” ์ œํ’ˆ์ž…๋‹ˆ๋‹ค. ์ด ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ „ ์„ธ๊ณ„์  ๊ทœ๋ชจ์˜ ๋ธ”๋ก์ฒด์ธ์˜ ํƒˆ์ค‘์•™ํ™” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์šด์˜(governing)ํ•˜๋Š” ์ „์ฒด์ ์ธ ์ฒญ์‚ฌ์ง„์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.