Drivechains cho phép người vận hành nút Sidechain trả tiền cho người khai thác - và hơn thế nữa! Thông tin dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Drivechains cho phép người vận hành nút Sidechain trả tiền cho người khai thác - và hơn thế nữa!

Đây là một bài xã luận quan điểm của Shinobi, một nhà giáo dục tự học trong không gian Bitcoin và người dẫn chương trình podcast Bitcoin theo định hướng công nghệ.

Lần này tôi sẽ chia nhỏ và thảo luận về cách thức hoạt động của drivechain; ban đầu chúng được đề xuất vào năm 2015. Trong số tất cả các đề xuất được thảo luận cho đến nay, drivechains là đề xuất lâu đời nhất và được bổ sung nhiều nhất về mặt chi tiết triển khai cụ thể và thiết kế, được ghi lại trong BIP 300301. Paul Sztorc, người sáng tạo ra ý tưởng này, đã nghĩ đến một số mục tiêu thiết kế chính và mặc dù mục tiêu này không hề toàn diện nhưng sau đây là một số mục tiêu:

  • Cô lập từng sidechain để mọi lỗi hoặc sự cố sẽ chỉ ảnh hưởng đến những người sử dụng nó.
  • Cho phép các chuỗi bên được tạo ra mà không cần phân nhánh mới cho mỗi chuỗi.
  • Cho phép chuyển bitcoin vào và ra khỏi sidechain bằng chốt hai chiều.
  • Cho phép thử nghiệm miễn phí trong thiết kế mà ông hy vọng sẽ làm thay đổi nhu cầu về tiền thay thế.

Có hai khía cạnh chính của toàn bộ thiết kế, đó là lý do tại sao có hai BIP riêng biệt. Đầu tiên là cơ chế chốt (BIP300), cơ chế này cho phép chốt hai chiều hoạt động. Sztorc đã thiết kế một thứ gọi là ký quỹ tỷ lệ băm, theo thuật ngữ cơ bản nhất, cho phép các thợ mỏ như một nhóm vô định hình quản lý chung các đồng tiền trong tất cả các chuỗi bên. Thứ hai là một kế hoạch khai thác hợp nhất “mù”, trong đó mục tiêu là cho phép những người khai thác bitcoin trở thành nhà sản xuất khối ở mức độ đồng thuận mà không cần phải xác thực sidechain để làm như vậy. Cả hai phần này cùng nhau trình bày một cơ chế chốt hai chiều và một cách để các công ty khai thác bitcoin tham gia khai thác các chuỗi bên trong khi cố gắng giảm thiểu rủi ro tập trung mà nó gây ra.

BIP300 chỉ định logic cho việc đề xuất một sidechain mới, kích hoạt một sidechain mới, đề xuất một nhóm rút tiền theo nhóm, phê duyệt một nhóm rút tiền như vậy, logic xác thực cho các giao dịch rút tiền thực tế và xác thực cho các giao dịch gửi tiền.

Kích hoạt một sidechain mới theo đề xuất drivechain rất giống với quá trình fork mềm được kích hoạt thông qua tín hiệu của thợ mỏ. Tất nhiên, điểm khác biệt chính là nó không thực sự là một soft fork - một fork duy nhất để kích hoạt các quy tắc đồng thuận của drivechain cho phép các thợ mỏ phát tín hiệu kích hoạt một sidechain mới bất cứ lúc nào. ở trong các quy tắc đồng thuận của drivechain. Để đề xuất kích hoạt một sidechain mới, người khai thác phải đặt dữ liệu OP_RETURN vào đầu ra coinbase của họ bao gồm mã định danh duy nhất cho sidechain đó, khóa chung để sử dụng trong hoạt động gửi tiền, dữ liệu phiên bản, mô tả mà con người có thể đọc được và hàm băm của ứng dụng khách phần mềm và lịch sử GitHub của nó (không có sự thực thi đồng thuận nào ở đây, chỉ có dữ liệu để mọi người tham khảo).

Khi một người khai thác đề xuất kích hoạt một sidechain mới và bao gồm tất cả dữ liệu cần thiết trong coinbase của họ, nó sẽ trở thành một loại giai đoạn “báo hiệu cho người khai thác” về việc có nên tạo sidechain mới này hay không theo quan điểm đồng thuận của chuỗi chính. Người khai thác có thể sử dụng một định dạng đặc biệt để đưa đề xuất vào đầu ra coinbase của họ và những người khai thác khác có thể tạo một đầu ra khác theo định dạng thứ hai để báo hiệu kích hoạt. Một đề xuất sidechain mới yêu cầu 90% các khối trong giai đoạn khó khăn phải báo hiệu kích hoạt để việc tạo sidechain mới được xác nhận. Điều này tạo ra cơ chế chốt để kích hoạt sidechain, nhưng sự tương tác giữa sidechain và mainchain còn nhiều sắc thái hơn thế.

