SymSensus KOR

SymSensus์˜ ํŠน์ง•

SymSensus๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • SymSensus์˜ ์„ค๊ณ„๋Š” ๊ฒŒ์ž„์ด๋ก ์— ๊ธฐ๋ฐ˜ํ•˜๊ณ  ์žˆ๋‹ค. ํŠนํžˆ ์‚ฌํšŒ์„ ํƒ์ด๋ก ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ •๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตฌ์กฐ์„ค๊ณ„(Mechanism Design)๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜์˜€๋‹ค.

  • SymSensus๋Š” ๊ฑฐ๋ถ€๊ถŒ(Veto)์„ ํฌํ•จํ•œ ํˆฌํ‘œ๋ฐฉ์‹์˜ PBFT(Practical Byzantine Fault Tolerant)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ํ•ฉ์˜ํ•˜์—ฌ ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๋Š” Warrant Node๋Š” A, B ๋‘๊ฐœ์˜ ๊ทธ๋ฃน์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ A๊ทธ๋ฃน์€ ์ง‘๋‹จ ๊ฑฐ๋ถ€๊ถŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค

  • B๊ทธ๋ฃน์€ Work Node(ํ•ฉ์˜์— ์ฐธ์—ฌํ•˜์ง€ ์•Š๋Š” Full Node)์ค‘์—์„œ Autonomous Bench Marking Test๋ฅผ ํ†ตํ•˜์—ฌ ์„ ๋ฐœํ•œ๋‹ค.

  • ๊ธฐ์กด ๋ธ”๋ก์ฒด์ธ์˜ ํ•ฉ์˜๋ฐฉ์‹๊ณผ ๋‹ฌ๋ฆฌ ๋ธ”๋ก์ƒ์„ฑ ์‹œ ์ฝ”์ธ์ด ๋ฐœํ–‰๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋„คํŠธ์›Œํฌ ๊ธฐ์—ฌ๋„๋ฅผ ์ธก์ •ํ•˜์—ฌ 1์ผ 1ํšŒ ์ฝ”์ธ์ด ๋ถ„๋ฐฐ๋œ๋‹ค.

  • Primary ๋…ธ๋“œ๋Š” ๋งค ๋ธ”๋ก ๋งˆ๋‹ค ๋ฌด์ž‘์œ„๋กœ ๊ฒฐ์ •๋œ๋‹ค.

  • Multi Block ํ•ฉ์˜๋ฅผ ์ง€์›ํ•œ๋‹ค.

  • SymSensus ์ „์šฉ ํ•ฉ์˜์šฉ ํ”„๋กœํ† ์ฝœ(N2N)์„ ์ด์šฉํ•˜์—ฌ Node๊ฐ„์— ํ†ต์‹ ํ•œ๋‹ค.

SymSensus ์•Œ๊ณ ๋ฆฌ์ฆ˜

SymSensus๋Š” PBFT๋ฅผ ๋ธ”๋ก์ฒด์ธ์— ์ ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•œํ˜•ํƒœ๋กœ ๋ณ€ํ˜•ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ๋‹ค์ˆ˜์˜ Node๋กœ ๊ตฌ์„ฑ๋œ Blockchain Network์—์„œ ํ•ฉ์˜ํ•˜์—ฌ ๋ธ”๋ก์ƒ์„ฑ์„ ๋‹ด๋‹นํ•˜๋Š” Node๋“ค์„ Warrant Node๋ผ ์ •์˜ํ•œ๋‹ค. Warrant Node๋Š” F๊ฐœ์˜ ์•…์˜์ ์ธ Node๋ฅผ ๊ฒฌ๋””๊ธฐ ์œ„ํ•œ 3F + 1 ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ A๊ทธ๋ฃน๊ณผ B๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋‰˜์–ด ์šด์˜๋œ๋‹ค.

