Internet Computer dành cho các nhà phát triển Ethereum

Hướng dẫn tài nguyên giải thích khả năng khác biệt của chuỗi khối Internet Computer so với Ethereum.
Nhiều nhà phát triển tiếp xúc với nền tảng hợp đồng thông minh đầu tiên là thông qua Ethereum. Do đó, khi các nhà phát triển sau này gặp Internet Computer (IC), họ có nhiều định kiến ​​về cách mọi thứ phải hoạt động và điều này không phải lúc nào cũng phù hợp với cách Internet Computer thực sự hoạt động.

Trong bài viết này, chúng tôi sẽ giải thích những khác biệt mà hầu hết các nhà phát triển gặp phải và trình bày các khả năng khác biệt của Máy tính Internet. Vì ngôn ngữ của Ethereum và Internet Computer hơi khác nhau, chúng tôi chủ yếu nói về các thuật ngữ chung cho các nhà phát triển Ethereum và cung cấp một ít từ điển:

  1. contract → canister
  2. gas → cycles
  3. shard → subnet (Không hoàn toàn đúng, vì Ethereum hiện chỉ xem xét các phân đoạn dữ liệu)
  4. (validator) nodes → replicas

Giới thiệu rất ngắn gọn về Internet Computer

Trước khi đi sâu vào danh sách các điểm khác biệt cụ thể, chúng tôi sẽ mô tả ngắn gọn về toàn bộ IC. IC là một mạng lưới bao gồm các blockchains subnet độc lập, nhưng các hợp đồng có thể tương tác một cách minh bạch giữa các subnet. Điều này cho phép mở rộng quy mô theo chiều ngang của IC bằng cách liên tục thêm các subnet. Các subnet được quản lý bởi Hệ thống thần kinh mạng (NNS) , về cơ bản là một Tổ chức tự trị phi tập trung (DAO) chạy trên chính subnet ban đầu – còn được gọi là NNS -. IC có một mã thông báo tiện ích chính – ICP – có thể được đặt trong NNS để tham gia quản trị và phải được chuyển đổi thành các cycles để thanh toán cho việc tiêu thụ tài nguyên trên IC. Các hợp đồng trên IC được gọi là canister và chứa WebAssembly (Wasm) mã byte. Điều này cho phép các nhà phát triển tạo hợp đồng bằng nhiều ngôn ngữ lập trình. Ngoài ra, còn có Motoko , một ngôn ngữ lập trình được thiết kế có mục đích để viết các canister trong mô hình tác nhân cho IC.

Nếu bạn muốn tìm hiểu sâu hơn về cơ chế của Internet Computer, hãy xem các tài nguyên sau:

Sự khác biệt giữa Ethereum và Internet Computer

Không cần phải quảng cáo thêm, chúng ta sẽ đi sâu vào một số điểm khác biệt đáng chú ý giữa Ethereum và IC. Chúng tôi sắp xếp những khác biệt này theo các danh mục sau:

  • Kinh nghiệm người dùng
  • Kinh nghiệm của nhà phát triển
  • Khả năng mở rộng & Chi phí
  • Sự riêng tư
  • Phân biệt khả năng

Kinh nghiệm người dùng

Các tài khoản bên ngoài không phải trả gas fee

IC thực hiện mô hình “khí ngược”, trong đó các hợp đồng phải trả tiền cho tài nguyên của họ theo chu kỳ. Do đó, người dùng dapp không cần ví hoặc mã thông báo để tương tác với dapp. Tuy nhiên, người dùng vẫn có thể được xác thực mạnh mẽ với các dapp bằng cách sử dụng Internet Identity , một hệ thống xác thực mật mã dựa trên tiêu chuẩn Xác thực Web .

Nếu bạn tự hỏi làm thế nào mà các canister thanh toán cho tài nguyên của họ, mỗi canister đều có số dư cyles và số dư có thể được tăng lên bởi bất kỳ canister nào khác. Tất nhiên, bạn cũng có thể yêu cầu người dùng trả phí trong ICP và sau đó để canister của bạn chuyển đổi ICP thành các cycles, về cơ bản là bắt chước mô hình gas của Ethereum. Do đó, IC linh hoạt hơn nhiều về mặt này.

