BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

So sánh hợp đồng thông minh: Ethereum, Bitcoin và Bitcoin Cash

Đọc bài viết này mất 53 phút
Phân tích kỹ thuật cốt lõi: So sánh các hợp đồng thông minh trên Ethereum, Bitcoin và Bitcoin Cash về phương pháp thực hiện, phương pháp viết, tương tác hợp đồng, v.v.

Tiêu đề gốc: "Phân tích kỹ thuật | Hợp đồng thông minh trên Ethereum, Bitcoin và Bitcoin Cash"
Nguồn gốc: First Class Warehouse


Hợp đồng thông minh là gì? Việc xác định việc sử dụng tài sản bằng cách sử dụng các điều kiện hoặc điều kiện nhất định tương đương với việc thực hiện một hợp đồng. Khi hợp đồng có thể được thực hiện tự động hoàn toàn thông qua mã mà không cần tin cậy, nó sẽ trở thành một hợp đồng thông minh. Tác giả của bài viết này, Rosco Kalis, là một kỹ thuật viên blockchain cao cấp và là người phát minh ra CashScript.

Mặc dù Ethereum là nền tảng đầu tiên có hợp đồng thông minh hoàn chỉnh Turing, nhưng vẫn có thể sử dụng ngôn ngữ Script để tạo các hợp đồng cơ bản về Bitcoin. Và Bitcoin Cash gần đây đã cải thiện chức năng hợp đồng thông minh của mình. Mặc dù không tiên tiến như Ethereum nhưng tất cả chúng đều hỗ trợ sự tồn tại của hợp đồng thông minh trên chuỗi theo những cách và lợi thế riêng.

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Bài viết này tập trung vào những điểm khác biệt nổi bật giữa các hợp đồng thông minh trên ba nền tảng này. Vì trọng tâm là hợp đồng thông minh và chức năng viết kịch bản nên những điều cơ bản về nền tảng hoặc blockchain sẽ không được thảo luận ở đây. Bài viết này cũng giới thiệu các hợp đồng thông minh trên chuỗi và sự tồn tại của một số giải pháp hợp đồng thông minh lớp thứ hai, chẳng hạn như RSK. Những giải pháp này chắc chắn đáng để thảo luận, nhưng do hạn chế về không gian nên chúng tôi sẽ không thực hiện nghiên cứu chuyên sâu.

Ethereum: trạng thái độc lập và Turing hoàn chỉnh

Ethereum cho đến nay là nền tảng hợp đồng thông minh lớn nhất và các hợp đồng thông minh của nó được triển khai bằng Máy ảo Ethereum (EVM), một máy ảo hoàn chỉnh Turing. Điều này có nghĩa là EVM có thể tính toán mọi thứ miễn là nó có đủ tài nguyên. Về mặt khái niệm, điều này tương tự như nhiều nền tảng có mục đích chung khác, chẳng hạn như Máy ảo Java (JVM), được sử dụng để thực thi các chương trình Java.

Giải thích EVM

Nhưng điểm khác biệt lớn nhất giữa các nền tảng chung đó và EVM của Ethereum là mã hợp đồng thông minh của Ethereum được thực thi bởi tất cả các nút Ethereum để xác minh tính hợp lệ của các giao dịch. Để thưởng cho các nút thực thi mã này, tất cả các mã opcode EVM đều có chi phí gas liên quan, như trong hình bên dưới.

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Hình: Cấu trúc phí EVM

Mỗi giao dịch tốn một lượng Gas đáng kể, tùy thuộc vào opcode được sử dụng. Trả tiền gas bằng tiền điện tử gốc của Ethereum, ETH. Để giới hạn số lượng tính toán mà các nút này phải thực hiện trên mỗi khối, có một giới hạn về lượng gas có thể được sử dụng trong một khối, được gọi là "giới hạn gas khối".

Trong quá trình thực hiện các chức năng của hợp đồng thông minh, hợp đồng có thể lưu trữ và truy cập dữ liệu cần thiết. Tùy thuộc vào mục đích của nó, dữ liệu này có thể được lưu trữ ở các vị trí khác nhau, tức là ở các vị trí dữ liệu khác nhau. Đầu tiên là "ngăn xếp", chứa các giá trị được sử dụng trong phép tính. Chỉ có 16 mục đầu tiên trong ngăn xếp là có thể truy cập dễ dàng nên chúng không phù hợp để lưu trữ lâu dài. Tính toán sử dụng ngăn xếp được hiển thị bên dưới.

技术分析 | 以太坊、比特币和比特币现金上的智能合约
Hình: Tính toán dựa trên ngăn xếp

