[NEO: đánh giá] Tính bảo mật trong hợp đồng thông minh

Thảo luận trong 'Blockchain' bắt đầu bởi Cờ ríp tô cơ rừn si, 6/3/18. Trả lời: 20 Xem: 2,569.

  1. Cờ ríp tô cơ rừn si
    NEO đã tập trung vào chiến lược xây dựng cầu nối với các hệ thống kế thừa, để tạo ra ưu thế cho việc gắn với các công cụ phát triển phổ biến. Đây là một cách tiếp cận riêng biệt của NEO. NEO đang xây dựng các cầu nối cho cộng đồng nhà phát triển hiện tại bằng cách cho phép các hợp đồng thông minh được viết bằng một số ngôn ngữ lập trình đa năng phổ biến như C #, VB.NET, F #, Java và Kotlin. Chiến lược này có lợi ích rõ ràng trong việc tạo điều kiện cho sự phát triển hệ sinh thái bằng cách cho phép một loạt các nhà phát triển xây dựng các hợp đồng thông minh NEO mà không bị rào cản phải học một ngôn ngữ và công cụ mới. Các công cụ điển hình đi kèm với các ngôn ngữ hiện tại có thể được tận dụng để nâng cao năng suất và giảm lỗi nhất định (so với ngôn ngữ lập trình Solidity của Etherium chưa hoàn hảo và thiếu công cụ).

    hop-dong-thong-minh-NEO.png
    Tuy nhiên, việc sử dụng các ngôn ngữ hiện tại không phải là "ưu thế hoàn toàn" để phát triển hợp đồng thông minh. Hợp đồng thông minh có các yêu cầu về tính xác định và tính quyết định mà các ngôn ngữ này chưa được thiết kế và nhắm đến. Tất cả các tính năng không xác định, chẳng hạn như luồng, vào/ra, tạo số ngẫu nhiên và thời gian trong ngày sẽ bị vô hiệu hóa hoàn toàn với các chương trình chạy trên blockchain. Quá trình thực thì cũng sẽ đòi hỏi đồng GAS, và bất kể ngôn ngữ nào, người lập trình sẽ cần phải biết đến việc sử dụng GAS và xử lý các vấn đề nảy sinh khi giao dịch không đủ GAS.

    Các hợp đồng sẽ cần phải gọi các hợp đồng khác (tiêu thụ GAS), xác minh chữ ký số, gửi và nhận tiền, và thực hiện các hoạt động cụ thể khác không được xây dựng trong các ngôn ngữ này. Ngược lại, ngôn ngữ lập trình Solidity, được thiết kế đặc biệt cho lập trình hợp đồng thông minh, cung cấp những sự hỗ trợ sẵn có trong nội tại hệ thống như địa chỉ, mật mã, hợp đồng, giao dịch, GAS và block. Cho dù khả năng phát triển các hợp đồng thông minh bằng một ngôn ngữ lập trình quen thuộc sẽ mang lại tốc độ cao hơn hoặc cung cấp một lợi thế đáng kể về năng suất tuy nhiên với ngôn ngữ Solidity những đặc tính này vẫn có được.

    Ngoài ra, không có điều gì quan trọng hơn ở một nền tảng có thể phòng chống được những lỗi tiềm tàng gây tốn kém cho chi phí vận hành. Như chúng ta đã biết, khả năng gọi các hàm và các phương thức theo cách mà các tác giả hợp đồng thông minh không có ý định đưa ra là một lỗ hổng đã sảy ra trên nền tảng Ethereum gây một tổn thất rất nghiêm trọng. Với cơ chế lập trình sử dụng thư viện liên quan tới những hàm thông dụng thì không có gì đảm bảo rằng nền tảng NEO không gặp phải những vấn đề như trên, thậm chí còn có thể dẫn tới kết quả trầm trọng hơn.

    Tuy nhiên, quy trình thực thi của NEO cũng ngăn không cho hợp đồng trực tiếp gọi các phương thức và hàm trên các hợp đồng khác (họ chỉ có thể gọi hàm Main). Điều đó làm cho tất cả các phương thức không phải trong hàm Main sẽ ở chế độ riêng tư trong tất cả các hợp đồng thông minh NEO. Tính năng an toàn này chắc chắn sẽ ngăn cản các ủy viên khai thác và lạm dụng các bộ thư viện. Đã có một số cuộc thảo luận về việc thay đổi chế độ mặc định của Solidity từ công khai sang chế độ kín, nhưng cho đến khi ngôn ngữ lập trình Solidity được chính thức thay đổi, các chương trình Solidity sẽ vẫn dễ bị ảnh hưởng bởi sự giám sát của nhà phát triển.

    Vấn đề gốc gác ảnh hưởng đến Ethereum và NEO là như nhau trên cơ sở lập trình một hợp đồng thông minh giống như lập trình lò phản ứng hạt nhân hơn là lập trình một trang web; nó đòi hỏi một cách tiếp cận hoàn toàn khác để phát triển bởi vì chi phí của bất kỳ lỗi sảy ra đều có khả năng dẫn tới những kết quả thảm khốc. Ngay cả mã Solidity đã được phát triển bằng cách sử dụng kinh nghiệm tốt nhất và kiểm tra mã nguồn cẩn thận, kiểm soát và kiểm thử lỗi nghiêm ngặt tuy nhiên hệ thống vẫn có thể bị khai thác lỗ hổng.

    Việc sử dụng các ngôn ngữ lập trình quen thuộc sẽ không giúp ích cho tình huống này và thậm chí có thể làm cho nó trở nên tồi tệ hơn nếu các lập trình viên không tuân theo các mô hình lập trình quen thuộc.
    NEO có lợi thế là chưa có một lượng lớn tài sản được lưu trữ trong các hợp đồng thông minh như Ethereum. Chừng nào những kẻ lợi dụng vẫn còn nhắm mục tiêu tới các hợp đồng Ethereum có giá trị cao hơn thì NEO và các nền tảng khác có thể có những bài học kinh nghiệm tương tự mà không phải chịu tổn thất như Ethereum.
     
  2. vietdd
    bác nào viết thử smartcontract trên neo chưa
     
  3. ducphutho
    :-)) hóng
     
  4. binhbitcoin
    em cũng hóng
     
  5. tuannguyen
    cơ chế dùng GAS giống ethereum thế các bác nhỉ
     
  6. phucnk
    phải có GAS NEO mới chạy :c))))
     
  7. hoadq
    em là em kết câu này :y
    :y
     
  8. hiepether
    ether đang là vua của smartcontract
     
  9. hainam
    cộng đồng ethereum cũng từng bị chia tách vì những tranh cãi về giao dịch hoàn trả NEO thì ko bị vì NEO sinh sau nên biết mà né
     
  10. haihungnguyen
    tính bảo mật smartcontract trên NEO vẫn cần thời gian
     
  11. phucnk
    yeahhhh :c))))))))))))))))))))))))
     
  12. vietdd
    khi thực thi mà ko đủ GAS tức là ko đủ NEO đúng ko bác chỗ này em vẫn hơi băn khoăn
     
  13. ducphutho
    #13 ducphutho, 1/4/18
    Last edited by a moderator: 30/5/18
  14. binhbitcoin
    ý bác ấy là có tiêu NEO ko, tiêu GAS thì đúng rồi, như Ethereum ấy cuối cùng quy về Ether
     
  15. tuannguyen
    châm cứu thêm
     
  16. phucnk
    các bác dev viết smartcontract trong hợp đồng lên tiếng đi
     
  17. hoadq
    túm lại là các bác có NEO sẽ nhận được GAS
     
  18. hiepether
    nhưng nếu như thế thì sao tăng nhu cầu GAS được nhỉ, hiện tại dApp trên NEO vẫn èo uột
     
  19. hainam
    lý thuyết là càng nhiều smartcontract trên NEO thì càng nhiều nhu cầu về GAS và NEO, càng nhiều nhu cầu NEO thì NEO càng tăng giá vì cung NEO không đổi, ngoài ra nhu cầu đồng NEO tăng thì đồng GAS cũng tăng, em hiểu thế
     
  20. haihungnguyen
    cơ chế khá khác so với ethereum nhỉ
     

Chia sẻ trang này lên mạng xã hội:

Đang tải...