QR 코드를 스캔하여 다운로드하세요.
BTC $81,059.92 +1.52%
ETH $2,383.67 +0.59%
BNB $628.04 -0.13%
XRP $1.41 -0.27%
SOL $84.92 +0.07%
TRX $0.3404 +0.33%
DOGE $0.1116 -0.55%
ADA $0.2565 +1.81%
BCH $445.55 -0.22%
LINK $9.58 +2.85%
HYPE $43.21 +2.93%
AAVE $92.93 -1.05%
SUI $0.9487 +0.94%
XLM $0.1591 -0.59%
ZEC $420.72 +2.20%
BTC $81,059.92 +1.52%
ETH $2,383.67 +0.59%
BNB $628.04 -0.13%
XRP $1.41 -0.27%
SOL $84.92 +0.07%
TRX $0.3404 +0.33%
DOGE $0.1116 -0.55%
ADA $0.2565 +1.81%
BCH $445.55 -0.22%
LINK $9.58 +2.85%
HYPE $43.21 +2.93%
AAVE $92.93 -1.05%
SUI $0.9487 +0.94%
XLM $0.1591 -0.59%
ZEC $420.72 +2.20%

블록체인 보안 문제에는 어떤 유형이 있나요?

Summary: 안전한 관점에서 블록체인 기술은 다섯 개 층으로 나눌 수 있으며, 이에 따른 안전 문제는 여섯 가지 범주로 분류됩니다.
알파 공사
2020-12-23 23:36:56
수집
안전한 관점에서 블록체인 기술은 다섯 개 층으로 나눌 수 있으며, 이에 따른 안전 문제는 여섯 가지 범주로 분류됩니다.

이 문서는 2018년 8월 21일 알파 커뮤니티에 의해 발표되었습니다.

일, 서론

2018년 8월 6일, 텐센트 보안은 《2018 상반기 블록체인 보안 보고서》를 발표했습니다. 보고서에 따르면, 현재 전 세계적으로 1600종 이상의 암호화 디지털 화폐가 등장했으며, 2018년 상반기 블록체인 분야는 보안 문제로 인해 27억 달러 이상의 손실을 입었고, 블록체인 보안 사건으로 인한 손실 금액은 계속해서 증가하고 있습니다. IOTA의 '메일 게이트 사건', USDT의 '가짜 충전 취약점', EOS의 '무지개 공격', BEC와 SMT의 '정수 오버플로우 공격 취약점', BTG의 '51% 해시 공격' 등 일련의 사건들은 많은 사람들의 광범위한 관심과 생각을 불러일으켰습니다.

블록체인 보안 위협의 주요 유형은 무엇인가요? 스마트 계약의 보안 문제가 왜 이렇게 중요하며, 많은 사람들의 관심을 끌고 있을까요? 스마트 계약의 보안 유형은 얼마나 될까요? 현재 주류의 보안 모니터링 방법은 무엇인가요? 가장 효과적인 방법은 무엇인가요? 사람들이 어떻게 안전하고 결함 없는 스마트 계약 코드를 얻을 수 있을까요? 이러한 일련의 질문에 대해, 우리는 SECBIT의 창립자 구오위와 인터뷰를 진행하여 블록체인 산업의 보안 문제와 주류 해결책을 체계적으로 소개합니다.

이, 블록체인 보안 여섯 가지 유형

보안 관점에서 볼 때, 블록체인 기술은 다섯 개의 층으로 나눌 수 있으며, 해당 보안 문제는 여섯 가지 유형으로 분류됩니다.

블록체인 보안 6대 분류 3대 문제를 한눈에 이해하기블록체인 2.0 버전 기술 아키텍처

첫 번째 층, 암호학. 암호학은 블록체인의 가장 기초적인 지원 기술로, 해시 알고리즘, 디지털 서명, 난수 등을 포함합니다. 이러한 암호학 기술에 문제가 있거나 취약점이 존재한다면, 이를 기반으로 구축된 블록체인 전체의 신뢰가 무너질 것입니다.

현재 암호학 기술은 상당히 성숙해져 있으며, 큰 취약점이 존재할 가능성은 낮지만, 여전히 일부 프로젝트에서 문제가 발생할 수 있습니다. 2017년 7월 15일, '사물인터넷 세계 1위 화폐'로 불리는 IOTA는 MIT 부속 학술 연구 그룹 DCI로부터 이메일을 받았고, IOTA의 해시 알고리즘 Curl-P에 약점이 존재한다고 경고했습니다. DCI는 해당 시스템에 성공적으로 공격을 가해 사용자 자금을 탈취할 수 있다고 밝혔습니다. IOTA는 이후 DCI의 이메일에 대해 의문을 제기하고 반박했지만, 현재까지 이 취약점으로 인해 사용자가 자금을 도난당한 사례는 없지만, 이 사건은 IOTA와 다른 프로젝트의 암호학 기술 보안에 대한 관심을 불러일으켰습니다.

