Đường đến Neo3: Hợp đồng định danh riêng biệt

TIN TỨC NEO
2020-02-13


Trong bài viết Road to Neo3 trước đây, chúng tôi đã thảo luận về việc sử dụng băm tập lệnh trên Neo2 và các vấn đề chúng có thể gây ra cho các nhà phát triển và mạng. Mặc dù các vấn đề liên quan đến di chuyển dữ liệu có thể được giảm thiểu thông qua các hồ sơ chuyển hướng hợp đồng, nhưng các vấn đề khác chưa được giải quyết đã thúc đẩy một cách tiếp cận khác thay thế.


Xem các bài trong chuỗi bài Đường đến Neo3 tại đây.


Việc triển khai hợp đồng định danh riêng biệt là theo đề xuất của Erik Zhang, anh đã giải thích lợi ích của việc thay đổi:


“Sự khác biệt chính là với GUID, bạn không cần phải thêm hồ sơ chuyển hướng và hợp đồng có thể được nâng cấp bất cứ lúc nào mà không cần ghi lại thông tin bổ sung để ngăn các hợp đồng cũ được triển khai. Bởi vì nếu một hợp đồng cũ được triển khai, GUID mới sẽ được tạo.”


Ngoài việc loại bỏ nhu cầu di chuyển lưu trữ hợp đồng, một ưu điểm khác của phương pháp này là các hợp đồng sẽ không còn thay đổi định danh (mã băm) sau khi cập nhật. Một ID xác định được gán cho mỗi hợp đồng được triển khai, vẫn tồn tại giữa các lần cập nhật mã. Điều này có nghĩa là các nhà cung cấp dịch vụ tích hợp với hợp đồng Neo sẽ không còn cần phải cập nhật thủ công cơ sở hạ tầng của họ bất cứ khi nào hợp đồng được cập nhật.


Triển khai hợp đồng ID

Zhang đã làm theo đề xuất của mình bằng một quá trình triển khai đơn giản, thay thế băm tập lệnh bằng UIDcung cấp sơ đồ tạo UID xác định.


Trong khi xem xét đề xuất, nhà phát triển phần mềm NGD, Mạnhyu Liu nhấn mạnh rằng phương pháp tạo đơn giản này có thể tạo ra khả năng va chạm băm, khả năng này có thể dẫn đến việc tấn công tính năng lưu trữ hợp đồng.


Lưu ý sự cần phải tạo UID an toàn và nhất quán, Liu đã đề xuất hai phương pháp thay thế để tạo ID hợp đồng bắt buộc. Sau khi ban đầu đề xuất sử dụng chiều cao khối, chỉ số giao dịch và bộ đếm để tạo khóa, một bộ đếm toàn cầu đã được đề xuất.


Sức mạnh của phương pháp truy cập toàn cầu nằm ở sự đơn giản của nó. Mỗi lần hợp đồng được triển khai vào blockchain Neo3, nó sử dụng bộ đếm để xác định và lấy số ID có sẵn tiếp theo và bộ đếm được tăng lên. Quá trình này được lặp lại trên mỗi lần triển khai mới, đảm bảo mỗi hợp đồng nhận được một số ID duy nhất.


Liu cung cấp các triển khai cho cả hai phương pháp, tuy nhiên bộ đếm toàn cầu có vẻ được yêu thích hơn bởi các nhà phát triển vì nó giúp họ không cần phải lo ngại về các vấn đề va chạm băm. Một nhược điểm được phát hiện theo cách tiếp cận này là các hợp đồng bản địa không thể sử dụng trực tiếp hợp đồng ID, vì bộ đếm toàn cầu (và do đó tất cả ID hợp đồng) sẽ bị ảnh hưởng nếu một hợp đồng bản địa mới được thêm vào trong tương lai.


Lỗ hổng này đã được giải quyết bởi nhà phát triển cốt lõi Shargon, họ cho rằng các hợp đồng bản địa nên có giá trị âm, cho phép chúng tận dụng cùng một bộ đếm toàn cầu nhưng không ảnh hưởng đến ID hợp đồng thông thường khi thêm hợp đồng gốc. Thay vào đó, mỗi hợp đồng bản địa mới sẽ có một ID giảm dần (-1, -2, -3 .. vv).


Mặc dù được triển khai ban đầu với mục đích ngăn chặn các cuộc tấn công DoS, ID hợp đồng duy nhất sẽ mang lại nhiều lợi thế cho các nhà phát triển, bên thứ ba và thậm chí giúp giảm kích thước blockchain.

TINTUCNEO – Tham gia các cộng đồng Tin tức NEO tại:
Website tin tức
Medium tin tức
Telegram tin tức
Telegram Thảo luận
Fanpage tin tức
Kênh Youtube



Xin chào

Admin TINTUCNEO xin chào bạn



0 bình luận. Để lại câu hỏi & nhận trả lời nhanh qua email.




Bài cùng chủ đề
Đường đến Neo3: Triển khai SyncManager và kết quả thử nghiệm ban đầu
Đối với bài viết cuối cùng trong tính năng đồng bộ hóa chỉ mục của chúng tôi, chúng tôi sẽ xem xét việc triển khai cơ chế đồng bộ hóa chỉ mục mới mà chúng tôi đã giới thiệu trong bài viết trước và đề cập đến một số cải tiến liên quan khác.

2020-03-28

NEO được niêm yết trên sàn giao dịch giám hộ BHEX với các cặp giao dịch với USDT và BTC
Blue Helix (BHEX), một sàn giao dịch giám hộ, đã công bố việc niêm yết các cặp giao dịch NEO/USDT và NEO/BTC có hiệu lực vào lúc 2:00 chiều (theo giờ Việt Nam) vào thứ Sáu, ngày 27 tháng 3 năm 2020. Để chào mừng sự ra mắt của các thị trường mới , BHEX đang tiến hành chiến dịch tặng quà NEO.

2020-03-28

Moonlight thông báo ra mắt bản MVP Copernicus với khả năng tạo hồ sơ, phân tích và xác minh thuộc tính
Moonlight đã công bố ra mắt MVP Copernicus, cho phép người dùng được chọn tạo và chia sẻ hồ sơ chuyên nghiệp phù hợp với đối tượng cụ thể. Bản phát hành cũng bao gồm các công cụ phân tích cơ bản, các ví dụ xác minh thuộc tính và tự động tạo danh tính tự chủ.

2020-03-27

Cơ chế đồng bộ hóa khối (Block) trên Neo
Trong Neo2, quá trình đồng bộ hóa khối phức tạp hơn. Có hai bước: đồng bộ hóa các header khối và đồng bộ hóa các khối.

2020-03-27

Tham gia Cộng đồng NEO Việt Nam - TINTUCNEO
NEO-based projects? Contact us at [email protected] for collaborations in the Vietnam market