COSMOS SDK Audit
WIP
cosmosがlaunchしたのでLPを見たら、なんか「Auditしてるぜ」チェックマークがついていた。ので見てみる。
https://cosmos.network/launch
https://gyazo.com/5395ae7aaeeddb4098847a35969a1951
medium
2019/03/05 のmedium Audits, Audits, Everywhere - Everything You Need to Know About Application Security and the Cosmos Network によれば、
Securityのために、Auditを超大事にしているよ
フレッシュな目線で評価してくれて、自分たちの指標にもなるのいいよね。
リリースまで、長期的に、いろんなAuditうけてきたよ
Audit 1. In 2017
Auditor: Jepsen
レポート: https://jepsen.io/analyses/tendermint-0-10-2
対象: tendermint
手法: コードレビューではなく、consensusのliveness & safety チェック
結果: ↑は大丈夫だったが、少しissueがあった。
a single node data corruption, a fatal crash in WAL recovery, and data loss in WAL
Audit 2. In March 2018 (13 days)
Auditor: 「a world renowned researcher in offensive cryptography and blockchain technology. 」
かきとちゅう
概要
Abstract of Interchain Cosmos SDK Audit
Least Authority によるAudit (ZcashのAuditや、ETHのインセンティブAuditもしていた老舗)
Tendermintチームのサポートのもと
2019/01/07- 01/22 の16日間で、レポートはその翌日に出した。
最終版は2/22に出さた。ディスカッションをもとにTendermintチームがCosmos SDKへの提案をつくり、Least Authorityが最終チェックした。
プロジェクトのハイレベルレビューと、特定機能の詳細なレビューのために、time-boxedレビューを採用。
要するに期限を決めたレビュー。
BaseAppを中心に、あともろもろ。
Review of BaseApp;
Tooling for a chain initialization process;
Review of the state and transactions documentation;
Review of the auth and bank module specification;
Review of the F1 Fee Distribution Module;
Review of Tombstone.
目的は、それらの(Tendermintチームが示した)プライオリティ高い部分をレビューすること。より明確なissueを見つけること。
期限をくぎることで、包括的なレビューができず、コンセンサスアルゴリズムにおけるゲーム理論面のレビューもできないことは理解している。
結論
コードベースは全体としてよくオーガナイズされていて、必要十分できれい。
これらのコーディングスタイルで、効率的なレビューができた。潜在的な攻撃をふせぐための他者レビューもやりやすい。
Ethereumのベストプラクティスにもしたがっていて、reentrancy問題など既知のバグもなかった
セキュリティ問題なかった。以下べた褒めがならぶので省略。
フルレポート
https://cosmos.network/pdf/least-authority-interchain-cosmos-sdk-final-audit-report-v2.pdf
Methodology
#Cosmos