Skip to main content

BLS 업그레이드가 DApp 개발자에게 미치는 영향

· 2 min read
Claude Barde
Developer Relations

Midnight 테스트넷 업그레이드로 BLS12-381이 도입됩니다. 개발자는 Lace 지갑, proof server을 업데이트하고 최신 Compact 컴파일러로 컨트랙트를 재배포해야 합니다.

Midnight 테스트넷이 업그레이드 중입니다. 이번 업그레이드에서 증명 시스템이 Pluto-Eris에서 BLS12-381로 변경됩니다.

호환성과 기능을 유지하기 위해 DApp 개발자는 다음 단계를 완료해야 합니다:

1- Installing the Lace wallet

Lace 지갑 최신 버전(2.0.0)은 여기에서 받으세요. 새로운 Bech32m 주소 형식을 지원합니다.

  1. ZIP 파일을 다운로드하고 압축을 해제하세요.
  2. Chrome 또는 Brave 브라우저를 여세요.
  3. Extensions 패널로 이동하세요.
  4. Load unpacked을 클릭하세요.
  5. 방금 압축 해제한 폴더를 선택하세요.
  6. 설치가 완료되면, 새 지갑을 생성하거나 저장된 시드 문구로 기존 지갑을 복원할 수 있습니다.

완료되면 "mn_shield-addr_test..."로 시작하는 새 주소 형식이 표시됩니다.

2- Downloading the proof server

proof server 최신 버전은 여기에서 다운로드하세요. 커맨드 라인으로도 설치할 수 있습니다:

docker pull midnightnetwork/proof-server:latest

다운로드 후 다음 명령으로 proof server을 시작하세요:

docker run -p 6300:6300 midnightnetwork/proof-server -- midnight-proof-server --network testnet

자세한 내용은 문서를 참고하세요.

3- Updating the Compact compiler and redeploying the smart contracts

스마트 컨트랙트는 새로운 증명 시스템과 영지식 증명에 맞추어 재배포해야 합니다.

이번 업그레이드로 컴파일러, Compact 런타임, 온체인 런타임이 모두 변경됩니다. 개발자는 새로운 BLS 호환 컴파일러 버전 0.23.0으로 컨트랙트를 재컴파일해야 합니다. 이 버전은 다른 업그레이드 컴포넌트와 함께 출시됩니다.

재컴파일 후, 새로 컴파일된 컨트랙트로 DApp을 다시 빌드하세요. 또한 내보낸 회로에 대해 새 prover 키와 verifier 키가 필요합니다. 기존 키로 재배포하는 것만으로는 충분하지 않으며, 새 키 생성을 위해 반드시 재컴파일해야 합니다.

기존 방법으로 컨트랙트를 배포하거나, 이 예시의 deploy 함수를 참고하여 Midnight 테스트넷에 스마트 컨트랙트를 배포하세요.

Bech32m 주소를 지원하는 최신 MidnightJS를 사용하여 컨트랙트를 배포하세요.