Thứ hai, để bổ sung cho ngăn xếp, "bộ nhớ hợp đồng" có thể được sử dụng để lưu trữ, truy xuất và truyền dữ liệu trong quá trình thực thi hợp đồng hiện tại. Các giá trị này có thể được lấy ra từ bộ nhớ, sử dụng trong các phép tính trên ngăn xếp và kết quả được lưu lại trong bộ nhớ. Các giá trị này chỉ tồn tại trong quá trình thực thi hiện tại. Khi kết thúc thực hiện hợp đồng, bộ nhớ hợp đồng và ngăn xếp sẽ bị xóa.

Cuối cùng, vị trí của dữ liệu là "lưu trữ hợp đồng", được sử dụng để lưu trữ dữ liệu trong quá trình thực hiện hợp đồng. Các biến liên tục (chẳng hạn như số dư mã thông báo) được lưu trữ trong bộ lưu trữ hợp đồng. Để đạt được sự bền vững của dữ liệu, bộ nhớ hợp đồng được lưu trữ trên mỗi nút Ethereum. Do đó, bộ nhớ của nó tương tự như RAM, trong khi bộ lưu trữ tương tự như ổ cứng hoặc cơ sở dữ liệu liên tục.

Bạn có thể tìm thêm thông tin chi tiết về cách hoạt động của Máy ảo Ethereum trong bài viết MyCrypto.

Viết hợp đồng thông minh

Mặc dù tất cả các hợp đồng thông minh đều sử dụng EVM, nhưng hầu hết các hợp đồng thông minh không được viết tay bằng mã byte EVM, giống như hầu hết mã byte JVM không được viết tay. Thay vào đó, có một số ngôn ngữ cấp cao có sẵn để viết hợp đồng thông minh trong Ethereum, trong đó phổ biến nhất là Solidity, cùng với Vyper, cũng là ngôn ngữ lập trình hướng EVM. Hình ảnh bên dưới là một ví dụ về hợp đồng thông minh Solidity rất đơn giản.

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Tương tác với hợp đồng thông minh

Hợp đồng thông minh trong Ethereum tồn tại dưới dạng mã byte trên mạng Ethereum. Điều này có nghĩa là biên dịch mã Solidity thành mã byte và sau đó triển khai nó vào mạng bằng cách gửi giao dịch triển khai. Đây là một loại giao dịch đặc biệt không có bất kỳ bộ thu nào nhưng có mã byte làm dữ liệu giao dịch.

Các hợp đồng được triển khai này chỉ tồn tại trong mạng dưới dạng "các đoạn" mã byte EVM và hầu như không thể sử dụng một mình. Để "tham gia" chúng, cần phải cung cấp giao diện nhị phân ứng dụng (ABI), bao gồm danh sách tất cả các chức năng công khai và tham số của chúng. Để người dùng tìm hiểu thêm về các hợp đồng này, các dịch vụ như Etherscan giúp xác minh mã nguồn hợp đồng để người dùng có thể kiểm tra mã trước khi sử dụng hợp đồng.

Tất cả các hợp đồng thông minh có thể được truy cập trực tiếp bằng cách kết nối với nút Ethereum và sử dụng giao diện JSON-RPC của nó. Tuy nhiên, nhiều hợp đồng thông minh được truy cập thông qua các ứng dụng giao diện người dùng kết nối với nút và quản lý ABI. Điều này có thể được thực hiện thông qua một trong nhiều SDK Ethereum khác nhau (chẳng hạn như web3.js hoặc ethers.js), có thể gọi JSON-RPC một cách cơ bản. Điều này mang lại trải nghiệm tốt hơn cho người dùng hợp đồng vì những phần khó nhất đều được trực quan hóa.

Bạn có thể tương tác với hợp đồng thông minh theo hai cách khác nhau: cuộc gọi và giao dịch

(Giao dịch). Cuộc gọi mang tính cục bộ đối với chức năng hợp đồng, nó không phát bất cứ điều gì lên blockchain. Do đó, quy trình gọi là "chỉ đọc" và không thể thực hiện bất kỳ thay đổi nào đối với trạng thái hợp đồng cũng như không phải chịu bất kỳ khoản phí nào. Giao dịch là "các thao tác ghi" thực tế được phát lên mạng và được đưa vào chuỗi khối, đồng thời sẽ phải chịu phí khai thác. Lấy mã thông báo ERC20 làm ví dụ, số dư mã thông báo được truy xuất bằng cách gọi và mã thông báo được chuyển bằng cách bắt đầu giao dịch.

Khả năng tương tác giữa các hợp đồng thông minh