Người dùng có thể tương tác với vi mạch một cách an toàn từ trình duyệt của họ

Tương tác giữa người dùng và ứng dụng trên Ethereum thường giống như sau:

  1. Một người dùng trỏ trình duyệt của cô ấy đến tên miền của ứng dụng.
  2. Giao diện người dùng của ứng dụng được cung cấp bởi một nhà cung cấp dịch vụ lưu trữ truyền thống.
  3. Dữ liệu động từ blockchain thường được ủy quyền bởi một chương trình phụ trợ tập trung được cung cấp bởi nhà cung cấp ứng dụng hoặc bởi một nhà cung cấp dịch vụ như Infura .
  4. Người dùng kết nối với ứng dụng bằng ví của cô ấy.
  5. Giao diện người dùng soạn thảo một giao dịch và yêu cầu ví ký tên và gửi giao dịch. Ngay cả trong trường hợp ứng dụng phi tài chính, người dùng cần có ETH trong ví của mình để thanh toán phí gas.
  6. Người dùng phê duyệt bằng cách sử dụng ví và ví gửi giao dịch đã ký.
  7. Người dùng đợi – tùy thuộc vào việc sử dụng mạng hiện tại và các khoản phí được cung cấp – từ 10 giây đến vài phút cho đến khi giao dịch được xác nhận.

Sức mạnh tổng hợp của một số cải tiến quan trọng cho phép người dùng tương tác một cách an toàn với ứng dụng trên vi mạch mà không cần thiết lập ví, không cần mua tiền điện tử và không phải phụ thuộc vào bất kỳ bên trung gian nào.

  1. Công nghệ khóa chuỗi và các subnet cho phép xác minh nhẹ và chi phí thấp hơn do khả năng nhân rộng và mở rộng theo chiều ngang thấp hơn.
  2. Mô hình khí đốt ngược cho phép các hợp đồng được nạp trước khí đốt để đơn giản hóa việc tiếp cận của người dùng.
  3. Internet Identity cho phép xác thực bảo vệ quyền riêng tư cho các dịch vụ trên IC bằng cách sử dụng WebAuthentication và cơ chế ủy quyền. Bí mật mật mã được quản lý bằng phần cứng an toàn.
  4. Các nút ranh giới và hợp đồng tài sản được chứng nhận cho phép phân phối giao diện người dùng trực tiếp từ một hợp đồng.

Vậy tương tác với dapp trên vi mạch trông như thế nào?

  1. Người dùng trỏ trình duyệt của mình đến miền của ứng dụng, đó là miền ic0.app trực tiếp hoặc trình duyệt sẽ được chuyển hướng đến miền ic0.app.
  2. Người dùng sẽ thấy rằng một nhân viên dịch vụ được cài đặt sử dụng tác nhân Java Script để xác minh các nội dung được chứng nhận có nguồn gốc từ một hợp đồng trên IC. Cơ chế service worker được giải quyết cho đến khi các trình duyệt hỗ trợ IC, nguyên bản hoặc thông qua một phần mở rộng.
  3. Người dùng được yêu cầu đăng nhập bằng Internet Identity hoặc một phương thức xác thực khác.
  4. Người dùng có thể tương tác với dapp mà không phải trả phí. Các bản cập nhật thay đổi trạng thái mất vài giây và hầu như có thể bị ẩn khỏi người dùng bằng cách sử dụng các mẫu giao diện người dùng lạc quan.

Hãy thử nó cho mình. Ví dụ: hãy chuyển đến icApps và thử một vài trong số các dapp phổ biến trên IC.

Kinh nghiệm của nhà phát triển

Hợp đồng có thể nâng cấp theo mặc định

