stalim17

Posted on Jan 26, 2023Read on Mirror.xyz

Bedrock Security Reviews & Audit Competition - Lindsay Presswell [KOR]

이 기사는 Maurelian 과 공동으로 작성되었습니다 .

최근 Optimism Goerli 테스트넷이 Bedrock으로 성공적으로 마이그레이션되면서 우리는 Bedrock 릴리스의 중요한 단계인 Optimism Mainnet 업그레이드에 접근하고 있습니다.

Bedrock의 크기와 복잡성은 시스템의 보안과 안정성을 보장하는 것이 구축만큼이나 야심찬 작업임을 의미합니다. 우리는 많은 것을 배웠고 우리가 배운 것을 여러분과 공유하게 되어 기쁩니다.

이 기사에서 우리는 몇 가지 보안 하이라이트를 살펴보고 대담한 프로토콜 및 스마트 계약 전문가가 상품과 교환하여 버그를 찾을 수 있는 기회를 소개합니다 👀

Bedrok 릴리스의 보안 보장

Bedrock은 OP 스택 과 Optimism의 작동 방식을 근본적으로 재구성한 것입니다. 이 릴리스의 목표를 달성하기 위해 시스템의 많은 부분이 처음부터 우아하고 단순하며 미래에 대비할 수 있도록 재설계되었습니다.

우리는 이 프로세스를 신뢰할 수 있는 타사 보안 검토 및 감사를 개발자로서 그리고 항상 코드의 보안을 개선하는 것을 목표로 하는 팀으로서 우리의 학습 및 성장 프로세스에 통합할 수 있는 기회로 사용했습니다.

이 전체론적 접근 방식은 가장 안전하고 안정적인 코드베이스를 만들었고 L2 생태계에서 발생하는 일반적인 보안 문제에 대한 몇 가지 새로운 솔루션으로 이어졌습니다.

코드 검토 및 감사

제3자 감사는 출하 전에 확인해야 할 항목으로 간주되는 경우가 너무 많습니다.

우리는 Bedrock 개발 프로세스 초기에 게임에서 최고의 소프트웨어 보증 파트너를 참여 시켰습니다.

보안 검토에서 지속적인 피드백을 받으면서 프로세스의 격차를 식별하고 권장 사항을 통합할 수 있었으며, 이는 궁극적으로 보안 소프트웨어를 작성하는 능력을 향상 시켰습니다.

다음은 이 릴리스를 확보하는 데 도움이 되도록 개발 전반에 걸쳐 의뢰한 검토 요약입니다.

-2022년 4월에 우리는 초기 버전의 Bedrock 계약을 검토 하기 위해 OpenZeppelin과 협력했습니다.

-같은 달에 Trail of Bits는 Rollup Node와 Optimistic Geth에 대한 리뷰 를 수행했습니다.

-7월 초에 Sigma Prime 은 Bedrock의 중요한 Golang 구성 요소(Rollup Node 및 Optimistic Geth)에 대한 검토 를 수행했습니다.

-7월 중순(Sigma Prime 감사 진행 중) OpenZeppelin은 계약을 다시 살펴보았습니다. 그들은 새로운 ERC721 Bridge를 포함하여 Bridge에 집중했습니다.

-9월에 우리는 Trail of Bits의 파트너에게 우리 시스템의 불변성을 식별하고 테스트하도록 요청했습니다. 이 보고서 는 이러한 불변성을 나열하는 유용한 아티팩트를 제공 했을 뿐만 아니라 Golang 및 Solidity 코드 모두에 대해 수많은 퍼즈 테스트를 받았습니다.

-11월까지 Bedrock 코드베이스는 성숙했으며 엔지니어링 작업은 주로 정리, 테스트, 업그레이드 계획에 집중되었습니다. 이때 우리는 Trail of Bits 에 Bedrock을 마지막으로 살펴보도록 요청했습니다.

2단계 인출