두 번째 층, 사용자 개인 키의 생성, 사용 및 보호. 사용자가 블록체인에 참여하기 위한 증명은 한 쌍의 공개 키와 개인 키입니다. 모든 사용자가 블록체인에서 상호작용을 하기 위해서는 안전한 개인 키를 소유하고 이를 잘 관리해야 하므로, 개인 키의 생성, 사용 및 보호 문제는 매우 중요합니다.

올해 7월, EOS는 개인 키 생성 도구에 보안 취약점이 존재하여 생성된 개인 키가 해커에게 발견되고 '무지개' 공격이 실행되어 계좌의 디지털 자산이 도난당해 수천만 달러의 손실을 초래했습니다.

세 번째 층, 노드 시스템 보안 취약점. 이 문제는 전통적인 보안 범주에 속합니다. 예를 들어, 블록체인 노드는 버퍼 오버플로우와 같은 전통적인 보안 취약점이 존재해서는 안 됩니다. 또한 블록체인 노드는 블록체인의 합의 프로토콜을 충실히 올바르게 구현해야 하며, 노드는 노출되어서는 안 되는 API 인터페이스를 노출하여 해커가 일부 노드의 중요한 정보를 쉽게 얻을 수 없도록 해야 합니다. 이더리움이나 EOS 모두 심각한 보안 취약점이 발견된 적이 있습니다. 이 부분의 보안 또한 매우 중요합니다.

네 번째 층, 하위 합의 프로토콜. 현재 시장에서 주류 블록체인 합의 프로토콜은 다음과 같은 몇 가지가 있습니다: POW, POS, DPOS, PBFT. 하위 합의 프로토콜은 블록체인 전체 구조의 신뢰성을 결정하며, 실제로 합의가 이루어진 블록체인을 형성할 수 있는지를 결정합니다. 현재 실제로 안전하다고 입증된 합의 프로토콜은 많지 않습니다. 합의 프로토콜 자체는 이론적으로나 기술적으로 간단하지 않기 때문입니다. 오랜 시간 검증된 합의 프로토콜은 비교적 안전합니다. 예를 들어 비트코인의 POW가 있습니다. 합의 프로토콜은 불가능한 삼각 관계를 가지고 있습니다: 안전성, 탈중앙화 및 효율성, 이 세 가지는 동시에 두 가지만 실현할 수 있습니다. 효율성을 추구하면 탈중앙화 또는 안전성을 희생해야 합니다.

블록체인 시스템의 합의 프로토콜이 안전한지 여부는 매우 중요합니다.

이론적으로, 하위 합의 프로토콜을 기반으로 생성된 모든 디지털 화폐는 51% 해시 공격의 위험이 존재합니다. 올해 상반기에는 최소 4종의 디지털 화폐가 각각 51% 해시 공격을 받았으며, 이는 Monacoin, Bitcoin Gold, Verge 및 Electroneum으로, 사용자에게 수천만 달러의 손실을 초래했습니다.

다섯 번째 층, 스마트 계약. 스마트 계약은 디지털 형태로 정의된 약속(promises)의 집합으로, 계약 참여자가 이러한 약속을 실행할 수 있는 프로토콜을 포함합니다. 모든 참여자는 애플리케이션 레이어에서 계약을 생성할 수 있으며, 이를 DAPP(탈중앙화 애플리케이션)이라고 합니다. 이는 현재 보안 문제가 가장 많이 발생하는 곳이기도 합니다.

스마트 계약의 보안 위험은 세 가지 측면을 포함합니다: 첫째, 취약점이 있는가. 계약 코드에 일반적인 보안 취약점이 있는지 여부. 둘째, 신뢰할 수 있는가. 취약점이 없는 스마트 계약이 반드시 안전하다는 것은 아니며, 계약은 공정하고 신뢰할 수 있어야 합니다. 셋째, 일정한 규범과 프로세스를 준수해야 합니다. 계약의 생성은 약속을 디지털 형태로 정의해야 하므로, 계약 생성 과정이 충분히 규범적이지 않으면 큰 위험을 남길 수 있습니다.