Trên Ethereum, các hợp đồng là bất biến. Nếu có một lỗi trong hợp đồng, có rất ít điều mà một nhà phát triển có thể làm được. Điều này dẫn đến các giải pháp thông minh như hợp đồng ủy quyền , dẫn đến sự phức tạp và rủi ro bổ sung cho người dùng. Trên IC, các hợp đồng có thể thay đổi theo mặc định. Mỗi hợp đồng có một danh sách liên quan của bộ điều khiển, được ủy quyền để nâng cấp hợp đồng. Bằng cách đặt bộ điều khiển vào danh sách trống hoặc hợp đồng lỗ đen , bạn có thể làm cho hợp đồng của mình trở nên bất biến. Nhưng trong cộng đồng vi mạch, có tầm nhìn rằng hầu hết các hợp đồng sẽ được điều chỉnh bởi các Tổ chức tự trị phi tập trung (DAO) giống như chính IC. Do đó, nền tảng DFINITY đang làm việc trên Hệ thống thần kinh dịch vụ, một giải pháp chìa khóa trao tay có thể tùy chỉnh để quản lý các dịch vụ trên IC, được lấy cảm hứng từ Hệ thống thần kinh mạng quản lý IC.

Các lệnh gọi giữa các hợp đồng là không đồng bộ và không phải là nguyên tử

Máy ảo Ethereum (EVM) là đồng bộ và các giao dịch là nguyên tử. Điều này có nghĩa là nếu người dùng gửi một giao dịch, giao dịch sẽ được thực hiện hoàn toàn hoặc trạng thái được khôi phục hoàn toàn mà không có tác dụng gì ngoài việc tiêu thụ khí được gắn vào giao dịch. Điều này đúng độc lập với số lượng hợp đồng tham gia vào giao dịch. Thuộc tính này đã dẫn đến những đổi mới thú vị như các khoản vay nhanh nhưng hạn chế nghiêm trọng khả năng mở rộng vì toàn bộ mạng Ethereum hoạt động như một quy trình duy nhất. Trên IC, các cuộc gọi giữa các hợp đồng là không đồng bộ. Mỗi khi bạn sử dụng awaittrong một hợp đồng, nhà nước được cam kết. Trong trường hợp một hàm bẫy, trạng thái chỉ được quay trở lại lần xuất hiện cuối cùng của thời gian chờ đợi. Bạn có thể đọc thêm về điều này ở đây trong tài liệu. Ngoài ra còn có một bài đăng trên diễn đàn tuyệt vời về các mô hình khác nhau liên quan đến DeFi.

Hợp đồng sẽ bị xóa khi hết gas

Trên Ethereum, các hợp đồng là vĩnh viễn. Mặc dù điều này có một số ưu điểm (tạo sự an tâm cho các nhà phát triển và người dùng), nó cũng có những nhược điểm đáng kể (khả năng mở rộng hạn chế). Trạng thái của Ethereum đang phát triển không có giới hạn và có rất ít động lực để các nhà phát triển giải phóng không gian trong tiểu bang. Do đó, vẫn còn tất cả các mã thông báo ICO từ năm 2017 ở trạng thái token Ethereum, mặc dù nhiều dự án đã bị bỏ rơi từ lâu. Trên IC, các hợp đồng sử dụng cycles theo mức tiêu thụ tài nguyên thực tế của chúng. Ngay cả khi các hợp đồng không được gọi, chúng vẫn sử dụng một số cycles, mặc dù rất ít. Điều này rất quan trọng đối với tính bền vững của nền tảng. Khi chuyển từ Ethereum sang IC, các nhà phát triển thường lo lắng về việc tiêu thụ cycles và các hợp đồng của họ sẽ bị xóa đột ngột. Tuy nhiên, có hai biện pháp bảo vệ hiệu quả được tích hợp trong IC.

  1. Có một inspect_message chức năng cho phép các hợp đồng xem xét bên trong các thông điệp xâm nhập (tức là các thông báo có nguồn gốc từ bên ngoài vi mạch) và quyết định xem chúng có muốn xử lý thông báo hay không. Nội tâm này không bị tính phí.
  2. IC có thể đóng băng một canister để nó tự động từ chối tất cả các cuộc gọi và chỉ phải trả phí bảo trì cơ sở. Mỗi hộp có freezing_thresholdmột khoảng thời gian có thể được đặt thành khoảng thời gian tính bằng giây và về cơ bản đảm bảo rằng vi mạch sẽ đóng băng hộp để hộp có số dư để chi trả chi phí bảo trì cho khoảng thời gian này. Thời gian mặc định freezing_thresholdlà khoảng 30 ngày và sẽ cho các nhà phát triển hoặc người dùng có nhiều thời gian để nạp đầy canister trước khi nó được thu gom.

