Tezos 블록체인: 감사 관점 PlatoBlockchain 데이터 인텔리전스의 심층 분석. 수직 검색. 일체 포함.

Tezos 블록체인: 감사 관점에서의 심층 분석 

읽기 시간: 5

Tezos 블록체인 프로젝트는 초기 코인 공개로 232억 20만 달러를 모금하여 화려한 출발을 했으며, XNUMX개 ICO 중 가장 많은 자금을 받는 XNUMX위를 차지했습니다.

이더리움이나 비트코인과 같은 가장 인기 있는 블록체인 네트워크 중에서 테조스는 어떻게 모든 과대 광고를 얻을 수 있었나요? 그 해답을 찾기 위해 수많은 서포터들을 사로잡은 테조스만의 특징을 자세히 살펴보자. 

당시 등장한 블록체인이 작업증명(PoW) 합의로 작동했다면 테조스 블록체인은 스테이크 증서(PoS) 자체 수정 메커니즘 및 온체인 거버넌스를 통한 합의 기반. 

그 결과 Tezos는 훨씬 적은 에너지와 낮은 비용을 필요로 하는 친환경 DeFi 애플리케이션을 구축하기 위한 완벽한 대안으로 각광을 받았습니다. 그렇다면 Tezos 인프라는 업그레이드를 훨씬 더 쉽게 구현할 수 있는 유연성과 어떻게 동일합니까?

이를 통해 Tezos에 가치를 더하는 아키텍처 설정에 대해 배울 수 있습니다.

Tezos의 스마트 계약

스마트 계약은 당사자 중 어느 한쪽이 상대방을 신뢰할 필요 없이 두 당사자 간의 토큰 교환을 처리하도록 프로그래밍된 실행 가능한 계약입니다. 

Tezos의 경우 Michelson 프로그래밍 언어를 사용하여 고유하게 작성되었습니다. 또한 Tezos는 공식 검증을 사용하여 코드의 정확성을 보장하므로 보다 안전하고 신뢰할 수 있습니다. 

Tezos 블록체인의 세부 사항 열거

XNUMXD덴탈의 테조스의 하이라이트 구성 및 고유성을 더 잘 이해하기 위해 여기에 제공됩니다. 

자체 수정

합의 알고리즘에서 작동하는 블록을 검증하는 Tezos는 자체 수정 가능한 메커니즘으로 내장되어 있습니다. 다른 합의로의 전환, 보상 시스템 수정, 거래 추가 등과 같은 프로토콜 수정은 온체인 투표 시스템을 기반으로 구현됩니다. 

Tezos 경제 프로토콜의 모든 사소한 변경은 온체인 투표 절차에 의해 유발됩니다. 이 자체 수정 프로토콜은 커뮤니티에서 포크나 분할을 피하는 데 유리합니다.

온체인 거버넌스

Tezos는 블록체인 분할(Bitcoin Cash 및 Ethereum Classic)로 이어진 비공식 거버넌스 시스템을 따랐던 Bitcoin 및 Ethereum에 반대합니다. 

Tezos의 온체인 거버넌스는 마이너라고도 불리는 "베이커"가 프로토콜 업그레이드에 대해 제안하고 투표할 수 있도록 합니다. Tezos의 온체인 방법론은 중앙 집중식 디렉터를 거치지 않고 기본 프로토콜의 코드에서 업그레이드를 자동으로 구현하도록 설계되었습니다. 

지분 증명 합의: PoS 

Tezos의 PoS 합의는 누구나 참여할 수 있습니다. 블록을 검증하고 합의 구축을 가능하게 하는 Tezos 베이커가 되려면 베이커가 최소한의 XTZ(네이티브) 토큰을 보유해야 합니다. 

또한 사용자가 베이킹을 위한 여유가 충분하지 않은 경우 XTZ 토큰을 큰 Tez 자금이 있는 제빵사에게 위임할 수 있는 방법을 채택합니다. 차례로, 제빵사가 얻은 보상은 위임자에게 재분배됩니다. 

Tezos 스마트 계약에서 발견된 악용 근거

감사 보고서 중 하나는 Tezos 스마트 계약의 메시지 전달 아키텍처에 오류가 있는 것으로 나타났습니다. 우리는 지금 여기에서 그것들을 해독할 것입니다. 

메시지 전달 아키텍처

함수 실행 중에 호출되어야 하는 외부 계약은 대신 Tezos 계약에서 실행할 호출 목록에 대기합니다. 

