블록체인과 암호 기술
Last updated
Last updated
Hippocrat은 제3자에 신뢰를 의존하지 않고 자기주권과 환자, 의료 기관, 데이터 활용 기관 등 불특정 다수의 이해관계자 간에 글로벌 수준의 협업이 가능하도록 하고자 합니다. 이를 위해서는 데이터 생성부터 유통 과정까지의 이력, 자산에 대한 신뢰할 수 있는 기록과 검증 방법이 필요한데, 블록체인과 암호 기술은 이러한 요구사항에 잘 부합합니다. 아래에서 Hippocrat이 특별히 채택하는 기술과 함께 더 자세한 설명을 이어 가겠습니다.
블록체인은 신뢰를 위한 기술입니다. 특히 우리가 어떤 기관과 그들의 서버를 신뢰하는 것을 대신할 수 있는 기술입니다. 기존의 방식은 블록체인 기술을 사용하지 않기 때문에 기관 내부인이 서버에 저장된 기록을 실수로 훼손하거나 악의적으로 조작하는 것을 원천적으로 막기 어렵습니다. 또한 내부인이 아니라도 외부인의 악의적인 해킹 공격으로 불의의 사고가 일어나는 사례가 많습니다.
블록체인은 어떤 기록을 불특정 다수의 컴퓨터에 동일하게 보관하고, 누구나 허가 없이 그 기록을 확인할 수 있도록 함으로써 기록의 위·변조를 현실적으로 불가능하게 합니다. 현재 가장 탈중앙화되어 있고 안전하다고 인정되는 Bitcoin의 경우, 이러한 역할을 하는 컴퓨터를 ‘풀노드’라고 하는데 2023년 3월 기준으로 전 세계 곳곳에 17,500개 이상이 존재합니다(참고). 즉, 이 모든 풀노드를 파괴하지 않는 한 기록은 사라지지 않고 다시 복구할 수 있습니다. 또한 어떤 기록을 악의적으로 위·변조하고자 한다면 Bitcoin 네트워크상의 채굴 노드들이 보유한 처리 능력의 과반을 확보해야 합니다. 이는 전 세계에 존재하는 슈퍼컴퓨터들을 모두 모아도 불가능한 비현실적인 시나리오입니다. 설사 공격에 성공한다고 하더라도 지금까지 쌓인 기록 전체를 위·변조할 수 있는 것이 아니라, 공격할 당시 하나의 기록에만 위·변조가 가능합니다. 즉, 공격을 통해 얻을 수 있는 이익 대비 비용을 고려하면 현실성이 없습니다. 그 이전의 기록까지 위·변조를 시도하려면 매번 공격에 사용된 에너지 비용을 들여야 합니다. 이것이 바로 에너지를 사용하는 블록체인의 보안성이 탁월한 이유입니다.
또한 탈중앙 신원 및 자격 인증(ION), 소액 송수신 및 결제(Lightning Network), 자산 발행(Taro) 및 더 다양한 스마트 컨트랙트(Liquid Network, RGB 등) 등 Bitcoin의 독보적인 탈중앙성과 보안성 위에서 확장성을 실현하는 기술도 빠르게 발전하고 있습니다. Hippocrat은 이러한 기술들을 활용하여 가장 안전하고 신뢰성 있는 블록체인상에서 개인의 귀중한 의료 데이터에 대한 기록과 bitcoin 및 Hippocrat의 고유 자산인 HPO까지 다루고자 합니다.
그런데 흔히 블록체인에 의료 데이터 그 자체를 기록하는 것으로 오해하곤 합니다. 블록체인은 위의 설명과 같이 동일한 내용의 복사본을 끊임없이 유지하는 데 비용이 들기 때문에 필연적으로 많은 데이터를 담을 수 없습니다. 따라서 블록체인은 자산이나 신원과 같이 정말 중요한 데이터에 대해 신뢰할 수 있는 저장소가 꼭 필요한 최소한의 정보를 담는 목적으로 사용되어야 적합합니다.
이는 부동산 등기부에 남겨지는 기록을 생각해 보면 이해가 쉽습니다. 부동산 등기부에서는 부동산의 소유권을 명확히 판단하기 위한 현재와 과거의 기록을 확인할 수 있습니다. 우리는 실제 부동산을 주고받지 않고도 등기부의 기록만을 변경함으로써 실질적인 소유권도 변경할 수 있습니다. Hippocrat도 의료 데이터의 정보 주체, 담고 있는 의료 정보의 내용, 생성 주체, 데이터의 실제 위치, 공유 대상 등의 유통 이력을 기록하는 데 블록체인을 사용합니다.
그렇다면 실제 데이터의 내용 자체가 블록체인에 올라가는 것은 아니므로 블록체인 바깥에서 데이터 내용을 위·변조하는 것은 막지 못할 것이라고 생각하실 수도 있습니다. 여기서 ‘해시 함수’라는 암호 기술이 필요합니다. 해시 함수는 입력하는 데이터에 아주 사소한 변화만 발생하더라도 그 결과값(해시값)이 전혀 달라진다는 특징이 있습니다. 예를 들어, 원본 파일을 입력했을 때 57이 나와서 이를 블록체인에 기록해 두었는데, 내가 받은 데이터의 해시값이 블록체인에 기록된 해시값과 다르게 58이라면 원본 파일이 위·변조되었다고 확신할 수 있습니다. 아래 예시를 보시면 원본 데이터에서 글자 하나만 바뀌어도, 공백 하나만 추가되어도 전혀 다른 해시값이 나오는 것을 확인할 수 있습니다.
이러한 방법을 통해서 우리는 블록체인에 실제 데이터를 기록하지 않고도 원본 데이터의 위·변조 여부를 확인하고 거래를 할 수 있습니다.
입력 데이터 | 해시값 (SHA-256 해시 함수 사용) |
---|---|
Hippocrat | 336c31908dc35dfa387a4c811d5cd41c9510e437b1b8dfd1d9b9236650f1be85 |
hippocrat | 876796815328d626f175881cc6117fa19ad4f69899e1f2afc3eb88946dc77111 |
Hippo crat | e2c268737b330a867f3e93176ecc6247ab5d624110434c06e2f72d1e7f64935f |
Hippocrat1 | fe1a5f5dc94898fdbd1f4904651fa54951e5b5388e9ac5b1aae79c598be79d42 |