์ƒˆ๋กœ์šด ๋ธ”๋ก์ด ์ƒ์„ฑ๋˜๊ธฐ์œ„ํ•ด์„œ๋Š” B๊ทธ๋ฃน์—์„œ ๋ธ”๋ก์„ ์ œ์•ˆํ•˜๊ณ  A๊ทธ๋ฃน์˜ ๋™์˜๋ฅผ ์–ป์–ด์•ผ๋งŒ ํ•œ๋‹ค. ๊ฐ ๊ทธ๋ฃน์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • A ๊ทธ๋ฃน์€ F+1 ๊ฐœ์˜ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ Verifier Node์˜ ์—ญํ•  ๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค. A ๊ทธ๋ฃน์€ SymVerse ์žฌ๋‹จ ์šด์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ์„ ์ถœ๋œ๋‹ค.

  • B ๊ทธ๋ฃน์€ 2F ๊ฐœ์˜ Node๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์ด์ค‘ 1๊ฐœ์˜ Primary Node๋Š” ๋ธ”๋ก ์ƒ์„ฑ์„ ์ œ์•ˆํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” Verifier Node์˜ ์—ญํ• ์„ ํ•œ๋‹ค. B๊ทธ๋ฃน์€ ์‹ค์‹œ๊ฐ„ BMT๋ฅผ ํ†ตํ•˜์—ฌ ์„ ์ถœํ•œ๋‹ค.

Warrant Node๋Š” ์—ญํ• ์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋‰œ๋‹ค.

  • Primary Node : B๊ทธ๋ฃน์— ์†ํ•œ Node์ค‘ ๋ธ”๋ก์ƒ์„ฑ์„ ์ œ์•ˆํ•˜๋Š” ๋…ธ๋“œ์ด๋‹ค.

  • Verifier Node : Primary Node๋ฅผ ์ œ์™ธ ํ•œ ๋ชจ๋“  Warrant Node๋Š” Verifier Node๋กœ์„œ ์ œ์•ˆ๋œ ๋ธ”๋ก์„ ๊ฒ€์ฆํ•œ๋‹ค.

ํ•ฉ์˜ ์‹œ A๊ทธ๋ฃน ๋…ธ๋“œ ์ˆ˜์˜ 1/2+1์ด ๋„˜๋Š” ์˜๊ฒฌ์€ A๊ทธ๋ฃน ์ „์ฒด์˜ ์˜๊ฒฌ์œผ๋กœ ๋ณด๊ณ  ํ•ฉ์˜ํ•œ๋‹ค. ์ด๋Š” ๋™์ผํ•œ ํˆฌํ‘œ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ง‘๋‹จ์ ์ธ ๊ฑฐ๋ถ€๊ถŒ(Veto)์„ ํ–‰์‚ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค.

  • ๊ฐ€๊ฒฐ ์กฐ๊ฑด (ํ•ฉ์˜๊ฐ€ ๋˜๋Š” ์กฐ๊ฑด)

    A๊ทธ๋ฃน ๋…ธ๋“œ ์ˆ˜์˜ 1/2+1 ๊ฐœ ๋…ธ๋“œ๊ฐ€ ์ฐฌ์„ฑํ•˜๊ณ  B๊ทธ๋ฃน ๋…ธ๋“œ ์ˆ˜์˜ 1/2๊ฐœ ์ด์ƒ์˜ Node๊ฐ€ ์ฐฌ์„ฑํ•˜๋ฉด ํ•ฉ์˜๋œ ๊ฒƒ์œผ๋กœ ๋ณธ๋‹ค.

  • ๋ถ€๊ฒฐ ์กฐ๊ฑด (ํ•ฉ์˜๊ฐ€ ์•ˆ๋˜๋Š” ์กฐ๊ฑด)

    • A๊ทธ๋ฃน ๋…ธ๋“œ ์ˆ˜์˜ 1/2+1 ๊ฐœ ๋…ธ๋“œ๊ฐ€ ๋ฐ˜๋Œ€ํ•˜๋Š” ๊ฒฝ์šฐ (F/2+1 ๊ฐœ Node์˜ ๋ฐ˜๋Œ€)

    • B๊ทธ๋ฃน ๋…ธ๋“œ ์ˆ˜์˜ 1/2+1 ๊ฐœ ๋…ธ๋“œ๊ฐ€ ๋ฐ˜๋Œ€ํ•˜๋Š” ๊ฒฝ์šฐ (F+1 ๊ฐœ Node์˜ ๋ฐ˜๋Œ€)

