BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Tìm hiểu về Lightning Network --- Xây dựng Kênh thanh toán hai chiều cho Bitcoin

以太坊爱好者
特邀专栏作者
Bài viết này có khoảng 3896 từ, đọc toàn bộ bài viết mất khoảng 6 phút
Liệt kê các mô-đun cần thiết và chỉ ra cách chúng có thể được kết hợp để tạo ra một "hợp đồng thông minh".
Tóm tắt AI
Liệt kê các mô-đun cần thiết và chỉ ra cách chúng có thể được kết hợp để tạo ra một "hợp đồng thông minh".

Tên gốc: "Khoa học phổ thông | Hiểu về Lightning Network, Phần 1: Xây dựng kênh thanh toán hai chiều cho Bitcoin", tác giả AARON VAN WIRDUM

Mạng Lightning có lẽ là sự đổi mới được mong đợi nhất trên chuỗi khối Bitcoin (Ghi chú của biên tập viên: Được viết lần đầu vào năm 2016). Phương thức thanh toán này lần đầu tiên được đề xuất bởi Joseph Poon và Tadge Dryja hơn một năm trước.

Ít nhất ba công ty - Poon và Dryja's Lightning, Blockstream và Blockchain - đang phát triển triển khai công nghệ này. Nhưng ít người bên ngoài giới hạn hẹp của các nhà công nghệ hiểu làm thế nào "tương lai của các khoản thanh toán vi mô" có thể giải phóng tiềm năng của bitcoin.

Trong loạt bài viết này, Tạp chí Bitcoin cố gắng liệt kê các khối xây dựng cơ bản nhất của Lightning Network và chỉ ra cách những thứ này có thể được kết hợp để tạo thành Lightning Network, một giao thức sắp tới.

Bài viết đầu tiên trong loạt bài này sẽ liệt kê các mô-đun cần thiết và chỉ ra cách chúng có thể được kết hợp để tạo ra "hợp đồng thông minh"; một khái niệm có thể được sử dụng để hiểu tiền đề đầu tiên của Lightning Network: các kênh thanh toán hai chiều.

(Gợi ý: những độc giả đã rất quen thuộc với Bitcoin có thể bỏ qua phần giới thiệu về các mô-đun này.)

Mô-đun #1: Giao dịch chưa được xác nhận

Trọng tâm của giao thức Bitcoin là khái niệm về cái gọi là "giao dịch"; nói chung, một giao dịch luôn được liên kết với một giao dịch khác trước đó và có thể được sử dụng trong các giao dịch trong tương lai. Mỗi giao dịch bao gồm một đầu vào, trỏ đến địa chỉ mà bitcoin được chuyển và đầu ra, trỏ đến địa chỉ mà bitcoin được nhận. Ngoài ra, để gửi bitcoin, đầu vào phải đáp ứng một số điều kiện, chẳng hạn như cung cấp chữ ký điện tử để chứng minh rằng người gửi có "quyền sở hữu" đối với địa chỉ đầu vào. Đồng thời, đầu ra cũng sẽ thiết lập các điều kiện mới để các bitcoin này được sử dụng trong tương lai, điều kiện này phải được đáp ứng khi giao dịch tiếp theo được phát hành.

(Ghi chú của người dịch: Hãy coi Bitcoin như một tấm séc có mệnh giá. Khi được sử dụng, tấm séc tự cung cấp nguồn tiền và một tấm séc mới sẽ được hình thành sau khi sử dụng. Vì vậy, đối với mỗi tấm séc, có những giao dịch hình thành nên tấm séc này, điều đó là, giao dịch trước đó; và khi những tấm séc này được chi tiêu một lần nữa, giao dịch đó có thể được gọi là giao dịch tiếp theo.)

Mô tả hình ảnh

- (Ghi chú của người dịch: Như thể hiện trong hình, Bitcoin có thể được phân chia giống như một tấm séc và việc lưu thông của nó sẽ tạo thành một chuỗi rõ ràng.) -

Mô-đun #2: Bảo vệ chi tiêu gấp đôi