현재 시장의 많은 스마트 계약은 보안 취약점 문제를 안고 있습니다. 예를 들어, 6월 3일, SECBIT은 이더리움에서 81개의 계약이 동일한 오류를 가지고 있음을 발견했습니다. ERC20 토큰 계약의 transferFrom 함수에는 큰 위험이 존재하며, 배포 후 문제가 발생하면 회복할 수 없는 손실을 초래할 수 있습니다. 6월 6일, SECBIT은 ERC20 토큰 계약 FXE가 비즈니스 로직 구현의 취약점으로 인해 누구나 타인의 계좌에서 Token을 마음대로 전송할 수 있으며, Token은 언제든지 완전한 제로 위험에 직면할 수 있음을 발견했습니다.

블록체인 산업 종사자, 스마트 계약 사용자 또는 암호화폐 소유자는 관련된 암호학 및 스마트 계약 프로그래밍 지식을 배워야 하며, 자금 안전과 관련된 계약 및 공개 키와 개인 키 등의 코드를 임의로 복사하여 사용해서는 안 됩니다. 만약 악의적인 공격자가 심각한 취약점이 있는 코드를 공개하여 기술 개발 능력이 부족한 조직이 이를 사용하도록 유도한다면, 사용자는 파괴적인 타격과 회복할 수 없는 손실을 입게 될 것입니다.

여섯 번째 층, 인센티브 메커니즘 설계. 스마트 계약이 협력을 완료하기 위해서는 일반적으로 적절한 경제적 인센티브 메커니즘을 설계해야 합니다. 경제적 인센티브는 블록체인 기술 내에서 매우 혁신적인 개념입니다. 진정으로 건강하고 활력 있는 블록체인 생태계는 훌륭한 인센티브 메커니즘이 필요합니다. 그러나 경제적 인센티브가 충분히 안전하게 설계되지 않으면 생태계가 구축될 수 없습니다. 예를 들어 전형적인 폰지 게임과 같은 경우, 이 점에 대해 경계해야 합니다.

삼, 스마트 계약의 세 가지 문제

앞서 소개한 여섯 가지 블록체인 보안 문제는 해당 기술 계층에 의존하여 구분된 것입니다. 하위 기술일수록 안정적입니다. 예를 들어, 암호학은 처음 선택된 이후 쉽게 변경되지 않습니다.

스마트 계약은 비교적 유연하여 누구나 생성할 수 있기 때문에 상대적으로 보안 문제가 발생하기 쉽습니다.

모든 사용자는 합의 기반의 계약을 생성할 수 있으며, 이는 마치 모든 시민이 특정 법률을 기반으로 계약서를 작성할 수 있는 것과 같습니다. 이 법률은 일종의 합의 메커니즘(플랫폼)이며, 이 계약은 내재적인 제약 조건을 가지고 있습니다. DAPP을 사용하는 것은 계약을 체결하는 것과 같으며, 모든 행동은 이 계약 조항에 따라 수행되어야 합니다. 따라서 스마트 계약의 보안 위험은 사용자 재산 손실과 직접적으로 관련이 있습니다.

현재까지 SECBIT은 시장에서 스마트 계약의 세 가지 주요 문제를 발견했습니다:

첫째, 정수 오버플로우를 대표로 하는 보안 취약점. 보안 취약점은 일반적으로 코드를 작성하는 사람이 부주의하게 도입한 것으로, 계약의 특정 기능 부품이 작동하지 않게 할 수 있으며, 가장 심각한 경우 해커의 공격, 사용자 자산 손실, 심지어 해커가 무작위로 많은 화폐를 생성할 수 있습니다. 예를 들어 BEC, SMT, EDU는 정수 오버플로우 보안 취약점으로 인해 해커의 공격을 받아 화폐 가치가 제로로 떨어졌습니다.

둘째, 스마트 계약 권한 제어. 일반적으로 스마트 계약에는 관리자가 설정되며, 관리자는 일반적으로 슈퍼 권한을 가집니다. 이러한 계약의 보안 위험은 상당히 큽니다. 왜냐하면 관리자의 개인 키가 도난당하면 큰 손실을 초래할 수 있기 때문입니다. SECBIT의 불완전한 통계에 따르면, 상위 570개의 Token 계약 중 342개의 계약은 관리자만 호출할 수 있는 기능(Only Owner)을 가지고 있으며, 많은 계약은 관리자가 임의로 화폐를 발행하거나 소각하고, 계좌를 동결하거나, 송금을 중단하는 등의 과도한 권한을 가지고 있습니다.