๋ธ”๋ก ์ƒ์„ฑ์€ Propose, Verify, Pre-Commit, Commit ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ฒ˜ ์ƒ์„ฑ ๋ฐ ํ™•์ •๋œ๋‹ค. ๊ฐ ๋‹จ๊ณ„ ๋ณ„๋กœ ๊ฐ€๊ฒฐ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด ๊ฐ€๊ณ  ๋ถ€๊ฒฐ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜์ด์ƒ ๋งŒ์กฑํ•˜๋ฉด Propose ๋‹จ๊ณ„๋ถ€ํ„ฐ ์ƒˆ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

  • Propose ๋‹จ๊ณ„๋Š” Primary๊ฐ€ ์œ ํšจํ•œ ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜์—ฌ ๋‹ค๋ฅธ ๋…ธ๋“œ์—๊ฒŒ ์ œ์•ˆํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค. Primary๋Š” Transaction, Reward๋“ฑ์˜ ์ง‘ํ•ฉ์„ ์ด์šฉํ•˜์—ฌ ๋ธ”๋ก์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ ํฌํ•จํ•œ Propose Message๋ฅผ ๋ชจ๋“  Warrant Node์— ์ „ํŒŒํ•œ๋‹ค. (Transaction์˜ ๊ณต์œ ๋Š” Block์ƒ์„ฑ ์ด์ „์— ์ด๋ฃจ์–ด ์ง„๋‹ค)

  • Verify ๋‹จ๊ณ„๋Š” ์ œ์•ˆ๋ฐ›์€ ๋ธ”๋ก์„ ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค. Verify ๋‹จ๊ณ„์—์„œ๋Š” ๋ธ”๋ก์ƒ์„ฑ์„ ์ œ์•ˆํ•œ Node๊ฐ€ ์ •๋‹นํ•œ์ง€ ํ™•์ธ ํ›„, ์ œ์•ˆ๋œ ๋ธ”๋ก์˜ ์œ ํšจ์„ฑ์„ ์‚ฌ์ „์— ๊ณต์œ ํ•˜๊ณ  ์žˆ๋˜ Transaction์˜ ์ง‘ํ•ฉ์„ ํ†ตํ•ด ๊ฒ€์ฆํ•œ๋‹ค. ๊ฒ€์ฆ์„ ๋งˆ์นœ Node๋Š” ์‹ ๊ทœ ๋ธ”๋ก ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ฐฌ์„ฑ ๋˜๋Š” ๋ฐ˜๋Œ€ ์˜๊ฒฌ์„ ํฌํ•จํ•œ Message๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์ „ํŒŒํ•œ๋‹ค. ์‹ ๊ทœ ๋ธ”๋ก ์ƒ์„ฑ์„ ๋™์˜ํ•˜๋Š” Node๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„์ž…ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ Node์˜ Message๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

  • Pre-Commit ๋‹จ๊ณ„์—์„œ Primary๋Š” ์ฐฌ์„ฑํ•œ ๋…ธ๋“œ์˜ ์„œ๋ช…์„ ์ทจํ•ฉํ•˜๊ณ  ํ•˜๋‚˜์˜ ์„œ๋ช…์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์—๊ฒŒ Pre-Commit Message๋ฅผ ๋ณด๋‚ธ๋‹ค.

  • Commit ๋‹จ๊ณ„์—์„œ๋Š” ์ œ์•ˆ๋œ ๋ธ”๋ก์„ ํ™•์ • ์ง“๋Š”๋‹ค. ๋ธ”๋ก์„ ํ™•์ • ์ง“๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์˜ Commit Message๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ๊ฐ€๊ฒฐ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๊ณ  ์ „ํŒŒํ•œ๋‹ค.

FE-VoW ์•Œ๊ณ ๋ฆฌ์ฆ˜

VoW(View of Warrant)๋Š” B๊ทธ๋ฃน ์ค‘์—์„œ Primary Node๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด Node๋“ค์˜ ๊ทธ๋ฃน์ด๋ฉฐ V๋กœ ํ‘œ๊ธฐํ•œ๋‹ค.