Tại thời điểm này, bất kỳ ai cũng có thể chốt tiền vào sidechain. Để gắn vào sidechain, người dùng chỉ cần tạo một giao dịch hai đầu vào với đầu vào của riêng họ và UTXO tương ứng với số dư của sidechain với một đầu ra duy nhất gán mọi thứ cho sidechain. Điều này đảm bảo sidechain chỉ có một UTXO duy nhất chứa tất cả số tiền bị khóa trong đó. Việc rút tiền được xử lý bằng cách bỏ phiếu của thợ mỏ. Chuỗi chính không biết ai sở hữu những gì trên chuỗi bên và chuỗi chính sẽ coi bất kỳ khoản rút tiền nào được người khai thác phê duyệt trong cơ chế bỏ phiếu là hợp lệ. Vì lý do này, quá trình rút tiền sẽ bị trì hoãn lâu dài. Có hai giai đoạn trong quá trình rút tiền từ sidechain: đề xuất rút tiền (gói) và sau đó là giai đoạn bỏ phiếu rút tiền. Người khai thác phải tạo đầu ra OP_RETURN trong giao dịch coinbase của họ với hàm băm của giao dịch rút tiền được đề xuất để đề xuất rút tiền. Tuy nhiên, hàm băm này tương tự như tiếng thở dài, cờ chỉ cam kết thực hiện một phần của giao dịch thay vì toàn bộ. Nó không cam kết với UTXO đầu vào đại diện cho số tiền bị khóa trong drivechain hoặc đầu ra trả về mọi thứ không được rút về UTXO sidechain đặc biệt. Điều này là do bất kỳ khoản tiền gửi nào vào drivechain sẽ tạo ra một UTXO mới và do đó làm mất hiệu lực cam kết đối với giao dịch rút tiền khi mọi người xác thực nó.

Từ đây, giai đoạn bỏ phiếu của thợ mỏ đối với đề xuất rút tiền bắt đầu. Sau khi một gói được đề xuất, người khai thác có thể bỏ phiếu xem có nên phê duyệt chúng hay không. Mỗi khối được khai thác cho phép người khai thác đó tăng bộ đếm phê duyệt, lên hoặc xuống một hoặc hai để không phải làm bất cứ điều gì. Ngoài ra, còn có một số hạn chế cụ thể, bởi vì có thể có nhiều gói cho một sidechain - nếu người khai thác chọn bỏ phiếu “có” (tăng bộ đếm lên một) cho gói rút tiền cho một sidechain thì họ phải bỏ phiếu “không” (hạ bộ đếm xuống một) cho mọi gói khác được liên kết với sidechain cụ thể đó.

Điều này nhằm đảm bảo rằng không có hiện tượng “rút tiền hai lần”, trong đó ai đó có đầu ra ở nhiều gói sẽ trả cho họ nhiều bitcoin trên chuỗi chính hơn số tiền họ nợ.

Mặt khác, thợ mỏ cũng được phép bỏ phiếu không cho mỗi gói được đề xuất. Điều này được cho là có chức năng như một loại cảnh báo cho mọi người rằng người khai thác xác thực các lần rút tiền này (đảm bảo rằng chúng là những đồng tiền được sở hữu hợp pháp trên chuỗi bên được rút) đã nhận thấy điều gì đó không hợp lệ đang xảy ra. Hãy nhớ rằng, điểm quan trọng của thiết kế này là người khai thác không phải xác thực bất cứ điều gì trên sidechain, vì vậy trừ khi họ chọn cách nào đó, nhiều người khai thác có thể nâng cấp các gói mà họ không xác minh. Chức năng cảnh báo này được thiết kế để họ được cảnh báo rằng họ nên xác minh các gói để đảm bảo việc rút tiền gian lận không xảy ra.

