오르비 dDNA 서비스에 들어간 기술 (장문주의)
0. 글을 들어가기에 앞서
저는 정보보안에 관심이 많은 한 학생입니다. 현재 관련 교육기관에서 교육을 받고 있지만, 아직까지 객관적으로 어떠한 전문성을 가지지는 못하고 있는것이 사실입니다.
오르비 분들은 잘 하실 것이라 믿지만, 다른 어떤 글과 마찬가지로, 이 글도 비판적으로 봐주셨으면 좋겠습니다. 최대한 자료를 참고해서 적어보겠지만, 혹시라도 잘못된 내용을 적어서 많은 분들에게 혼란을 드릴까 걱정되네요..
1. 서론
오늘 아침, 오르비에서 dDNA 블록체인 공증기능을 시작한다는 글을 보고, 깊은 감명을 받았습니다. 머신러닝 등 다양한 최신 기법들을 오르비에 적응하며 계속 변화하려고 노력하시는 것이 인상깊었고, 블록체인을 가상화폐나 투자수단으로 바라보는 것이 아닌 기술 그 자체로 바라보는 것에 감동했습니다.
그러나 많은 분들이 해당 기술이 어떤 의미를 가지고 있는지, 어떤 원리로 이루어지는지 모르시는것 같아 제가 아는 선에서 설명해 보려고 합니다. 누군가에게 설명한다는게 익숙하지는 않지만, 최대한 깔끔하게 해보도록 노력하겠습니다!
저는 라크리님의 글에서 중요한 포인트가 세 가지 정도 있다고 생각합니다.
1) 파일의 DNA는 완전히 수학적인 방법으로 계산되며, 누가 계산하든지 간에 동일한 파일의 DNA는 동일한 값입니다.
2) "박제"된 "DNA"는 전세계에 있는 수만 명의 블록체인 "채굴자"들이 경쟁하여 블록체인에 기록을 하며, 일단 기록된 "DNA"는 전세계에 뿔뿔이 흩어져 있는 수천 내지는 수만 개의 장부에 똑같은 형태로 저장됩니다.
3) 일단 이렇게 저장되려는 DNA를 "위조"하기 위해서는 몇 개월 동안 생산되는 채굴기를 독점한다음 스위스 전체가 사용하는 전기보다 더 많은 전기를 동원해야 합니다. 몇 조원 이상의 비용이 들 것입니다.
기술적으로 의미있는 내용이 많이 담겨있네요!
1번 내용은 해시함수 (비문학 지문에서 많이 보셨죠? ㅎㅎ), 2번과 3번 내용은 블록체인의 특성과 연관됩니다. 하나하나씩 살펴보도록 하겠습니다.
2. 해시함수
(사실 이부분은 15년 9월 평가원 지문과, 라크리님의 글에서 더 잘 설명되어 있는 듯 합니다.)
라크리님의 글을 인용하겠습니다.
'예를 들어 오르비에 글을 쓰면서, 여러분이 직접 만든 수학 문제를 이미지 형태로 첨부하고, 그 글의 "DNA"를 "박제"하면
앞으로 여러분은 그 자작 문제를 여러분이 제일 먼저 만들었다는 사실을 전 세계 누구를 상대로든 "수학적으로 증명"할 수 있습니다.'
즉, 글 또는 파일 전체의 해시값을 가지고 어딘가에 등록을 한다면, 내가 이 글을 썼고 수정하지 않았음을 쉽게 증명할 수 있는 것이죠.
위키백과에 따르면 해시함수의 정의는 다음과 같습니다 - "해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. " (해시함수는 자료의 길이에 상관없이 항상 값을 낼 수 있으니 데이터의 종류나 크기는 상관없습니다!)
dDNA에서 사용된 해시함수의 특성은 충돌저항성, 눈사태 효과라고 생각합니다.
충돌저항성은 해시함수 f(x)에 대해 f(a) = f(b)인 a와 b를 계산할 수 없어야 한다는 특성이고, 눈사태 효과는 1비트만 바뀌어도 해시함수의 결과는 달라야 하고 그 사이에 유사성이 없어야 한다는 특성입니다.
해시함수의 특성은 이미 일상생활 많은 곳에서 사용되고 있습니다. 메시지가 전송 과정에서 변조됐는지 확인하기 위해 사용하는 MAC (Message Authentication Code), 파일시스템에서 베드섹터를 감지하기 위해 쓰이는 CRC 체크섬 등...
특히 dDNA의 사용과 똑같은 맥락에서 사용되고 있는 분야도 있습니다.
수정이 쉽고, 수정을 탐지하기 어렵다는 디지털 자료의 특성상, 디지털 자료는 원본이라는 것을 증명하기 매우 어렵습니다. 피의자의 스마트폰에서 "디지털 포렌식" 과정을 통해 범죄를 모의했다는 증거를 찾았음에도, 피의자가 조작 가능성을 제기한다면 반박하기가 어려워지겠죠?
그래서 디지털 증거수집 (포렌식) 과정에서는 항상 시작하기 전에 무결성을 인증하기 위한 체크섬을 만들어둡니다. 초기의 체크섬과 조사가 끝난 후의 체크섬이 같다는 것을 보인다면 조작하지 않았음을 보일 수 있다는 것이죠.
3. 블록체인
(이 부분은 김승주 교수님 블로그에 잘 설명되어 있습니다! 시간 나시면 읽어보세요)
블록체인은 기본적으로 '탈중앙화'에 기반을 둔 시스템입니다. 블록체인의 창시자는 중앙에 모든 힘이 집중되는 현재의 금융구조에 불만을 가졌고, 근본적으로 중앙 기관이 없는 시스템을 구상했습니다.
하지만 모든 거래를 관리하고 감독하는 중앙 기관이 없다면 어떻게 거래를 증명할까요?
잔고를 기록하고 있는 기관이 없다면 없는 돈을 보낼수 있지 않을까요?
돈을 실제로는 보내지 않았지만, 기록상으로만 보냈다고 믿게 만들 수 있지 않을까요?
이러한 문제를 해소하기 위해, 그는 모든 사람이 거래장부를 나눠가지는 시스템을 고안했습니다. 모든 참여자가 같은 거래기록을 공유하고, 모두가 검증하기에 조작 가능성을 차단할 수 있다는 원리입니다.
그럼에도 불구하고, 시스템 상 오류에 의해서든 (거래기록의 누락 등), 아니면 악의적인 누군가가 조작을 시도했든 모두가 가지고 있는 장부가 일치하지 않게 될 수 있습니다. 그래서 블록체인 시스템은 모든 장부를 비교해서, 과반수 이상이 가진 장부가 옳다고 인증합니다. (51% 법칙)
블록체인이 가진 장점이 여기서 나옵니다.
기본적으로 거래에 참여하는 모든 사람이 같은 정보를 나눠가지기 때문에, 거래 내용을 조작하려면 해당 네트워크를 구성하고 있는 참여자 절반 이상의 장부를 조작해야 합니다. 현실적으로 불가능하겠죠.
이미 외교부는 2018년부터 블록체인의 해당 특성을 이용한 공증 시스템을 구축하고 있습니다.
다만 비공개 네트워크 안에서 공증절차를 거치는 거라 dDNA와는 다르다고 할 수 있겠네요.
살짝 다르지만, steemit 같은 서비스는 아예 자체 코인을 만들어 글을 공유하고 있습니다. 덕분에 스팀잇이 막힌 국가에서도 사용자들이 가지고 있는 노드에 접속해서 글을 볼 수 있다는 특성이 있죠.
4. 그래서 dDNA는 뭐냐?
(사실 이부분은 말하기 좀 부담스럽네요.. 제가 개발에 참여한것도 아니고, 아직 오픈베타 기간이니까.. 틀린 부분 지적해주시면 바로 수정하겠습니다!!!)
지금까지 예시로 들어드린 사용방법들을 합친 것이라고 보시면 될 것 같아요.
"해시함수를 사용한 문서의 무결성 증명 + 블록체인을 이용한 문서의 작성 증명"
어떤 해시함수를 이용하는지는 모르겠습니다. 128-bit 해시인것을 보면 md5 계열인것 같은데.. 숨겨진 처리과정을 거치는 것 같네요. 더 파보고 싶지만 역공학은 불법이니 패스..
실제로 블록체인에 저장된 메시지를 한번 봐 볼까요?
오르비 1호 박제, 라크리님의 글입니다.
비트코인 캐시는 저기 Output sc/2s 부분에 나와있는 OP_RETURN 값에다가 거래자가 원하는 메시지를 적을 수 있습니다. 그냥 봐서는 모르겠지만, 16진수 디코딩 과정을 거치면 의미있는 글자가 나오게 됩니다.
세번째, 네번째 값은 무엇인지 아시겠죠? 세번째 값은 오르비 알고리즘으로 만들어진 dDNA 값 (문서를 증명하는 값), 네번째 값은 dDNA로 공증하고 있는 거래임을 증명하는 것을 나타내기 위해 쓴 것 같습니다.
두번째 값은 타임스탬프 값입니다. 타임스탬프는 1970년 1월 1일 0시 0분 0초부터 지금까지의 흐른 초를 나타낸 값으로, https://www.epochconverter.com/ 등에서 타임스탬프를 날로 변환시킬 수 있습니다.
첫번째 값은.. 잘 모르겠네요ㅠㅠㅠ 개발자가 아니라서 모르겠다 엉엉
처음에는 아이민 아닐까 생각했는데 다른분들이 쓰신 글 보니까 그것도 아니더라고요..
5. 개인적인 생각
오르비의 dDNA 공증 시스템은 완전히 새로운 것은 아니지만, 완전히 똑같은것도 아닌 새로운 시도입니다.
모든 발전이 그렇듯, 각각 따로 이용되고 있던 기술을 모아서 전혀 다른 분야에 적용할 수 있는 새로운 기술입니다.
블록체인에 저장되는 정보에 아이민같이 누가 글을 작성했는지까지 적어주신다면 더 완벽한 공증을 할 수 있지 않을까 싶네요.
장문의 글 읽어주셔서 감사합니다!
TL;DR
1. 보안에 관심있는 옯린이 글보고 급발진하고 아는거 다 말해봄
2. 자세히 살펴보니 이상한점 있음
3. 첫 시도는 아님, 그러나 의미있는 시도인건 분명함
다 쓰고보니 뻘글이지만 아쉬워서 올림
0 XDK (+1,000)
-
1,000
-
이번에 계엄 0
한걸로 탄핵된다고 쳐도 수능 유형이 석열 정부 이전처럼 내년에 바로 변하지는...
-
잠을 잘 수가 없네 하….
-
아싸 권한대행이다 히히
-
국방부 "김용현 장관이 계엄 직접 건의한 것이 사실" 1
(서울=뉴스1) 허고운 기자 = 김용현 국방부 장관이 3일 윤석열 대통령에게...
-
성동격서라는 말도 있는데 지금 이렇게 소란스럽게 이목을 끌고 뒤에서 비밀스럽게...
-
시립대 낮과 불가능할까요…
-
연애 하고싶다
-
몰에서 막히네 4
에휴 ㅋㅋㅋ 수학은 수학의 정석으로 수2까지 독학했는데 화학은 쉽지 않음+에이징...
-
진짜 생각없이 진행했다가 실패한거에요? 가만히 있으면 오늘내일중으로 탄핵인데 그냥 가만히 있어요?
-
돌아올 수 없는 강을 건넜어. 잘가라
-
북한같은데라도 갔나
-
롤이나할까
-
잠수탄거 뭐임
-
난 중학교때 좋아하던 애가 자기는 의사가 멋있다고 의사랑 결혼할거라 해서 바로 일반고 진학함 ㅋㅋㅋ
-
교과서에서만 보던 계엄철폐 독재타도를 라이브로 보다니 참,,, 티비로만 봐도...
-
빠르네 ㄷㄷ
-
다 너때문이야 빨리 나와서 말좀해봐
-
오늘자확실해진거 2
대학가기전에나라가망하게생김ㅋㅋ 에휴시발ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
-
엄.. 설마 아니지? 재명이형 탈원전은 진짜 아니지
-
국무회의를 거쳐서 계엄령을 선포했다면 국정 누가 맡지? 다 내란동조인데
-
[속보] 조국혁신당 "윤 탄핵안 내일 발의…민주당과 논의 중" 1
[서울=뉴시스]조재완 기자 =
-
유엔, 한국 비상계엄 선포에 "상황 우려하며 면밀히 주시" 1
(뉴욕=연합뉴스) 이지헌 특파원 = 유엔 사무국은 3일(현지시간) 윤석열 대통령의...
-
그러면 명태균 죽었음 장난이 아니고 진짜 죽었을 거임
-
삼권분립이 망하는데 정치 괜찮은거 맞음?
-
'계엄 해제' 놓고 또 갈라진 與…친한 18명 찬성표, 친윤 불참 1
한동훈, 尹비상계엄 '위헌' 규정…野 탄핵 추진시 변수 될 수도 (서울=연합뉴스)...
-
윤석열이 뺄 이유가 있나? 어차피 방 빼도 위헌으로 탄핵엔딩일거고 자기도 나름...
-
강윤구 인강 on
-
[속보]민변, 윤 대통령 비상계엄에 “헌법소원·효력정지 가처분 신청” 1
민주사회를 위한 변호사 모임이 4일 윤석열 대통령의 비상계엄령 선포 행위에 대해...
-
자고 있어서 그럴까요
-
尹대통령, 계엄선포 전 국무회의…한총리는 회의 참석후 청사행 4
(서울=연합뉴스) 홍국기 김영신 기자 = 윤석열 대통령이 비상계엄 선포 직전...
-
[속보] 계엄군 차량, 국회 둔치주차장에서 철수 당신의 제보가 뉴스로...
-
이제 성조기 들고 시위 안하려나 ㅋㅋㅋㅋ
-
꿈 러닝타임이 너무 기네요.. 현실에서 기절했거나 많이 다친듯
-
내일 아침에 어떨지 보자
-
[서울=뉴시스] 이종희 하종민 김래현 기자 = 윤석열 대통령이 3일 늦은 저녁...
-
ㄷㄷ
-
여기서 빼면 내란죄로 체포각보임 과연 뺄까? 어차피 ㅈ된거 엎을까
-
본회의장 대신 당사에 모인 여당 의원들 “윤 대통령, 계엄 해제해달라” 1
국민의힘 의원들이 윤석열 대통령에게 국회의 계엄 해제 결의를 수용해 조속히 계엄을...
-
하나회 숙청 없었으면 진짜 80년대 였을수도.
-
추경호 "계엄 선포, 뉴스 보고 알았다…제 판단으로 표결 불참" 4
국민의힘 추경호 원내대표는 4일 윤석열 대통령의 비상계엄 선포와 관련해 "일련의...
-
니때문에 잠도 못자는 중이다
-
ㅋㄱㅋㄱㅋㄱㅋㄱㅋ
-
[속보] 민주노총 "무기한 총파업…오전 9시 광화문 집결" 3
민주노총 "무기한 총파업…오전 9시 광화문 집결"
-
TSMC 바이든 윤석열
-
“민주적으로 여겨온 한국에 충격파” 외신들 긴급 타전 2
미국 백악관은 3일 윤석열 대통령의 비상계엄령 선포에 대해 “상황을 모니터링하고...
-
[단독] 법무부 감찰관 사직서 제출 "계엄 회의 참여 못해…내란 해당" 2
▲ 윤 대통령 류혁 법무부 감찰관이 계엄 관련 논의에 참여할 수 없다며 사직서를...
-
그래서 더 가고싶은거같아
-
ㄱㅇㄷ
-
무슨 깡으로 하는거지
-
학계의 점심임
좋은 글 감사합니다