FE-VoW๋Š” SymSensus์™€ ๊ฐ™์ด ๋™์ž‘ํ•˜๋ฉฐ Primary Node ์„ ์ถœ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ, ํ•œ๋ฒˆ์— ๋‹ค์ˆ˜ Node์˜ ์žฅ์•  ์—ฌ๋ถ€๋ฅผ ํ•ฉ์˜ํ•˜๊ธฐ ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค. FE-VoW๋Š” ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ์‹œ์ž‘๋˜๋ฉฐ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ๋ฌดํ•œ ๋ฐ˜๋ณต๋œ๋‹ค.

  • VoW ํ•ฉ์˜ ์‹œ์ž‘

    Warrant Node๋Š” ๋‹ค์Œ ์ด๋ฒคํŠธ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ ๋ฐœํ–‰ํ•˜๋ฉด VoW ํ•ฉ์˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

    • Primary Node๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ์ด์ƒ Propose ๋‚˜ Pre-Commit Message๋ฅผ ๋ณด๋‚ด์ง€ ์•Š์„ ์‹œ

    • Warrant Node์˜ ์—ฐ๊ฒฐ ์ƒํƒœ ๋ณ€๊ฒฝ ์‹œ

    • Suggest Message๋ฅผ 2/3+1 ์ด์ƒ์˜ Warrant Node์—์„œ ์ˆ˜์‹  ์‹œ

    ๊ฐ๊ฐ์˜ Warrant Node๋Š” ํ•ฉ์˜ ์‹œ์ž‘ ์‹œ์ ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

  • VoW ํ•ฉ์˜ ์ง„ํ–‰

Warrant Node๋Š” VoW ํ•ฉ์˜๊ฐ€ ์‹œ์ž‘๋˜๋ฉด Main-Block์„ ํฌํ•จํ•œ ๋ชจ๋“  Block์˜ ์ƒ์„ฑ์„ ์ค‘์ง€ํ•œ๋‹ค. B๊ทธ๋ฃน์—์„œ F๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋…ธ๋“œID(SymID)๊ฐ€ ๋‹ด๊ธด V๋ฅผ ์ƒ์„ฑํ•œ๋‹ค์Œ ๋‹ค๋ฅธ Warrant Node๋“ค์—๊ฒŒ Suggest Message๋ฅผ ํ•ฉ์˜ ์ข…๋ฃŒ์‹œ๊นŒ์ง€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ˜๋ณตํ•˜์—ฌ Multicasting ํ•œ๋‹ค. ์ด๋•Œ VoW ํ•ฉ์˜์— ์ฐธ์—ฌํ•˜์ง€ ์•Š๋Š” B๊ทธ๋ฃน์˜ Node๋Š” F๋กœ ๊ฐ„์ฃผํ•œ๋‹ค. ๋˜ํ•œ ํ•ฉ์˜ ์™„๋ฃŒ ์ „๊นŒ์ง€ ์ž์‹ ์ด ๋งŒ๋“  V๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

  • VoW ํ•ฉ์˜ ์ข…๋ฃŒ

    ๋‹ค์Œ ๋ชจ๋“  ์กฐ๊ฑด์ด ๋งŒ์กฑํ•˜๋ฉด VoW ํ•ฉ์˜๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค.

    • 2/3+1 ์ด์ƒ์˜ Warrant Node๊ฐ€ VoW ํ•ฉ์˜์— ์ฐธ์—ฌํ•ด์•ผ ํ•œ๋‹ค.

    • V์— ํฌํ•จ๋œ Node๋ณ„๋กœ ํ•ฉ์˜๊ฐ€ ๋˜์–ด์•ผํ•œ๋‹ค.

    • V์— ํฌํ•จ๋œ ์ „์ฒด Node์˜ ์ˆ˜๋Š” B๊ทธ๋ฃน์˜ ์ตœ์†Œ ์ •์กฑ ์ˆ˜๋ฅผ ๋„˜์–ด์•ผํ•œ๋‹ค.

    • ์ผ์ •์‹œ๊ฐ„ ๋™์•ˆ ์ƒˆ๋กœ์šด V๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค. (V์— ํฌํ•จ๋œ Node๋ชฉ๋ก์ด ๊ฐ™์œผ๋ฉด ๊ฐ™์€ V๋กœ ๋ณธ๋‹ค.)

  • Primary ์„ ์ถœ

    ๋…ธ๋ฅด์›จ์ด์˜ ์ˆ˜ํ•™์ž๋Š” Hylland๋Š” ํˆฌํ‘œ๋ฐฉ์‹๊ณผ ๊ด€๋ จํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ฆฌ๋ฅผ ํ–ˆ๋‹ค. โ€œ์‹œ๋ฏผ์ฃผ๊ถŒ์‚ฌํšŒ์—์„œ ํ™•๋ฅ ์ ์ธ ๋…์žฌ์ž(๋น„ํ† ๊ถŒ)์˜ ํˆฌํ‘œ๋ฐฉ์‹์€ ์–ด๋Š ๋ˆ„๊ตฌ๋„ ํˆฌํ‘œ๊ฒฐ๊ณผ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์ด๋“์„ ์–ป์„ ์ˆ˜ ์—†๋‹ค.โ€ Hylland์˜ ๊ฒฐ๊ณผ๋ฅผ BFT์— ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ฆฌ๋ฅผ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

    โ€œVeto๊ถŒ์ด ์กด์žฌํ•˜๋Š” BFT ํ•ฉ์˜๊ณผ์ •์—์„œ Primary ๋…ธ๋“œ(ํ™•๋ฅ ์  ๋…์žฌ์ž)๊ฐ€ ๋ธ”๋ก์„ ์ƒ์„ฑํ•  ๋•Œ ํˆฌํ‘œ์ฐธ๊ฐ€์ž๋“ค์€ ํ•ฉ์˜๊ณผ์ •์„ ์กฐ์ž‘ํ•˜์—ฌ ์ด๋“์„ ์–ป์„ ์ˆ˜ ์—†๋‹คโ€

    SymSensus๋Š” ์ตœ์ข… Main-Block์˜ Hash๊ฐ’์„ Seed๊ฐ’์œผ๋กœ ํ•œ Random Number๋กœ VoW ์ค‘์—์„œ Primary Node๋ฅผ ์„ ์ •๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋งค ๋ธ”๋ก๋งˆ๋‹ค Randomํ•˜๊ฒŒ Primary๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค.