Mô-đun thứ hai mà Lightning Network yêu cầu có lẽ không cần giải thích nhiều, vì nó được cho là lý do tồn tại của chính giao thức Bitcoin: một biện pháp bảo vệ chống lại nhiều khoản thanh toán. Nếu hai giao dịch (hoặc đầu vào) phụ thuộc vào cùng một đầu ra, thì chỉ một trong số chúng sẽ được xác nhận bởi toàn bộ mạng.

Hãy nhớ rằng: Ngay cả khi có xung đột giữa các giao dịch chưa được xác nhận, thì cuối cùng sẽ chỉ có một giao dịch được xác nhận.

Mô-đun #3: Đa chữ ký

Mô-đun thứ ba của Lightning Network cũng được hiểu rõ: địa chỉ đa chữ ký. (Hoặc rộng hơn: địa chỉ P2SH (địa chỉ băm tập lệnh).)

Như tên gợi ý, địa chỉ đa chữ ký là địa chỉ yêu cầu nhiều khóa riêng tư để "mở khóa" và chi tiêu bitcoin. Các điều kiện cho địa chỉ đa chữ ký có thể được đặt theo nhiều cách khác nhau. Ví dụ: có thể yêu cầu 2 trong số 3 khóa riêng tham gia vào việc chuyển bitcoin; hoặc các yêu cầu về số lượng khác (chẳng hạn như 2/5, 3/4, v.v.).

Lightning Network thường sử dụng yêu cầu đa chữ ký 2-2. Để chuyển bitcoin từ một địa chỉ như vậy, bạn cần cung cấp hai chữ ký liên quan đến hai khóa riêng tư này và một chữ ký ít hơn sẽ không hoạt động.

Mô-đun #4: Khóa thời gian

Mô-đun thứ tư là khóa thời gian. Tính năng khóa thời gian đặt một điều kiện khóa trên một đầu ra để những bitcoin này chỉ có thể được sử dụng (tức là được sử dụng làm đầu vào cho một giao dịch) sau một thời gian nhất định trong tương lai.

Có hai loại khóa thời gian: 1) khóa thời gian tuyệt đối, được gọi là CheckLockTimeVerify (CLTV); 2) khóa thời gian tương đối, CheckSequenceVerify (CSV). CLTV khóa bitcoin cho đến một ngày cụ thể (được cho là) ​​trong tương lai: ngày giờ cụ thể hoặc chiều cao khối cụ thể; trong khi CSV chỉ sử dụng thời gian tương đối. Khi đầu ra CVS được tải lên chuỗi, nó phải đợi một số khối nhất định trước khi đầu ra có thể được sử dụng.


Mô-đun #5: Băm và bí mật

Mô-đun thứ năm và cũng là mô-đun cuối cùng - mật mã - cũng là mô-đun cơ bản nhất của chính Bitcoin. Nhưng trong Lightning Network, cách sử dụng lại khác.

Nói tóm lại, "giá trị bí mật" là một chuỗi số rất dài và duy nhất hầu như không thể đoán được, ngay cả khi máy tính thực hiện vô số phép tính bạo lực. Và thông qua các phép tính đặc biệt, giá trị bí mật này có thể được "chia nhỏ" thành một số khác, được gọi là "giá trị băm". Đây là nơi điều thú vị là: ai đó biết giá trị bí mật có thể dễ dàng tính toán giá trị băm của nó, nhưng điều ngược lại là không đúng, bạn không thể đảo ngược giá trị bí mật với giá trị băm.

Trên chuỗi khối Bitcoin, cơ chế này một lần nữa có thể được sử dụng để "khóa bitcoin" (trên thực tế, khóa bitcoin là cách thức hoạt động của giao thức bitcoin). Ví dụ: bạn có thể bao gồm một giá trị băm trong một đầu ra và yêu cầu các giao dịch tiếp theo chỉ sử dụng đầu ra nếu chúng bao gồm giá trị bí mật tương ứng với giá trị băm.

Thách thức đầu tiên: kênh thanh toán hai chiều

