Đồ thị có định hướng không tuần hoàn (DAG) trong tiền mã hóa là gì?
Trang chủ
Bài viết
Đồ thị có định hướng không tuần hoàn (DAG) trong tiền mã hóa là gì?

Đồ thị có định hướng không tuần hoàn (DAG) trong tiền mã hóa là gì?

Trung cấp
Đã đăng Jul 19, 2020Đã cập nhật Dec 27, 2022
8m

Nội dung


Giới thiệu

Khi nghĩ đến  tiền mã hóa, bạn thường nghĩ ngay đến các thuật ngữ "blockchain" hoặc "công nghệ sổ cái phân tán". Kể từ khi Bitcoin ra mắt, hàng trăm loại tiền mã hóa khác đã được tạo ra. Hầu hết trong số đó đều dựa trên kiến trúc mạng lưới tương tự. Cấu trúc dữ liệu của chúng cho phép người dùng chuyển giao giá trị hoặc tương tác với các ứng dụng phi tập trung.
Trong blockchain, theo định kỳ sẽ có một block mới được thêm vào một chuỗi block đang phát triển. Mỗi block được kết nối với block trước đó bằng một loại liên kết mật mã (cụ thể là một hàm băm). Mỗi block này có chưa các giao dịch gần đây mà người dùng phát đi.
Tuy nhiên, thông thường sẽ có khoảng thời gian chờ giữa thời điểm một giao dịch được phát và thời điểm giao dịch đó được đẩy lên block. Bạn hãy hình dung giống như chờ đợi một chuyến tàu ở nhà ga. Tùy thuộc vào kích thước của toa tàu (kích thước block) và số lượng người đợi (giao dịch đang chờ xử lý), thậm chí bạn có thể không lên được chuyến tàu tiếp theo. Hoặc thậm chí là cả chuyến tàu sau đó nữa. Bạn có thể đợi ở bất cứ đâu, từ vài giây đến hàng giờ để giao dịch được xác nhận.
Đối với nhiều người, đây là một sự đánh đổi có lợi. Nói cho cùng, nó cung cấp mức độ bảo mật rất cao mà không cần dựa vào điều phối viên tập trung. Đối với những người khác, công nghệ blockchain có thời điểm hết hạn. Những người phản đổi cho rằng về lâu dài, các vấn đề với khả năng mở rộng mà công nghệ blockchain phải đối mặt sẽ cản trở việc áp dụng hàng loạt công nghệ này.

Một số người tin rằng tương lai của mạng lưới thanh toán tiền mã hoá nằm ở một kiến trúc hoàn toàn khác – đồ thị có định hướng không tuần hoàn (hoặc DAG).


DAG là gì?

DAG là một loại cấu trúc dữ liệu khác – bạn hãy nghĩ về nó như một cơ sở dữ liệu kết nối các phần thông tin lại với nhau. "Đồ thị có định hướng không tuần hoàn" là một thuật ngữ khá phức tạp, vì vậy chúng ta hãy bắt đầu bằng cách chia nhỏ nó ra.


Đồ thị có định hướng không tuần hoàn.


Về mặt khái niệm, các DAG có dạng giống như trên. Chúng được tạo thành từ các đỉnh  (khối cầu) và các cạnh (đường kết nối các điểm). Chúng có định hướng vì đều đi theo một hướng (bạn có thể thấy hình minh họa bằng các mũi tên). Chúng không tuần hoàn (tức là không theo chu kỳ) vì các đỉnh không tự lặp lại – nếu bắt đầu tại một điểm và đi theo đồ thị, bạn sẽ không thể quay lại đúng điểm đó. Chúng tôi sẽ giải thích rõ ràng hơn trong phần sau.

Cấu trúc dữ liệu này thường được sử dụng để mô hình hóa dữ liệu. Bạn có thể dựa vào DAG trong lĩnh vực khoa học hoặc y tế để theo dõi mối quan hệ giữa các biến và xác định cách chúng tác động lẫn nhau. Ví dụ: Bạn có thể xem xét những vấn đề như dinh dưỡng, chu kỳ giấc ngủ và triệu chứng thể chất để rút ra mối liên hệ giữa chúng, qua đó xác định ảnh hưởng đến bệnh nhân như thế nào.

Với mục đích của mình, chúng ta quan tâm nhiều hơn đến việc DAG giúp đạt được sự đồng thuận trong mạng lưới tiền mã hoá phân tán như thế nào.


DAG hoạt động như thế nào?