올해 7월 10일, 암호화폐 거래소 Bancor는 공격을 받아 당시 환산된 금액으로 1250만 달러의 이더리움, 1000만 달러의 Bancor 토큰 및 100만 달러의 Pundix 토큰을 잃었다고 밝혔습니다. 우리의 분석에 따르면, 이번 Bancor 플랫폼 해킹 사건은 BancorConverter 계약과 관련이 있으며, 공격자(해커/내부자)는 관리자의 개인 키를 확보하여 관리자 신분을 이용해 사용자의 Token을 탈취하여 큰 손실을 초래했습니다.

셋째, 규범성 문제. 현재 많은 스마트 계약의 구현에는 통일된 규범이 없습니다. 스마트 계약은 상호작용 방식으로 여러 사람이 협력하는 것이므로, 계약이 비규범적일 경우 서로 다른 사람들이 계약의 행동에 대해 오해를 일으켜 대량의 보안 문제가 발생할 수 있습니다.

예를 들어, 올해 연이어 발생한 '가짜 충전' 사건에는 이더리움 토큰, USDT 등이 포함되어 있으며, 한 기관의 불완전한 통계에 따르면, 시장의 단일 토큰 계약 중 3619건이 '가짜 충전' 취약점 위험을 안고 있으며, 그 중에는 유명한 토큰도 포함되어 있습니다.

정상적인 경우, 충전 과정에서 송금이 실패하면 계좌는 충전할 수 없으며, 계좌 잔액은 여전히 0입니다. 그러나 계약에 '가짜 충전' 취약점이 존재하면 송금이 실패할 때 시스템은 충전 실패를 표시하지 않으며(값), 거래소는 결과를 충전 성공으로 잘못 판단하게 됩니다. 만약 해커가 이 취약점을 발견하면, 계속해서 '가짜' 충전을 진행한 후 이 돈을 인출하여 거래소에 직접적인 손실을 초래할 수 있습니다.

사, 형식적 검증의 중요성

현재 시장에서 스마트 계약 보안 문제를 검증하는 방법은 주로 세 가지가 있습니다: 첫째, 테스트, 둘째, 감사, 셋째, 형식적 검증입니다. 테스트는 프로그램이 자동으로 실행되어 다양한 가능성의 입력을 통해 정수 오버플로우 취약점 등의 문제를 검사합니다. 그러나 이 테스트는 일반적으로 100% 커버할 수 없으며, 반드시 누락이 존재합니다. 감사는 전문가의 전문 지식을 통해 검토하는 것이지만, 아무리 전문적인 전문가라도 누락이 있을 수 있습니다. 앞의 두 가지 전통적인 방법은 계약에 취약점이 없음을 보장할 수 없지만, 형식적 검증은 이를 달성할 수 있습니다.

형식적 검증은 세 가지 문제를 해결할 수 있습니다. 첫 번째는 안전하고 결함이 없는 것입니다: 수학적 추론 방법을 통해 계약의 모든 행동을 포착하고, 모든 가능성을 커버하여 계약에 결함이 없도록 보장합니다. 두 번째는 신뢰성: 공개적이고 투명합니다. 계약의 작성자는 무엇을 했는지 명확히 설명해야 하며, 코드가 실제로 그렇게 작동함을 증명해야 합니다. 이것은 현재 형식적 검증만이 가능하다는 점입니다. 세 번째는 규범성 문제입니다. 앞서 언급한 가짜 충전 취약점은 이더리움의 ERC20 규범이 매우 모호하고 불완전하게 작성되었기 때문입니다. 그렇다면 어떻게 완전하게 작성할 수 있을까요? 이는 계약의 규범이 자연어 또는 문자 설명으로 작성될 수 없으며, 형식적 규범을 도입하고 수학적 논리 언어를 사용하여 엄격하게 정의해야 한다는 것을 요구합니다.

형식적 검증은 산업계, 특히 안전 시스템 관련 분야에서 이미 많은 응용 사례가 있으며, 항공 우주, 고속철도, 원자력 발전 등 산업에서 전문 팀이 형식적 검증 서비스를 제공하고 있으며, 그 역할과 효과는 이미 안전 산업 전문가들에 의해 인정받고 있습니다.

현재 형식적 검증에는 모델 검증과 연역적 추론 두 가지가 포함됩니다. 상대적으로 권위 있고 안전한 회사인 Zeppelin과 이더리움 공식 웹사이트는 문제가 있는 스마트 계약 코드를 공개한 적이 있습니다. 만약 더 신뢰할 수 있고 권위에 의존하지 않는 스마트 계약 코드 라이브러리가 있다면, 모든 사람이 사용할 수 있도록 개방된다면 이 문제를 잘 해결할 수 있을 것입니다.

관련 태그
warnning 위험 경고
app_icon
ChainCatcher Building the Web3 world with innovations.