N2N Protocol

N2N(Node To Node) ํ”„๋กœํ† ์ฝœ์€ Warrant Node๊ฐ„์˜ ํ•ฉ์˜ ์‹œ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ†ต์‹ ์„ ์ง€์›ํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

N2N ์€ TCP์ƒ์œ„ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ Warrant Boot Node์— ์ ‘์†ํ•˜์—ฌ ํ˜„์žฌ ํ™œ๋™์ค‘์ธ Warrant Node ๋ชฉ๋ก์„ ์–ป์–ด์˜ค๊ณ  ๊ฐ๊ฐ์˜ Warrant Node์™€ 1:1๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ†ต์‹ ํ•œ๋‹ค. ๋ชจ๋“  Warrant Node๋Š” Warrant Boot Node์˜ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

N2N์€ ๋‹ค์Œ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • Handshake

    SymID ๋ฐ ์ตœ์ข… Warrant Block์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ Warrant Node์˜ ์œ ํšจ์„ฑ์„ ํŒ๋‹จํ•˜๊ณ  ํ•ฉ์˜ ์ „์šฉ ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ handshake๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

  • Security (PKI)

    ๋ชจ๋“  Packet์„ ์ „์ž ์„œ๋ช…ํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.

  • Node Share

    ํ™œ๋™์ค‘์ธ Warrant Node ๋ชฉ๋ก์„ ์„œ๋กœ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • BMT

    ์‹ ๊ทœ๋กœ Warrant Node๋กœ ํ™œ๋™์„ ํฌ๋งํ•˜๋Š” Work Node๋ฅผ BMT ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • Reputation Management (Yellow list, Black list)

    ์žฅ์•  Node ๋ฐ ์•…์˜ ์ ์ธ Node๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ํ•ฉ์˜ ๋ฐ Block ์ƒ์„ฑ์— ์‹ ๋ขฐ์„ฑ๊ณผ ์ง€์†์„ฑ์„ ์ง€์›ํ•œ๋‹ค.

  • Node Management

    Warrant Node์ค‘ B๊ทธ๋ฃน์€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ๋…ธ๋“œ ๋ณ„๋กœ ์ž„๊ธฐ๊ฐ€ ์žˆ๊ณ  ์ด์— ๋Œ€ํ•œ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํŠน์ • ๊ธฐ๊ฐ„์— ํ™œ๋™ํ•˜๋Š” Warrant Node๋ฅผ ToW(Table of Warrant)๋กœ ์ •์˜ํ•˜๊ณ  ์ตœ์ข… ํ•ฉ์˜๋œ MainBlock Number๋ฅผ ๊ธฐ์ค€์œผ๋กœ Previous, Active, Next, Candidate๋กœ ๋‚˜๋‰˜์–ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

    • Previous : ์ด์ „์— ํ™œ๋™ํ•œ Warrant Node

    • Active : ํ˜„์žฌ ํ™œ๋™ ์ค‘์ธ Warrant Node

    • Next : ๋‹ค์Œ์— ํ™œ๋™ํ•  Warrant Node

    • Candidate : BMT ์ค‘์ธ Warrant Node