Với một loại tiền mã hoá dựa trên DAG, mỗi đỉnh trong cấu trúc đại diện cho một giao dịch. Ở đây không cần khái niệm về block, cũng không cần phải đào để mở rộng cơ sở dữ liệu. Thay vì tập hợp các giao dịch thành block, mỗi giao dịch sẽ được xây dựng trên đỉnh của giao dịch khác. Du vậy, vẫn có một hoạt động Proof-of-Work nhỏ được thực hiện khi node gửi đi một giao dịch. Điều này giúp đảm bảo rằng mạng lưới không bị spam và cũng xác thực các giao dịch trước đó.

Nếu một giao dịch mới thêm vào, nó phải được xây dựng dựa trên những giao dịch cũ hơn. Giả sử Alice tạo ra một giao dịch mới. Để được thừa nhận, giao dịch này phải tham chiếu đến những giao dịch trước đó. Cũng tương tự như cách một block trong Bitcoin tham chiếu đến block xuất hiện trước nó, nhưng có nhiều giao dịch được tham chiếu. 

Trong một số hệ thống, một thuật toán sẽ lựa chọn giao dịch (hoặc "tip") làm cơ sở để xây dựng giao dịch mới. Tip được chọn thường là những giao dịch có tỷ trọng tích lũy nhiều hơn – một thước đo về số lượng xác nhận mà đường dẫn đến tip đó có được.

Alice sẽ xây dựng trên đỉnh các giao dịch chưa xác nhận. Nhưng một khi Alice tham chiếu, chúng sẽ được xác nhận. Giao dịch của Alice hiện chưa xác nhận, vì vậy phải có ai đó xây dựng trên đỉnh của giao dịch này để nó được chấp nhận.

Người dùng thường xác nhận các giao dịch “nặng ký” để hệ thống không ngừng phát triển. Nếu không, sẽ không có điều gì ngăn cản người dùng liên tục xây dựng trên các giao dịch cũ hơn.

Đối với blockchain, ngăn chặn chi tiêu kép là một điều dễ dàng. Không thể chi các khoản tiền giống nhau hai lần trong một block – các node sẽ dễ dàng phát hiện việc làm đó và từ chối bất kỳ block nào có chứa các giao dịch xung đột. Việc sản xuất block ngay từ ban đầu là rất đắt đỏ đối với các thợ đào, nên họ được khuyến khích chơi công bằng.

Các DAG cũng có cơ chế để ngăn chặn chi tiêu kép. Nó tương tự như vậy, nhưng không có thợ đào. Khi một node xác nhận các giao dịch cũ hơn, chúng sẽ đánh giá toàn bộ đường dẫn quay về giao dịch đầu tiên của DAG để đảm bảo rằng người gửi có đủ số dư. Có thể có nhiều đường dẫn nhưng chỉ cần xác minh một đường.



Nếu người dùng xây dựng trên một đường dẫn không hợp lệ, giao dịch của chính họ sẽ có nguy cơ bị bỏ qua. Có thể giao dịch của họ hợp lệ nhưng giao dịch trước đó thì không, vì thế sẽ không ai muốn mở rộng đường dẫn đó.

Thoạt đầu điều này có vẻ không hợp lý – liệu bạn có thể rơi vào tình huống có nhiều nhánh và các nhánh không biết đến sự tồn tại của nhau? Khi đó mọi người không thể chi cùng một khoản tiền cho các nhánh này?



Quả thực là có khả năng đó, tuy nhiên có thể giải quyết bằng một thuật toán lựa chọn ưu tiên các tip có tỷ trọng tích lũy lớn hơn. Điều đó có nghĩa là dần dần, bạn sẽ kết thúc với một nhánh mạnh hơn các nhánh còn lại. Các nhánh yếu hơn bị loại bỏ và mạng lưới sẽ tiếp tục xây dựng trên nhánh lớn nhất. 

Đối với các blockchain, không có tính chính xác tuyệt đối – bạn không bao giờ có thể chắc chắn 100% rằng một giao dịch sẽ không bị đảo ngược. Điều này cực kỳ khó xảy ra, nhưng về mặt lý thuyết bạn có thể "hoàn tác" một block Bitcoin hoặc Ethereum, qua đó đảo ngược tất cả các giao dịch bên trong nó. Càng nhiều block được thêm vào sau block có chứa giao dịch của bạn, độ tin cậy của nó càng cao. Đây chính là lí do bạn nên đợi sáu lần xác nhận trước khi chi tiêu.
Trong một DAG như Tangle của IOTA, có khái niệm về độ tin cậy xác nhận . Thuật toán lựa chọn sẽ chạy 100 lần, bạn đếm số lần mà giao dịch của mình được chấp thuận trực tiếp hoặc gián tiếp trong các tip đã chọn. Tỷ lệ phần trăm càng cao, bạn càng có thể tin tưởng rằng giao dịch của mình sẽ được "thanh toán".