Trước Lightning Network, đã có khái niệm về "kênh thanh toán". Các kênh thanh toán tiêu chuẩn được xây dựng có mục đích và do đó bị hạn chế: chúng là các kênh một chiều. Alice có thể bắt đầu thanh toán Dobby cho Bob ngoài chuỗi, nhưng Bob không thể sử dụng cùng một kênh để thanh toán cho Alice.

Một tính năng chính của Lightning Network là kênh thanh toán hai chiều đáng tin cậy do Poon và Dryja đề xuất.

mở kênh

Để thiết lập kênh thanh toán hai chiều, trước tiên cả hai bên tham gia phải đạt được sự đồng thuận về giao dịch để mở kênh. Giao dịch mở đầu này xác định số lượng bitcoin mà mỗi người trong số họ sẽ gửi vào kênh này.

Giả sử Alice muốn gửi 1 btc cho Bob. Vì cả hai đều mong muốn sẽ thường xuyên trao đổi trong tương lai nên quyết định mở kênh thanh toán hai chiều. (Gửi 1 btc trong một kênh có lẽ là hơi nhiều, sau tất cả các kênh có thể hữu ích hơn cho các khoản thanh toán vi mô - nhưng điều đó hoàn toàn có thể thực hiện được.)

Để mở kênh, Alice và Bob mỗi người gửi 5 btc đến địa chỉ có 2-2 chữ ký. Đây là "giao dịch mở kênh". Tiền trong địa chỉ này chỉ có thể được chi tiêu nếu Alice và Bob ký cùng một giao dịch.

Ngoài ra, cả Alice và Bot đều tạo ra một giá trị bí mật (nghĩa là một chuỗi số) và sau đó trao đổi giá trị băm.

