0xMiden / 0xMiden/node

Make note script insertion procedure more robust

Đang mở
#1,188 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
blocked store
Ngôn ngữ chính
Rust
Star
104
Fork
138
Merge trung bình
1 ngày 13 giờ
Pull request đã merge (30 ngày)
56

Mô tả

When we receive a new public note, we insert a record into the `note_scripts` table. I believe currently this just overwrites the previous record with the same note root. This should work fine most of the time, but there is an edge case which a malicious user could exploit.

The reason for this edge case is that MAST does not enforce which part of the underlying code must be made available. Specifically, we could have two script details, both with the same MAST root, but one is a "more complete" version of the other. How to handle this in generality is still an open question but we don't need to solve the general case here.

What we need to do is:

1. If we `script` we are trying to insert is the same script as the one we have in the DB.
2. If they are the same, we don't need to do anything extra.
3. If they are not the same, we need to pick a "more complete" version, and replace the old version with it.

The last step could be tricky - as we may need to merge the two scripts. This logic should probably live in `miden-vm`.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.