Tuy nhiên, nếu bạn muốn thực hiện một dịch vụ tự trị trên IC, bạn phải nghĩ đến khả năng kinh tế của nó – nếu không nó sẽ vượt ra khỏi cycles và sẽ bị xóa.

Gas fee có thể đoán trước được

Trong EVM, các hoạt động cụ thể (Opcodes) có chi phí xác định được đo bằng gas, nhưng tỷ giá hối đoái giữa ETH và gas hoàn toàn do thị trường xác định. Người dùng có thể xác định một maxFeePerGas mà cô ấy sẵn sàng trả trong một giao dịch và người khai thác cá nhân sẽ quyết định xem ưu đãi này có được chấp nhận hay không. Vì thông lượng của Ethereum rất hạn chế, giá gas có thể dao động dữ dội theo nhu cầu. Ngoài ra, giá thực tế bằng USD hoặc EUR thậm chí còn khó đoán hơn do giá thị trường hiện tại của ETH.

Tương tự như (nhưng rộng rãi hơn) gas trong Ethereum, IC có một bộ giá cố định theo chu kỳ cho các tài nguyên khác nhau . Tuy nhiên, sự khác biệt chính là giá của cycles được chốt với SDR, dựa trên rổ các loại tiền tệ chính trên thế giới.

1 SDR = 1 Trillion cycles

Tỷ giá hối đoái giữa SDR và ​​ICP do NNS quản lý. Do đó, chi phí thực tế của việc vận hành một canister là tương đối ổn định và có thể dự đoán được, và không phụ thuộc vào giá thị trường hiện tại của ICP.

Mã thông báo ICP không phải là một phần của hệ thống nhưng được thực hiện dưới dạng hợp đồng

Mã thông báo ICP có hai vai trò quan trọng trong IC:

  1. Nó có thể được ghi để tạo ra các chu kỳ cần thiết để trả cho các tài nguyên trên vi mạch.
  2. Nó có thể được khóa trong các tế bào thần kinh NNS để tham gia vào việc quản lý IC.

Tuy nhiên, ICP không xuất hiện ở trạng thái hệ thống mà được xây dựng như một hợp đồng chạy trên subnet NNS. Bạn có thể tìm thêm thông tin về canister Ledger tại đây và tại đây .

Khả năng mở rộng và chi phí

48 byte là đủ để xác minh trạng thái của vi mạch

Xác minh trạng thái EVM là một quá trình sử dụng nhiều tài nguyên trong đó một nút phải xác minh toàn bộ chuỗi khối từ nguồn gốc. Có thể có các nút sáng chỉ xác minh chuỗi tiêu đề (tuy nhiên vẫn phát triển mãi mãi), ngoài các phần có liên quan của trạng thái hiện tại, nhưng cơ sở hạ tầng chưa được xây dựng. Do đó, hầu hết người dùng dựa vào các API tập trung để truy cập vào trạng thái Ethereum, đáng chú ý nhất là Infura . Ngược lại, Internet Computer cho phép máy khách xác minh trạng thái bằng một khóa công khai 48 byte không đổi. Khóa công khai này có thể được mã hóa cứng vào phần mềm như trình duyệt hoặc thậm chí phần cứng như thiết bị Internet of Things để cho phép chúng tương tác an toàn với các hợp đồng trên IC.

