Tiêu đề gốc: "Mở "ba ổ khóa" của hợp đồng thông minh Bitcoin》
Tác giả gốc: Wang Yuanming, Li Hua
Nguồn gốc: Viện nghiên cứu Bixin
Với các chỉ thị mới và Với sự ra đời của thuật toán, chức năng đa chữ ký của Bitcoin ngày càng trở nên mạnh mẽ hơn. Đa chữ ký không chỉ đề cập đến chữ ký chung của nhiều người để giữ một tài sản Bitcoin; nó còn có thể là “chữ ký chung” của nhiều điều kiện, qua đó Bitcoin được khóa và mở khóa.
Sử dụng điều kiện để xác định việc sử dụng tài sản thực chất là chức năng của hợp đồng. Khi hợp đồng này có thể được thể hiện bằng mã và được thực thi tự động mà không cần tin cậy, chúng tôi gọi đó là hợp đồng thông minh. Do đó, cựu người bảo trì lõi Bitcoin Gavin Andresen cho biết: Chức năng đa chữ ký của Bitcoin đã có thể hoàn thành hầu hết các chức năng hữu ích trên Ethereum.
Vậy Bitcoin thực hiện hợp đồng thông minh như thế nào? Sự khác biệt giữa hợp đồng thông minh Bitcoin và Ethereum là gì? Chúng tôi đã phỏng vấn Wang Yuanming, một nhà văn kỹ thuật có hiểu biết sâu sắc về blockchain và hợp đồng thông minh. Anh ấy từng là kiến trúc sư của Sina Weibo và là người phụ trách nền tảng container QingCloud. Anh ấy hiện là kiến trúc sư trưởng của một dự án chuỗi công cộng Ông cũng là Người khởi xướng Liên minh Công nghệ Blockchain BFTF.
Hợp đồng thông minh
1. Bitcoin có cần trí thông minh không? Hợp đồng
Hỏi: Bitcoin có cần hợp đồng thông minh không?
Đ: Bắt buộc. Hợp đồng thông minh có thể mang lại khả năng mở rộng hợp lý cho hệ thống Bitcoin, bổ sung thêm các chức năng mới cho hệ thống mà không thay đổi cơ sở hạ tầng và cơ sở hạ tầng hiện có, do đó nâng cao khả năng của hệ thống. Khả năng mở rộng không chỉ có nghĩa là những thứ như TPS, dung lượng và dung lượng lưu trữ.
Một chức năng khác của hợp đồng thông minh là chúng có thể thực hiện các chức năng hợp đồng ràng buộc. Đó là một thỏa thuận xác định quyền và nghĩa vụ của các bên, nhưng là thỏa thuận kỹ thuật số và cơ chế thực thi của nó không dựa vào hệ thống pháp luật hiện có.
Hỏi: Là một loại tiền điện tử, tại sao Bitcoin cần có chức năng hợp đồng? Sẽ không ổn nếu chỉ giao dịch nó sao?
A: Không có cái gọi là giao dịch đơn giản, tại sao bạn lại chuyển tiền cho tôi? Cho dù đó là mua sắm, trả lương hay bất cứ điều gì khác, mọi thứ thực sự phụ thuộc vào hợp đồng. Trong thực tế, việc thực hiện hợp đồng này phụ thuộc vào hệ thống tư pháp, nếu một bên vi phạm hợp đồng thì bên kia có thể khởi kiện. Không thể hoàn thành bất kỳ giao dịch nào chỉ bằng tiền tệ mà không có sự ràng buộc của hệ thống tư pháp.
Vậy trong quá trình toàn cầu hóa tiền điện tử thì thế nào để xây dựng lực lượng ràng buộc của một hợp đồng như vậy trong thế giới này? Dựa vào hợp đồng thông minh. Hợp đồng thông minh thể hiện và thực thi các quy tắc/luật thông qua mã và sử dụng mã để xây dựng một hệ thống ràng buộc.
Hỏi: Bitcoin có cần DeFi không?
Đ: Nói rộng ra, tất cả các loại tiền điện tử đều thuộc lĩnh vực ứng dụng của DeFi, bởi vì bước đầu tiên của DeFi là phải có tiền tệ. Với tiền tệ, bạn có thể xác định cách trao đổi tiền tệ với các tài sản hoặc tiền tệ khác, cách vay tiền, v.v. Tài chính bằng tiền điện tử vẫn còn khá sớm so với tài chính trong hệ thống tiền tệ fiat và vẫn còn một chặng đường dài để khám phá.
2. Cách Bitcoin triển khai hợp đồng thông minh
Hỏi: Tại sao hệ thống Bitcoin hỗ trợ hợp đồng thông minh?
Đ: Hợp đồng có nghĩa là khi tôi thực hiện một giao dịch với bạn, nó có thể đảm bảo rằng giao dịch sẽ được hoàn thành, nghĩa là nó có thể đưa ra một số điều kiện nhất định và tôi sẽ chỉ thanh toán cho bạn khi các điều kiện được đáp ứng. Nếu điều kiện này có thể được thể hiện thì nó có thể được coi là có khả năng thể hiện hợp đồng thông minh. Script của Bitcoin có khả năng thể hiện các hợp đồng thông minh, Script của Bitcoin có thể hiểu là một hợp đồng thông minh.
Vậy thì tại sao Bitcoin lại trải qua một giai đoạn script?Thay vì củng cố chức năng trên chuỗi? Bởi vì nếu nó được củng cố trên chuỗi, khi người dùng/nhà phát triển cần một chức năng nhất định, nhóm phát triển Bitcoin cần triển khai nó, sau đó phát hành và sau đó thúc đẩy nâng cấp toàn bộ chuỗi. không thể giải quyết được Chà, nó được chia đôi.
Vậy là Bitcoin chỉ cung cấp những nguyên liệu cơ bản nhất, tương đương với việc cung cấp cho bạn bột mì, còn việc nấu các món ăn như thế nào là việc của bạn, bạn có thể sử dụng những nguyên liệu này để kết hợp những thứ mới theo kịch bản của riêng mình mà không cần dựa vào chính chuỗi. Đây là những gì tôi đã đề cập trước đó về việc đạt được khả năng mở rộng hợp lý thông qua hợp đồng thông minh. Tương lai là không chắc chắn và hợp đồng thông minh có thể được coi là một chiến lược để đối phó với sự không chắc chắn.
Trên đây là sự hỗ trợ riêng của hệ thống Bitcoin đối với các hợp đồng thông minh, được triển khai thông qua các tập lệnh, có một cách khác để hỗ trợ/thực hiện các hợp đồng thông minh, đó là triển khai các hợp đồng thông minh trên chuỗi bên thông qua chuỗi bên của hệ thống Bitcoin. phương pháp tương tự như trên Ethereum.
Hỏi: Hệ thống Bitcoin triển khai hợp đồng thông minh thông qua tập lệnh như thế nào?
Đ: Hợp đồng thông minh trên Ethereum được thể hiện trực tiếp rõ ràng bằng mã, A được thực thi trong điều kiện nào, B được thực thi trong điều kiện nào, v.v. Hợp đồng thông minh trên Bitcoin không đơn giản như Ethereum.
Tất cả các hợp đồng thông minh trên Bitcoin phải được chuyển đổi thành cơ chế khóa và mở khóa. Nghĩa là, trong tập lệnh, tài sản bị khóa thông qua "khóa" hoặc "điều kiện băm", cộng với TimeLock "thời gian". Cho dù đó là Lightning Network hay giao thức Arwen, chúng đều là những cơ chế như vậy, chữ ký Schnoor mà Bitcoin sẽ ra mắt cũng được thiết kế để thể hiện tốt hơn cơ chế này.
Do đó, việc triển khai hợp đồng thông minh Bitcoin Cốt lõi là làm thế nào để khóa và mở khóa tài sản.
Nếu tất cả các điều kiện trong hợp đồng có thể được chuyển đổi thành khóa, điều kiện băm và khóa thời gian để khóa và mở khóa thì hợp đồng này có thể được thực hiện bằng hệ thống Bitcoin. Tôi gọi ba khóa này lần lượt là khóa chữ ký, khóa băm và khóa thời gian. Hợp đồng thông minh Bitcoin về cơ bản được triển khai bằng cách sử dụng "ba khóa" này.
Ví dụ: nếu bạn mua một bản nhạc của tôi và bản nhạc đó được truy cập thông qua mật khẩu thì trong hợp đồng giao dịch, tôi sẽ biến mật khẩu truy cập bản nhạc đó thành một trong các chìa khóa. Nếu bạn muốn hoàn thành giao dịch, chìa khóa này phải được bạn biết; và một khi bạn biết (bạn nhận được âm nhạc) và tiền sẽ được trả cho tôi.
Hỏi: Sự khác biệt giữa điều kiện băm và khóa là gì?
Đ: Bạn có thể hiểu chúng là một, và chức năng của chúng giống nhau. Điều kiện băm là tôi biết một giá trị và sau khi băm giá trị đó, tôi nhận được kết quả băm. Sau đó, trong hợp đồng có đặt ra một điều kiện là ai nhập được kết quả băm khi viết giao dịch sẽ nhận được tiền. Chỉ cần mình có giá trị này thì sẽ có kết quả băm, cũng có thể hiểu là có key.
Hỏi: Nói một cách đơn giản, chúng ta có thể nghĩ rằng hợp đồng thông minh của Bitcoin được thực hiện thông qua đa chữ ký và khóa thời gian không?
Đáp: Có, như đã đề cập trước đó Sử dụng khóa, điều kiện băm và khóa thời gian để triển khai hợp đồng thông minh. Điều kiện băm cũng có thể được coi là khóa trong đa chữ ký; khóa thời gian là điều kiện về chiều cao của khối.
Hỏi: Tầm quan trọng của khóa thời gian trong việc triển khai hợp đồng thông minh là gì?
A: Khóa thời gian rất quan trọng. Nếu không có hạn chế về thời gian, nhiều giao thức sẽ không thể được triển khai. Chính xác là do các điều kiện băm và khóa thời gian mà các hợp đồng như Lightning Network có thể chạy.
Ví dụ: trong Lightning Network, hai chúng tôi cùng đóng góp tiền, đóng băng tiền vào một tài khoản được quản lý chung và sau đó thanh toán cho nhau ngoài chuỗi. Điều gì sẽ xảy ra nếu một bên không hợp tác khi giải quyết? Giả sử chúng ta cãi nhau và bạn không muốn lấy tiền của mình, nhưng tôi cũng không thể lấy được tiền của mình. Việc khóa thời gian thì dễ, tôi đặt thời gian chờ, sau khi hết thời gian thì tiền là của tôi và tôi có thể lấy đi.
3. Sự khác biệt giữa hợp đồng thông minh Bitcoin và Ethereum
H: Tương ứng với việc Bitcoin sử dụng tập lệnh để thực hiện hợp đồng thông minh, Ethereum sử dụng gì để thực hiện hợp đồng thông minh?
Đ: Ethereum có Hợp đồng thông minh ngôn ngữ. Trên thực tế, script Bitcoin cũng có thể hiểu là một ngôn ngữ nhưng đơn giản hơn; việc thực thi script Bitcoin cũng có thể hiểu là có một máy ảo, tuy nhiên việc thực hiện trên máy ảo tương đối đơn giản. Vì các máy ảo thực hiện các hướng dẫn nên Ethereum có những thay đổi gì?
Tôi tóm tắt những thay đổi chính do Ethereum mang lại ở ba điểm:
1. Hướng dẫn về Máy ảo Ethereum mang tính biểu cảm hơn. Nếu hiểu đơn giản thì bạn có thể nghĩ rằng các hướng dẫn do Ethereum cung cấp là các hướng dẫn cấp thấp hơn và các hướng dẫn cấp thấp được kết hợp thành các hướng dẫn cấp cao, trong khi Bitcoin trực tiếp cung cấp các hướng dẫn cấp cao và các hướng dẫn của nó bị hạn chế. Ngoài ra, Ethereum hỗ trợ các hướng dẫn như bước nhảy và có thể biểu diễn logic như vòng lặp, thường được gọi là tính đầy đủ của Turing.
2. Ethereum giới thiệu cơ chế gas. Bạn có thể viết logic hợp đồng theo ý muốn trên Ethereum và cơ chế gas đảm bảo rằng có giới hạn trên cho lần thực thi cuối cùng. Ngoài việc giải quyết vấn đề thời gian ngừng hoạt động, nó còn có thể hạn chế lãng phí tài nguyên, do đó có mối quan hệ giữa chi phí thực hiện kịch bản và phí phải trả.
3. Hợp đồng trên Ethereum có trạng thái, trong khi hợp đồng trên Bitcoin không thể có trạng thái riêng. Điều này có nghĩa là: Đầu tiên, hợp đồng trên Bitcoin không thể tạo ra trạng thái riêng của nó. Ví dụ: nếu bạn xuất nội dung nào đó trong tập lệnh này, nó sẽ không được sử dụng trong tập lệnh tiếp theo. Các tập lệnh Bitcoin đều được sử dụng một lần. , chỉ hoạt động cho việc này thứ hai, tập lệnh trên Bitcoin không thể đọc trực tiếp trạng thái hiện có trên chuỗi. Ví dụ: khóa thời gian phụ thuộc vào chiều cao khối trên chuỗi, yêu cầu hỗ trợ hướng dẫn đặc biệt và được nhúng trong tập lệnh. Các trạng thái khác (được thực hiện thông qua lệnh op_return) không thể đọc được.
Hỏi: Tính hoàn thiện của Turing sẽ mang lại cái gì Sự khác biệt?
Đ: Trên thực tế, Ethereum không thực sự là Turing hoàn chỉnh, vì nó có những hạn chế về gas và không thể sử dụng logic quá phức tạp.
Ưu điểm của tính hoàn chỉnh của Turing là nó có khả năng mở rộng mạnh hơn và khả năng biểu đạt mạnh hơn. Do đó, mức độ tự do thử nghiệm do Ethereum cung cấp lớn hơn nhiều so với Bitcoin, đó là lý do tại sao có nhiều dự án thử nghiệm trên Ethereum.
Bitcoin là một chiến lược thận trọng. Tôi chỉ có rất nhiều hướng dẫn, tôi sẽ thử nghiệm ở những nơi khác trước, sau khi thử nghiệm hoàn thành, tôi cảm thấy hướng dẫn này cần được hỗ trợ và tôi sẽ thêm hướng dẫn này. Ví dụ: để hỗ trợ các kênh thanh toán và hoán đổi nguyên tử, một giao thức khóa thời gian băm đã được thêm vào, giao thức này có thể khóa một khoảng thời gian.
Tại sao Bitcoin không mở rộng quy mô theo nhiều hướng dẫn như vậy? Vì mức tiêu thụ tài nguyên của các lệnh khác nhau là khác nhau nên nếu thể hiện một tập lệnh rất phức tạp thì chi phí thực hiện giao dịch này sẽ rất cao, điều này sẽ tiêu tốn tài nguyên và ảnh hưởng đến toàn bộ mạng.
Hỏi: Trạng thái hợp đồng sẽ tạo ra sự khác biệt gì?
Đ: Trạng thái của Bitcoin hoàn toàn được tạo ngoài chuỗi, có nghĩa là trạng thái này phải được ghi khi giao dịch được tạo. Chuỗi chỉ mang dữ liệu giao dịch và không thể ghi dữ liệu bổ sung khác.
Ví dụ: bạn khó có thể tìm thấy trong Bitcoin Tải lên đồng tiền của riêng bạn. Các đồng tiền được phát hành trên Bitcoin đều là các đồng tiền có màu. Đồng tiền có màu nhúng một số cấu trúc dữ liệu của riêng chúng vào tập lệnh, nhưng tập lệnh không thể đọc được cấu trúc dữ liệu được nhúng nên tập lệnh không thể xác minh cấu trúc dữ liệu. Cần phải thực hiện lại. kiểm tra mạng để xem dữ liệu được ghi vào có hợp pháp không.
Tất cả các đồng tiền màu được triển khai dựa trên cơ chế này, nó không trực tiếp phát hành mã thông báo như Ethereum và sau đó xác minh nó thông qua hợp đồng.
Bản chất lý do tại sao Bitcoin áp dụng thiết kế này là nó không hoan nghênh các dữ liệu khác được ghi trên đó, vì mạng Bitcoin sẽ tốn kém khi mang dữ liệu bổ sung. Loại dữ liệu này phải được lưu trữ vĩnh viễn và người dùng chỉ phải trả tiền một lần . Do đó, Bitcoin không cung cấp khả năng lưu trữ các trạng thái tùy chỉnh, đây không phải là con đường của nó. Việc nhúng dữ liệu tùy chỉnh thông qua op_return có thể được hiểu là một hành vi hack và không phải là mục tiêu ban đầu của việc Bitcoin cung cấp op_return.
Trên thực tế, điều này có thể cho thấy sự khác biệt trong ý tưởng thiết kế của Bitcoin và Ethereum: Bạn có thể hiểu Bitcoin là một ngân hàng trung lập, nó chỉ cung cấp cơ chế khóa và mở khóa tài sản, ai có chìa khóa thì sở hữu tài sản đó, nó không quan tâm về các điều kiện khác và mỗi tài sản là một khóa độc lập và nó không quan tâm đến mối quan hệ giữa các tài sản. Hợp đồng thông minh của Bitcoin không phải là một đoạn mã mà là một chuỗi các giao thức vận hành các khóa.
Ý tưởng thiết kế của Ethereum là bất kỳ hợp đồng nào cũng có thể được biểu diễn dưới dạng một chuỗi giao dịch và các giao dịch tiếp theo đều liên quan đến trạng thái của các giao dịch trước đó, do đó, nó cung cấp một cơ chế chung để theo dõi và cập nhật trạng thái lịch sử, và Logic và điều kiện cập nhật trạng thái do người dùng tự tạo. Công thức nhà nước thế giới trong Sách vàng Ethereum thể hiện rất rõ ý tưởng này.
Hai ý tưởng này thực ra có ý tưởng riêng sự khác biệt Những ưu và nhược điểm có liên quan đến mục tiêu của người thiết kế và sự trừu tượng của thế giới.
Hỏi: Có sự khác biệt nào khác giữa hợp đồng thông minh của Bitcoin và Ethereum không?
A: Sự khác biệt giữa mô hình UTXO (đầu ra giao dịch chưa chi tiêu) và mô hình Tài khoản (tài khoản) sẽ Nó cũng mang lại sự khác biệt trong việc thực hiện hợp đồng thông minh giữa hai bên.
Trong mô hình UTXO, mỗi đồng tiền đều có một đánh dấu rằng bạn cần biết rõ số tiền được sử dụng khi sử dụng, mô hình Tài khoản tương đương với việc hợp nhất tất cả UTXO của người dùng thành một UTXO lớn, sử dụng UTXO mặc định này. Điều này tạo ra một số khác biệt:
1. Viết hợp đồng theo mẫu Tài khoản tương đối đơn giản, bạn chỉ cần ghi số tiền chuyển là bao nhiêu, không cần ghi rõ số tiền chuyển là bao nhiêu;
2. Mô hình Tài khoản có thể hạn chế trước thu nhập trong tương lai , có nghĩa là tiền chưa đến tài khoản hợp đồng, nhưng hợp đồng có thể được triển khai để hạn chế cách chi tiêu;
3. Vì mô hình Tài khoản tương đương với việc hợp nhất UTXO , các điều kiện mở khóa không thể được đặt trực tiếp khi chuyển giao và trước tiên phải triển khai hợp đồng.
Tất nhiên, mô hình và Tài khoản UTXO mô hình Tất cả đều đang phát triển và một số dự án sẽ thực hiện những thay đổi đối với chúng, khi có cơ hội tôi sẽ viết một bài để phân tích chi tiết.
4. Trường hợp hợp đồng thông minh Bitcoin
H: Làm thế nào để hiểu rằng bản thân Lightning Network là một hợp đồng thông minh?
Đáp: Bạn có thể nói rằng Lightning Network là một giao thức, cũng có thể nói đó là một hợp đồng thông minh trên Bitcoin. Hợp đồng của Lightning Network chủ yếu giải quyết vấn đề làm thế nào hai người có thể cùng khóa tiền và phải làm gì nếu một bên gian lận, không hợp tác, v.v. Nó được thực hiện thông qua ba khóa nêu trên.
Hỏi: Quy trình triển khai hợp đồng thông minh trên Lightning Network là gì?
Đ: Lightning Network thực chất là một kênh thanh toán giữa hai người và hiện chỉ hỗ trợ chuyển khoản lẫn nhau. Chúng tôi cố gắng nhúng một máy ảo lên trên kênh thanh toán, máy này có thể thực hiện các hợp đồng thông minh tương đối hoàn chỉnh, chẳng hạn như trò chơi. (Lưu ý: Hợp đồng thông minh của Wang Yuanming được triển khai trên Lightning Network: https://github.com/starcoinorg/thor)
Cả hai bên trong kênh có thể nhấn một số tiền BTC rồi chơi trò chơi. Bên chiến thắng sẽ nhận được BTC; nếu có bất kỳ sự khác biệt nào, chúng có thể được phân xử thông qua hệ thống trọng tài. Hệ thống trọng tài tương đương với tòa án, có thể là một chuỗi bên, một nút được điều hành bởi một tổ chức được cả hai bên tin cậy hoặc thị trường trọng tài, v.v. Hệ thống trọng tài giữ lại khóa mở khóa (giá trị băm) của cả hai bên và trao chìa khóa cho bên thắng cuộc sau khi phân xử.
Vì tài sản của Lightning Network mang tính định hướng nên trọng tài chỉ có thể quyết định người dùng nào nhận được BTC chứ không thể lấy đi BTC của người dùng, ngay cả khi có khả năng xảy ra gian lận chung thì chi phí gian lận vẫn cao hơn mô hình lưu ký.
Hỏi: Sự khác biệt giữa việc triển khai hợp đồng thông minh thông qua Lightning Network và triển khai hợp đồng thông minh thông qua các chuỗi bên như Liquid là gì?
Đ: Hợp đồng thông minh trên Lightning Network được thực thi bởi các nút ngoài chuỗi ở cả hai phía của kênh và xác minh lẫn nhau. Khi nảy sinh bất đồng, cần phải có hệ thống trọng tài để phân xử. Bản thân chuỗi bên có cơ chế đồng thuận và nhiều nút để thực hiện và xác minh hợp đồng, do đó cơ chế thực hiện của cả hai là khác nhau.
Cách triển khai hợp đồng thông minh trên chuỗi bên cũng tương tự như cách triển khai hợp đồng thông minh trên Ethereum, nhưng khi hợp tác với chuỗi chính thì cần sử dụng cơ chế khóa và mở khóa của Bitcoin.
Kết luận
Là một loại tiền điện tử, Bitcoin dường như có khả năng cung cấp một không gian tốt hơn cho sự phát triển của DeFi vì nó thu thập được nhiều sự đồng thuận nhất và mang lại giá trị cũng như tính thanh khoản cao nhất. Đây là tài sản tiền điện tử đáng tin cậy nhất.
Vì vậy, với tư cách là một hệ thống, bit Có đồng xu có hỗ trợ triển khai DeFi không? Trong bài viết này, chúng tôi khám phá cơ chế triển khai hợp đồng thông minh Bitcoin và đưa ra một số so sánh với hợp đồng thông minh Ethereum. DeFi trên Bitcoin không chỉ khả thi mà còn trở nên hoàn thiện hơn với sức mạnh của khả năng đa chữ ký.
Có lẽ chúng ta có thể mong đợi sự xuất hiện của các dịch vụ tài chính phi tập trung với Bitcoin là yếu tố cốt lõi.
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