Booba의 뮤직 비디오 및 NFT의 보안 | 원장

Booba의 뮤직 비디오 및 NFT의 보안 | 원장

소스 노드 : 2657383

3년 2021월 XNUMX일, Booba (레이블을 만든 프랑스 래퍼 라 파이리트리 음악) 5개의 NFT 세트를 넣습니다. 판매 중, 이 애니메이션 카드 각각에 대해 총 5000장입니다. 이 NFT의 총량은 며칠 만에 150 ETH(각각 0.006 ETH)에 판매되었으며, 이는 현재 $700.000 이상입니다. 보너스로 이 NFT 중 하나의 행운의 소유자는 독점 뮤직 비디오를 볼 수 있었습니다. TN 이후 8 11월 2021.

Les rappeurs m'envient, sont tous en galère.
Boulbi, 웨스트 사이드

뮤직비디오가 어떻게 보호되고 있는지, 사지 않아도 감상할 수 있는지 조금 궁금했습니다. NFTs.

뮤직 비디오 보호는 어떻게 작동합니까?

동영상을 보려면 NFT 소유자가 페이지를 방문해야 합니다. /월-nft 그들의 암호 지갑(예: Metamask 또는 WalletConnect)을 사용하여 Ethereum 메시지에 서명 "Pour accéder à TN, merci de bien vouloir signer ce message" NFT를 구매하는 데 사용한 것과 동일한 지갑으로. 일단 서명되면 이 형식을 따르는 JSON 본문이 포함된 POST 요청이 웹 브라우저에서 웹 서비스 AWS에서 호스팅:

몇 가지 테스트는 기본 메시지와 다른 메시지가 JSON으로 인코딩되는 한 거부되지 않는다는 것을 보여줍니다. 예를 들어: [1337] 및 "blah" 유효한 것으로 간주되지만 JSON에 없는 메시지는 internal error 즉시.

이더리움 주소(wallet) and message 유효한 경우 서버는 지갑이 실제로 NFT 중 하나를 구입했는지 확인합니다. 그렇지 않으면 오류가 발생합니다. Tu ne possèdes aucun des NFTs 반환됩니다. 이 마지막 단계는 시간이 조금 더 걸리므로 다음과 같은 가설을 세울 수 있습니다. 인터넷에서 다음 두 가지 조건을 충족하는 공개 키를 찾으면:

  • 공개 키는 JSON 메시지에 서명했으며 관련 서명은 공개입니다.
  • 지갑은 적어도 하나의 NFT를 구입했습니다.

뮤직 비디오를 검색하기 위해 AWS 서버에서 메시지와 서명을 재생하는 것이 가능할 수 있습니다.

XNUMXD덴탈의 BOOBA TN NFT는 ERC-20 토큰(B2O_TN) 스마트 계약에 의해 발행됨 0x3b73…94dd. 덕분에 먼저 모든 NFT 소유자를 나열하는 것으로 시작했습니다. 에테르 스캔 .io. 작성 시점에 이러한 NFT 중 최소 3484개의 소유자는 1명이었습니다. 1516 지갑은 동일한 NFT를 두 개 이상 소유하고 있으며 아마도 나중에 이들 중 하나를 재판매할 것입니다.

Un jour de mon salaire c'est leur 보증 경쟁.
Boulbi, 웨스트 사이드

첫 번째 시도 – etherscan.io

Ethereum 메시지는 다음을 사용하여 인코딩됩니다. personal_sign 형식 ("x19Ethereum Signed Message:n" + length(message) + message) ECDSA를 사용하여 서명하기 전에. Ethereum 트랜잭션은 다른 형식(RLP)으로 인코딩되므로 트랜잭션 서명은 유효한 메시지 서명으로 인식될 수 없습니다. 다르게 표현하면 이더리움 블록체인에서는 메시지 서명을 찾을 수 없습니다.

우리가 오프체인 이더리움 메시지를 발견한 첫 번째 장소는 etherscan.io입니다. 확인 Ethereum 메시지 서명을 저장하고 결국 공개 URL을 통해 액세스할 수 있도록 저장합니다. 먼저 이 서비스를 통해 저장된 모든 이더리움 메시지를 검색했습니다. etherscan.io/verifiedSignatures.

예를 들어 verifySig/2642 NFT 소유자가 지루한 유인원 #6743 그가 트위터 계정의 소유자이기도 함을 증명했습니다. 원숭이:

그는 NFT의 소유자이기도 합니다. 부바 테네시 이처럼 거래. 그러나 서명이 유효하더라도 메시지는 JSON 형식이 아니며 AWS 서버에서 인식할 수 없습니다.

Tu n'peux que gagner quand t'as rien à perdre.
Magnifique, 트론

두 번째 시도 – snapshot.org

웹 사이트 스냅샷.org 개인이 이더리움 지갑을 사용하여 제안에 투표할 수 있습니다. Snapshot은 확인하기 쉽고 결과에 대해 이의를 제기하기 어려운 오프체인 가스리스 다중 거버넌스 클라이언트입니다.. 투표는 우연히 JSON 형식입니다.

GraphQL 인터페이스를 사용하여 투표 데이터베이스를 쿼리할 수 있습니다. 예를 들어 다음 최소 GraphQL 요청은 투표자 주소가 다음과 같은 투표 ID를 반환합니다. 0x668248dF4595e09Aa253B31478312748078F7a20:

쿼리 결과는 이 주소가 2표에 사용되었음을 보여줍니다.

Booba TN NFT를 소유한 각 지갑에서 서명한 투표는 단일 GraphQL 요청으로 전체적으로 검색할 수 있습니다. 689명의 고유 유권자에 대한 140개의 결과가 있습니다.

주소 0x668248dF4595e09Aa253B31478312748078F7a20 구입 5 Booba TN NFT. 이전에 표시된 것처럼 이 주소는 다음 제안에도 투표했습니다.

관련 투표는 IPFS(InterPlanetary File System)에 저장됩니다. QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM 및 QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. XNUMX차 투표 내용은 다음과 같습니다.

비디오 스크린샷

URL은 일정 기간이 지나면 만료되며 더 이상 유효하지 않습니다.

결론

이 블로그 게시물은 이 NFT 이벤트를 지원하는 암호화가 건전하더라도 기본 리플레이 공격 뮤직 비디오 보호를 깨기에 충분했습니다. 해결 방법은 간단합니다. AWS 서버로 전송된 메시지가 암호화 지갑으로 전송된 메시지와 일치하지 않으면 거부되어야 합니다.

La piraterie n'est jamais finie !
네로 네메시스 왈라복

일단 연락을 하게 되면(적절한 연락처를 찾는 것이 사실 가장 어려운 부분이었습니다), 르네상스NFT 매우 협조적이고 반응이 좋았습니다. 이 문제는 XNUMX시간 이내에 해결되었으며 더 이상 보호 액세스를 우회할 수 없습니다.

타임 스탬프 :

더보기 원장