Hybrid Blockchain - beatoz/beatoz-go GitHub Wiki
์ผ๋ฐ์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด์๋ ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ ๋ฆฝ์ ์ธ ๋ธ๋ฆฟ์ง ์์คํ ์ด ํ์ํ๋ค.
์ด๋ฌํ ๋ธ๋ฆฟ์ง ์์คํ ๊ตฌ์กฐ๋ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์๋ ๋ณ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์์คํ ์ผ๋ก์ ๋ถ๊ฐํผํ๊ฒ ์ค์ํ์ ์์๋ฅผ ์ ์ฒด ์์คํ ๋ด๋ถ๋ก ํฌํจ์ํค๊ฒ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ๊ฐ์ ํ์ค์ํ๋ ๋ถ์ฐ ์์คํ ์์๋ ๋จ์ผ ์คํจ ์ง์ ์ด ์กด์ฌํ์ง ์๋๋ค. ํน์ ๋ ธ๋ ๋๋ ๋ ธ๋์ ์ผ๋ถ์ ์์คํ ์ฅ์ ๋๋ ๊ทธ์ ์คํ๋ ๋ฌธ์ ์ํฉ์ด ๋ฐ์ํ๋๋ผ๋, ์ ์ฒด ๋คํธ์ํฌ ์๋ ์ฌ๋ถ์๋ ์ํฅ์ ๋ฏธ์น์ง ๋ชปํ๋ค. ์ฆ ๋จ์ผ ์คํจ ์ง์ ์ด ์กด์ฌํ์ง ์๋๋ค. ๊ทธ๋ฌ๋ ์ค์ํ๋ ์์๊ฐ ํฌํจ๋ ๊ตฌ์กฐ์์ ์๋์ ๊ฐ์ด ๋ธ๋ฆฟ์ง ์์คํ ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ๋ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ์ ๊ทธ ์ฆ์ ๋์ด์ง๊ฒ ๋ ๊ฒ์ด๋ค. ์ฆ ๋ธ๋ฆฟ์ง ์์คํ ์ด ๋ธ๋ก์ฒด์ธ ์ฐ๊ฒฐ์ ๋จ์ผ ์คํจ ์ง์ ์ด ๋๋ค.
BEATOZ๋ Private Network(PrvNet) ์ Public Network (PubNet) ์ฌ์ด์ ์ฐ๊ฒฐ์ ์ํ ๋ธ๋ฆฟ์ง ์ญํ ์
BEATOZ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋
ธ๋์ ์ญํ ์ค ํ๋๋ก ํตํฉ ํ์๋ค.
์ด๋ฅผ ํตํด ๊ธฐ์กด ๋ธ๋ฆฟ์ง ์์คํ
์ญํ ์ ๋ถ์ฐ ์์คํ
์ ์ผ๋ถ๋ก ํตํฉํจ์ผ๋ก์ ์ค์ํ ์์๋ฅผ ์ต์ํ ํ์๋ค.
๋ฐ๋ผ์ PrvNet์ ์ด์ํ๋ ํ์ ๋ณ๋์ ๋ธ๋ฆฟ์ง ์์คํ
๊ตฌ์ถ ์์ด, ๋ธ๋ฆฟ์ง ๊ธฐ๋ฅ์ด ํ์ฑํ๋ BEATOZ ๋
ธ๋ ์ด์
๋๋ ์ด๋ฏธ ๋คํธ์ํฌ ์์ ์กด์ฌํ๋ ๊ณต๊ฐ ๋
ธ๋ ํ์ฉ์ ํตํ BEATOZ ๋คํธ์ํฌ ์ฐธ์ฌ ๋ง์ผ๋ก ๋ ๋คํธ์ํฌ ๊ฐ์ ์ํํ ์ปค๋ฎค๋์ผ์ด์
์ฑ๋์ ๊ตฌ์ถํ ์ ์๋ค.
BEATOZ ์ฐ๊ฒฐ ๋ฉ์ปค๋์ฆ์ ์ฅ์
- ์ค์ํ๋ ๋ธ๋ฆฟ์ง ์ ๊ฑฐ
๋ณ๋์ ๋ธ๋ฆฟ์ง ์์คํ ์ด ํ์ ์์ด ๋ณด์์ฑ๊ณผ ํ์ค์์ฑ์ด ๊ฐํ๋๋ค. - ์ด์ ๋น์ฉ ์ ๊ฐ
์ถ๊ฐ์ ์ธ ๋ธ๋ฆฟ์ง ์ธํ๋ผ ๊ตฌ์ถ ๋ฐ ์ด์ ๋น์ฉ์ด ๋ฐ์ํ์ง ์๋๋ค. - ๋ณด์์ฑ ํฅ์
์ค์ํ๋ ๋ธ๋ฆฟ์ง๋ ๋ณด์ ์ทจ์ฝ์ ์ด ๋ ์ ์์ง๋ง, BEATOZ๋ Node๋ฅผ ํตํด ์ง์ ๋ชจ๋ํฐ๋ง ๋ฐ ํธ๋์ญ์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ฏ๋ก ๋ณด์์ฑ์ด ๊ฐํ๋๋ค. - ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋
์ค๊ฐ ๊ฒ์ฆ ์ ์ฐจ ์์ด ์ง์ ํธ๋์ญ์ ์ด ์คํ๋๋ฏ๋ก ๋ณด๋ค ๋น ๋ฅธ ํธ๋์ญ์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. - ์ ์ฐํ ํ์ฅ์ฑ
ํ๋ผ์ด๋น ๋ธ๋ก์ฒด์ธ์ ํ์ฅ๊ณผ ์ฐ๊ฒฐ์ด ๊ฐ๋จํด์ง๋ฉฐ, ๋ค์ํ ํ๋ผ์ด๋น ๋คํธ์ํฌ์์ ์ํธ ์ด์ฉ์ฑ์ด ์ฆ๊ฐํ๋ค.
ํตํฉ๋ ๋ธ๋ฆฟ์ง ๊ธฐ๋ฅ์ด ํ์ฑํ๋ BEATOZ Node ๋ฅผ BEATOZ Linker Node (BLN) ๋ผ ํ๋ค.
๋ชจ๋ PrvNet์ ์์ ์ PubNet๊ณผ ์ด์ด์ฃผ๋ ์ ์ฉ์ BLNs์ด ์กด์ฌํ์ฌ์ผ ํ๋ค. ์ด๋ PrvNet ์ด์ํ์ด BEATOZ PubNet์ ๋ ธ๋ ์ฐธ์ฌ๋ฅผ ์ํด ์ด์ํด์ผ ํ๋ BEATOZ Node์ ์ผ๋ถ๋ก ๊ตฌ์ฑ๋ ์ ์๋ค. ๋ค๋ฅธ ๊ณต๊ฐ๋ BLN์ ์ฌ์ฉํ ์๋ ์์ง๋ง, ์์คํ ๊ฐ์ฉ์ฑ ์ธก๋ฉด์์ ๋ณด์ ์ทจ์ฝ์ฑ์ ๊ฐ๊ฒ ๋๊ธฐ์ ์ถ์ฒํ์ง ์๋๋ค.
BLN์ PrvNet๊ณผ PubNet ์ฌ์ด์ ์ปค๋ฎค๋์ผ์ด์
๊ณผ์ ์์ ํต์ฌ์ ์ธ ์ญํ ์ ์ํํ๋ค.
PrvNet ๋๋ PubNet์ ํธ๋์ญ์
๋ฐ ์ด๋ฒคํธ๋ฅผ ๋ชจ๋ํฐ๋ง ํ๋ฉด์ ์ค๊ณ ๋์ด์ผ ํ๋ ํธ๋์ญ์
์ด ๋ฐ๊ฒฌ๋๋ฉด, ํด๋น ํธ๋์ญ์
์ ๋ํ ๊ฒ์ฆ ์์
์ ๊ฑฐ์ณ ํ๊ฒ ๋คํธ์ํฌ๋ก ์ด๋ฅผ ์ ํํ๋ ์ญํ ์ด ๊ทธ๊ฒ์ด๋ค.
BLN์ ํ์ฑํ๋ ๋ธ๋ฆฟ์ง ๋ชจ๋์ ํตํด์ ์ฐ๊ฒฐํ๊ณ ์ ํ๋ PrvNet๊ณผ PubNet ๋ชจ๋์ ๋ํ ๋ชจ๋ํฐ๋ง์ ์ํํ๋ค.
๊ทธ ์ค ์ด๋ ์ผ๋ฐฉ์์ ์ค๊ณ๊ฐ ํ์ํ ํธ๋์ญ์
์ด ๋ฐ์ํ๋ฉด BLNs ๋ ๊ฐ์ ์ด์ ๋ํ ๊ฒ์ฆ์ ์ํํ๊ณ ๊ทธ ๊ฒฐ๊ณผ์ ํธ๋์ญ์
ํ์ด๋ก๋๋ฅผ ๋ณ๊ฐ์ ํธ๋์ญ์
์ผ๋ก ์์ฑํ์ฌ ํ๊ฒ ๋คํธ์ํฌ์ ์ ์ถํ๋ค.
BLN์ ์ํ์ฌ ํ๊ฒ ๋คํธ์ํฌ์ ์ ์ถ๋ ํธ๋์ญ์
์ BLN ๊ฐ์๊ฐ ์์ ์ ์๋ช
์ผ๋ก ์์ฑํ ํธ๋์ญ์
์ผ๋ก ์์ฒ ํธ๋์ญ์
์ ๋ด์ฉ๊ณผ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ํฌํจํ๋ฉฐ, ํ๊ฒ ๋คํธ์ํฌ์ ํธ๋์ญ์
์ฒ๋ฆฌ์ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ์ ํ๋๊ณ ์ฒ๋ฆฌ๋๋ค.
BEATOZ Linker๋ ํน์ PrvNet ๋๋ PubNet (Source Chain)์ ๋ชจ๋ํฐ๋ง ํ๊ณ , ์ฌ๊ธฐ์ ํธ๋์ญ์ ์ด ๋ฐ์ํ๋ฉด PubNet ๋๋ ํน์ PrvNet (Destination Chain)์ ํด๋น ๋ด์ฉ์ด ์ ๋ฌ ๋๋ค. Source Chain ๊ณผ Destination Chain ์ฌ์ด์ ์ ๋ฌ๋๋ ๋ฉ์์ง๋ Source DApp ๊ณผ Destination DApp ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก Source Chain ์ ๋ฐ์ํ ํธ๋์ญ์ ์ ๋ด์ฉ์ ๋ฉ์์ง์ ํฌํจ๋์ด Destination DApp ๊น์ง ์ ๋ฌ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์ ๋ฌ๋ ๋ฐ์ดํฐ์ ๊ทผ๊ฑฐํ์ฌ Destination DApp ์ ํ์ํ ์์ ์ ์ํํ ์ ์๋ค.
Listener๋ ํ๋์ ๋คํธ์ํฌ(์ฒด์ธ)์์ ๋ ๋ค๋ฅธ ์ฒด์ธ์ผ๋ก ์ ๋ฌํ ํธ๋์ญ์
์ ์ด๋ฒคํธ ๋ชจ๋ํฐ๋ง์ ํตํด ๊ฐ์งํ๋ค.
์ด๋ฒคํธ๊ฐ ์์ ๋๋ฉด RPC ๊ธฐ๋ฅ๋ฅผ ์ด์ฉํ์ฌ ํด๋น ํธ๋์ญ์
์ ์กฐํ ํ๋ค.
ํธ๋์ญ์
์กฐํ๋ฅผ ํตํด ์ด๋ฒคํธ์ ์ง์ ์ฌ๋ถ๊ฐ ํ์ธ๋๋ฉด, ๋ฉ์์ง ์ ๋ฌ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ผ์ฐํ
์ ๋ณด, ํธ๋์ญ์
์ ๋ด์ฉ์ ๋ด์ ํธ๋์ญ์
ํ์ด๋ก๋์ ์ด์ ๋ํ BLN์ ์๋ช
์ผ๋ก
์ ๋ฌํ ๋ฉ์์ง๋ฅผ ๊ตฌ์ฑํ๊ณ ์ด๋ฅผ Transporter๋ก ์ ๋ฌ ํ๋ค.
Transporter ๋ก ์ ๋ฌ๋๋ ๋ฉ์์ง๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ๋ด๊ณ ์๋ค.
-
SrcChainID
Tx0๊ฐ ๋ฐ์ํ ์์ค ์ฒด์ธ ID. -
SrcAppID
Tx0๋ฅผ ์ฒ๋ฆฌํ ์์ค DApp ID. (e.g. ์ปจํธ๋ํธ ์ฃผ์ ๋๋ ์ฒด์ธ์ฝ๋ ID.) -
DstChainID
Tx0์ ์ ๋ฌํ ํ๊ฒ ์ฒด์ธ ID. -
DstAppID
Tx0์ ์ ๋ฌํ ํ๊ฒ DApp ID. (e.g. ์ปจํธ๋ํธ ์ฃผ์ ๋๋ ์ฒด์ธ์ฝ๋ ID.) -
Tx0Payload
Tx0์ ๋ด์ฉ์ ์ธ์ฝ๋ฉํ ๋ฐ์ดํฐ -
BLNSig
BLN์ ์๋ช .
Transporter๋ BEATOZ์ ๋ธ๋ฆฟ์ง ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ํต์ฌ ๋ชจ๋์ธ BEATOZ Linker์ ํ์ ๋ชจ๋์ด๋ค. ์ด ๋ชจ๋์ ๋ธ๋ก์ฒด์ธ ๊ฐ ์์ ํ๊ณ ์ ๋ขฐ์ฑ ์๋ ๋ฉ์์ง ์ ์ก์ ๋ด๋นํ๋ฉฐ, ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ ์ญํ ์ ํ๋ค. Transporter๋ ๊ฒ์ด ์ ํญ์ฑ(Censorship Resistance)๊ณผ ์ค๋ณต ์ ์ก ๋ฐฉ์ง(No Replay)๋ฅผ ๊ตฌํํ์ฌ, ๋คํธ์ํฌ์ ๋ณด์์ฑ๊ณผ ์์ ์ฑ์ ๊ฐํํ๋ค.
Censorship Resistance (๊ฒ์ด ์ ํญ์ฑ)
๋ธ๋ก์ฒด์ธ ๋ธ๋ฆฟ์ง ๊ธฐ์ ์์ Censorship Resistance(๊ฒ์ด ์ ํญ์ฑ) ์ ํน์ ์ํฐํฐ๋ ์ค๊ฐ ๋ ธ๋๊ฐ ์์๋ก ๋ฉ์์ง๋ฅผ ์ฐจ๋จํ๊ฑฐ๋ ์ง์ฐ์ํค์ง ๋ชปํ๋๋ก ๋ณด์ฅํ๋ ์ค์ํ ์์ฑ์ด๋ค. ์ด๋ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ํ์ค์์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ์ ์งํ๋ ํต์ฌ ์์๋ก ์์ฉํ๋ค.
-
ํ์ค์์ฑ ์ ์ง
์ค์ํ๋ ๋ธ๋ฆฟ์ง ์์คํ ์ ํน์ ๊ธฐ๊ด์ด๋ ๋ ธ๋๊ฐ ๋ฉ์์ง๋ฅผ ๊ฒ์ดํ ๊ฐ๋ฅ์ฑ์ ๋ดํฌํ๋ค. ์ด๋ฅผ ๋ฐฉ์งํ์ง ์์ผ๋ฉด ๋คํธ์ํฌ์ ๋ณธ์ง์ ์ธ ํ์ค์์ฑ์ด ํผ์๋ ์ ์๋ค.
-
์ ๋ขฐํ ์ ์๋ ํ๊ฒฝ์์์ ๋ณด์ฅ
๋ธ๋ก์ฒด์ธ์ ๋ณธ์ง์ ์ผ๋ก ์ ๋ขฐํ ์ ์๋ ํ๊ฒฝ์์ ์๋ํ๋ ์์คํ ์ด๋ฏ๋ก, ํน์ ๋ ธ๋๋ ์ฐธ์ฌ์๊ฐ ๋ฉ์์ง๋ฅผ ๊ฒ์ดํ ๊ฐ๋ฅ์ฑ์ ๋ฐฐ์ ํด์ผ ํ๋ค.
-
ํธ๋์ญ์ ์ ๋ฌด๊ฒฐ์ฑ ์ ์ง
๊ฒ์ด์ด ๊ฐ๋ฅํด์ง๋ฉด ๋ฉ์์ง๊ฐ ์์๋ก ๋๋ฝ๋๊ฑฐ๋ ์ง์ฐ๋ ์ ์์ผ๋ฉฐ, ์ด๋ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์ ๋ขฐ์ฑ์ ์ฝํ์ํจ๋ค.
-
์์ฐ ์ด๋์ ์์ ๋ณด์ฅ
๋ธ๋ก์ฒด์ธ ๋ธ๋ฆฟ์ง๋ ํผ๋ธ๋ฆญ ๋ฐ ํ๋ผ์ด๋น ๋ธ๋ก์ฒด์ธ ๊ฐ์ ์์ฐ๊ณผ ๋ฐ์ดํฐ ์ด๋์ ๋ด๋นํ๋ฉฐ, ํน์ ํธ๋์ญ์ ์ด ์๋์ ์ผ๋ก ์ฐจ๋จ๋ ๊ฒฝ์ฐ ๋คํธ์ํฌ์ ๊ธฐ๋ฅ์ฑ์ด ์ ํ๋ ์ ์๋ค.
No Replay (์ค๋ณต ์ ๋ฌ ๋ฐฉ์ง)
Replay(์ค๋ณต์ ๋ฌ)์ ๋คํธ์ํฌ์์ ์ด์ ์ ๋ฐ์ํ ํธ๋์ญ์ ์ ์ฌ์ ์กํ์ฌ ๋์ผํ ์์ ์ด ์ฌ๋ฌ ๋ฒ ์คํ๋๋๋ก ํ๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ด๋ค. ๋ธ๋ก์ฒด์ธ ํ๊ฒฝ์์๋ ๊ณต๊ฒฉ์๊ฐ ์ด๋ฏธ ์น์ธ๋ ํธ๋์ญ์ ์ ๋ค์ ๋คํธ์ํฌ์ ์ ์ถํ์ฌ ์ค๋ณต ์คํ์ ์ ๋ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ A์๊ฒ 10๊ฐ์ ํ ํฐ์ ์ ์กํ ํธ๋์ญ์ ์ ๊ณต๊ฒฉ์๊ฐ ๋ค์ ์ ์ถํ๋ฉด, ๋์ผํ ๊ธ์ก์ด ๋ค์ A์๊ฒ ์ ์ก๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
-
์ฌ์ฉ์ ์์ฐ ๋ณดํธ
๋์ผํ ํธ๋์ญ์ ์ ๋ด์ ๋ฉ์์ง๊ฐ ์ฌ๋ฌ ๋ฒ ์ ๋ฌ, ์คํ๋๋ฉด ์ฌ์ฉ์ ์์ฐ์ด ์๋ํ์ง ์๊ฒ ์์ง๋ ์ ์๊ธฐ์ ๋์ผํ ๋ฉ์์ง์ ์ ๋ฌ์ด ๋ถ๊ฐ๋ฅํด์ผ ํ๋ค.
-
๋คํธ์ํฌ ๋ฌด๊ฒฐ์ฑ ์ ์ง
์ค๋ณต๋ ๋ฉ์์ง์ ์ ๋ฌ์ด ํ์ฉ๋๋ฉด, ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ฐ ์ ๋ขฐ์ฑ์ด ์ ํ๋๋ค.
-
๋ณด์ ๊ฐํ
๊ณต๊ฒฉ์๊ฐ ๋์ผํ ํธ๋์ญ์ ์ ์ฌ์ ์กํ์ฌ ์์คํ ์ ์ ์ฉํ๋ ํ์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
Transporter๋ ์ ๋ขฐ์ฑ ์๋ ๋ฉ์์ง ์ ๋ฌ์ ์ํด, Listener๋ก ๋ถํฐ ์์ ํ ๊ฐ ๋ฉ์์ง์ ์์ฐจ์ ์ผ๋ก ์ฆ๊ฐํ๋ ์ ์๊ฐ nonce๋ฅผ ๋ถ์ฌํ๊ณ ์ด๋ฅผ ๊ด๋ฆฌํ๋ค.
์ฌ๊ธฐ์ nonce๊ฐ ๋ถ์ฌ๋ ๋ฉ์์ง๋ Verifier ์ํด ์ต์ข
์ฌ์ฉ์ DApp ์ผ๋ก ์ ๋ฌ ๋ ๋, ๋ฐ๋์ ๊ทธ ์์๋๋ก ์ ๋ฌ ๋ ๊ฒ์ด ๋ณด์ฅ๋๋ค.
์ด๋ nonce n
์ด ๋ถ์ฌ๋ ๋ฉ์์ง Mn์ ๋ฐ๋์ Mn+1 ๋ณด๋ค ์์ ์ ๋ฌ ๋์ด์ผ ํจ์ ์๋ฏธํ๋ค.
๋ง์ฝ Mn์ด ์ ๋ฌ๋์ง ์์๋ค๋ฉด Mn+1๋ฅผ ํฌํจํ์ฌ ๊ทธ ์ดํ ๋ชจ๋ ๋ฉ์์ง๋ ์ต์ข
์ฌ์ฉ์ DApp์ผ๋ก ์ ๋ฌ ๋ ์ ์๋ค.
์ด๋ก์ ๋ฉ์์ง๊ฐ ์์๋ก ์ฐจ๋จ๋๊ฑฐ๋ ์ฌ์ ๋ ฌ๋์ง ์๋๋ก ๋ณด์ฅ(Censorship resistance) ํ๊ณ ,
์ด์ ์ ์ฒ๋ฆฌ๋ ๋ฉ์์ง(๋์ผํ nonce) ๊ฐ ๋ค์ ์ ์ถ๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ์๋์ผ๋ก ๋ฌดํจํ ํจ์ผ๋ก์ ๋์ผํ ๋ฉ์์ง๊ฐ ์ค๋ณต ์ ๋ฌ ๋์ง ์๋๋ก ํ๋ค. (No Replay)
์ฌ๊ธฐ์ nonce์ ์์ฐจ์ ์ฆ๊ฐ๋ ์ ์ฒด ๋ฉ์์ง์ ๋ํ์ฌ ์์ฐจ์ ์ธ ์ฆ๊ฐ๊ฐ ์๋๋ผ, ์ ๋ฌ ์ฑ๋์ ์ ์ข
๋จ์ ๊ตฌ์ฑํ๋ ๋๊ฐ์ DApp pair๋ณ๋ก ๋
๋ฆฝ์ ์ธ ์ฆ๊ฐ๋ฅผ ์๋ฏธํ๋ค.
์ฆ DApp1 ๊ณผ DApp2 ์ฌ์ด์ nonce ์ DApp1 ๊ณผ DApp3 ์ฌ์ด์ nonce๋ ๋
๋ฆฝ์ ์ผ๋ก ์ฆ๊ฐ๋๋ ๋ณ๊ฐ์ nonce๊ฐ ๋์ด์ผ ํ๋ค.
Transporter๋ ์ต์ข ์ ์ผ๋ก ๊ตฌ์ฑ ์๋ฃ๋ ๋ฉ์์ง์ ํด์์ BLN ์๋ช ์ Verifier ์๊ฒ ์ ๋ฌ ํ๊ณ , ์ดํ Verifier๋ ํด๋น ๋ฉ์์ง ์ ๋ฌ๊ฑด์ ๋ํ BLNs ํฉ์ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. ํฉ์๊ฐ ํ์ธ๋๋ฉด ํด๋น ๋ฉ์์ง ํด์๊ฐ์ด ๋ค์ Transporter๋ก ์ ๋ฌ ๋๋ค. Transporter๋ Verifier๋ก๋ถํฐ BLNs ํฉ์๊ฐ ํ์ธ๋ ๋ฉ์์ง์ ํด์๊ฐ์ ์ ๋ฌ๋ฐ์ ํ, ์ด๋ฅผ DApp์ผ๋ก ์ ๋ฌํจ์ผ๋ก์จ ๋ฉ์์ง ์ ๋ฌ์ ์๋ฃํ๋ค.
๊ทธ๋ฌ๋ Verifier์ ์ํด ํ์ธ๋๋ ํฉ์์ ์์๋ ๋ฐ๋์ ๋ฉ์์ง์ ์์(nonce ์์)์ ์ผ์นํ์ง ์์ ์ ์๋ค.
๋๋ฌธ์ Transporter๋ ๋ง์ง๋ง์ผ๋ก ํด๋น DApp์ผ๋ก ์ ๋ฌํ ๋ฉ์์ง nonce(lastDeliveredNonce
)๋ฅผ ๊ธฐ์ค์ผ๋ก,
์ฐ์๋ nonce๋ฅผ ์ ์งํ๋ฉด์ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.
์๋ฅผ ๋ค์ด, lastDeliveredNonce
๊ฐ 100์ธ ์ํ์์ nonce ๊ฐ์ด 102, 103, 104, 106์ธ ๋ฉ์์ง M102, M103, M104, M106 ์ ๋ํ์ฌ Verifier๋ก๋ถํฐ ํฉ์ ํ์ธ์ ๋ฐ์๋ค๊ณ ํ ๋, ์ด ๋ฉ์์ง๋ค์ ๋ํ ํฉ์๊ฐ ํ์ธ๋์์์๋ ๋ถ๊ตฌํ๊ณ , DApp์ผ๋ก ์ ๋ฌ์ ๋ณด๋ฅ๋์ด์ผ ํ๋ค.
๊ทธ ์ด์ ๋ ๋ฉ์์ง M101์ ๋ํ ํฉ์๊ฐ ์์ง Verifier๋ก ๋ถํฐ ํ์ธ๋์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค. Transporter๋ M101์ด Verifier์ ์ํด ํฉ์ ํ์ธ๋๋ฉด, M101, M102, M103, M104๋ฅผ ์์ฐจ์ ์ผ๋ก DApp์ ์ ๋ฌํ๋ค. ๋ฐ๋ฉด, M106์ ์ฌ์ ํ M105๊ฐ ๋์ฐฉํ๊ธฐ ์ ๊น์ง ๋ณด๋ฅ๋๋ค. ์ด ์ ๊ฐ์ด ์ฐ์๋ nonce ์์๋ฅผ ์ ์งํด์ผ๋ง ๋ฉ์์ง๊ฐ DApp์ผ๋ก ์ ๋ฌ๋๋ฉฐ, ์ด ๊ณผ์ ์ด ๋ณด์ฅ๋์ง ์์ผ๋ฉด ๋ฉ์์ง์ ์์(์คํ ์์)๊ฐ ๋
ธ๋ ๋ง๋ค ๋ฌ๋ผ์ง๊ฒ ๋๊ณ ๊ทธ๋ ๊ฒ ๋๋ฉด ๋ธ๋ก์ฒด์ธ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ด ํผ์๋ ์ ์๋ค.
BEATOZ์ Linker ๋ชจ๋์๋ Verifier๋ผ๋ ํ์ ๋ชจ๋์ด ์กด์ฌํ๋ฉฐ, ์ด๋ ๋ฉ์์ง ์ ๋ฌ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ํต์ฌ ์ญํ ์ ์ํํ๋ค. Verifier๋ BEATOZ Linker Node(BLN)๋ค์ด ํน์ ๋ฉ์์ง ์ ๋ฌ์ ๋ํด ํฉ์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ , ํฉ์ ์ฌ๋ถ๊ฐ ํ์ธ ๋๋ ์์ ์์ ์ด๋ฅผ ๋ค์ Transporter ๋ก ์๋ฆฐ๋ค.
Verifier์ ๊ฐ์ฅ ์ค์ํ ์ญํ ์ค ํ๋๋ BLN ๊ฐ์ ํฉ์ ์ฌ๋ถ๋ฅผ ๊ฒ์ฆํ๋ ๊ฒ์ด๋ค. BEATOZ ๋คํธ์ํฌ์์ ํน์ ํธ๋์ญ์ ์ด ์ํ๋ ๋, ๋จ์ผ ๋ ธ๋๊ฐ ์์๋ก ํธ๋์ญ์ ์ ์น์ธํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ๋ฌ BLN๋ค์ด ํจ๊ป ์ฐธ์ฌํ์ฌ ํฉ์ํด์ผ ํ๋ค. Verifier๋ ๊ฐ BLN์ด ์ ์ถํ ์ ๋ณด๋ฅผ ์์งํ๊ณ , ์ผ์ ๊ธฐ์ค์ ์ถฉ์กฑํ๋์ง ํ์ธํ์ฌ ๋ฉ์์ง์ ์ ๋ขฐ์ฑ์ ํ๊ฐํ๋ค. ์ด๋ฅผ ํตํด ํน์ ๋ ธ๋๊ฐ ์ ์์ ์ธ ํ์๋ฅผ ํ๋๋ผ๋ ํธ๋์ญ์ ์ด ๋ฌด๊ฒฐํ๊ฒ ์ ์ง๋ ์ ์๋๋ก ํ๋ค.
์ด๋ฌํ ํฉ์ ๊ธฐ์ค์ ์ ์ํ๊ณ ์ ์งํ๋ ๊ฒ์ด Security Policy์ด๋ค. Verifier๋ Security Policy๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ํด๋น ์ ์ฑ ์ ํน์ DApp์ owner์ ์ํด์๋ง ์ ์๋๊ณ ์ ๋ฐ์ดํธ๋ ์ ์๋ค. Security Policy๋ BLN ๊ฐ์ ํฉ์ ์กฐ๊ฑด์ ๋ช ํํ ๊ท์ ํ๋ฉฐ, ๋ฉ์์ง๊ฐ ๋คํธ์ํฌ์์ ์ ํจํ๊ฒ ์ฒ๋ฆฌ๋๊ธฐ ์ํด ํ์ํ ์ต์ ์๊ฑด์ ์ค์ ํ๋ค.
Verifier๋ Transporter ๋ชจ๋๊ณผ ๊ธด๋ฐํ๊ฒ ์ฐ๋๋๋ค. Transporter๋ ๋ฉ์์ง์ ์ ๋ฌ์ ๋ด๋นํ๋ ๋ชจ๋๋ก, ํน์ ํธ๋์ญ์ ์ด ๋ฐ์ํ๋ฉด Verifier์๊ฒ ํด๋น ํธ๋์ญ์ ์ ํด์๊ฐ๊ณผ ํ์ฌ ์คํ ์ค์ธ ํธ๋์ญ์ ์ ๋ฐ์์ํจ BLN ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ค. Verifier๋ ์ด๋ฅผ ์ ์ฅํ๊ณ Security Policy ๊ธฐ์ค์ ๋ฐ๋ผ ๊ฒํ ํ ํ, ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๊ฒฝ์ฐ ํด๋น ๋ฉ์์ง์ ํด์๊ฐ์ ๋ค์ Transporter๋ก ์ ๋ฌํ๋ค. ์ด ๊ณผ์ ์ ํตํด ์ต์ข ์ ์ผ๋ก ๊ฒ์ฆ๋ ๋ฉ์์ง๋ง์ด BEATOZ ๋คํธ์ํฌ์์ ์คํ๋ ์ ์๋๋ก ๋ณด์ฅ๋๋ค.
Verifier๋ ๋คํธ์ํฌ์ ๋ณด์์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ ๋ฐ ํต์ฌ์ ์ธ ์ญํ ์ ์ํํ๋ค. ์ค์ํ๋ ๊ฒ์ฆ ์์คํ ์ด ์์ด๋, BLN ๊ฐ์ ๋ถ์ฐ๋ ํฉ์๋ฅผ ํตํด ์ ๋ขฐํ ์ ์๋ ๋ฉ์์ง ๊ฒ์ฆ์ด ๊ฐ๋ฅํด์ง๋ค. ๋ํ, ์ ์์ ์ธ BLN์ด ํ์ ์ ๋ณด๋ฅผ ์ ์ถํ๊ฑฐ๋ ํน์ ํธ๋์ญ์ ์ ์กฐ์ํ๋ ค๋ ์๋๋ฅผ ์ฐจ๋จํ ์ ์์ผ๋ฉฐ, ๋คํธ์ํฌ ์ ๋ฐ์ ๊ฑธ์ณ ํธ๋์ญ์ ์ ์ ๋ขฐ์ฑ์ ํฅ์์ํจ๋ค. ์ด๋ฌํ ์ค๊ณ๋ฅผ ํตํด BEATOZ๋ ๋ธ๋ก์ฒด์ธ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด๋ค ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ์ํ ํ ์ ์๋ค.
Security Policy
Security Policy๋ BEATOZ ๋คํธ์ํฌ์์ BLN(BEATOZ Linker Node)๋ค์ ์ต์ ํฉ์ ์กฐ๊ฑด์ ์ ์ํ๋ ์ ์ฑ ์ด๋ค. ์ด๋ ๋ฉ์์ง ์ ๋ฌ์ ๋ณด์์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋์ด๋ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, ๋ธ๋ก์ฒด์ธ ๊ฐ ํธ๋์ญ์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋๋๋ก ๋ณด์ฅํ๋ค. Security Policy๋ DApp์ owner์ ์ํด ์ง์ ์ค์ ๋ฐ ์ ๋ฐ์ดํธ๋ ์ ์์ผ๋ฉฐ, ๋คํธ์ํฌ ์ ์ฒด์์ ์ ์ฉ๋๋ ์ ์ ์ธ ํฉ์ ์กฐ๊ฑด์ด ์๋๋ผ, ๊ฐ DApp์ด ์ํ๋ ๋ฐฉ์์ผ๋ก ์ ์ฐํ๊ฒ ์ ์ํ ์ ์๋ค. ์ฆ, BEATOZ์์๋ ๊ณ ์ ๋ ํฉ์ ์กฐ๊ฑด์ ๊ฐ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ๋ณ DApp์ด ์์ ์ ์๊ตฌ์ฌํญ์ ๋ง๋ ๊ฒ์ฆ ๊ธฐ์ค์ ์ค์ ํ ์ ์๋๋ก ์ง์ํ๋ค.
Security Policy๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
-
OwnerID
Security Policy์ ์์ ์๋ก, ํด๋น ์ ์ฑ ์ ์ค์ ํ๊ณ ๋ณ๊ฒฝํ ์ ์๋ ๊ถํ์ ๊ฐ์ง DApp์ owner๋ฅผ ์๋ฏธํ๋ค.
-
RequiredBLNs
๋ฐ๋์ ํฉ์์ ์ฐธ์ฌํด์ผ ํ๋ BLN๋ค์ ๋ชฉ๋ก์ด๋ค. ์ด ๋ชฉ๋ก์ ํฌํจ๋์ง ์์ BLN์ด ์๋ฌด๋ฆฌ ๋ง์ ๋ฉ์์ง ์ ๋ฌ์ ๋์ํ๋๋ผ๋,
RequiredBLNs
์ ์ํ ๋ ธ๋๋ค์ด ๋์ํ์ง ์์ผ๋ฉด ํด๋น ๋ฉ์์ง ์ ๋ฌ์ ํฉ์๋์ง ์์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ค. -
OptionalBLNs
ํฉ์์ ์ฐธ์ฌํด๋ ๋๊ณ ํ์ง ์์๋ ๋๋ BLN๋ค์ ๋ชฉ๋ก์ด๋ค. ์ด ๋ชฉ๋ก์ ํฌํจ๋ ๋ ธ๋๋ค์
RequiredBLNs
์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ฒ์ ๋ด์์ ์์ ๋กญ๊ฒ ํฉ์์ ๊ธฐ์ฌํ ์ ์๋ค. -
RequiredBLNCount
ํน์ ๋ฉ์์ง ์ ๋ฌ์ด ์ ํจํ๊ฒ ํฉ์๋๊ธฐ ์ํด ํ์ํ ์ต์ BLN ์๋ฅผ ์๋ฏธํ๋ค. ์ต์ ์ด ์๋งํผ์ BLN์ด ๋์ํด์ผ ํด๋น ๋ฉ์์ง๋ ํฉ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ค.
์ฆ,len(RequiredBLNs) + len(OptionalBLNs) >= RequiredBLNCount
์กฐ๊ฑด์ด ๋ง์กฑ๋์ด์ผ ํ๋ค.
์ด๋ฌํ Security Policy๋ฅผ ํตํด BEATOZ ๋คํธ์ํฌ๋ ํ์ค์์ฑ๊ณผ ๋ณด์์ฑ์ ๋์์ ํ๋ณดํ ์ ์๋ค. ์ค์ํ๋ ๊ฒ์ฆ ์์คํ ์์ด๋, ๊ฐ DApp์ด ์ํ๋ ๋ณด์ ์์ค์ ๋ฐ๋ผ ๋ ๋ฆฝ์ ์ผ๋ก ํฉ์ ์ ์ฑ ์ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ณด๋ค ์ ์ฐํ๊ณ ์์ ํ ๋ธ๋ก์ฒด์ธ ๊ฐ ๋ฉ์์ง ์ ๋ฌ์ด ๊ฐ๋ฅํด์ง๋ค.