Các thuộc tính này của Ethereum (với EVM hoàn chỉnh Turing và bộ lưu trữ liên tục) cho phép tạo bất kỳ loại ứng dụng phi tập trung nào chạy trên chuỗi. Một ví dụ điển hình là hệ sinh thái DeFi, bao gồm các ứng dụng như Maker, Uniswap và Hợp chất, cũng như các tiêu chuẩn mã thông báo ERC20 và ERC721. Các ứng dụng này cho phép chức năng phức tạp với số lượng người tham gia động không giới hạn.

技术分析 | 以太坊、比特币和比特币现金上的智能合约
Hình: Khả năng tương tác DeFi trong rDai

Điều quan trọng nhất là bản thân các hợp đồng thông minh có thể trở thành "người tham gia" các hợp đồng thông minh khác, từ đó đạt được sự tương tác mạnh mẽ giữa các hợp đồng này. Tích hợp và kết hợp . Ví dụ: giữ số dư mã thông báo và cho Hợp chất hoặc hợp đồng thông minh với sàn giao dịch Uniswap vay hoặc sử dụng rDai để tự động đầu tư DAI và đóng góp tiền lãi tích lũy cho tổ chức từ thiện.

Mặc dù hợp đồng thông minh có thể tương tác với nhau nhưng mọi giao dịch trên chuỗi phải đến từ tài khoản bên ngoài. Do đó, các tương tác giữa các hợp đồng thông minh Ethereum vẫn phải được người dùng kích hoạt thông qua giao dịch ban đầu. Sau lần kích hoạt ban đầu này, sự tương tác giữa các hợp đồng tương tự như quyền truy cập trực tiếp.

Nói cách khác, hợp đồng thông minh có thể gọi "chức năng chỉ đọc" của các hợp đồng thông minh khác hoặc kích hoạt "thao tác ghi" ( buôn bán). Vì chỉ các tài khoản bên ngoài mới có thể kích hoạt giao dịch nên giao dịch giữa các hợp đồng thông minh được gọi là giao dịch nội bộ hoặc cuộc gọi tin nhắn để phân biệt với giao dịch do người dùng thực hiện.

Bitcoin: Không trạng thái và đơn giản

Tất cả các giao dịch Bitcoin (bao gồm cả chuyển khoản thông thường) đều được hỗ trợ bởi ngôn ngữ lập trình dựa trên ngăn xếp có tên là "Tập lệnh Bitcoin" (Tập lệnh). Như đã đề cập ở trên, EVM của Ethereum được thiết kế cho các hợp đồng thông minh hoàn chỉnh và có khả năng tương tác Turing, trong khi Bitcoin Script cố tình bổ sung nhiều hạn chế khác nhau và hoạt động theo một cách cơ bản khác.

Giải thích về tập lệnh Bitcoin

Giống như EVM, Bitcoin Script sử dụng Ngăn xếp để lưu trữ các giá trị và thực hiện tính toán trên các giá trị này. Nhưng không giống như EVM, ngăn xếp là vị trí dữ liệu duy nhất có sẵn trong các tập lệnh Bitcoin. Điều này có nghĩa là rất khó để lưu trữ nhiều giá trị để sử dụng sau này khi thực hiện hợp đồng. Quan trọng hơn, điều này có nghĩa là không thể lưu trữ hoặc sửa đổi các giá trị còn tồn tại khi thực hiện hợp đồng (nhưng EVM thì có thể).

Đây là điểm khác biệt lớn nhất giữa hợp đồng thông minh của Ethereum và Bitcoin. Mô hình của Ethereum là có trạng thái, trong khi Bitcoin là không có trạng thái. Sự hiểu biết của giáo dân là Ethereum có thể được coi là tương tự như mô hình lập trình dữ liệu có thể thay đổi bắt buộc thông thường, trong khi Bitcoin tương tự như mô hình dữ liệu bất biến về mặt chức năng.

Mô hình của Bitcoin cho phép các giao dịch được xác minh độc lập và hiệu quả hơn nhiều, giúp việc song song hóa và phân chia các giao dịch trở nên dễ dàng hơn. Tuy nhiên, nếu không có bất kỳ bộ lưu trữ dữ liệu có thể thay đổi nào, việc tạo các hợp đồng thông minh phức tạp như Ethereum trên Bitcoin sẽ khó khăn hơn, chẳng hạn, hợp đồng ERC20 phải theo dõi số dư token và thực hiện các thay đổi.