Warrant Node ์„ ์ถœ BMT

Warrant Node์˜ B๊ทธ๋ฃน์€ ์ž„๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํ™œ๋™ํ•œ๋‹ค. B๊ทธ๋ฃน์€ Work Node์ค‘ Warrant Node๊ฐ€ ๋˜๊ธฐ๋ฅผ ํฌ๋งํ•˜๋Š” Work Node ์ค‘์—์„œ BMT๋ฅผ ๊ฑฐ์ฒ˜ ์„ ๋ฐœํ•œ๋‹ค. (Not available in the current version)

Warrant Node ์ค‘ B๊ทธ๋ฃน ์„ ์ถœ์„ ์œ„ํ•œ BMT๋Š” ๋งค์ผ ์‹œํ–‰ํ•˜๊ณ  B๊ทธ๋ฃน Node ์ˆ˜์˜ 1/4+ฮฑ(์žฅ์•  ๋…ธ๋“œ)๊ฐœ Node๋ฅผ ์„ ์ถœํ•˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™œ๋™ ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

  1. ์ธ์ฆ์— ์ฐธ์—ฌํ•˜๋ ค๋Š” Work Node๋Š” Full Node์˜ ์กฐ๊ฑด์„ ๊ฐ–์ถ”์–ด์•ผํ•œ๋‹ค.

  2. BMT๋ฅผ ํ†ตํ•ด์„œ ์„ ์ถœ๋œ Node๋Š” 4์ผ๋™์•ˆ Warrant Node๋กœ ํ™œ๋™ํ•œ๋‹ค.

  3. ์ž„๊ธฐ๊ฐ€ ๋๋‚œ Warrant Node๋Š” Work Node๋กœ ํ™œ๋™ํ•œ๋‹ค.

ํ›„๋ณด ๋…ธ๋“œ ํ‰๊ฐ€

ํ›„๋ณด ๋…ธ๋“œ๊ฐ€ ํ˜„์žฌ ํ™œ๋™์ค‘์ธ Warrant Node์—๊ฒŒ BMT ์‹ ์ฒญํ•œ๋‹ค. ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ํ‰๊ฐ€ํ‘œ ๊ณต์œ  ๋ฐ ํ•ฉ์˜์— ์˜ํ•˜์—ฌ ์„ ์ถœ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ๋‹จ๊ณ„๋ณ„๋กœ ์„ ์ถœ ๋…ธ๋“œ ์ˆ˜๋ฅผ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ง„ํ–‰ํ•˜๋ฉฐ ํ˜„์žฌ ๋‹จ๊ณ„์—์„œ ์„ ์ถœ๋œ ๋…ธ๋“œ๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„ ํ‰๊ฐ€์˜ ๋Œ€์ƒ์ด ๋œ๋‹ค. Warrant Node๋กœ ์„ ์ถœ๋œ Node๋Š” ํ™œ๋™ ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ณด์ฆ๊ธˆ(Deposit)์„ ์ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.