Khi một gói đã đạt đến ngưỡng yêu cầu (13,150 khối hoặc khoảng 90 ngày), giao dịch thực sự xử lý việc rút tiền sẽ trở nên hợp lệ và có thể được xác nhận. Nhưng mọi người sẽ làm gì nếu những người khai thác chấp thuận việc rút tiền gian lận nhằm đánh cắp tiền từ sidechain? Đề xuất của Sztorc là tham gia vào một soft fork do người dùng kích hoạt (UASF) để vô hiệu hóa giao dịch chốt không hợp lệ. Điều này thể hiện một rủi ro rất lớn về mặt đồng thuận đối với chuỗi chính. UASF vào năm 2017 là một động thái có rủi ro cao và hầu như không thành công và Bitcoin có quy mô nhỏ hơn nhiều so với hiện nay. Bitcoin càng phát triển thì những hành động như vậy sẽ càng khó phối hợp.

Nếu bạn nhớ lại từ bài viết về Spacechain, thiết kế đó dựa trên hoạt động khai thác hợp nhất mù (BMM). Thiết kế BMM của Ruben Somsen thực sự là biến thể thứ hai, thiết kế đầu tiên là thiết kế của Sztorc như được trình bày trong BIP301. Thông số BMM trong drivechains bao gồm hai thông báo: thông báo yêu cầu và thông báo chấp nhận. Cả hai đều được phối hợp tương ứng thông qua một loại giao dịch đặc biệt trên chuỗi chính và đầu ra đặc biệt trong giao dịch coinbase của thợ mỏ.

Giao dịch yêu cầu được xây dựng bởi bất kỳ ai đang tạo khối sidechain. Toàn bộ quan điểm của BMM là người này có thể là người không khai thác, vì vậy giao dịch yêu cầu ở đó cho phép họ trả tiền cho những người khai thác để xác nhận khối sidechain được đề xuất của họ. Đề xuất khối sidechain xây dựng một giao dịch bao gồm hàm băm của khối sidechain, ID được gán cho sidechain khi nó được tạo và bốn byte cuối cùng của tiêu đề khối chuỗi chính trước đó. Có ba quy tắc đồng thuận bổ sung được áp dụng cho các loại giao dịch này. Đầu tiên, giao dịch yêu cầu không hợp lệ trừ khi cũng có đầu ra chấp nhận phù hợp trong giao dịch coinbase của khối đó. Điều này nhằm đảm bảo người khai thác không thể thu phí từ yêu cầu mà không chấp nhận và khai thác khối sidechain. Thứ hai, đối với mỗi sidechain, chỉ một giao dịch yêu cầu được phép đưa vào khối mainchain. Điều này nhằm đảm bảo chỉ một khối từ bất kỳ chuỗi bên nào thực sự có thể được khai thác trên mỗi khối chuỗi chính. Cuối cùng, bốn byte cuối cùng của khối chuỗi chính trước đó phải khớp nhau. Điều này đảm bảo rằng yêu cầu chỉ hợp lệ để khai thác trong khối tiếp theo và các giao dịch đó không thể được khai thác sau đó và lấy trộm tiền từ người đề xuất khối sidechain sau khi khối của người khác đã được khai thác.

Đầu ra chấp nhận rất đơn giản: dữ liệu tiêu đề tin nhắn và hàm băm của khối sidechain. Nếu người khai thác đang tự chạy nút drivechain, họ có thể chỉ cần bỏ qua các giao dịch yêu cầu và luôn bao gồm đầu ra chấp nhận của chính họ trong coinbase để khai thác các khối sidechain của riêng họ. Cùng với nhau, hai khía cạnh này cho phép người khai thác tự vận hành nút sidechain hoặc một người không phải người khai thác khác thực hiện việc đó và trả tiền cho người khai thác để khai thác các khối của họ. Ý tưởng là nếu bản thân thợ đào không chạy sidechain và chịu thêm chi phí xác thực thì người khác có thể làm việc đó cho họ. Nếu có sự cạnh tranh giữa những người không khai thác đang cố gắng kiếm phí trên sidechain, họ có thể tiếp tục đặt giá thầu lên mức phí mà họ sẵn sàng trả cho những người khai thác trong giao dịch yêu cầu của họ cho đến khi nó chiếm phần lớn số phí họ kiếm được, với những người không- người khai thác chỉ giữ một tỷ lệ phần trăm nhỏ lợi nhuận và trả phần còn lại cho người khai thác.

Đó là cơ chế đằng sau cách thức hoạt động của drivechains. Tiếp theo, các sidechain được liên kết, và sau đó, phân tích tất cả những tiêu cực và nhược điểm mà mỗi thiết kế có thể có.

Đây là một bài đăng của Shinobi. Các ý kiến ​​được bày tỏ hoàn toàn là của riêng họ và không nhất thiết phải phản ánh ý kiến ​​của BTC Inc hoặc Tạp chí Bitcoin.

Dấu thời gian:

Thêm từ Tạp chí Bitcoin