Ngoài những khác biệt về trạng thái này, còn có những yếu tố khác hạn chế độ phức tạp của hợp đồng thông minh Bitcoin. Đáng chú ý, Bitcoin Script thiếu hỗ trợ cho một số hàm số học nhất định và bất kỳ dạng vòng lặp hoặc đệ quy nào. Hợp đồng của nó cũng có giới hạn kích thước hiệu dụng là 520 byte và chỉ có thể chứa tối đa 201 opcode.

Hầu hết các hợp đồng thông minh trên Bitcoin đều thuộc một số loại hợp đồng đơn giản. Ví dụ: hợp đồng nhiều chữ ký có thể được nhiều người tham gia sử dụng hoặc hợp đồng băm có khóa thời gian (HTLC).

Kiến thức kho hàng hạng nhất: Về khóa băm, bạn có thể đưa ra một ví dụ đơn giản. Ví dụ: nếu bạn mua một video từ tôi , cái này Video được truy cập thông qua mật khẩu nên trong hợp đồng giao dịch tôi đã biến mật khẩu truy cập của video thành một trong các chìa khóa. Nếu bạn muốn hoàn tất giao dịch thì chìa khóa này phải được bạn biết; và một khi bạn biết nó (bạn lấy video), số tiền sẽ được Trả cho tôi và toàn bộ quá trình giao dịch phải được hoàn thành trong thời gian đã định, nếu vượt quá thời gian, hợp đồng sẽ tự động được kích hoạt.

Và vì các hợp đồng trên Bitcoin này rất đơn giản nên hầu hết giá trị được tạo ra bằng cách kết hợp các hợp đồng khác nhau với logic ứng dụng ngoài chuỗi khác thu được bằng cách kết hợp. Bằng cách này, các hợp đồng đơn giản có thể được kết hợp để tạo ra các giải pháp phức tạp như Lightning Network hoặc đấu giá chuỗi chéo, cùng nhiều giải pháp khác.

Giải thích về giao dịch Bitcoin

Mọi giao dịch bằng Bitcoin đều được thực hiện thông qua cái gọi là "đầu ra giao dịch". Khi các đầu ra giao dịch này có sẵn trong tài khoản, chúng được gọi là đầu ra giao dịch chưa chi tiêu (UTXO). Các UTXO này bị khóa bởi tập lệnh khóa (hoặc scriptPubKey) và có các điều kiện sử dụng được chỉ định. Khi cố gắng làm việc với UTXO, một tập lệnh mở khóa (hoặc ScriptSig) sẽ được cung cấp, sau đó tập lệnh này sẽ cùng nhau thực hiện tính toán. Giao dịch sẽ chỉ có hiệu lực nếu tập lệnh được thực thi không có lỗi và giá trị kết quả là chính xác (TRUE).

Giống như EVM, tất cả các nút Bitcoin đều thực thi các tập lệnh này để xác minh giao dịch, nhưng chuỗi khối Bitcoin không có chi phí Gas. Do đó, khái niệm này là trả cho người khai thác một khoản phí cho mỗi byte dữ liệu giao dịch. Để giới hạn số lượng công việc mà một nút phải thực hiện, một số hạn chế cũng được đặt ra đối với một số thao tác tập lệnh chuyên sâu hơn.

Tương tác với hợp đồng thông minh

Hợp đồng thông minh bằng Bitcoin được viết bằng chế độ P2SH (Lưu ý hạng nhất: Được dịch là "thanh toán cho hàm băm tập lệnh"). Tập lệnh khóa ở chế độ P2SH chứa hàm băm tập lệnh và yêu cầu cung cấp tập lệnh hoàn chỉnh (được gọi là tập lệnh đổi thưởng) và tập lệnh mở khóa của tập lệnh đổi thưởng. Hình ảnh dưới đây cho thấy mô hình này.

技术分析 | 以太坊、比特币和比特币现金上的智能合约
Ảnh: chế độ P2SH
Kiến thức kho hạng nhất: Chế độ P2SH được giới thiệu để đơn giản hóa việc sử dụng các tập lệnh phức tạp (cơ chế truyền thống là P2PKH). Các tập lệnh khóa phức tạp được biên dịch thành A tập lệnh đơn giản với hàm băm 20 byte, giống như địa chỉ Bitcoin là khóa chung 20 byte được mã hóa Base58. Sự khác biệt lớn nhất giữa P2SH và P2PKH truyền thống là người đặt điều kiện chuyển sẽ thay đổi từ người gửi sang người nhận. Bằng cách thêm các điều kiện chuyển khoản khác nhau vào tập lệnh quy đổi, nhiều hình thức giao dịch khác nhau có thể được thực hiện, chẳng hạn như giao dịch nhiều chữ ký.