Internet Computer có thể mở rộng theo chiều ngang

IC là một mạng lưới các subnet, nơi các hợp đồng có thể tương tác một cách minh bạch giữa các subnet. Với nhu cầu ngày càng tăng của Internet Computer, các subnet bổ sung có thể được thêm vào bằng các đề xuất cho NNS.

Lưu trữ hợp đồng là đơn đặt hàng lớn hơn rẻ hơn

Ethereum chưa triển khai sharding và mọi nút trong mạng cần phải lưu trữ và thực hiện mọi hợp đồng và mọi giao dịch. Trên vi mạch, chỉ có các nút trong một mạng con cụ thể sao chép lại việc thực thi và trạng thái. Mặc dù điều này có thể làm giảm tính bảo mật so với Ethereum, nhưng nó vẫn an toàn hơn nhiều so với các dịch vụ web truyền thống với chi phí tương đương. Trong khi lưu trữ 1 GB trên Ethereum có giá trị hàng trăm triệu đô la, nó chỉ là vài đô la mỗi năm trên IC. Điều này cho phép lưu trữ toàn bộ ứng dụng web, nhạc và thậm chí cả video trên vi mạch, thay vì chỉ logic back-end bị tước bỏ. Để biết tổng quan về các chi phí phổ biến trên IC, hãy xem tài liệu Chi phí Tính toán và Lưu trữ .

Nói chung không cần theo dõi các khối cũ

Công nghệ khóa chuỗi cho phép một nút mới (trình xác thực) nhanh chóng đồng bộ hóa trạng thái và tham gia tập hợp trình xác thực bằng cách sử dụng chia sẻ lại khóa phân tán không tương tác thay vì đồng bộ hóa và xác thực chuỗi khối từ ban đầu. Do đó, các nút có thể cắt tỉa chuỗi vài phút một cách an toàn. Tuy nhiên, đối với một số ứng dụng, chỉ cần chắc chắn rằng tất cả các chuyển đổi trạng thái đã được ít nhất 2/3 số nút cho phép là chưa đủ, nhưng cần phải có một quá trình kiểm tra. Ví dụ như sổ cái ICP và NNS. Trong trường hợp này, đường mòn kiểm tra được thực hiện trên ứng dụng, tức là lớp hợp đồng. Do đó, trái ngược với Ethereum, các hợp đồng có quyền truy cập vào các đường mòn kiểm toán, và không chỉ những người quan sát bên ngoài.

Tuy nhiên, trong tương lai sẽ có hai loại mạng con: subnet riêng tư và subnet chung. Đối với subnet công cộng, người quan sát có thể lấy dữ liệu khối thô. Subnet công khai đầu tiên sẽ là subnet Hệ thống mạng thần kinh.

Sự riêng tư

Các tài khoản bên ngoài không (trực tiếp) là một phần của trạng thái toàn cầu

Trạng thái thế giới của Ethereum bao gồm tài khoản bên ngoài (người dùng) và tài khoản nội bộ (hợp đồng). Mỗi tài khoản có một số dư ether liên quan. Trên IC, chỉ có các hiệu trưởng can thiệp là một phần của tiểu bang. Mỗi hộp chính có một số dư cycles liên quan, số dư này không được công khai theo mặc định. Điều này có lợi thế về quyền riêng tư, vì người dùng có thể tương tác với các canister trên IC theo cách thức đã được xác thực mà không cần tiết lộ nguyên tắc chính của nó ở trạng thái công khai. Điểm bất lợi là người dùng không thể giữ cycles trực tiếp mà cần một canister như ví cycles.

Trạng thái toàn cầu không phải là công khai, mà chỉ là những phần