테조스 컨트랙트에서 찾은 순서는, 

  • a() 실행 # 다음 호출: [b, d]
  • b() 실행 # 다음 호출: [d, c]
  • Execute d() # 다음 호출: [c]
  • Execute c() # 다음 호출: []

여기서 코드 d()가 코드 c()보다 먼저 실행되는 것을 볼 수 있습니다.

이러한 유형의 실행에는 두 가지 유형의 취약점이 있을 수 있습니다.

콜백 승인 우회 

Tezos의 아키텍처는 계약이 콜백 함수를 사용하여 외부 호출의 반환 값을 읽는 것을 방지하도록 구축되었습니다. 그러나 여기서는 제한이 없으므로 콜백을 사용하면 액세스 제어 문제가 발생할 수 있습니다. 

호출 주입

함수와 생성된 외부 호출 사이에 호출을 삽입하여 공격자가 계약을 손상시킬 수 있는 범위를 제공합니다. 

함수 실행 시 생성된 호출은 실행할 호출 목록에 대기합니다. 공격자는 호출을 대기열에 배치하고 실행된 함수의 끝과 생성된 호출 사이에 코드를 실행하여 이점을 얻을 수 있습니다. 

공격자의 호출이 실행되면 계약의 잔액이나 계약의 메모리가 무효화되고 공격자는 성공적으로 호출 주입을 달성합니다. 

Michelson을 사용하여 Tezos 스마트 계약을 코딩할 때 주의해야 할 사항

Michelson 프로그래밍 언어는 데이터 유출 및 자금 절도에 강한 보안 계약을 작성하기 위한 필수 옵션입니다. 프로그래밍 언어가 매우 강력하지만 계약서에 나타날 수 있는 실수 목록이 있습니다. 

일반적인 실수와 오류를 배제하는 방법을 이해합시다.

계약 목록에 대한 환불

집단의 자금이 한꺼번에 환불되는 조건입니다. 악의적인 사용자가 이러한 문제를 시작하는 임의의 계약을 수락할 때 발생합니다. 

이 오류로 인해 발생할 수 있는 문제는 계약이 일련의 콜백을 통해 모든 가스를 삼키고 모든 계산, 재진입 오류 등을 중지하는 'FAIL' 명령이 호출된다는 것입니다. 

해결책은 무엇입니까?

기본 계정은 코드를 실행하지 않습니다. 따라서 위의 문제는 사람들의 키에서 기본 계정을 만들어 정렬할 수 있습니다. 또한 사용자가 개별적으로 자금을 인출하도록 프로그래밍할 수 있습니다. 

전송 전 상태를 설정하지 않음

재진입은 블록체인의 일반적인 장애물입니다. 컨트랙트가 전송을 위해 다른 외부 컨트랙트를 호출할 때, 각 전송 후 상태가 업데이트되지 않으면 임의가 추가 전송에서 우위를 점합니다.

계약에서 자금이 여러 번 인출됩니다. 

해결책은 무엇입니까?

외부 계약을 호출할 때 주의하고 해당 동작을 수정할 수 없도록 하십시오. 재입장을 금지하려면 정당한 사유가 없는 한 사용자가 재입장할 수 없도록 저장소에 플래그를 지정합니다. 

개인 데이터 저장 또는 전송

게시된 데이터는 명시적으로 볼 수 있습니다. 즉, 거래가 브로드캐스트될 때 개인 정보가 모든 사람에게 표시됩니다. 이것은 시스템의 악의적인 노드가 서명되지 않은 트랜잭션을 지연 또는 수정하여 조작할 기회를 제공합니다. 

해결책은 무엇입니까?

민감한 정보가 포함된 거래에 서명하십시오. 카운터를 사용하여 거래 주문을 시행하면 문제를 해결할 수 있습니다. 

Tezos 스마트 계약 감사를 통해 프로젝트에 대한 프로 보호 보장 

자체 수정 구조로 구축된 Tezos는 더 나은 확장성과 안정성을 제공하지만 보안은 항상 블록체인 기반 애플리케이션의 문제입니다. 가장 작은 문제가 가장 큰 자금 손실을 초래할 수 있습니다. 

그리고 그것이 어디에 나쁜 행위자의 손아귀에서 자산을 보호하기 위해 한 걸음 더 나아갑니다. 우리는 철저하게 수행하여 이러한 문제를 인식하고 수정하므로 계약을 악용할 기회를 제공하지 않습니다. Tezos 스마트 계약 감사

전문가와 무료 상담을 통해 감사 서비스에 대해 알아보세요. 

2 조회수

타임 스탬프 :

더보기 퀼해시