Corda - blockchain mã nguồn mở cho doanh nghiệp

Corda là Sổ cái phân tán dùng để lưu trữ, quản lý và đồng bộ các nghĩa vụ tài chính giữa các tổ chức tài chính khác nhau.
Corda - blockchain mã nguồn mở cho doanh nghiệp
Corda có tài liệu khá hay với các bài giảng video có thể tìm thấy đây. Tôi sẽ cố gắng mô tả ngắn gọn cách Corda hoạt động bên trong.

Hãy xem xét các tính năng chính của Corda và tính độc đáo của nó so với các blockchain khác:

  • Corda không có tiền điện tử riêng.
  • Corda không sử dụng khái niệm khai thác và hệ thống Proof-of-Work.
  • Việc truyền dữ liệu chỉ diễn ra giữa các bên tham gia giao dịch/hợp đồng. Không có phát sóng toàn cầu tới tất cả các nút mạng.
  • Không có bộ điều khiển trung tâm quản lý tất cả các giao dịch.
  • Corda hỗ trợ các cơ chế đồng thuận khác nhau.
  • Sự đồng thuận đạt được giữa những người tham gia ở cấp độ thỏa thuận/hợp đồng riêng lẻ chứ không phải ở cấp độ toàn bộ hệ thống.
  • Một giao dịch chỉ được xác nhận bởi những người tham gia liên quan đến nó.
  • Corda cung cấp kết nối trực tiếp giữa ngôn ngữ pháp lý chính thức của con người và mã hợp đồng thông minh.

Sổ cái

Khái niệm sổ cái ở Corda mang tính chủ quan. Không có kho lưu trữ dữ liệu trung tâm duy nhất. Thay vào đó, mỗi nút duy trì một cơ sở dữ liệu riêng biệt về các dữ kiện mà nó biết.

Ví dụ: hãy tưởng tượng một mạng gồm 5 nút, trong đó một vòng tròn là một thực tế mà nút đó đã biết.

Corda - blockchain mã nguồn mở cho doanh nghiệp

Như chúng ta có thể thấy, Ed, Carl và Demi biết về sự thật thứ 3, nhưng Alice và Bob thậm chí còn không biết về điều đó. Corda đảm bảo rằng các thông tin chung được lưu trữ trong cơ sở dữ liệu của mỗi nút và dữ liệu sẽ giống hệt nhau.

Những trạng thái

Nhà nước là bất biến một đối tượng đại diện cho một thực tế được một hoặc nhiều nút mạng biết đến tại một thời điểm nhất định.

Các quốc gia có thể lưu trữ dữ liệu tùy ý, ví dụ như cổ phiếu, trái phiếu, khoản vay, thông tin nhận dạng.

Ví dụ: trạng thái sau biểu thị IOU—một thỏa thuận mà Alice nợ Bob số tiền X:

Corda - blockchain mã nguồn mở cho doanh nghiệp
Vòng đời của một sự kiện theo thời gian được thể hiện bằng một chuỗi các trạng thái. Khi cần cập nhật trạng thái hiện tại, chúng tôi tạo một trạng thái mới và đánh dấu trạng thái hiện tại là lịch sử.

Corda - blockchain mã nguồn mở cho doanh nghiệp

Giao dịch

Giao dịch là đề xuất cập nhật sổ cái. Chúng không được phổ biến tới tất cả những người tham gia sổ cái và chỉ có sẵn cho những người tham gia mạng có quyền hợp pháp để xem và quản lý chúng.

Một giao dịch sẽ được thêm vào sổ cái nếu nó:

  • hợp đồng có hiệu lực
  • có chữ ký của tất cả những người tham gia được yêu cầu
  • không chứa chi tiêu gấp đôi

Corda sử dụng mô hình UTXO (đầu ra giao dịch chưa được chi tiêu), trong đó mỗi trạng thái sổ cái là bất biến.

Khi một giao dịch được tạo, trạng thái đầu ra của giao dịch trước đó (theo hàm băm và chỉ mục) sẽ được chuyển sang đầu vào.

Corda - blockchain mã nguồn mở cho doanh nghiệp
Vòng đời giao dịch:

  • Sáng tạo (Hiện tại, giao dịch chỉ là đề xuất cập nhật sổ cái)
  • Thu thập chữ ký (Các bên bắt buộc tham gia giao dịch phê duyệt đề xuất cập nhật bằng cách thêm chữ ký vào giao dịch)
  • Cam kết giao dịch vào sổ cái