Trên Ethereum, mọi người đều có thể chạy một nút đầy đủ và do đó mọi thứ đều công khai. Chỉ có thể đạt được quyền riêng tư bằng cách giữ dữ liệu ngoài chuỗi hoặc bằng cách sử dụng mật mã. Trên IC, các nút được NNS cho phép và chỉ các phần của IC là công khai. Bên cạnh API mà nhà phát triển hợp đồng xác định cho chính hợp đồng, dữ liệu sau là công khai

  • Subnet của hợp đồng
  • Tên của hợp đồng
  • Hàm băm của mô-đun WASM của hợp đồng
  • Người kiểm soát hợp đồng

Đặc biệt, cả mã byte thực tế và số dư (cycles) của hợp đồng đều không được công khai. Tuy nhiên, như đã đề cập trước đó, IC sẽ hỗ trợ các subnet công cộng trong tương lai. Các subnet này sẽ làm cho dữ liệu khối IC thô có sẵn.

Phân biệt khả năng

Hợp đồng có thể tự kích hoạt

Trên Ethereum, mọi thay đổi trạng thái phải được kích hoạt bởi một tài khoản bên ngoài. Tuy nhiên, trên IC, một canister có thể sử dụng heartbeat functionality được kích hoạt bởi IC. Điều này mở ra rất nhiều khả năng mới. Một ví dụ đơn giản sẽ là một dịch vụ cron, cho phép các canister khác tự đăng ký để được gọi.

Các hợp đồng có quyền truy cập vào tính ngẫu nhiên của mật mã

Thuật toán đồng thuận duy nhất của IC có thể được sử dụng như một nguồn ngẫu nhiên mật mã. Tính ngẫu nhiên này có thể truy cập được đối với các hợp đồng và có thể được sử dụng trong các ứng dụng như xổ số hoặc trò chơi.

Hợp đồng có thể giữ khóa riêng và ký tin nhắn (Sẽ sớm thôi)

Trên Ethereum, mọi hợp đồng đều được công khai. Điều này có nghĩa là hợp đồng không thể giữ thông tin cá nhân và do đó không thể ký tin nhắn vì không có cách nào để lưu trữ khóa cá nhân một cách an toàn. Cơ chế đồng thuận của IC sử dụng một cơ chế được gọi là ký ngưỡng trong đó các nút trình xác nhận hợp tác để tạo ra chữ ký (BLS) mà không có toàn bộ khóa cá nhân tồn tại. Trong một tính năng sắp tới , một cơ chế tương tự sẽ có sẵn cho các hợp đồng ra lệnh cho vi mạch tạo ra các chữ ký ECDSA ngưỡng. Các chữ ký này sẽ có thể được xác minh bên ngoài IC giống như các chữ ký ECDSA thông thường. Điều này có nghĩa là bạn có thể ký các giao dịch Ethereum hoặc Bitcoin bằng một hợp đồng trên IC hoặc bạn có thể tạo JWT, thông tin xác thực có thể xác minh hoặc chứng chỉ x.509.

Các hợp đồng có thể gọi các dịch vụ web (Sẽ sớm thôi)

Nếu bạn cần dữ liệu từ thế giới bên ngoài trên Ethereum, bạn cần những lời thần bí cung cấp thông tin này vào một hợp đồng trên Ethereum. Trên IC, nó sẽ sớm có thể gọi các dịch vụ web từ bên trong một hợp đồng. Bạn có thể đọc thêm về tính năng này trên diễn đàn và xem các cuộc trò chuyện của cộng đồng .

Chúng tôi hy vọng rằng sau khi đọc bài đăng này, bạn có một mô hình tinh thần tốt hơn về vi mạch. Bạn có thể áp dụng điểm mạnh của nó vào vấn đề của mình và bạn nhận thức được một số hạn chế, và bạn hiểu rõ hơn tại sao chúng tồn tại.

Lý tưởng nhất, đây là một bài viết sống động được cập nhật bởi cộng đồng, tức là bạn, theo thời gian để cung cấp tài liệu tham khảo toàn diện cho các nhà phát triển mới khám phá ra vi mạch. Do đó, bài viết này không chỉ trên Phương tiện mà còn trên Internet Máy tính Wiki , mở để đóng góp.

Hoàng Long