์‹ ๊ทœ ๋…ธ๋“œ ์„ ์ถœ ๊ธฐ์ค€

  1. ํ‰ํŒ ํ‰๊ฐ€: ๊ธฐ์กด์— ์•…์˜ ์ ์ธ ํ™œ๋™์„ ํ•œ ์ด๋ ฅ์ด ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ๋ฐฐ์ œํ•œ๋‹ค.

  2. ๊ธฐ์—ฌ๋„ ํ‰๊ฐ€: ๋ณด์ฆ๊ธˆ(Deposit) ์ ˆ๋Œ€ ํ‰๊ฐ€

  3. ์ƒํ˜ธ์šด์šฉ์„ฑ ์‹œํ—˜(Inter-Operability Test) : Warrant Node๋กœ ํ™œ๋™ ํ•  ๋งŒํ•œ ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ‰๊ฐ€ํ•œ๋‹ค.

  4. ์ ํ•ฉ์„ฑ ์‹œํ—˜(Conformance test) : ํ•ฉ์˜์— ์ง์ ‘ ์ฐธ์—ฌ ํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ์—ญํ• ์„ ์ˆ˜ํ–‰ ํ•˜๋Š”์ง€ ํ‰๊ฐ€ ํ•œ๋‹ค.

  5. ์ตœ์ข… ํ‰๊ฐ€: ๋žœ๋ค

์ œ์™ธ ๋…ธ๋“œ ์„ ์ถœ ๊ธฐ์ค€

  1. ์ฐธ์—ฌํ•œ์ง€ ์˜ค๋ž˜๋œ Warrant Node ์ˆœ์œผ๋กœ ์ •ํ•œ๋‹ค. (์ฐธ์—ฌ์‹œ๊ธฐ๊ฐ€ ๋™์ผํ•œ ๋…ธ๋“œ๊ฐ€ ์—ฌ๋Ÿฟ์ธ ๊ฒฝ์šฐ ๋žœ๋คํ•˜๊ฒŒ ์ •ํ•œ๋‹ค.)

  2. ์žฅ์•  ๋…ธ๋“œ(ฮฑ)

์‹ ๊ทœ ๋…ธ๋“œ ์„ ์ถœ ์‹คํŒจ ์‹œ ์ฒ˜๋ฆฌ

Warrant Node ์„ ์ถœ BMT์— ์‹ ์ฒญํ•œ Work Node๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ BMT๋ฅผ ํ†ต๊ณผํ•œ Node์˜ ์ˆ˜๊ฐ€ ๋ถ€์กฑํ•  ์‹œ ๊ธฐ์กด Node๋“ค์˜ ์ž„๊ธฐ๋ฅผ ์—ฐ์žฅํ•˜์—ฌ ์šด์˜ํ•œ๋‹ค.