다름이 아니라 2022년은 암호화폐 커뮤니티가 크로스 체인 브리지 보안이 어렵다는 것을 알게 된 해였다. 업계 전반에 걸쳐 많은 취약성이 보고(또는 악용)되었으며, 일부 취약성은 잘못된 입증 구현을 활용했습니다.

브릿지 계약 자산의 안전성을 높이기 위해 Optimism에서 Ethereum Mainnet으로 이동하는 자금에 대해 2단계 인출 프로세스를 구현했습니다.

변경된 사항은 다음과 같습니다.

  • 현재 사용자가 옵티미즘 네트워크에서 이더리움 메인넷으로 인출하면 옵티미즘에서 인출을 시작하고 7일 후에 이더리움 메인넷에서 인출을 완료합니다.

  • 2단계 인출을 통해 사용자는 Optimism Network에서 인출하고 약 1시간 후에 이더리움 메인넷에서 해당 인출의 유효성을 증명한 다음 표준 7일을 기다려 이더리움 메인넷에서 인출을 완료합니다.

2단계 인출을 통해 인출이 중복되지 않았는지 인출 프로세스 초기에 확인할 수 있습니다. Optimism Mainnet의 철수와 일치합니다. 이더리움 메인넷의 브리지에서 인출할 때마다 Optimism에 상응하는 인출이 이루어지므로 브리지 메커니즘의 잠재적인 결함을 악용하기가 훨씬 더 어려워집니다.

불변 시험

Bedrock 보안의 중요한 구성 요소는 코드에서 불변성을 정의하는 엄격한 프로세스를 거쳤습니다. 그런 다음 퍼징에는 Echidna를 사용하고 퍼징 및 불변 테스트에는 Foundry를 사용하여 이러한 불변량을 검증했습니다.

우리는 불변량을 명확하게 정의하는 것이 엔지니어링 팀 전체에서 시스템의 의도된 동작에 대한 공통된 이해를 보장하는 효과적인 방법임을 발견했습니다.

Bedrock의 보안 테스트: 감사 콘테스트에 참여하십시오!

우리는 OP 스택의 Bedrock 릴리스가 안정적이고 안전한지 확인하기 위해 많은 노력을 기울였지만 아무것도 간과하지 않았음을 확인하기 위해 취할 수 있는 조치가 하나 더 있습니다.

Sherlock 의 도움으로 우리는 Bedrock의 보안을 테스트하기 위한 감사 콘테스트를 주최할 것입니다.

Bedrock 릴리스는 상당합니다. 클라이언트 소프트웨어(예: Geth 및 Golang)를 포함하고 Github의 소스 코드 대신 테스트넷에서 라이브 시스템을 살펴보는 비정규적이고 혁신적인 감사 콘테스트를 주최할 수 있는 기회를 제공했습니다.

이것은 다양한 기술을 가진 현상금 사냥꾼이 자신의 전문성을 발휘할 수 있는 재미있고 참신한 기회입니다!

경쟁 매개 변수

이 대회에서 심사원은 Goerli 네트워크 의 낙관주의를 살펴볼 것 입니다. 이 시스템은 최근 레거시 시스템에서 새로운 Bedrock 아키텍처 로 업그레이드 되었습니다 .

즉, 참가자는 계약의 소스 코드에서 버그를 찾는 대신 블록 탐색기 및 기타 인프라가 완비된 라이브 시스템과 상호 작용할 수 있습니다.

분석을 시작하는 방법에 대한 몇 가지 지침을 포함하여 전체 콘테스트 세부 정보 는 Sherlock의 콘테스트 페이지를 확인하세요 .

참여방법

  1. Sherlock의 웹사이트 에서 대회 세부 정보(사용 가능한 모든 상품 포함!)를 읽어보세요 .

  2. Sherlock을 통해 참여하려면 등록하세요.

  3. 코드를 읽고, 버그를 찾고, 현상금을 받으세요!

대회는 1월 23일부터 2월 6일까지 진행됩니다. Optimism의 보안을 유지하는 데 도움을 주셔서 감사합니다!

https://dev.optimism.io/bedrock-security/