Bây giờ, Alice tạo một giao dịch tiếp theo của giao dịch mở kênh và đây là "giao dịch cam kết". Trong giao dịch cam kết này, Alice gửi 4 btc cho chính mình và 6 btc đến địa chỉ đa chữ ký thứ hai; địa chỉ đa chữ ký này thú vị hơn: Bob có thể mở khóa địa chỉ này một mình, nhưng, hãy đợi (Giao dịch của Alice sau 1-00 khối trên chuỗi, Bob có thể tiêu tiền trong đó (đây là khóa thời gian tương đối), Alice cũng có thể mở địa chỉ này một mình, miễn là cô ấy cũng có giá trị băm tương ứng với món quà Bob tặng cho cô ấy. (Tất nhiên, Alice hoàn toàn không biết gì về giá trị bí mật này—tất cả những gì cô ấy có là giá trị băm mà Bob đưa cho cô ấy—vì vậy nó chỉ có vẻ bề ngoài mà thôi.) (Ghi chú của Người dịch: Tức là, địa chỉ đa chữ ký thứ hai này đều có khóa thời gian và khóa băm .)

Alice ký giao dịch cam kết của mình. Nhưng cô ấy sẽ không phát sóng giao dịch! Thay vào đó, cô ấy sẽ chỉ gửi giao dịch cho Bob.

Đồng thời, Bob cũng thực hiện các phép toán đối xứng chính xác. Anh ấy cũng đã tạo một giao dịch cam kết, gửi 6 btc cho chính mình và 4 btc đến một địa chỉ đa chữ ký mới. Alice có thể mở khóa địa chỉ một mình sau khi đợi 1000 khối hoặc Bob có thể mở khóa địa chỉ bằng giá trị bí mật của Alice.

Bob ký giao dịch và gửi cho Alice.

Sau khi trao đổi các giao dịch cam kết và giá trị băm này, chúng ký kết với nhau và phát giao dịch mở kênh để giao dịch đó có thể được tải lên chuỗi. Bây giờ, một kênh thanh toán hai chiều được mở.

Sau khi mở kênh, cả Alice và Bob đều có thể ký và phát các giao dịch cam kết hợp lệ một phần mà họ nhận được từ địa phương. Nếu Alice phát sóng (Bob đã gửi cho cô ấy một giao dịch cam kết), Bob sẽ ngay lập tức nhận được 6 btc. Nếu Bod phát sóng, Alice sẽ ngay lập tức nhận được 4 btc. Nhưng người ký và phát giao dịch phải đợi 1000 khối để mở khóa địa chỉ đa chữ ký tiếp theo và lấy đi số bitcoin còn lại.


Tuy nhiên, đây chính là mánh khóe chủ yếu của các kênh thanh toán: không ký và phát các giao dịch cam kết mà họ có được.

(Ghi chú của người dịch: Mục đích của việc đầu tiên tương tác với giao dịch cam kết, sau đó phát giao dịch mở kênh là để tránh bị đối thủ lừa đảo, sau khi có được giao dịch cam kết, không cần phát, và cũng có thể đạt được bảo đảm an toàn. )

cập nhật kênh

Sau đó, Bob muốn gửi lại 1 btc cho Alice và họ muốn cập nhật trạng thái của kênh này để kênh trở về trạng thái 5:5. Để đạt được điều này, Alice và Bob cần làm hai việc.

Đầu tiên, cả hai bên phải thực hiện lại quy trình như đã mô tả ở trên (trừ phần mở giao dịch, vì nó đã được ghi lại trên chuỗi). Lần này, cả Alice và Bob đều chỉ định 5 btc cho nhau và cả hai đều chỉ định 5 btc cho địa chỉ đa chữ ký đó. Các điều kiện cho các địa chỉ đa chữ ký tiếp theo này là tương tự nhau, ngoại trừ việc tất cả chúng đều cần tạo các giá trị bí mật mới: cả Alice và Bob đều cung cấp các giá trị băm mới. Cả hai đều ký các giao dịch cam kết mới của riêng mình và gửi chúng cho nhau.

Thứ hai, cả Alice và Bob trao cho nhau giá trị bí mật đầu tiên của họ (giá trị được sử dụng trong giao dịch cam kết đầu tiên).

Tại thời điểm này, cả Alice và Bob đều có thể ký và phát giao dịch cam kết mới nhất của họ. Đối thủ của họ sẽ ngay lập tức nhận được 5 btc, trong khi bản thân họ phát sóng sẽ phải đợi 1000 khối. Cứ như vậy, trạng thái của kênh được cập nhật.

Nhưng điều gì ngăn Bob phát sóng giao dịch đã cam kết cũ? Giao dịch cam kết đó sẽ phân bổ cho anh ta 6 btc, tức là nhiều hơn 5 btc...

Tất nhiên, điều khiến Bob dừng lại là giá trị bí mật đầu tiên của anh ấy, giá trị mà anh ấy đã trao cho Alice.

Bởi vì, tại thời điểm này, Bob không còn có thể ký và phát giao dịch cam kết cũ hơn như anh ấy muốn, bởi vì Alice đã biết giá trị bí mật đầu tiên của Bob. Nếu Bob ký và phát (giao dịch mà Alice đã đưa cho anh ấy) một giao dịch cam kết cũ hơn, anh ấy sẽ ngay lập tức gửi 4 btc cho Alice... và anh ấy sẽ phải đợi 1000 khối để tự nhận, nhưng Alice đã biết bí mật của anh ấy. là xứng đáng, vì vậy cô ấy có thể sử dụng thời gian này để rút trước 6 btc còn lại!

Và, vì Bob cũng có giá trị bí mật của Alice, nên điều này cũng đúng với Bob! Nếu Alice muốn ký và phát giao dịch cam kết cũ, Bob có thể đánh cắp tất cả số btc mà cô ấy đặt trong kênh!

Điều này có nghĩa là cả Alice và Bob đều sắp xếp lại các động cơ khuyến khích của họ để không chơi trò bịp bợm mà chỉ phát đi trạng thái gần đây nhất.

À, sau khi có kênh thanh toán hai chiều, chúng ta cần mở rộng nó thành mạng lưới thanh toán. Đây là chủ đề của bài viết thứ hai của chúng tôi.

Cảm ơn Rusty Russell và Joseph Poon vì những phản hồi tận tình của họ.


BTC
ETH
mạng sét
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký:
https://t.me/Odaily_News
Nhóm trò chuyện:
https://t.me/Odaily_GoldenApe
Tài khoản chính thức:
https://twitter.com/OdailyChina