Thoạt đầu, điều này có vẻ sẽ dẫn đến trải nghiệm người dùng không tốt. Nhưng không phải như vậy. Nếu Alice gửi cho Bob 10 MagicDAGToken, cô không cần phải lo lắng về việc chọn tip đúng của đồ thị. Xem xét kỹ hơn sẽ thấy ví của Alice có thể thực hiện những thao tác sau:

  • Chọn các tip lớn (bạn hãy nhớ đây là những tip có nhiều xác nhận tích lũy nhất).
  • Quay lại theo đường dẫn qua các giao dịch từ trước để đảm bảo tip có đủ số dư phục vụ chi tiêu.
  • Khi được thỏa mãn, các mẹo đó sẽ thêm giao dịch của mình vào DAG và xác nhận giao dịch là cơ sở để xây dựng.
Đối với Alice, điều đó cũng giống như quy trình làm việc thông thường của tiền mã hoá. Cô ấy nhập vào địa chỉ của Bob và số tiền muốn chi tiêu, sau đó nhấn gửi. Danh sách trên là Proof of Work mà mỗi người tham gia đều sẽ chạy khi tạo giao dịch.



Ưu và nhược điểm của đồ thị có định hướng không tuần hoàn

Ưu điểm của DAG

Speed

Không bị giới hạn bởi thời gian block, bất kỳ ai cũng có thể phát và để giao dịch được xử lý bất kỳ lúc nào. Không giới hạn số lượng giao dịch mà người dùng gửi, miễn là họ xác nhận những giao dịch cũ hơn khi tiến hành.


Không cần đào tiền

Các DAG không sử dụng những thuật toán đồng thuận PoW theo cách mà chúng ta quen thuộc. Dấu chân carbon của chúng là một phần trong dấu chân cacbon của các loại tiền mã hóa dựa vào đào tiền để bảo mật mạng blockchain của mình.


Không có phí giao dịch

Vì không còn thợ đào nên người dùng không cần phải trả phí để phát giao dịch của mình nữa. Tuy vậy, một số vẫn yêu cầu trả một khoản phí nhỏ cho các loại node đặc biệt. Phí thấp (hoặc tốt hơn là miễn phí) thu hút các khoản thanh toán vi mô vì mục đích sẽ thất bại nếu phí mạng cao.


Không có vấn đề về khả năng mở rộng

Không bị giới hạn bởi thời gian block, các DAG có thể xử lý nhiều giao dịch mỗi giây hơn so với các mạng blockchain truyền thống. Nhiều người ủng hộ tin rằng điều này sẽ làm cho DAG có giá trị trong các trường hợp sử dụng Internet vạn vật (IoT), khi tất cả các loại máy móc tương tác với nhau.


Nhược điểm của DAG

Không hoàn toàn phi tập trung

Các giao thức dựa trên DAG có nhiều yếu tố tập trung khác nhau. Đối với một số người, đây được cho là một giải pháp ngắn hạn để khởi động mạng lưới, tuy nhiên vẫn phải xem liệu DAG có thể phát triển mạnh mẽ mà không có sự can thiệp của bên thứ ba hay không. Nếu không, chúng sẽ tự mở thành các vectơ tấn công, các vectơ này cuối cùng có thể làm tê liệt mạng lưới.


Không được thử nghiệm theo quy mô 

Mặc dù đã xuất hiện được vài năm, tiền mã hóa dựa trên DAG còn cả một chặng đường dài để được sử dụng rộng rãi. Do đó, khó mà dự đoán sẽ có khuyến khích gì cho người dùng để khai thác hệ thống trong tương lai.


Tổng kết

Đồ thị có định hướng không tuần hoàn chắc hẳn sẽ là một công nghệ tốt để xây dựng mạng lưới tiền mã hoá. Cho đến nay, chỉ có khá ít dự án sử dụng cấu trúc dữ liệu và chúng cũng chưa phát triển đầy đủ. 
Điều đó cho thấy, nếu phát huy được hết tiềm năng thì các dự án này có thể hỗ trợ những hệ sinh thái có khả năng mở rộng rất lớn. Công nghệ DAG có vô số trường hợp sử dụng trong các lĩnh vực yêu cầu thông lượng cao và không tính phí, chẳng hạn như Internet vạn vật (IoT) và thanh toán vi mô.