Công nghệ của tiền mật mã và Bitcoin
I. Giới thiệu Cryptocurrency và bitcoin
1 Cryptocurrencey
Trong những năm gần đây, tiền mật mã phát triển rất mạnh ở thế giới cũng như ở Việt Nam. Nó hình một xu hướng thanh toán giao dịch được nhiều tổ chức cá nhân sử dụng.
Tiền mật mã còn được gọi là Cryptcurrency, Cryptocurrentcy được xây dựng trên cơ sở lý thuyết mật mã
2 Bitcoin là gì
Tính đến hiện tại đã có hơn 700 loại tiền mật mã, trong số rất nhiều loại tiền mật mã thì Bitcoin là loại tiền ra đời sớm nhất và được sử dụng rộng rãi nhất cho đến ngày nay. Bitcoin (ký hiệu: BTC) là một loại tiền tệ kỹ thuật số phân cấp, được phát hành bởi Satoshi Nakamoto dưới dạng phần mềm mã nguồn mở[9] từ năm 2009
Bitcoin hoạt động dựa trên cơ sở lý thuyết mật mã và giao thức mạng ngang hàng (Peer-to-Peer); tất cả các node mạng đều có thể tạo ra được đồng tiền mới chứ không có bất kỳ tổ chức, chính phủ hay nhà nước nào phát hành và quản lý; các giao dịch sử dụng Bitcoin cũng không cần đến bên thứ ba tin cậy làm trung tâm xác thực. Mặc dù vậy, Bitcoin vẫn mang đầy đủ tính chất quan trọng của tiền tệ: có thể sử dụng để mua bán hàng hóa dịch vụ và thực hiện giao dịch thanh toán, không lưu vết thông tin định danh của sự sở hữu trên đồng tiền, có thể chuyển đổi giá trị dễ dàng trong cộng đồng chấp nhận Bitcoin.
II Các nền tảng công nghệ hình thành nên tiền mã hóa và bitcoin
2.1. Hash function
2.1.1 Hash function
Hash function (Hàm băm) là thuật toán dùng để tóm tắt tài liệu, bản in hoặc một thông điệp cho ra một giá trị hash(băm) có kích thước cố định. Giá trị băm này là đại diện thông điệp
Giả sử có hàm băm h, thì đầu vào là bất kì đoạn mã string nào, đầu ra là cố định dung lương(256bit)
2.1.2 Các tính chất của hàm băm
Tính chất 1: Hàm băm h là không va chạm yếu.
Hàm băm h được gọi là không va chạm yếu, nếu cho trước thông điệp x, “khó” thể tính toán để tìm ra x’ x mà h(x’) = h(x)
Tính chất 2: Hàm băm h là không va chạm mạnh.
Hàm băm h được gọi là không va chạm mạnh nếu “khó” thể tính toán để tìm ra hai thông điệp khác nhau x’ và x (x’ x) mà có h(x’) = h(x)
Tính chất 3: Hàm băm h là hàm một chiều.
Hàm băm h được gọi là hàm một chiều, nếu khi cho trước một bản tóm lược thông báo z thì “khó thể” tính toán để tìm ra thông điệp ban đầu x sao cho h(x) = z. Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x).
Nội dung của bản tin gốc “rất khó” suy ra từ giá trị hàm băm của nó. Nghĩa là: với thông điệp x thì “dễ” tính được z = h(x) nhưng lại gần như không thể tính ngược lại được x nếu chỉ biết giá trị băm h(x) (Kể cả khi biết hàm băm h).
1.3 Hàm băm SHA-256
Secure Hash Algorithm (SHA) được công bố trong Hồ sơ Liên bang năm 1992 và được chấp nhận làm tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia. Đây là hàm băm được sử dụng trong bitcoin
Ý tưởng thuật toán băm SHA-256 được thực hiện trong các bước sau:
Bước 1: Thông điệp ban đầu được tiền xử lý thành thông điệp M rồi được chia nhỏ thành N khối 512 bits: M(1), M(2), …, M(N).
Bước 2: Khởi tạo giá trị cho mỗi Hj(0) (1≤j≤8) tính toán tuần tự các giá trị Hj(i) (1≤i≤N) theo công thức:
H(i) = H(i-1) + CM(i) (H(i-1)) với C là hàm nén SHA-256 và phép + là phép cộng theo modulo 232.
H(N) = (H1(N),…, H8(N)) là giá trị băm của M.
2.2 Blockchain
2.2.1. Blockchain là gì
Blockchain là một cuốn sổ cái được phân phối đều cho mọi người (distributed ledger) hoặc một cơ sở dữ liệu phi tập trung (decentralized database) trong đó nó lưu giữ lại các giao dịch số (digital transactions).
Để hiểu được tại sao blockchain và mô hình decentralized thì trước hết bạn phải hiểu được vấn đề của giao dịch số. Cơ bản, các giao dịch số bạn thực hiện đều chỉ là các file điện tử mà các file thông tin thì có thể được copy lại nhiều hơn hai lần — giống như việc học sinh có 1k tiền ảo, chứ không phải là 1k tiền giấy, nó có thể tiêu nhiều hơn số 1k nó có. Đây gọi là double-spending. Để ngăn chặn double-spending của giao dịch số, người ta có hai cách
2.2.1.1 Dùng mô hình người thứ 3 đáng tin ( còn gọi là mô hình tập trung hóa)
Như cô giáo trong ví dụ ở trên, cô là một người thứ 3 đáng tin cậy, giúp kiểm soát các giao dịch đảm bảo rằng Tí hay Tèo không thể giao dịch quá số tiền mà nó có. Trên thực tế, người thứ 3 có thể là nhà nước, các ngân hàng. Các vấn đề về lòng tin (như cô giáo lừa đảo) có thể được giải quyết bằng các luật kiểm soát và các tổ chức trung gian nữa, nhưng có một vấn đề không thể giải quyết được là chi phí trả cho người trung gian này.
2.2.1.2 Mô hình phi tập trung
Mô hình này không cần người kiểm soát trung gian, các dữ liệu giao dịch được ghi lại và đồng bộ hóa lên mạng cho phép tất cả mọi người trong mạng lưới đều tiếp cận được. Giống như các quyển sổ trên kia của bọn trẻ con, là một dạng mô hình phi tập trung — bọn nó sao chép lại dữ liệu giao dịch từ các sổ của nhau và chia sẻ tất cả với nhau. Điều này giúp tiết kiệm chi phí cho trung gian.
2.2.2 Tại sao nên sử dụng blockchain
Blockchain là hình thức lưu trữ minh bạch tuyệt đối mà mọi cá nhân tham gia đều có quyền truy cập phiên bản đầy đủ. Một khi đã được cập nhật, nó không thể bị thay đổi hoặc xáo trộn mà chỉ có thể bổ sung, và quá trình cập nhật diễn ra đồng thời trên tất cả máy tính trong mạng lưới. Nếu các dữ liệu gốc về giao dịch được thay đổi sau khi mã hóa, chỉ cần có một chữ ký điện tử khác để nhắc nhở toàn mạng lưới về nội dung cần sửa.
Với bản chất phân tán của dữ liệu chuỗi khối, khả năng bị hack gần như không có. Để bẻ khóa, hacker cần truy cập tất cả phiên bản cùng lúc. Do quá trình mã hóa chỉ diễn ra một chiều, “cuộn chỉ rối” dữ liệu không thể bị giải mã ngược thành dữ liệu ban đầu, đảm bảo độ an toàn và tính riêng tư.
Về công nghệ, các giao dịch được xác minh bởi thuật toán chữ ký số dựa trên đường cong Elliptic (ECDSA) và được xác nhận bởi chuỗi các quá trình xử lý lần lượt các hàm băm SHA256 . Mỗi khối trong blockchain chứa tất cả thông tin giao dịch trong khối đó trong 1 cây Merkle - là một cây nhị phân có thứ tự được xây dựng từ một dãy các đối tượng dữ liệu sử dụng hàm băm - để đạt hiệu quả cao trong việc lưu trữ và xác minh với lượng dữ liệu lớn các giao dịch. Khi có một giao dịch không hợp lệ, hệ thống sẽ loại bỏ nó bằng cách chọn theo số đông. Càng có nhiều máy tính tham gia vào hệ thống ngang hàng cho blockchain thì sức mạnh xử lý và độ an toàn của hệ thống blockchain đó càng cao.
2.2.3. Các loại blockchain
Blockchain 1.0 – Currencies: bao gồm chuyển đổi tiền tệ, kiều hối và hệ thống thanh toán kỹ thuật số. Đây cũng là lĩnh vực quen thuộc với chúng ta nhất và xem như là lãnh thổ của Bitcoin và những cryptocurrencies khác.
Blockchain 2.0 – Contracts: mở rộng blockchain, đưa vào các ứng dụng tài chính và thị trường. Các tài sản bao gồm cổ phiếu, chi phiếu, nợ, quyền sở hữu và bất kỳ điều gì có liên quan đến thỏa thuận hay hợp đồng.
Blockchain 3.0 – Organizing Activity: đưa blockchain vượt khỏi biên giới tài chính, và đi vào các lĩnh vực như giáo dục, chính phủ, y tế và nghệ thuật. Ở những lĩnh vực này sẽ là lại có nhiều loại như physical, digital hay human in nature.
Hai loại sau là hai loại mà blockchain có những tiềm năng to lớn hơn hẳn so với Bitcoin.
Blockchain 2.0 – Contracts
Những lợi ích tiềm năng của blockchain trong ngành dịch vụ tài chính đã không được chú trọng. Tuy nhiên, gần đây, JP Morgan đã bắt đầu đầu tư đáng kể vào blockchain. Và nhiều công ty trong ngành dịch vụ tài chính đang bắt đầu có cái nhìn nghiêm túc và đúng đắng hơn về công nghệ blockchain và những tiềm năng của nó.
Oliver Bussmann, CIO của UBS cho biết blockchain có thể “cắt thời gian giao dịch từ vài ngày xuống còn vài phút.”
Visa, Citi, và Nasdaq đã đầu tư $ 30 triệu cho công ty startup về blockchain.
Trong một bài báo gần đây trên Tạp chí Fortune, Christopher Giancarlo, một ủy viên của Commodity Futures Trading Commission bày tỏ quan điểm rằng blockchain có thể đã cứu Lehman Bros. Ông nói: “Nếu có một bản ghi (blockchain) chính xác về mọi transactions của Lehman từ năm 2008, các nhà điều chỉnh cẩn trọng của Lehman đã có thể sử dụng data-mining tools, smart contracts, và những ứng dụng phân tích khác để nhận ra sự bất thường. Và họ có thể đã phản ứng sớm hơn với suy giảm tín dụng niềm tin của Lehman.
Đáng chú ý là Bitcoin không có “tiếng nói” trong cuộc thảo luận này. Đây hòan toàn là lợi ích của việc ứng dụng công nghệ blockchain vào giải quyết các vấn đề kinh doanh thực tế trong lĩnh vực dịch vụ tài chính.
Blockchain 3.0 – Organized Activity
Ngoài lĩnh vực tài chính, blockchain còn được sự dụng trong nhiều kịch bản không ngờ tới kiểu out-of-the-box mà chúng ta ban đầu không hề nghĩ tới. Như đã nói từ sớm, buổi bỏ phiếu kín vừa qua của Đảng Cộng hòa tại Utah vừa qua cũng sử dụng công nghệ blockchain này.
Ứng dụng công nghệ này thể hiện rõ ràng khái niệm “distributed ownership” (Quyền sở hữu phân tán). Khi bạn tạo “vote asset”, thì nó đã được thêm vào chain. Bạn không sở hữu chain đó nhưng bạn vẫn sở hữu tài sản của mình, tức là lá phiếu của bạn, và lá phiếu đó chính là một block trong chain. Do đó, mọi cử tri đều sở hữu một block trong chain. Những blocks này sẽ trở thành những bản ghi cố định về tài sản của mỗi cá nhân và được xác thực một cách bất biến bởi sự đồng thuận của chain.
2.2.4 Đặc trưng nổi bật của blockchain
Hệ thống khó bị sập
Dựa trên cơ sở lưu trữ dữ liệu phân tán ở các máy tính ngang hàng nên blockchain không cần tới 1 nơi lưu trữ tập trung cồng kềnh, chỉ cần các máy tính trong mạng lưới còn hoạt động thì sẽ không cần lo lắng đến việc bị sập hệ thống và mất hết dữ liệu. Trong trường hợp một vài máy tính trong mạng lưới bị sập thì luôn có phương án để phục hồi phù hợp.
Giá thành rẻ
Bởi không cần đến một hệ thống trung gian phức tạp cồng kềnh mà sử dụng luôn tài nguyên của các máy tính tham gia mạng lưới nên blockchain có được ưu điểm là có thể áp dụng với giá thành rẻ, không mất chi phí xây dựng bảo trì vận hành hệ thống.
Mang tính quốc tế
Chỉ cần có một máy tính kết nối internet là có thể tham gia vào mạng lưới blockchain nên không phân biệt quốc gia, lãnh thổ người trong cùng một mạng lưới có thể dễ dàng thực hiện giao dịch bất cứ khi nào bất cứ ở đâu mà không cần phải phụ thuộc vào lịch làm việc của tổ chức nào khác.
Các ứng dụng của blockchain
Như đã nói ở phía trên, công nghệ blockchain được ứng dụng đầu tiên cho Bitcoin nhưng không dừng lại ở đó, nhờ tính ưu việt về sự minh bạch trong lưu trữ nên hiện nay blockchain còn được ứng dụng ở rất nhiều lĩnh vực khác nhau. Dưới đây là một vài ví dụ tiêu biểu.
Hệ thống quản lí chuỗi cung ứng Skuchain
Hệ thống cung ứng hàng hóa toàn cầu tiêu tốn hàng trăm tỉ đô la để vận hành, sử dụng phương pháp dựa trên những giấy tờ đảm bảo sự tin cậy(letters of credit). Hệ thống này đã có cách đây hàng trăm năm và tới giờ vẫn chưa thực sự thay đổi, nó vận hành bằng cách chuyển giấy tờ qua lại giữa các nơi trên toàn thế giới và ngân hàng thì thuê hàng trăm người để review những giấy tờ này.
Skuchain đã ứng dụng công nghệ blockchain để thay đổi hệ thống này, loại bỏ những giao dịch dựa trên giấy tờ do đó giảm chi phí lớn cho các giao dịch và được kì vọng sẽ có thể áp dụng cho cả các doanh nghiệp có quy mô nhỏ.
Hệ thống chứng thực Everledger, Verisart
Không chỉ có người mua bán kim cương, mà các công ty bảo hiểm, cảnh sát cũng sử dụng hệ thống này để xác thực thông tin khi có các vụ mất cắp xảy ra.
Tương tự như vậy, Verisart lưu lại lịch sử giao dịch của các hàng hóa nghệ thuật như tranh vẽ hay đồ gốm, sứ…từ đó có thể xác mình hàng thật giả và chủ sở hữu của nó là ai.
Hãng Everledger dùng blockchain để phát triển một hệ thống giúp bất cứ ai cũng có thể tự xác minh lịch sử sở hữu và giá trị của từng viên kim cương trong các giao dịch toàn cầu. Chỉ trong 6 tháng, Everledger đã tiếp nhận thông tin của 850.000 viên kim cương.
Ứng dụng trong quản lí hành chính
Người ta cũng kì vọng blockchain sẽ được ứng dụng trong việc bỏ phiếu bầu để đảm bảo tính minh bạch cho hoạt động này.
Với phiên bản blockchain tự xây dựng, hãng Estonia Guardtime đã giúp Chính phủ Estonia quản lý và bảo vệ dữ liệu của công dân trong hơn 1.000 dịch vụ online.
Ứng dụng trong ngành bảo hiểm
Blockchain được cho rằng sẽ tăng thêm sức mạnh cho ngành bảo hiểm trong tương lai.
2.2.5. Công nghệ sử dụng trong blockchain
Blockchain là phương pháp ghi dữ liệu, có thể coi là “cuốn sổ cái” lưu các giao dịch, thỏa thuận, hợp đồng và bất kỳ dữ liệu gì mà chúng ta cần ghi chép một cách độc lập hay xác minh sự tồn tại của nó.
Sự khác biệt mấu chốt của blockchain so với sổ thường là nó không tồn tại ở một địa điểm cụ thể nào. Nó được phân tán trên hàng trăm, hàng nghìn máy tính khắp thế giới bằng một công nghệ cho phép nhóm các bản ghi số hóa thành từng khối và chuỗi nhờ các thuật toán phức tạp và quá trình mã hóa có sự tham gia đồng bộ của nhiều máy tính.
Blockchain là hình thức lưu trữ minh bạch tuyệt đối mà mọi cá nhân tham gia đều có quyền truy cập phiên bản đầy đủ. Một khi đã được cập nhật, nó không thể bị thay đổi hoặc xáo trộn mà chỉ có thể bổ sung, và quá trình cập nhật diễn ra đồng thời trên tất cả máy tính trong mạng lưới. Nếu các dữ liệu gốc về giao dịch được thay đổi sau khi mã hóa, chỉ cần có một chữ ký điện tử khác để nhắc nhở toàn mạng lưới về nội dung cần sửa.
Với bản chất phân tán của dữ liệu chuỗi khối, khả năng bị hack gần như không có. Để bẻ khóa, hacker cần truy cập tất cả phiên bản cùng lúc. Do quá trình mã hóa chỉ diễn ra một chiều, “cuộn chỉ rối” dữ liệu không thể bị giải mã ngược thành dữ liệu ban đầu, đảm bảo độ an toàn và tính riêng tư.
2.2.6. Sự khác nhau giữa blockchain và database
Kiểm soát phi tập trung :Blockchains cho phép các bên khác nhau chia sẻ thông tin mà không yêu cầu quản trị viên trung tâm. Giao dịch được xử lý bởi một mạng lưới người dùng hoạt động như một cơ chế đồng thuận để tất cả mọi người đang tạo ra cùng một hệ thống ghi lại đồng thời. Trong khi đó database sẽ tập trung dữ liệu và được quản trị bởi một admin
Lịch sử của chính nó : Hầu hết các cơ sở dữ liệu tập trung giữ thông tin được cập nhật tại một thời điểm cụ thể. Blockchain có thể giữ thông tin ngay lúc này, mà còn tất cả các thông tin đã có trước đó.
Hiệu suất : Blockchain có tốc độ khá chậm so với các cơ sở dữ liệu cơ bản khác vì khi thực hiện một giao dịch nó phải so sánh kết quả với các node khác trong hệ thống cho đến khi có sự đồng thuận .
Bảo mật : blockchain là một cơ sở dữ liệu không kiểm soát được . Điều đó có nghĩa là bất cứ ai cũng có thể viết một khối mới vào chuỗi, và bất cứ ai cũng có thể đọc một khối trong chuỗi. CSDL thuần thì ai có cấp quyền mới được đọc và ghi dữ liệu
2.2.7. Hạn chế của blockchain
Kích thước cộng đồng : phải có một cộng đồng sử dụng đủ lớn mới có thể sử dụng hết đầy đủ các lợi ích mà nó đem lại
Chi phí giao dịch, tốc độ mạng : Tính đến cuối năm 2016, nó chỉ có thể xử lý khoảng 7 lần giao dịch mỗi giây, và mỗi giao dịch tốn khoảng 0,20 $ và chỉ có thể chứa được 80 byte dữ liệu.
Lỗi của con người : Các dữ liệu được lưu trữ trên một blockchain không phải là đáng tin cậy, do đó, nó phải ghi lại các giao dịch dẫn tới việc rác dữ liệu rất nhiều
Không thể tránh khỏi lỗ hổng bảo mật : Có một lỗ hổng bảo mật đáng chú ý trong bitcoin và các blockchains khác: nếu hơn một nửa số máy tính làm việc như các nút để phục vụ cho mạng nói dối, lời nói dối sẽ trở thành sự thật