Các nút Bitcoin xác minh các giao dịch hợp đồng thông minh này theo hai giai đoạn. Đầu tiên, "Tập lệnh đổi quà" được băm và kiểm tra với hàm băm trong "Tập lệnh khóa". Nếu chúng khớp nhau, hãy sử dụng "tập lệnh khóa" để mở khóa "tập lệnh đổi thưởng" như thể "tập lệnh đổi thưởng" là tập lệnh khóa ban đầu.

Vì chỉ có hàm băm của mã byte được lưu trữ trên chuỗi Bitcoin nên mã byte hoàn chỉnh phải được lưu trữ ngoài chuỗi và được bao gồm trong tập lệnh mở khóa cho bất kỳ việc thực hiện hợp đồng nào. Do đó, việc "triển khai" hợp đồng thông minh Bitcoin là miễn phí, nhưng việc thực hiện hợp đồng sau đó sẽ tốn kém hơn. Ngược lại, việc triển khai ban đầu của Ethereum tương đối tốn kém, trong khi việc thực hiện hợp đồng tiếp theo lại rẻ.

Những khác biệt trong quá trình triển khai này khuyến khích việc sử dụng kết hợp cả hai hợp đồng thông minh. Một ví dụ điển hình là LocalCryptos, hỗ trợ các giao dịch cục bộ không giám sát đối với Ethereum và Bitcoin. Đối với Ethereum, nó sử dụng một hợp đồng thông minh lớn để theo dõi tất cả các giao dịch, trong khi đối với Bitcoin, nó tạo ra các hợp đồng riêng biệt cho mỗi giao dịch.

Viết hợp đồng thông minh

Mặc dù Ethereum có nhiều ngôn ngữ cấp cao có thể được biên dịch thành mã byte EVM nhưng Bitcoin lại ít chú ý đến điều này. Bất chấp sự phức tạp của các hệ thống có thể được xây dựng bằng Bitcoin Script, bản thân các hợp đồng thường đơn giản. Vì vậy, có rất ít nhu cầu trừu tượng hóa hệ thống cơ bản. Và vì hợp đồng Bitcoin có giới hạn kích thước và chi phí cao cho mỗi byte bổ sung nên điều quan trọng là phải giữ hợp đồng “càng nhỏ càng tốt”.

Mặc dù những ngôn ngữ cấp cao này ít quan trọng hơn trong Bitcoin nhưng chúng vẫn tồn tại. Ivy là ngôn ngữ cấp cao “tinh tế nhất” trong Bitcoin, được Dan Robinson tạo ra vào năm 2017. Hình dưới đây đưa ra một ví dụ về hợp đồng thông minh được viết bằng Ivy. Hợp đồng dùng để gửi tiền, người gửi có thể thu hồi được nếu người nhận không sử dụng kịp thời.

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Gần đây, một số nhà nghiên cứu tại Blockstream đã phát hành Miniscript, một ngôn ngữ tập trung vào phân tích hợp đồng thông minh và khả năng kết hợp thay vì trừu tượng hóa hệ thống cơ bản. Xem xét rằng các hợp đồng Bitcoin có xu hướng thiếu sự phức tạp trừu tượng, đây có vẻ là con đường đúng đắn.

Bitcoin Cash: Các tính năng có thể tổng hợp

Một mặt, trên đây là Ethereum, có khả năng tạo ra nhiều hợp đồng thông minh mạnh mẽ và hữu ích tồn tại hoàn toàn trên chuỗi Ethereum. Đồng thời, do tính chất trạng thái của nó, nó cũng làm tăng vấn đề về khả năng mở rộng. Mặt khác, mô hình hợp đồng thông minh không trạng thái của Bitcoin cho phép xác minh độc lập và đơn giản các giao dịch hợp đồng thông minh, nhưng hệ thống tập lệnh của nó hạn chế tính thực tế của hợp đồng.

Trước khi phân nhánh, Bitcoin Cash và Bitcoin có cùng lịch sử, vì vậy hệ thống tập lệnh cơ bản của chúng giống hệt nhau về mặt chức năng, Bitcoin Cash cũng được hưởng lợi từ những khía cạnh tương tự. Kể từ đó, phần lớn cộng đồng Bitcoin Cash đã nhận ra sự cần thiết của “các hợp đồng thông minh hữu ích hơn”. Bitcoin Cash kích hoạt các tính năng mới giúp hợp đồng thông minh của nó trở nên hữu ích hơn trong khi vẫn giữ được các thuộc tính cơ bản cho phép Bitcoin được xác minh không trạng thái.