์•Œ๋ ค์ง„ ๋ธ”๋ก์ฒด์ธ ์ด์Šˆ(๊ณต๊ฒฉ) ๋Œ€์‘ ๋ฐฉ๋ฒ•

  • Nothing at stake(์ด๊ธฐ์ ์ธ ํˆฌํ‘œ ๋ฌธ์ œ)

    ํฌํฌ(๋ธ”๋ก ์ฒด์ธ์˜ ๋ถ„๊ธฐ)๋ฐœ์ƒ ์‹œ ์ง€๋ถ„์„ ๊ฐ€์ง„ ์ž๊ฐ€ ๋ชจ๋“  ํฌํฌ(fork)์— ํˆฌํ‘œํ•จ์œผ๋กœ์จ ์ž์‹ ์€ ์†ํ•ด๋ฅผ ๋ณด์ง€ ์•Š๊ฒŒ(nothing at stake)ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. SymVerse ๋ธ”๋ก์ฒด์ธ์—์„œ๋Š” fork๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • Bribe Attack(์ธ์ฆ ๋…ธ๋“œ ๋งค์ˆ˜ ๊ณต๊ฒฉ)

    ๋ธ”๋ก์ƒ์„ฑ์ž์—๊ฒŒ ์ธ์„ผํ‹ฐ๋ธŒ๋ฅผ ์ฃผ๊ณ  ์•…์˜์ ์ธ ๊ฑฐ๋ž˜๊ฐ€ ํฌํ•จ๋œ ๊ฑฐ๋ž˜๋‚ด์—ญ์„ ์ƒ์„ฑ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. SymVerse๋Š” ์ž„๊ธฐ๋ฅผ ๊ฐ€์ง„ ๋ณด์ฆ ๋…ธ๋“œ๋ฅผ ์šด์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฒฉ์ž๊ฐ€ 2/3+1๊ฐœ์˜ Warrant Node๋ฅผ ๋งค์ˆ˜ํ•˜๊ณ  ๋งค์ˆ˜๋œ Node๊ฐ€ ๋™์ผํ•œ ์‹œ๊ฐ„์— Warrant Node๋กœ ํ™œ๋™ํ•  ๋•Œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋Š” ๋งค์šฐ ์–ด๋ ต๋‹ค.

  • Coin Age Accumulation Attack

    ์ฝ”์ธ ๋ณด์œ  ๊ธฐ๊ฐ„์œผ๋กœ ๋ธ”๋ก์ƒ์„ฑ์ž๋ฅผ ์„ ์ •ํ•  ๊ฒฝ์šฐ ๋ฐœํ–‰ํ•œ๋‹ค. SymVerse์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • Denial of Service (์„œ๋น„์Šค ๊ฑฐ๋ถ€ ๊ณต๊ฒฉ)

    ๋‹ค์ˆ˜์˜ ์ž‘์€ ๊ธˆ์•ก์˜ ๊ฑฐ๋ž˜ ๋ฐœ์ƒ์œผ๋กœ ๊ฒ€์ฆ ์ž‘์—…์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ๊ณต๊ฒฉ์„ ๋งํ•œ๋‹ค. SymVerse์—์„œ๋Š” ์ˆ˜์ˆ˜๋ฃŒ ์ •์ฑ…์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค.

  • Sybil Attack(๋ถˆํ•„์š”ํ•œ ๊ฑฐ๋ž˜ ์ƒ์„ฑ ๊ณต๊ฒฉ)

    ๊ณต๊ฒฉ์ž๊ฐ€ ๊ฐ€์งœ ๋…ธ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ถˆํ•„์š”ํ•œ ๊ฑฐ๋ž˜๋ฅผ ๋งŒ๋“œ๋Š” ํ–‰์œ„๋กœ SymVerse์—์„œ๋Š” SymID๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  black list, yellow list์ •์ฑ…, work node ๊ฒ€์ฆ, warrant node ๊ฒ€์ฆ, primary node ์„ ์ถœ ์ •์ฑ… ๋“ฑ ๋‹ค์–‘ํ•œ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฉ์–ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์•…์˜ ์ ์ธ ๊ฑฐ๋ž˜๊ฐ€ ๋ธ”๋ก ์ƒ์„ฑ์ž๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ด์ค‘์ง€๋ถˆ

    SymVerse์—์„œ๋Š” ํŠน์ • ์‹œ์ ์— ํ•˜๋‚˜์˜ primary node ๋งŒ ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ด์ค‘ ์ง€๋ถˆ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • Transaction Malleability (๊ฑฐ๋ž˜ ๊ฐ€๋ณ€์„ฑ ๊ณต๊ฒฉ)

    ์ •์ƒ์ ์ธ ๊ฑฐ๋ž˜์— ํŠธ๋žœ์žญ์…˜ ID๋“ฑ์„ ์ˆ˜์ •ํ•˜์—ฌ ํ—ˆ์œ„ ๊ฑฐ๋ž˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ณต๊ฒฉ๋ฐฉ๋ฒ•์ด๋‹ค. SymVerse๋Š” ๋ชจ๋“  ๊ฑฐ๋ž˜ ๋‚ด์šฉ์„ ์„œ๋ช… ๋Œ€์ƒ ๋ฉ”์‹œ์ง€์— ํฌํ•จํ•˜๋ฏ€๋กœ ์›์ฒœ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

  • 51% (66.6%) Attack

    SymVerse๋Š” ์žฌ๋‹จ์ด ์ „์ฒด ๋ณด์ฆ ๋…ธ๋“œ์˜ 1/3+1๊ฐœ์˜ ๋ณด์ฆ ๋…ธ๋“œ๋ฅผ ์ง์ ‘ ์šด์˜ํ•˜๋ฏ€๋กœ ์›์ฒœ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์—†๋Š” ๊ณ„์ •์œผ๋กœ ์†ก๊ธˆ

    SymVere๋Š” Citizen Block์— ๋ชจ๋“  ์ด์šฉ์ž๊ฐ€ ๊ธฐ๋ก๋˜๋ฏ€๋กœ ์›์ฒœ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

Last updated