Sau khi giao dịch được thêm vào sổ cái, trạng thái đầu vào sẽ được đánh dấu là lịch sử và không thể sử dụng trong các giao dịch trong tương lai.

Corda - blockchain mã nguồn mở cho doanh nghiệp
Ngoài trạng thái đầu vào và đầu ra, một giao dịch có thể chứa:

  • Lệnh (tham số giao dịch cho biết mục đích của giao dịch)
  • Tệp đính kèm (lịch nghỉ lễ, công cụ chuyển đổi tiền tệ)
  • Cửa sổ thời gian (thời hạn hiệu lực)
  • Công chứng viên (Công chứng viên, người tham gia mạng lưới đặc biệt xác thực giao dịch)

Corda - blockchain mã nguồn mở cho doanh nghiệp

Hợp đồng

Khi nói về hiệu lực của giao dịch, chúng tôi không chỉ muốn nói đến sự hiện diện của các chữ ký cần thiết mà còn cả hiệu lực của hợp đồng. Mỗi giao dịch được liên kết với một hợp đồng chấp nhận nó và xác nhận trạng thái đầu vào và đầu ra. Một giao dịch chỉ được coi là hợp lệ nếu tất cả các trạng thái của nó hợp lệ.

Hợp đồng trong Corda được viết bằng bất kỳ ngôn ngữ JVM nào (ví dụ: Java, Kotlin).

class CommercialPaper : Contract {
    override fun verify(tx: LedgerTransaction) {
        TODO()
    }
}

Cần kế thừa từ một lớp Hợp đồng và ghi đè phương thức xác minh. Nếu giao dịch không hợp lệ, một ngoại lệ sẽ được đưa ra.

Xác thực giao dịch phải mang tính quyết định, tức là hợp đồng phải luôn chấp nhận hoặc từ chối giao dịch. Liên quan đến điều này, tính hợp lệ của giao dịch không thể phụ thuộc vào thời gian, số ngẫu nhiên, tệp máy chủ, v.v.

Trong Corda, các hợp đồng được thực thi trong cái gọi là hộp cát - một JVM được sửa đổi một chút để đảm bảo việc thực thi các hợp đồng một cách xác định.

Dòng suối

Để tự động hóa giao tiếp giữa các nút mạng, các luồng đã được thêm vào.

Luồng là một chuỗi các bước cho nút biết cách thực hiện cập nhật sổ cái cụ thể và tại thời điểm nào giao dịch cần được ký và xác thực.

Corda - blockchain mã nguồn mở cho doanh nghiệp

Đôi khi phải mất hàng giờ, hàng ngày cho đến khi giao dịch được tất cả các bên ký kết và được ghi vào sổ cái. Điều gì xảy ra nếu bạn ngắt kết nối một nút tham gia giao dịch? Các luồng có các điểm kiểm tra, tại đó trạng thái của luồng được ghi vào cơ sở dữ liệu của nút. Khi một nút được khôi phục vào mạng, nó sẽ tiếp tục ở nơi nó đã dừng lại.

Đoàn kết

Để vào sổ cái, một giao dịch phải đạt được 2 sự đồng thuận: tính hợp lệ và tính duy nhất.

Quyết định về tính hợp lệ của giao dịch chỉ được đưa ra bởi các bên liên quan trực tiếp đến nó.

Các nút công chứng kiểm tra tính duy nhất của giao dịch và ngăn chặn chi tiêu gấp đôi.

Hãy tưởng tượng rằng Bob có 100 đô la và muốn chuyển 80 đô la cho Charlie và 70 đô la cho Dan bằng cách sử dụng cùng một trạng thái đầu vào.

Corda - blockchain mã nguồn mở cho doanh nghiệp

Corda sẽ không cho phép bạn thực hiện một thủ thuật như vậy. Mặc dù giao dịch sẽ vượt qua quá trình kiểm tra tính hợp lệ nhưng việc kiểm tra tính duy nhất sẽ không thành công.

Kết luận

Nền tảng Corda, được phát triển bởi tập đoàn blockchain R3, không phải là trường hợp sử dụng thuần túy cho công nghệ blockchain. Corda là một công cụ chuyên môn cao dành cho các tổ chức tài chính.

Nguồn: www.habr.com

Thêm một lời nhận xét