Nâng cấp chức năng BCH

Để hiểu khả năng của hợp đồng thông minh Bitcoin Cash, chúng ta cần xem xét các bản nâng cấp mạng hai năm một lần của nó. Kể từ lần hard fork đầu tiên vào năm 2017, các nâng cấp mạng này đã được thực hiện vào tháng 5 và tháng 11 hàng năm. Chúng tôi đã thảo luận cụ thể về những thay đổi đối với công cụ tập lệnh Bitcoin, mặc dù một số cải tiến khác đã được thực hiện, chẳng hạn như chữ ký Schnorr.

Trong những ngày đầu của Bitcoin, một số opcode đã bị vô hiệu hóa do sử dụng không an toàn. Trong năm đầu tiên sau đợt fork Bitcoin Cash, các nhà phát triển nút Bitcoin-ABC đã giải quyết những vấn đề này và giới thiệu lại opcode với chức năng được sửa đổi một chút, như trong hình bên dưới. Quan trọng nhất, bản nâng cấp giúp mã hóa và giải mã dữ liệu có cấu trúc trong Bitcoin Script.

技术分析 | 以太坊、比特币和比特币现金上的智能合约
Hình: BCH đã bật mã opcode mới

Nửa năm sau, một opcode mới khác đã được phát hành trong bản nâng cấp mạng Bitcoin Cash vào tháng 11 năm 2018. Chúng bao gồm bản cập nhật OP_CHECKDATASIG, cho phép người dùng xác minh chữ ký của bất kỳ tin nhắn nào trong tập lệnh Bitcoin. Nếu chúng tôi kết hợp nó với các bản cập nhật tập lệnh được giới thiệu vào năm 2018, những bản cập nhật này có thể được sử dụng để mang lại chức năng hợp đồng thông minh mới và hữu ích cho Bitcoin Cash.

Viết hợp đồng thông minh

Các tính năng mới của Bitcoin Cash làm tăng thêm độ phức tạp cho các hợp đồng thông minh của nó so với tập lệnh Bitcoin ban đầu. Điều này càng khiến việc có một hệ sinh thái cung cấp các lớp trừu tượng cấp cao hơn thông qua các ngôn ngữ, SDK và công cụ cấp cao càng trở nên quan trọng hơn.

Hai dự án lớn hiện đang giải quyết vấn đề này là Spedn (được tạo bởi bút danh Tendo Pein) và CashScript (được tạo bởi tác giả của bài viết này Rosco Kalis Created, lấy cảm hứng từ ngôn ngữ Solidity của Ethereum). Mặc dù chúng vẫn đang được phát triển tích cực nhưng những công cụ này giúp làm việc với các hợp đồng thông minh trong Bitcoin Cash dễ dàng hơn. Một số chức năng được minh họa bên dưới bằng đoạn mã CashScript.

Oracles

Khi các bản cập nhật Bitcoin Script trước đây được tổng hợp lại, chúng cho phép bạn đưa dữ liệu bên ngoài vào hợp đồng thông minh của Bitcoin Cash thông qua các nhà tiên tri đáng tin cậy. Dữ liệu có cấu trúc có thể được mã hóa dưới dạng mảng byte và được nhà cung cấp oracle ký. Hợp đồng thông minh sau đó có thể xác minh chữ ký và giải mã dữ liệu có cấu trúc.

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Bạn có thể xem ví dụ này trong hợp đồng mẫu HODLVault bên dưới. Hợp đồng thực thi HODLing cho đến khi đạt được mức giá BCH/USD nhất định. Nguồn cấp dữ liệu giá BCH/USD bắt buộc được nhà cung cấp oracle công bố và được người dùng chuyển vào hợp đồng. Để tăng tính phân cấp, hợp đồng thông minh có thể được thiết lập để sử dụng nhiều nguồn dữ liệu thay vì tin tưởng vào một dịch vụ tập trung duy nhất.

Các giao ước

Trường hợp sử dụng lớn thứ hai là một công nghệ có tên "Giao ước", lấy tên từ thuật ngữ được sử dụng trong luật tài sản để hạn chế việc sử dụng đồ vật. Trong trường hợp Bitcoin Cash, nó hạn chế việc sử dụng tiền tệ trong hợp đồng thông minh. Vì vậy, trong khi các hợp đồng thông minh trong Bitcoin chỉ có thể cho phép chi tiêu tiền tệ chung thì hợp đồng Bitcoin Cash có thể áp đặt các hạn chế về số tiền có thể chi tiêu hoặc danh tính của người nhận thanh toán.

