Tính bảo mật của Blockchain rất khó đạt được bởi các chuỗi khối công khai được thiết kế sao cho tất cả các giao dịch đều minh bạch và việc cung cấp tiền có thể được xác minh một cách công khai. Các cơ chế bảo mật phải đảm bảo rằng cả hai yếu tố này đều được bảo tồn mặc dù có mâu thuẫn giữa bảo vệ quyền riêng tư và duy trì tính xác minh công khai. Để hiểu được sự đổi mới đằng sau Zerocoin, trước tiên chúng ta cần kiểm tra lịch sử về tính bảo mật của blockchain.
Dịch vụ xáo trộn tiền mã hóa (tumbler/mixer) và CoinJoin
Được sử dụng trong: Dash
Ưu điểm:
- Hoạt động trên hầu hết các loại tiền mã hóa mà không cần các quy tắc đồng thuận cụ thể
- Tương đối đơn giản để thực hiện
- Nhẹ
Nhược điểm:
- Tính ẩn danh cơ bản
- Yêu cầu các mixer phải trực tuyến
- Việc triển khai trước đó liên quan đến sự tin tưởng vào một mixer bên thứ ba
Một trong những phương pháp đầu tiên mà mọi người tìm cách đạt được điều này là thông qua việc sử dụng các tumbler. Những công việc này dựa trên nguyên tắc xáo trộn vốn (mixing fund) với những khoản tiền khác, bằng cách gửi tiền của bạn cho người khác và sau đó đưa tiền của họ cho bạn. Một cách dễ dàng để hình dung điều này đó là: có một nhóm người, mỗi người bỏ cùng một số lượng tiền vào trong một cái nồi, trộn nó lại và sau đó mỗi người lấy ra một lượng tiền như nhau. Ý tưởng ở đây đó là, thật khó để chứng minh đồng tiền nào trước đây thuộc về ai, để mà từ đó cung cấp một mức độ riêng tư nhất định. Việc xáo trộn đi kèm với một số nhược điểm, chủ yếu là bạn cần tin tưởng vào người xáo trộn (tumbler) không được ăn cắp tiền của bạn.
CoinJoin là một cải tiến của ý tưởng xáo trộn này và loại bỏ khả năng kẻ đánh cắp ăn cắp coin. Nó được sử dụng phổ biến trong Darkcoin (hiện nay được biết đến là Dash). Tuy nhiên, vẫn còn nhiều nhược điểm đối với hệ thống.
Bạn cần tin tưởng tumbler với tính ẩn danh của bạn vì mixer có thể ghi thông tin nhận dạng và biết cách kết hợp xảy ra cùng với mỗi địa chỉ đầu vào của người dùng và địa chỉ họ đang nhận tiền. Vấn đề này có thể tránh được bằng cách sử dụng “chữ ký kỹ thuật số mù” nhưng sau đó tính ẩn danh của CoinJoin phụ thuộc rất nhiều vào khả năng kết nối với người lập trình theo cách ẩn danh, ví dụ, thông qua mạng Tor.
Nó yêu cầu những người liên quan đến việc xáo trộn phải trực tuyến để giao dịch mixing xảy ra. Nếu không ai muốn mix cho các mệnh giá đúng, hỗn hợp của bạn có thể bị trì hoãn. Sự ẩn danh bị giới hạn bởi số lượng người mà bạn mix cùng. Một vòng mix riêng tư của Dash chỉ bao gồm 3 người tham gia mặc dù điều này có thể được lặp lại.
Ngay cả khi với nhiều vòng mix của CoinJoin, nghiên cứu gần đây cho thấy ví người dùng có thể được xác định nếu họ không cẩn thận với cookie trình duyệt khi thực hiện thanh toán vì việc xáo trộn chỉ che khuất các liên kết giao dịch giữa các địa chỉ nhưng không phá vỡ chúng hoàn toàn.
Thật dễ dàng để phá vỡ hoạt động của CoinJoin và trì hoãn việc hoàn thành giao dịch cho những người tham gia khác.
Hơn nữa, việc triển khai của Dash, được gọi là PrivateSend, dễ bị tấn công bởi các cụm giao cắt.
Các cải tiến khác như CoinShuffle ++ đã loại bỏ nhu cầu về một bên thứ ba đáng tin cậy nhưng vẫn phải chịu những hạn chế khác của CoinJoin, cụ thể là một bộ ẩn danh hạn chế và yêu cầu người tham gia trực tuyến.
Lợi ích chính của các loại mixer đó là chúng tương đối đơn giản và hoạt động dựa trên tiền mã hóa mà không cần sử dụng các quy tắc đồng thuận cụ thể. Với các biện pháp phòng ngừa thích hợp, CoinJoin có thể cung cấp một mức độ ẩn danh cơ bản.
Tumblebit gần đây hơn dường như là một cải tiến đầy hứa hẹn đối với các loại mixer nhưng nằm ngoài phạm vi của bài viết này. Tuy nhiên, TumbleBit là một chương trình bảo mật không được triển khai ở cấp độ giao thức và vẫn yêu cầu người khác cung cấp tiền vốn của họ cho quá trình xáo trộn so với các chương trình khác mà chúng tôi sẽ đề cập dưới đây. Lợi ích chính của nó, tương tự như CoinJoin, đó là nó có thể được triển khai trên Bitcoin hoặc bất kỳ đồng tiền nào khác dựa trên Bitcoin mà không có bất kỳ yêu cầu thay đổi giao thức nào.
CryptoNote và Chữ ký Vòng (Ring Signatures)
Được sử dụng trong: Monero, Particl
Ưu điểm:
- Không cần đến mixer và quá trình mix được thực hiện một cách tự động
- Có thể được thực hiện với quyền riêng tư theo mặc định
- Tính ẩn danh tăng lên khi thời gian trôi qua, khi đầu ra trở thành đầu vào mới của hỗn hợp mới
- Ẩn số tiền giao dịch khi được thực hiện với RingCT (hoặc bulletproof)
- Mã hóa được nghiên cứu kỹ
Nhược điểm:
- Không phá vỡ các liên kết giao dịch, chỉ che giấu chúng, nên nó được gọi là một mô hình ‘decoy’ (ngụy trang).
- Các vấn đề về khả năng mở rộng vì quy mô giao dịch lớn và blockchain không thể thu gọn
- Rủi ro của blockchain trong việc có thể bị từ chối trong tương lai hoặc thông qua triển khai không chính xác
- Không thể tận dụng hệ sinh thái Bitcoin hiện tại và yêu cầu công việc tích hợp riêng
- Kích thước vòng thực tế bị hạn chế
- Không thể sử dụng xác minh thanh toán đơn giản (SPV) và do đó bạn luôn phải chạy một node đầy đủ hoặc kết nối với một node (không có ví nhẹ)
Lừa đảo để thực hiện một số giải pháp lớp 2 như Lightning Network - Không có khả năng kiểm toán cung ứng, đồng nghĩa với việc có thể có lạm phát ẩn không bị phát hiện.
Tính ẩn danh tiếp theo mà chúng ta sẽ khám phá đó là chữ ký vòng (ring signatures) được sử dụng trong các loại tiền mã hóa CryptoNote như Monero, giúp cải thiện đáng kể tính ẩn danh so với các loại mixer thông thường. Chữ ký vòng hoạt động bằng cách chứng minh ai đó đã ký giao dịch từ một nhóm người mà không tiết lộ đó là người nào. Một trường hợp sử dụng phổ biến của chữ ký vòng là nó được sử dụng để cung cấp chữ ký ẩn danh từ một “quan chức cấp cao của Nhà Trắng”, mà không tiết lộ quan chức nào đã ký tin nhắn.
CryptoNote sử dụng chữ ký vòng theo cách mà người dùng có thể tạo giao dịch và sử dụng đầu ra của các giao dịch tương tự khác trên blockchain để tạo đầu vào cho giao dịch chữ ký vòng để không rõ đầu vào nào thuộc về người thực hiện giao dịch. Nó thực hiện điều này một cách tự động mà không yêu cầu người dùng khác chỉ định rằng họ muốn trộn và không cần đợi người khác cung cấp tiền vì nó chỉ quét các blockchain để sử dụng các đầu ra đó. Vì không có mixer, nên bạn không cần phải tin tưởng mixer nào cả. Monero gần đây cũng đã triển khai RingCT (Giao dịch bảo mật Vòng) cũng che giấu số tiền giao dịch.
Chữ ký vòng hiện được triển khai trong CryptoNote cũng có những hạn chế liên quan đến kích thước vòng thực tế (số lượng đầu ra khác mà bạn đang thực hiện) vì kích thước của giao dịch tăng theo đường tuyến tính khi kích thước vòng tăng. Đây là lý do tại sao bởi Monero có kích thước vòng tương đối nhỏ là 11. Điều này có nghĩa là trên cơ sở mỗi giao dịch, tính ẩn danh bị giới hạn bởi số lượng người tham gia vào vòng. Các nhà phân tích blockchain, mặc dù họ có thể không chứng minh được các giao dịch được liên kết, họ có thể tính toán tỷ lệ cược mà họ đang có. Đây là nhược điểm chính của Cryptonote, đó là nó không phá vỡ các liên kết giữa các giao dịch mà chỉ che giấu nó bằng các đầu vào và đầu ra “ngụy trang”.
Ngoài ra, các nhà nghiên cứu bảo mật đã tìm ra cách để đưa ra những phỏng đoán có giáo dục về việc giao dịch nào là giao dịch thực sự bằng cách buộc nó vào thời điểm giao dịch. Trong bất kỳ sự pha trộn nào giữa một đồng coin thật và một bộ coin giả được gói trong một giao dịch, đồng coin thật rất có thể là đồng coin gần đây nhất đã được chuyển trước giao dịch đó. Trước một sự thay đổi gần đây từ các nhà phát triển Monero, việc phân tích thời gian đó đã xác định chính xác đồng coin thật hơn 90% thời gian, gần như vô hiệu hóa các biện pháp bảo vệ quyền riêng tư của Monero. Sau khi thay đổi cách Monero chọn mixins của nó, mánh khóe đó giờ đây có thể phát hiện ra đồng coin thật chỉ 45% thời gian – nhưng vẫn thu hẹp đồng coin thật xuống còn khoảng hai khả năng, ít hơn nhiều so với hầu hết người dùng Monero muốn.
Một chỉ trích khác của CryptoNote là nếu có một điểm yếu trong việc triển khai chữ ký vòng hoặc một máy tính lượng tử hợp lý mạnh mẽ trở nên khả thi, toàn bộ lịch sử blockchain sẽ bị ẩn danh và bị phơi bày. Điều này không thể được sửa chữa sau thực tế trên. Trên thực tế, việc triển khai thiếu sót trong một loại tiền của CryptoNote có tên ShadowCash đã cho phép blockchain của nó được đồng nhất hóa toàn bộ. Tuy nhiên, một máy tính lượng tử thực tế vẫn còn khá nhiều thời gian, và nó sẽ xem liệu dữ liệu giao dịch vài năm tuổi có còn giá trị hay không Để dữ liệu này hữu ích, rất có thể nó sẽ cần được kết hợp với dữ liệu bên ngoài.
Cũng đáng để chỉ ra rằng RingCT nào che giấu số tiền giao dịch, khả năng kiểm toán cung ứng bị hy sinh. Khả năng kiểm toán nguồn cung là khả năng xác minh rằng không có đồng tiền mới nào được tạo ra một cách bí mật và để biết chính xác có bao nhiêu đồng coin tồn tại tại một thời điểm. Trong quá trình triển khai RingCT của Monero, một người nào đó phá vỡ logarit rời rạc, làm nền tảng cho RingCT có thể giả mạo coin mà không ai biết. Điều đó được nói rằng đây có lẽ chỉ là một khả năng lý thuyết vì vấn đề logarit rời rạc được sử dụng rộng rãi trong mật mã học và dự kiến rằng logarit rời rạc sẽ vẫn tồn tại cho đến thời đại điện toán lượng tử. Tuy nhiên, lỗi đó cũng có thể ảnh hưởng đến điều này và việc thiếu khả năng kiểm toán nguồn cung có thể phức tạp hóa việc phát hiện lạm phát ẩn. Một lỗi trong Cryptonote cho phép lạm phát không giới hạn thực sự đã được phát hiện nhưng đã được “vá” lại trước khi bất kỳ ai có thể tận dụng lợi thế của nó.
Sử dụng một codebase hoàn toàn khác với Bitcoin cũng có nghĩa là các bên thứ ba phải làm nhiều việc hơn để tích hợp CryptoNote vào hệ sinh thái hiện tại của họ. Xác minh thanh toán đơn giản (SPV) cũng không được hỗ trợ khiến việc triển khai ví tiền trở nên khó khăn hơn.
Mặc dù có những hạn chế, CryptoNote ngày nay đã chứng minh rằng nó là một trong những công nghệ bảo mật tốt và được đánh giá tích cực và là trường hợp duy nhất được phát hiện công khai từ việc triển khai không đúng như ShadowCash fiasco hoặc thông qua việc sử dụng giao dịch mixin-0 trong Monero dẫn đến hiệu ứng xếp tầng, khiến 87% đầu vào có thể truy được (sau đó được giảm nhẹ cho các giao dịch mới hơn). Tuy nhiên, các kỹ thuật mới hơn trong phân tích blockchain có thể làm giảm đáng kể tính ẩn danh của Cryptonote vì đây là một hệ thống “ngụy trang”.
Zerocoin và Zcoin
Được sử dụng trong: Zcoin, PIVX
Ưu điểm:
- Không cần mixer
- Tính ẩn danh cao với một giao dịch đúc tiền và chi tiêu duy nhất và phá vỡ hoàn toàn các liên kết giao dịch giữa các địa chỉ.
- Giữ lại khả năng kiểm toán nguồn cung
- Sử dụng mật mã được nghiên cứu chuyên sâu
Nhược điểm:
- Kích thước bằng chứng lớn (10-25 kB)
- Yêu cầu thiết lập đáng tin cậy
- Việc thực hiện không chính xác hoặc rò rỉ các tham số thiết lập đáng tin cậy có thể dẫn đến việc giả mạo coin.
- Cần kiểm tra kỹ lưỡng khi đúc và chi tiêu Zerocoin. Người dùng phải giữ tiền đúc trước khi họ có ý định chi tiêu để ngăn chặn các cuộc tấn công thời gian.
Zerocoin được triển khai trong Zcoin. Không giống như các kế hoạch ẩn danh trước đây liên quan đến che khuất các giao dịch thực với các đầu vào hoặc giao dịch khác, giao thức Zerocoin phá vỡ hoàn toàn các liên kết giao dịch giữa các đồng tiền thông qua việc sử dụng các bằng chứng không-kiến-thức.
Nói một cách đơn giản, bằng chứng không-kiến-thức là bằng chứng bạn đã làm gì đó hoặc biết điều gì đó mà không tiết lộ bất kỳ thông tin nào khác ngoài việc bạn đã làm. Ví dụ như bạn chứng minh được rằng bạn biết mật khẩu mà không phải nói ra mật khẩu là gì.
Zerocoin hoạt động bằng cách cho phép bạn đốt cháy coin (còn được gọi là đúc Zerocoin) và sau đó đổi lấy một số lượng coin hoàn toàn mới (được gọi là chi tiêu Zerocoin). Những đồng tiền này xuất hiện không có lịch sử giao dịch trước đó và tương tự như các đồng tiền mới được khai thác. Bằng chứng không-kiến-thức được sử dụng để chứng minh rằng bạn thực sự đã đốt những đồng coin mà không tiết lộ đồng coin cụ thể nào mà bạn đã đốt. Sử dụng bằng chứng bạn còn có quyền đổi số lượng coin mới tương đương.
Điều này có nghĩa là, không giống như trong CoinJoin và CryptoNote, nơi bộ ẩn danh bị giới hạn bởi số lượng người tham gia hoặc kích thước vòng, Zerocoin sẽ cung cấp một bộ ẩn danh lớn hơn. Bộ ẩn danh của bạn sẽ cùng với mọi người khác đã thực hiện việc đúc Zerocoin của một loại cụ thể. Bộ này được tạo ra ngay lập tức mà không cần chờ đợi. Điều này cho phép tính ẩn danh mở rộng thành hàng nghìn với một chu kỳ chi tiêu và đúc tiền Zerocoin duy nhất. Ngoài ra, các đồng coin có các liên kết giao dịch của chúng bị phá vỡ khi chúng xuất hiện dưới dạng các đồng coin hoàn toàn mới so với việc chỉ bị che khuất thông qua các phương thức trước đó.
Đề án ẩn danh này không phải không có nhược điểm. Để đổi lấy bộ ẩn danh khổng lồ và phá vỡ các liên kết giao dịch, Zerocoin yêu cầu thiết lập đáng tin cậy một lần để tạo các tham số ban đầu. Trong Zerocoin đây là hai số nguyên tố rất lớn cần phải tiêu diệt. Kiến thức về hai số nguyên tố lớn này sẽ cho phép ai đó giả mạo Zerocoin chi tiêu và tạo ra các đồng coin từ “hư không”. Để giảm thiểu điều này, Zcoin sử dụng các tham số từ Thử thách RSA Factoring Challenge được tổ chức vào năm 1991, nơi họ đã thực hiện các bước đặc biệt để phá hủy các số nguyên tố và có số tiền thưởng 200.000 USD để tạo thành công trong 16 năm trước khi thử thách kết thúc. Cho đến ngày nay, các tham số RSA-2048 được sử dụng vẫn còn, dựa trên nghiên cứu của chúng tôi, RSA chưa được khai thác và 2048 bit vẫn được sử dụng rộng rãi ngày nay đã vượt qua được thử thách của thời gian và thực tế sẽ không thể phá vỡ ít nhất cho đến khi máy tính lượng tử ra đời.
Điều đáng chú ý là kiến thức về hai số nguyên tố hoặc bao thanh toán thành công này sẽ không làm ảnh hưởng đến tính ẩn danh của Zerocoin mà sẽ chỉ cho phép giả mạo coin. Ngoài ra, điều này được giảm nhẹ bởi thực tế là nguồn cung Zcoin có thể kiểm tra được, để việc giả mạo coin có thể được phát hiện. Trên thực tế, do một lỗi trong quá trình triển khai (và không phải do phá vỡ RSA), việc giả mạo coin thật sự đã xảy ra với Zcoin nhưng rất may đã được phát hiện và ngăn chặn. Nó cho thấy trong các đồng coin “bằng chứng không-kiến-thức” liên quan đến một số hình thức đốt và tạo ra các đồng coin mới, khả năng kiểm toán cung ứng đóng vai trò đặc biệt quan trọng.
Điều đáng chú ý là Bitcoin đã gặp phải một lỗi siêu lạm phát trong năm 2010, khiến cho 184,4 tỷ đồng tiền được tạo ra “từ hư không” được phát hiện vì khả năng kiểm toán nguồn cung. Gần đây nhất vào tháng 9 năm 2018, một lỗi siêu lạm phát khác đã được phát hiện trong Bitcoin nhưng vẫn chưa được khai thác.
Một hạn chế khác của Zerocoin là các mệnh giá cố định cần được sử dụng để đúc và chi tiêu và kích thước bằng chứng không-kiến-thức cho chi tiêu Zerocoin tương đối lớn, ở mức 25 kB (có thể giảm xuống khoảng 10 kB với các thông số thấp hơn), có thể so sánh với giao dịch RingCT của Cryptonote. Khác với CryptoNote, nơi tất cả các giao dịch có kích thước này, chỉ có các giao dịch chi tiêu Zerocoin chiếm dung lượng này. Giao dịch bình thường vẫn chiếm kích thước tương tự như giao dịch Bitcoin. So với các giao dịch khác, các giao dịch chi tiêu của Zerocoin cũng được tính toán chuyên sâu để xác minh, mất khoảng nửa giây để thực hiện.
Ngoài ra, việc sử dụng không chính xác hoặc có thể dự đoán được việc sử dụng Zerocoin đúc và chi tiêu các giao dịch như việc đúc và chi tiêu đều đặn, hoặc thực hiện đúc tiền và chi tiêu ngay lập tức hoặc sử dụng cùng một địa chỉ IP cho một lần đúc và chi tiêu có thể ảnh hưởng đến tính ẩn danh. Chúng tôi khuyên người dùng nên đúc tiền dự trữ trước khi họ muốn chi tiêu. Đồng coin ở dạng tiền đúc càng lâu thì tính ẩn danh càng tốt. Điều này đang được giảm bớt bởi GUI sắp tới của Zcoin, khuyến nghị người dùng nên giữ một tỷ lệ phần trăm nhất định trong số tiền được đúc của họ.
Tóm lại, Zerocoin cung cấp tính ẩn danh mạnh mẽ với một bộ ẩn danh khổng lồ không có liên kết giao dịch, nhưng hiện tại có yêu cầu thiết lập tin cậy, lưu trữ bổ sung trên blockchain và các tài nguyên tính toán bổ sung để xác minh. Những vấn đề này đang được giải quyết với sự phát triển của Zcoin.
Zcoin hiện đang phát triển thay thế giao thức Sigma cho Zerocoin, giúp giảm đáng kể kích thước bằng chứng và cũng không yêu cầu thiết lập tin cậy trong khi vẫn giữ các bộ ẩn danh tương tự như Zerocoin. Nó được lên kế hoạch để phát hành vào quý 1 năm 2019.
Sự đổi mới của Lelantus, Zcoin, là sự phát triển cao hơn đối với Sigma, cho phép đúc và chi tiêu số tiền tùy ý và cho phép mua lại một phần số tiền được đúc trong khi ẩn các giá trị của số tiền đó. Lelantus hiện đang ở giai đoạn nghiên cứu mặc dù việc coding đã bắt đầu trên các thư viện mã hóa của nó.
Zerocash và Zcash
Được sử dụng trong: Zcash, Horizen, Komodo, Z classic, Bitcoin Private
Ưu điểm:
- Khả năng có bộ ẩn danh tốt nhất bao gồm tất cả các đồng tiền được đúc và phá vỡ các liên kết giao dịch giữa các địa chỉ.
- Kích thước bằng chứng nhỏ và nhanh chóng để xác minh
- Ẩn số tiền giao dịch
- Không cần chuyển đổi sang một đồng coin cơ sở và các đồng coin ẩn danh có thể được gửi trực tiếp cho nhau.
Nhược điểm:
- Các giao dịch cá nhân được tính toán chuyên sâu (mặc dù đã được cải thiện rất nhiều với nâng cấp Sapling)
- Thiết lập đáng tin cậy phức tạp, phải được sắp xếp bởi nhóm
- Việc thực hiện không chính xác hoặc rò rỉ các tham số thiết lập đáng tin cậy có thể dẫn đến việc giả mạo coin.
- Do đó, nguồn cung không thể được kiểm toán nếu coin bị giả mạo và tạo ra “từ hư không”, chúng không thể được phát hiện. Lỗi của bản chất này đã được tìm thấy trước khi ra mắt và cả trong mạng chính.
- Sử dụng mật mã tương đối mới và dựa trên các giả định về mật mã (KEA) đã bị chỉ trích.
- Khó để hiểu theo nghĩa đầy đủ mà chỉ một số ít người có thể nắm được mật mã học và code.
Trình ẩn danh cuối cùng mà chúng ta sẽ xem xét là giao thức Zerocash như được sử dụng trong ZCash. Zerocash xây dựng dựa trên công việc của Zerocoin và tìm cách giải quyết những thiếu sót của Zerocoin. Với Zerocash và việc sử dụng zkSNARK của nó, kích thước bằng chứng hiện chỉ còn 1 kb và rất nhanh để xác minh. Hơn nữa, tất cả số tiền giao dịch đều bị ẩn và không còn cần phải sử dụng các mệnh giá cố định khi thực hiện giao dịch đúc tiền. Zerocash cũng cho phép mọi người chuyển ‘Zerocoins’ tương đương của Zerocash cho nhau mà không cần phải chuyển đổi trở lại thành đồng coin cơ sở. Bộ ẩn danh của nó cũng lớn nhất trong số tất cả các trình ẩn danh trước đây liên quan đến tất cả các đồng coin được đúc, bất kể mệnh giá nào trên blockchain.
Khi ta nhìn thoáng qua về điều này, ta sẽ cảm thấy dường như Zerocash khiến cho Zerocoin trở nên lỗi thời. Tuy nhiên, để đạt được điều này, nó đã phải đánh đổi những lợi ích nhất định mà Zerocoin có.
Trước hết, Zerocash thiếu khả năng kiểm toán cung ứng. Giống như Zerocoin, Zerocash yêu cầu thiết lập đáng tin cậy, nhưng thiết lập Zerocash cũng phức tạp hơn nhiều. Zcash đã sử dụng một buổi lễ ‘gồm nhiều bên liên quan’ trong đó có sáu người được thiết lập theo cách mà cách duy nhất các thông số này có thể bị rò rỉ là nếu tất cả sáu người trong buổi lễ thông đồng để giữ lại chìa khóa. Nói cách khác, bạn phải tin tưởng tất cả sáu người này rằng họ đã phá hủy các thông số ban đầu và buổi lễ này được thực hiện một cách chính xác. Đây là một vấn đề đủ nghiêm trọng mà Zcash đang tổ chức một buổi lễ thiết lập đáng tin cậy mới.
Nếu có lỗi trong code, hoặc lỗi về mật mã hoặc sự cố với thiết lập đáng tin cậy của nhiều bên, kẻ tấn công có thể tạo Zcash không giới hạn và không giống như trong Zerocoin, sẽ không thể phát hiện ra nguồn cung bổ sung này. Đặc biệt là trong một hệ thống hoạt động dựa trên các nguyên tắc tương tự với Zerocoin cho phép tạo ra các đồng tiền mới, khả năng kiểm toán nguồn cung ngày càng trở nên quan trọng.
Zcash thực sự đã có một trong những lỗi này tồn tại trên mạng chính của nó từ khi ra mắt cho đến ngày 28 tháng 10 năm 2018, khoảng thời gian hai năm, trước khi nó được vá phát sinh từ một lỗ hổng mật mã. Không có cách nào để biết liệu lỗi này có bị lợi dụng trước khi được “vá” hay không, và có khoảng cách 8 tháng kể từ khi phát hiện ra lỗi cho đến khi nó được vá. Đây là lần đầu tiên một lỗi như vậy được phát hiện. Zerocash trong giai đoạn đầu phát triển cũng có Lỗ hổng Va chạm Nội bộ (InternalH Collision Vulnerability), điều này cũng sẽ cho phép việc giả mạo coin. Mặc dù lỗi này không bao giờ được đưa vào sản xuất, nhưng nó nhấn mạnh những rủi ro tiềm ẩn.
BTCP, một sự hợp nhất của Zcash và Bitcoin cũng bị lạm phát ẩn mà không bị phát hiện trong gần mười tháng. Lạm phát này chỉ được phát hiện bằng cách kiểm tra quá trình nhập UTXO khi họ đang nhập qua các UTXO Bitcoin. Đây không phải là một lỗ hổng trong mật mã, mà nó là một tiền đề bí mật và nó làm nổi bật các vấn đề tiềm ẩn của việc có một nguồn cung không thể kiểm soát được.
Chúng tôi nhấn mạnh rằng ngay cả một dự án được đánh giá cao như Bitcoin cũng gặp phải nhiều lỗi siêu lạm phát như sự cố tràn giá trị và CVE-2018-17144 gần đây. Bitcoin giữ lại khả năng kiểm toán nguồn cung cho phép các lỗi này được phát hiện hoặc được xác nhận rằng không có khai thác nào diễn ra.
Một sự đánh đổi khác là việc sử dụng mật mã thử nghiệm mới gọi là zkSNARK, chỉ được sử dụng hiệu quả trong Zerocash. Có rất ít sự xem xét kỹ lưỡng về nó và do đó không được thử nghiệm chiến đấu như RSA đã được sử dụng và xem xét trong nhiều năm và tiếp tục được sử dụng rộng rãi. zkSNARKs sử dụng các giả định về mật mã vẫn còn đó nhưng chưa được thử nghiệm. Không giống như các nhận định mã hóa được thiết lập chắc chắn như giả định nhật ký hoặc độ cứng nhân tố rời rạc, bảo mật zkSNARKs dựa trên các biến thể của giả định Knowledge Of Exponent (KEA) cho các nhóm song tuyến (được tạo ra thông qua các đường cong elip nhất định). KEA đã không được nghiên cứu hay triển khai tốt và cũng chịu sự chỉ trích. Một số chuyên gia tin rằng mật mã đằng sau zkSNARK tương đối yếu.
Zerocash cũng rất phức tạp, có nghĩa là chỉ một số ít người có thể hiểu và kiểm toán nó một cách đúng đắn. Trên thực tế, với lỗi giả mạo Zcash:
Khám phá về lỗ hổng sẽ đòi hỏi mức độ tinh vi kỹ thuật và mật mã cao mà rất ít người sở hữu.
Lỗ hổng đã tồn tại trong nhiều năm nhưng chưa được phát hiện bởi các chuyên gia mật mã, nhà khoa học, kiểm toán viên bên thứ ba và các nhóm kỹ thuật của bên thứ ba đã khởi xướng các dự án mới dựa trên code của Zcash.
Đây là ‘bảo mật thông qua che khuất” một cách hiệu quả.
Một nhược điểm khác của Zerocash nằm ở dạng ban đầu của nó, việc tạo giao dịch riêng mất nhiều thời gian hơn bất kỳ kế hoạch bảo mật nào trước đây khi tiếp cận một phút trên một chiếc máy tính mạnh mẽ và lâu hơn trên các hệ thống chậm hơn trong khi cần vài gigabytes RAM. Điều này dẫn đến rất ít người sử dụng các tính năng bảo mật của nó và cũng có thể loại trừ các hệ thống kém mạnh hơn như thiết bị di động. Zcash đã cải thiện đáng kể điều này trong bản nâng cấp Sapling mới nhất của nó thông qua việc sử dụng các đường cong BLS12-381 mới giúp giảm thời gian tạo xuống vài giây và cần khoảng 40 mb bộ nhớ để cuối cùng có thể khả thi cho các thiết bị di động. Tuy nhiên so với các đề án bảo mật khác trong bài viết này, nó vẫn đại diện cho quá trình tính toán chuyên sâu nhất.
Vì vậy, mặc dù Zerocash có khả năng ẩn danh cao nhất, nhưng nó chỉ thực hiện điều này với chi phí kiểm toán cung ứng kết hợp với thiết lập đáng tin cậy phức tạp, sử dụng mật mã thử nghiệm mới và độ phức tạp trong tính toán khi tạo giao dịch riêng tư.
Tuy nhiên, đội ngũ Zcash đang tiến hành nghiên cứu về zkSTARK (sự thay thế cho zkSNARK) mà không yêu cầu thiết lập đáng tin cậy và sử dụng mật mã với các giả định mã hóa đơn giản hơn. Tuy nhiên, cho đến nay, zkSTARKS hiện vẫn không đủ thực tế để sử dụng, do kích thước bằng chứng lớn và các yêu cầu tính toán để tạo zkSTARK vẫn còn cao.
Giao thức Mimblewimble
Được sử dụng trong: Grin, Beam
Ưu điểm:
- Tất cả các giao dịch đều riêng tư
- Sử dụng mật mã được thiết lập tốt
- Ẩn số tiền giao dịch
- Blockchain có thể giảm kích thước vì nó chỉ giữ lại UTXO
- Không sử dụng lại các vấn đề địa chỉ
Nhược điểm:
- Cần sự tương tác giữa người nhận và người gửi. Không thể đăng địa chỉ và nhận. Giao dịch nhiều bên mang lại vấn đề vì tất cả các bên cần liên lạc để tạo giao dịch.
- Không phá vỡ các liên kết giao dịch, chỉ che khuất chúng, do đó là một mô hình ‘ngụy trang’.
- Giám sát mạng có thể tiết lộ chi tiết về cách các giao dịch được tham gia.
- Nếu một khối không có nhiều giao dịch, tính ẩn danh sẽ giảm đáng kể do nó phụ thuộc vào các giao dịch khác để tham gia.
- Kho lạnh trong ví phần cứng rất khó để thực hiện
- Hợp đồng thông minh khó hơn với giao thức Mimblewimble vì không có ngôn ngữ kịch bản nhưng một số chức năng có thể được thực hiện thông qua việc phát triển trong “Scriptless Scripts”
- Tương đối sớm trong quá trình phát triển và không chia sẻ code lõi Bitcoin, việc xây dựng và tích hợp nó vào cơ sở hạ tầng sẽ cần sự phát triển độc lập.
Grin và Beam đều là những triển khai của MimbleWimble. Mimblewimble hoạt động thông qua hai phương thức chính, bằng cách ẩn tất cả các giá trị giao dịch và bằng cách tổng hợp tất cả các giao dịch thành một giao dịch lớn để trong một khối, nó xuất hiện như một giao dịch khổng lồ của nhiều đầu vào với nhiều đầu ra. Chỉ cần nhìn vào nó từ khía cạnh blockchain, bạn chỉ có thể đoán đầu ra nào đến từ đầu vào nào miễn là có một vài giao dịch trong cùng một khối. Mimblewimble cũng cho phép một tính năng khác gọi là cắt ngang, theo đó nếu A trả tiền cho B, người sau đó trả toàn bộ cho C, blockchain có thể ghi chép từ A đến C mà không cần hiển thị B.
Một cách dễ dàng để tưởng tượng điều này là so sánh giao dịch trong Bitcoin với việc giao dịch sẽ trông như thế nào khi nó được tổng hợp trong Mimblewimble.
Hãy tưởng tượng A gửi đến B và C. Trong một giao dịch riêng biệt, D gửi cho E và F.
Trong Bitcoin, điều này sẽ được hiển thị như sau
(Đầu vào) A> (Đầu ra) B, C
(Đầu vào) D> (Đầu ra) E, F
Chúng cũng sẽ có các giá trị giao dịch làm cho chúng trở nên độc đáo.
Trong Mimblewimble, tất cả các giá trị giao dịch đều bị ẩn và các giao dịch này được tổng hợp để một khi các giao dịch được tham gia trong khối, nó sẽ trông như sau:
(Đầu vào) A, D> (Đầu ra) B, C, E, F
Giờ chúng ta không thể biết được ai gửi cho ai!
Tuy nhiên, một giả định lớn đó là không ai giám sát mạng khi các giao dịch này lan truyền và trước khi chúng được ghi lại trên blockchain. Với Mimblewimble, ai đó có thể tạo một node độc hại kết nối với tất cả các node khác trong mạng và ghi lại các giao dịch trước khi chúng được kết hợp với nhau, do đó có thể xác định lại các giao dịch có nghĩa là nó sẽ có quyền riêng tư giống như Bitcoin ngoại trừ địa chỉ chỉ được sử dụng một lần và giá trị giao dịch bị ẩn đi.
Để giảm thiểu điều này, cả Grin và Beam đều sử dụng công nghệ Dandelion, thay đổi cách lan truyền giao dịch. Thay vì phát từng giao dịch cho tất cả các mạng ngang hàng, giao dịch trước tiên được gửi qua một loạt các mạng ngang hàng được chọn ngẫu nhiên (giai đoạn gốc) và sau đó chỉ được khuếch tán đến toàn bộ mạng lưới (giai đoạn “fluff”). Mỗi node thành công sẽ “tung xúc xắc” để xác định xem có nên tiếp tục giai đoạn gốc (90% thay đổi) hay chuyển sang giai đoạn “fluff” (10% cơ hội). Trong khi các giao dịch đang trong giai đoạn gốc, chúng cũng được kết hợp với các giao dịch khác trước khi được phát sóng rộng rãi. Điều này làm cho một node khó khăn hơn nhiều để có một bức tranh đầy đủ về cách các giao dịch được kết hợp với nhau. Tuy nhiên, đây không phải là một giải pháp hoàn hảo và manh mối vẫn có thể được lượm lặt bằng cách các giao dịch được tập hợp lại với nhau trước khi chúng được thêm vào khối.
Điều này kết hợp với thực tế là Mimblewimble cũng là một hệ thống “ngụy trang” tương tự như Cryptonote (mặc dù nó đạt được bằng các phương pháp khác nhau), nó vẫn chịu những hạn chế tương tự như các hệ thống bảo mật “ngụy trang” khác trong đó các giao dịch lặp đi lặp lại có thể làm giảm tính ẩn danh. Ngoài ra, nếu không có nhiều giao dịch trong một khối, điều này làm giảm tính riêng tư đi rất nhiều. Như đã giải thích trước đây, việc giám sát tích cực của mạng có thể khiến điều này trở nên loãng hơn nữa.
Một nhược điểm lớn của MimbleWimble đó là nhu cầu tương tác giữa người nhận và người gửi (nghĩa là người nhận và người gửi cần giao tiếp trực tiếp để giao tiếp với một yếu tố gây mù) và một sơ đồ khác biệt với các địa chỉ. Điều này có nghĩa là bạn không thể chỉ đăng một địa chỉ trên một trang web và phải đưa ra một giá trị mới mọi lúc. Điều này cũng phức tạp hóa các giao dịch của nhiều bên, ví dụ A gửi tiền cho B, C, D, E trong một giao dịch sẽ yêu cầu mỗi bên này liên lạc với A trước khi việc gửi có thể xảy ra.
Ngoài ra, mặc dù không có địa chỉ, các cam kết Pedersen vẫn là duy nhất và vì vậy trên MimbleWimble không ẩn biểu đồ giao dịch, nghĩa là bạn vẫn có thể thấy cách thức chuyển tiền, và do đó có thể được coi là địa chỉ “một lần” (‘one time’ addresses). Điều này có nghĩa là nếu không có cách giải quyết khác của Dandelion và Coinjoin, quyền riêng tư của Mimblewimble sẽ tương đương với Bitcoin ngoại trừ địa chỉ chỉ được sử dụng một lần và các giá trị giao dịch bị ẩn.
Grin không có ngôn ngữ kịch bản (scripting language) nên việc thực hiện các hợp đồng thông minh có thể gặp nhiều thách thức mặc dù các phát triển trong “Scriptless Scripts” có thể kích hoạt chức năng tương tự cho một tập hợp giảm.
Với các giá trị ẩn đầy đủ, Mimblewimble không có khả năng kiểm toán cung cấp vì nó dựa vào Bulletproofs/Giao dịch bí mật để kiểm tra xem có bất kỳ đồng tiền bổ sung nào được tạo ra từ “hư không” hay không. Tuy nhiên, mật mã đằng sau nó được hiểu rõ, vì vậy nó không phải là vấn đề lớn như với giao thức Zerocash.
Đánh giá các chương trình bảo mật khác và lý do tại sao đồng coin riêng tư yêu thích của tôi lại được nêu trong bài viết này?
Tất cả các chương trình bảo mật blockchain được liệt kê ở đây đều được các nhà nghiên cứu xem xét kỹ và các khái niệm đều được làm rõ. Tuy nhiên, có rất nhiều đồng tiền trong không gian riêng tư nhưng chỉ một số ít thực sự bảo vệ nó. Đây là những yếu tố chính khi bắt gặp một cơ chế bảo mật mới:
Nó có cung cấp sự riêng tư trên blockchain không? Một số đồng coin riêng tư tự quảng cáo chúng với việc cung cấp quyền riêng tư nhưng lại hoàn toàn không cung cấp bất kỳ quyền riêng tư nào trên blockchain.
Cơ chế bảo mật có phải được viết và xem xét bởi các chuyên gia không? Đọc để xem liệu chương trình bảo mật của chúng đã được các nhà mật mã xem xét và có các tài liệu học thuật tham khảo nó! Nhiều cơ chế chỉ được tạo ra các nhà phát triển hoặc lập trình viên mà không có bất kỳ lịch sử nào về mật mã hoặc bảo mật thông tin. Các công nghệ thực hiện công nghệ bảo mật nói chung là không hề dễ dàng và ngay cả các nhà mật mã đẳng cấp thế giới cũng mắc lỗi.
Có phải nó chỉ đơn thuần là một thương hiệu của công nghệ hiện có? Một số dự án đổi tên các chương trình bảo mật hiện có thành tên riêng của chúng. Điều này sẽ được chấp nhận nếu họ tiết lộ công nghệ bảo mật gốc đằng sau nó.
Nó có liên quan đến niềm tin theo mô hình tập trung? Nếu một chương trình bảo mật dựa vào bạn để tin tưởng người khác để bảo vệ quyền riêng tư của bạn, thì đó thường là một chương trình bảo mật kém. Điều này bao gồm một số đồng coin riêng tư “giả mạo” sử dụng mixer tập trung.
Đội ngũ có hiểu được mật mã đằng sau những chương trình này không? Điều này thật khó để xác định trừ khi bạn là một chuyên gia. Kiểm tra đội ngũ của họ để xem liệu có ai có thông tin mật mã trong nhóm của họ hoặc trong danh sách cố vấn của họ không.
Tóm tắt
Mỗi chương trình ẩn danh đều có các lợi ích và sự đánh đổi riêng, và chúng tôi tin rằng việc thăm dò và nghiên cứu liên tục các chương trình bảo mật này chỉ có thể phục vụ để cải thiện toàn bộ quyền riêng tư của blockchain. Chúng tôi tin tưởng mạnh mẽ rằng giao thức Zerocoin kết hợp với các cải tiến trong so sánh Sigma sẽ thuận lợi với các chương trình ẩn danh khác, bằng cách cung cấp gói ẩn danh toàn diện, mang lại tính ẩn danh mạnh mẽ bằng cách sử dụng mật mã đã được chứng minh trong khi vẫn có thể mở rộng và kiểm tra được. Hơn nữa, chúng tôi cam kết liên tục tìm kiếm những cách mới để cải thiện hơn nữa Zerocoin.
Theo TapchiBitcoin.vn/zcoin.io
Coinbase chính thức hỗ trợ Zcash (ZEC) trên các ứng dụng điện thoại