Khi chuyển Bitcoin, người gửi phải cung cấp chữ ký để ủy quyền giao dịch. Để tạo chữ ký này, người gửi ký vào bản trình bày hàm băm của giao dịch. Hàm băm này được gọi là Sighash và dữ liệu giao dịch thực tế được chứa trong tiền tố Sighash.

Bằng cách sử dụng OP_CHECKSIG và OP_CHECKDATASIG có cùng chữ ký, chúng tôi có thể truy cập dữ liệu Sighash. Định dạng dữ liệu có thể được kiểm tra trong thông số kỹ thuật và được bao gồm trong hình ảnh bên dưới. Một trường quan trọng là scriptCode, chứa mã byte của chính hợp đồng thông minh. Một cái khác là hashOutputs cho phép người dùng buộc đầu ra của giao dịch.

技术分析 | 以太坊、比特币和比特币现金上的智能合约
Hình: Định dạng dữ liệu Bitcoin Cash Sighash span>

Thật thú vị khi biết các hợp đồng bảo lãnh hoạt động như thế nào ở cấp độ kỹ thuật, nhưng CashScript đã loại bỏ hầu hết những điều về tính phức tạp của hợp đồng. Khi viết hợp đồng thông minh bằng CashScript, các trường này có thể dễ dàng sử dụng mà không cần phải thực hiện các bước thủ công để xác minh và giải mã bản gốc Sighash.

Hợp đồng thông minh đầu tiên sử dụng công nghệ hợp đồng được đảm bảo là Di chúc cuối cùng của Licho, đây là một hợp đồng thông minh. Cho phép người dùng chuyển nhượng tài sản của người đã chết về tài sản riêng của họ. Hợp đồng xác định ba chức năng riêng biệt. Việc đầu tiên cho phép những người thừa kế yêu cầu số tiền sau 180 ngày. Thứ hai cho phép sử dụng khóa lạnh (ColdKey) của chủ sở hữu theo bất kỳ cách nào. Thứ ba cho phép Hot Key của chủ sở hữu làm mới khoảng thời gian 180 ngày bằng cách buộc toàn bộ số dư hợp đồng được gửi trở lại hợp đồng.

Phiên bản CashScript của Last Will được bao gồm bên dưới, nhưng phiên bản gốc được viết bởi Spedn và có thể xem tại đây .

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Đây là một trong những ví dụ đơn giản về hợp đồng bảo hành hữu ích, nhưng hợp đồng bảo hành có thể còn nhiều hơn thế chức năng phức tạp. Sau hợp đồng Last Will, người tạo ra nó Karol Trzeszczkowski tiếp tục thành lập Mecenas, một công ty thực thi các khoản thanh toán định kỳ như Patreon.

Các hợp đồng được đảm bảo ban đầu được đề xuất trong một bài báo có tiêu đề "Giao ước Bitcoin", trong đó yêu cầu mã opcode mới OP_CHECKOUTPUTVERIFY. Tiếp theo là các đề xuất khác, chẳng hạn như OP_CHECKTEMPLATEVERIFY hoặc OP_CHECKSIGFROMSTACK. Cái sau rất giống với việc triển khai Giao ước của Bitcoin Cash. Bạn có thể tìm hiểu thêm về các hợp đồng được đảm bảo trong bài viết của Tendo Pein.

Trạng thái mô phỏng

Nhìn vào hợp đồng Di chúc và Di chúc cuối cùng, việc thay đổi người thừa kế khi hợp đồng có hiệu lực có thể có giá trị. Vì chúng ta có thể buộc gửi đến hợp đồng hiện tại bằng cách xem mã byte của nó, nên chúng ta có thể buộc gửi đến một hợp đồng hơi khác bằng cách thay đổi mã byte này một chút. Có thể tạo một hàm gửi số dư của toàn bộ hợp đồng đến một hợp đồng có cùng mã byte nhưng có một người thừa kế khác.

Chúng tôi chỉ có thể thực hiện việc này với các tham số hàm tạo có kích thước đã biết (ví dụ: 20 byte). Tham số hàm tạo luôn là dữ liệu đầu tiên trong mã byte hợp đồng, đó là cách chúng ta có thể dễ dàng thay thế dữ liệu cũ bằng dữ liệu mới. Hàm kế thừa là tham số hàm tạo đầu tiên và kích thước của nó là 20 byte nên chúng ta có thể áp dụng kỹ thuật này như có thể thấy bên dưới.

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Bằng cách sử dụng công nghệ này, có thể thay đổi một số biến nhất định trong hợp đồng trong khi vẫn giữ nguyên các quy tắc của hợp đồng. Chúng tôi gọi nó là "trạng thái mô phỏng" vì nó cung cấp một số lợi ích của trạng thái hợp đồng mà không gặp phải vấn đề về khả năng mở rộng của các hệ thống có trạng thái như Ethereum. Có những nhược điểm khác đối với cách tiếp cận này vì phải có sự đánh đổi ở đâu đó.

Vấn đề chính là chúng tôi không thực sự thay đổi bất kỳ biến số nào trong hợp đồng ban đầu, bởi vì tính chất không trạng thái của Bitcoin Cash, điều này là không thể. Thay vào đó, một hợp đồng mới được tạo (với địa chỉ mới) và toàn bộ số dư sẽ được chuyển sang hợp đồng mới đó. Điều này sẽ gây ra các vấn đề về UX do các địa chỉ mới, nhưng những vấn đề này có thể được giảm thiểu bằng cách có khả năng trừu tượng hóa lớp ứng dụng tốt bên cạnh các hợp đồng thông minh này.

Việc thay thế các biến này bên trong mã byte có thể phức tạp, đặc biệt là khi cố gắng thay thế các biến sâu hơn bên trong mã byte . Chức năng này phải được trừu tượng hóa bằng ngôn ngữ cấp cao để mã byte mới được tạo tự động bằng cách cung cấp các tham số mới. Sự trừu tượng hóa này có thể trông như thế này:

技术分析 | 以太坊、比特币和比特币现金上的智能合约

Nhiều sự trừu tượng hóa phải trả giá bằng những hợp đồng lớn hơn , dẫn đến hiệu suất cao hơn chi phí. Nhưng phí giao dịch của Bitcoin Cash nhìn chung là thấp, vì vậy đây là mức phí tốt nhất cho cả hai thế giới. Nhưng Bitcoin Cash có giới hạn kích thước tương tự như Bitcoin, do đó, những khái niệm trừu tượng này khiến việc duy trì giới hạn trở nên khó khăn hơn. Điều này dẫn đến việc nhiều nhà phát triển phải tối ưu hóa mã byte đã biên dịch theo cách thủ công.

Kết luận

Mọi loại tiền điện tử đều có sự đánh đổi trong hệ thống hợp đồng thông minh của nó. Ethereum là nền tảng hợp đồng thông minh được sử dụng phổ biến nhất với nhiều tính năng nhất. Bitcoin cung cấp phiên bản cơ bản hơn của hợp đồng thông minh thông qua hệ thống tập lệnh phi trạng thái, xác minh hiệu quả hơn nhưng có ít tính năng hơn. Bitcoin Cash có nền tảng tương tự như Bitcoin, nhưng bổ sung thêm các tính năng mới nhằm cố gắng dung hòa giữa xác minh hiệu quả và hợp đồng thông minh hữu ích. Cuối cùng, mọi người đều hướng tới những mục tiêu giống nhau.

Nhìn về tương lai

Bài viết này được viết vào quý 4 năm 2019 và phản ánh trạng thái hiện tại của nền tảng. Tiền điện tử là một lĩnh vực có nhịp độ phát triển nhanh, vì vậy những người tham gia vào các nền tảng này luôn nỗ lực tìm kiếm những cải tiến có thể thay đổi cục diện của hệ sinh thái.

Ethereum đang phát triển phiên bản Ethereum 2.0 chính, với Giai đoạn 0 dự kiến sẽ ra mắt vào quý 1 năm 2020. Ethereum 2.0 nhằm mục đích giải quyết các vấn đề về hiệu suất của Ethereum 1.x bằng cách chuyển sang bằng chứng cổ phần, triển khai sharding và các cải tiến khác. Lộ trình đầy đủ cho ETH2.0 vẫn chưa được xác định và có thể mất vài năm mới ra mắt. Tuy nhiên, nếu bản cập nhật lớn này đạt được mục tiêu, nó có thể cung cấp sự hỗ trợ mạnh mẽ cho Ethereum.

Nghiên cứu hợp đồng thông minh về Bitcoin được dành riêng để cải thiện hơn nữa hiệu quả và quyền riêng tư của các hợp đồng thông minh, bao gồm Taproot và giải pháp tập lệnh không có tập lệnh. lớp. Mặt khác, Bitcoin Cash tiếp tục nỗ lực kích hoạt các tính năng hợp đồng thông minh bổ sung và đang nỗ lực làm cho những thay đổi này dễ tiếp cận hơn.

Tác giả|Rosco Kails
Biên soạn|Kho hàng hạng nhất (www.First.VIP)


Liên kết nguồn: weixin.qq.com



Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi