4.4. Ví trực tuyến và sàn giao dịch
Cho đến nay, chúng ta đã nói về cách bạn có thể tự mình lưu trữ và quản lý bitcoin của mình. Bây giờ chúng ta thảo luận về những cách bạn có thể sử dụng dịch vụ của người khác để giúp bạn làm điều đó. Điều đầu tiên bạn có thể làm là sử dụng ví trực tuyến.
Ví trực tuyến
Ví trực tuyến giống như ví cục bộ mà bạn tự quản lý, ngoại trừ thông tin được lưu trữ trên đám mây và bạn truy cập thông tin đó bằng giao diện web trên máy tính hoặc ứng dụng trên điện thoại thông minh. Một số dịch vụ ví trực tuyến phổ biến trong năm 2015 là Coinbase và blockchain.info.
Điều quan trọng theo quan điểm bảo mật là trang web cung cấp mã chạy trên trình duyệt hoặc ứng dụng của bạn và nó cũng lưu trữ các khóa của bạn. Ở mức tối thiểu, nó sẽ có khả năng truy cập vào các khóa của bạn. Lý tưởng nhất là trang web sẽ mã hóa các khóa đó dưới một mật khẩu mà chỉ bạn biết, nhưng tất nhiên bạn phải tin tưởng để họ làm điều đó. Bạn phải tin tưởng mã của họ để không làm rò rỉ khóa hoặc mật khẩu của bạn.
Ví trực tuyến có những đánh đổi nhất định so với việc bạn tự làm. Một lợi thế lớn là nó thuận tiện. Bạn không phải cài đặt bất kỳ thứ gì trên máy tính để có thể sử dụng ví trực tuyến trong trình duyệt của mình. Trên điện thoại, bạn có thể phải cài đặt một ứng dụng chỉ một lần và nó sẽ không cần tải chuỗi khối xuống. Nó sẽ hoạt động trên nhiều thiết bị—bạn có thể có một ví duy nhất mà bạn truy cập trên máy tính để bàn và điện thoại của mình và nó sẽ hoạt động, vì ví thực sự sống trong đám mây.
Tuy nhiên, có những lo lắng về an ninh. Nếu trang web hoặc những người điều hành nó trở nên độc hại hoặc bị xâm nhập bằng cách nào đó, bitcoin của bạn đang gặp rắc rối, vì trang web cung cấp mã có những ngón tay khó hiểu trên bitcoin của bạn.
Lý tưởng nhất là trang web hoặc dịch vụ được điều hành bởi các chuyên gia bảo mật được đào tạo tốt hơn, hoặc có thể chăm chỉ hơn bạn trong việc duy trì bảo mật. Vì vậy, bạn có thể hy vọng rằng họ thực hiện công việc tốt hơn và đồng tiền của bạn thực sự an toàn hơn so với việc bạn tự lưu trữ chúng. Nhưng vào cuối ngày, bạn phải tin tưởng họ và bạn phải dựa vào họ để không bị tổn hại.
Sàn giao dịch Bitcoin
Để hiểu về các sàn giao dịch Bitcoin, trước tiên hãy nói về cách các ngân hàng hoặc các dịch vụ giống như ngân hàng hoạt động trong nền kinh tế truyền thống. Bạn đưa cho ngân hàng một số tiền—một khoản tiền gửi—và ngân hàng hứa sẽ trả lại cho bạn số tiền đó sau đó. Tất nhiên, điều quan trọng là ngân hàng không thực sự chỉ lấy tiền của bạn và đặt nó vào một chiếc hộp ở phòng sau. Tất cả những gì ngân hàng làm là hứa rằng nếu bạn yêu cầu tiền, họ sẽ trả lại. Ngân hàng thường để tiền ở một nơi khác, tức là đầu tư nó. Ngân hàng có thể giữ một số tiền dự trữ để đảm bảo rằng họ có thể thanh toán nhu cầu rút tiền vào một ngày bình thường, hoặc thậm chí có thể là một ngày bất thường. Nhiều ngân hàng thường sử dụng một thứ gọi là dự trữ một phần (fractional reserve): họ giữ một phần nhất định của tất cả các khoản tiền gửi không kỳ hạn để dự phòng đề phòng.
Sàn giao dịch bitcoin là các doanh nghiệp—ít nhất là từ quan điểm giao diện người dùng—hoạt động theo cách tương tự như các ngân hàng. Họ chấp nhận tiền gửi bitcoin và cũng giống như ngân hàng, họ sẽ hứa trả lại tiền theo yêu cầu sau này. Bạn cũng có thể chuyển tiền tệ fiat—tiền tệ truyền thống như đô la và euro—sang một sàn giao dịch bằng cách chuyển từ tài khoản ngân hàng của bạn. Sàn giao dịch hứa hẹn sẽ trả lại một trong hai hoặc cả hai loại tiền tệ trên yêu cầu. Sàn giao dịch cho phép bạn thực hiện các hoạt động khác nhau giống như ngân hàng. Bạn có thể thực hiện và nhận thanh toán bằng Bitcoin. Nghĩa là, bạn có thể hướng dẫn sàn giao dịch thanh toán một số bitcoin cho một bên cụ thể hoặc bạn có thể yêu cầu người khác thay mặt bạn gửi tiền vào sàn giao dịch cụ thể—đưa tiền vào tài khoản của bạn. Bạn cũng có thể đổi bitcoin lấy tiền tệ fiat hoặc ngược lại. Thông thường, các sàn giao dịch Bitcoin thực hiện trao đổi bằng cách tìm một số khách hàng muốn mua bitcoin bằng đô la và một khách hàng khác muốn bán bitcoin lấy đô la và khớp chúng với nhau. Nói cách khác, họ cố gắng tìm kiếm những khách hàng sẵn sàng có những vị thế đối lập trong một giao dịch. Nếu có một mức giá cả hai bên chấp nhận được, họ sẽ hoàn thành giao dịch đó.
Giả sử tài khoản của bạn tại một số sàn giao dịch có 5.000 đô la và 3 BTC, và bạn sử dụng sàn giao dịch để đặt hàng mua 2 BTC với giá 580 đô la mỗi loại. Sàn giao dịch tìm một người sẵn sàng thực hiện phía bên kia của giao dịch đó và giao dịch sẽ diễn ra. Bây giờ bạn có 5 BTC trong tài khoản của mình thay vì 3 BTC và 3.840 đô la thay vì 5.000 đô la.
Điều quan trọng cần lưu ý ở đây là khi giao dịch này xảy ra liên quan đến bạn và một khách hàng khác của cùng một sàn giao dịch, thì không có giao dịch nào thực sự xảy ra trên chuỗi khối Bitcoin. Sàn giao dịch không cần phải đi đến chuỗi khối để chuyển bitcoin hoặc đô la từ tài khoản này sang tài khoản khác. Tất cả những gì xảy ra trong giao dịch này là sàn giao dịch hiện đang đưa ra một lời hứa với bạn khác với những gì họ đã đưa ra trước đây. Trước đây họ nói, “chúng tôi sẽ cung cấp cho bạn 5.000 đô la và 3 BTC”, và bây giờ họ nói “chúng tôi sẽ cung cấp cho bạn 3.840 đô la và 5 BTC.” Đó chỉ là một sự thay đổi trong lời hứa của họ—không có chuyển động thực tế nào của tiền diễn ra thông qua nền kinh tế đô la hoặc thông qua chuỗi khối. Tất nhiên, người tham gia giao dịch khác đã có những lời hứa với anh ta thay đổi theo cách ngược lại.
Có những ưu và khuyết điểm khi sử dụng sàn giao dịch. Một trong những lợi thế lớn là các sàn giao dịch giúp kết nối nền kinh tế Bitcoin và dòng chảy của bitcoin với nền kinh tế tiền tệ fiat, để dễ dàng chuyển giá trị qua lại.
Điều bất lợi là rủi ro. Bạn có cùng loại rủi ro mà bạn phải đối mặt với các ngân hàng. Những rủi ro đó được chia thành ba loại.
Ba loại rủi ro
Rủi ro đầu tiên là rủi ro đột biến rút tiền gửi (bank run). Một cuộc bỏ chạy xảy ra khi nhiều người xuất hiện cùng lúc và đòi lại tiền của họ. Vì ngân hàng chỉ duy trì các khoản dự trữ nhỏ, nó có thể không thể đối phó với việc rút tiền đồng thời. Mối nguy hiểm bắt nguồn từ hành vi hoảng sợ: một khi tin đồn bắt đầu lan truyền rằng một ngân hàng hoặc sàn giao dịch có thể gặp khó khăn và có thể bắt đầu từ chối thực hiện việc rút tiền, thì mọi người sẽ chạy toán loạn cố gắng rút tiền của họ trước đám đông, và thác nhu cầu xảy ra.
Rủi ro thứ hai là chủ sở hữu của các ngân hàng có thể chỉ là kẻ gian đang thực hiện một kế hoạch Ponzi. Đây là một kế hoạch mà một người nào đó yêu cầu mọi người đưa tiền cho họ để đổi lấy lợi nhuận trong tương lai, nhưng sau đó thực sự lấy tiền của họ và sử dụng nó để trả lợi nhuận cho những người đã mua trước đó. Một kế hoạch như vậy cuối cùng sẽ thất bại và khiến nhiều người mất rất nhiều tiền. Bernie Madoff nổi tiếng nhất đã thực hiện điều này trong ký ức gần đây.
Rủi ro thứ ba là bị hack: rủi ro mà ai đó—thậm chí có thể là nhân viên của sàn giao dịch—sẽ quản lý để xâm nhập vào bảo mật của sàn giao dịch. Vì các sàn giao dịch lưu trữ thông tin quan trọng kiểm soát số lượng lớn bitcoin, nên họ cần phải cẩn thận về bảo mật phần mềm và các quy trình của họ—cách họ quản lý kho lưu trữ nóng và lạnh của mình và tất cả những điều đó. Nếu xảy ra sự cố, tiền của bạn có thể bị đánh cắp khỏi sàn giao dịch.
Tất cả những điều này đã xảy ra. Chúng ta đã thấy các sàn giao dịch không thành công do tương đương với một đợt đột biến rút tiền gửi. Chúng ta đã thấy các sàn giao dịch thất bại vì những người điều hành sàn giao dịch là kẻ lừa đảo và chúng ta đã thấy các sàn giao dịch thất bại vì các vụ đột nhập. Trên thực tế, những con số thống kê không đáng khích lệ. Một nghiên cứu vào năm 2013 cho thấy 18 trong số 40 sàn giao dịch Bitcoin đã đóng cửa vì lỗi hoặc một số không có khả năng thanh toán số tiền mà sàn giao dịch đã hứa sẽ thanh toán.
Ví dụ nổi tiếng nhất về điều này tất nhiên là Mt. Gox. Mt. Gox đã từng là sàn giao dịch Bitcoin lớn nhất, và cuối cùng nó bị vỡ nợ, không thể trả hết số tiền mà nó mắc nợ. Mt. Gox là một công ty Nhật Bản, và cuối cùng nó đã tuyên bố phá sản và khiến rất nhiều người tự hỏi tiền của họ đã đi đâu. Kể từ năm 2014, vụ phá sản của Mt. Gox đang được thông qua tòa án Nhật Bản và Mỹ, và sẽ phải mất một thời gian nữa chúng ta mới biết chính xác số tiền đã đi đâu. Một điều chúng ta biết là có rất nhiều tiền và Mt. Gox không còn nữa. Vì vậy, đây là một câu chuyện cảnh báo về việc sử dụng các sàn giao dịch.
Kết nối điều này trở lại với các ngân hàng, chúng ta không thấy tỷ lệ thất bại 45% đối với các ngân hàng ở hầu hết các nước phát triển, một phần là do quy định. Các chính phủ điều chỉnh các ngân hàng truyền thống theo nhiều cách khác nhau.
Quy chế ngân hàng
Các chính phủ thường áp đặt một yêu cầu dự trữ tối thiểu đối với các ngân hàng. Tại Hoa Kỳ, phần tiền gửi không kỳ hạn mà các ngân hàng bắt buộc phải có ở dạng lỏng thường là 3–10 phần trăm, để ngân hàng có thể xử lý lượng tiền rút tăng đột biến nếu cần thiết. Các chính phủ cũng thường quy định các loại đầu tư và phương pháp quản lý tiền mà các ngân hàng có thể sử dụng. Mục đích là để đảm bảo rằng tài sản của ngân hàng được đầu tư vào những nơi có rủi ro tương đối thấp, bởi vì tài sản của họ thực sự là của những người gửi tiền theo một nghĩa nào đó.
Để đổi lấy những hình thức quy định này, các chính phủ thường làm những việc để giúp các ngân hàng hoặc giúp đỡ những người gửi tiền của họ. Đầu tiên, các chính phủ phát hành bảo hiểm tiền gửi. Có nghĩa là, chính phủ hứa với những người gửi tiền rằng nếu một ngân hàng tuân theo các quy tắc này, chính phủ sẽ kiếm được lợi nhuận từ ít nhất một phần số tiền gửi đó. Các chính phủ đôi khi cũng đóng vai trò là “người cho vay phương sách cuối cùng”. Nếu một ngân hàng gặp khó khăn nhưng về cơ bản là có khả năng giải quyết, chính phủ có thể can thiệp và cho ngân hàng vay tiền để khắc phục tình trạng đó cho đến khi ngân hàng có thể chuyển tiền mà không còn khó khăn khi cần thiết.
Vì vậy, các ngân hàng truyền thống được quy định theo cách này. Các sàn giao dịch bitcoin thì không. Câu hỏi về việc liệu các sàn giao dịch Bitcoin hoặc các hoạt động kinh doanh Bitcoin khác có nên được quản lý hay không là chủ đề mà chúng ta quay lại trong Chương 7.
Bằng chứng dự trữ
Một sàn giao dịch Bitcoin hoặc một người nào khác nắm giữ bitcoin có thể sử dụng một thủ thuật mật mã được gọi là “bằng chứng dự trữ” để trấn an khách hàng về sự an toàn của số tiền họ đã gửi. Mục đích là để sàn giao dịch hoặc doanh nghiệp nắm giữ bitcoin chứng minh rằng nó có dự trữ theo tỷ lệ—rằng họ giữ quyền kiểm soát có lẽ 25% hoặc thậm chí có thể là 100% số tiền gửi mà mọi người đã thực hiện.
Chúng ta có thể chia vấn đề bằng chứng dự trữ thành hai phần. Đầu tiên là chứng minh lượng dự trữ mà sàn giao dịch đang nắm giữ—một phần tương đối dễ dàng. Công ty chỉ cần xuất bản một giao dịch tự thanh toán hợp lệ của số tiền dự trữ được yêu cầu. Có nghĩa là, nếu họ tuyên bố có 100.000 bitcoin, họ sẽ tạo một giao dịch trong đó họ trả 100.000 bitcoin cho chính mình và cho thấy rằng giao dịch đó là hợp lệ. Sau đó, họ ký một chuỗi thử thách—một chuỗi bit ngẫu nhiên do một bên không thiên vị nào đó tạo ra—với cùng một khóa riêng đã được sử dụng để ký giao dịch thanh toán cho chính mình. Điều này chứng tỏ rằng ai đó đã biết khóa cá nhân đó đã tham gia vào bằng chứng dự trữ.
Chúng ta cần lưu ý hai lưu ý. Nói một cách chính xác, quá trình này không phải là bằng chứng cho thấy bên tuyên bố sở hữu khoản dự trữ trên thực tế sở hữu nó, mà chỉ là bất cứ ai sở hữu 100.000 bitcoin đó sẵn sàng hợp tác trong quá trình này. Tuy nhiên, nó giống như một bằng chứng cho thấy ai đó kiểm soát hoặc biết ai đó kiểm soát số tiền nhất định. Ngoài ra, hãy lưu ý rằng bạn luôn có thể yêu cầu bồi thường: tổ chức có thể có 150.000 bitcoin nhưng chọn tự thanh toán chỉ 100.000. Vì vậy, bằng chứng về dự trữ này thiết lập mức tối thiểu mà công ty có, không phải mức tối đa.
Bằng chứng về Nợ phải trả
Phần thứ hai là chứng minh một công ty nắm giữ bao nhiêu tiền gửi không kỳ hạn, đây là phần khó. Nếu sàn giao dịch có thể chứng minh dự trữ và tiền gửi không kỳ hạn, thì bất kỳ ai cũng có thể chia hai con số đó để xác định dự trữ theo tỷ lệ. Chúng ta sẽ trình bày một kế hoạch cho phép sàn giao dịch xác nhận quyền sở hữu quá mức, nhưng không xác nhận dưới mức, các khoản tiền gửi không kỳ hạn của nó. Vì vậy, nếu công ty có thể chứng minh rằng các khoản dự trữ của mình ít nhất là một số lượng nhất định và các khoản nợ phải trả của nó nhiều nhất là một số tiền nhất định, được gộp lại với nhau, thì nó đã chứng minh được một giới hạn dưới đối với dự trữ một phần của mình.
Nếu sàn giao dịch không quan tâm chút nào đến quyền riêng tư của người dùng, thì họ có thể chỉ cần xuất bản hồ sơ của mình—cụ thể là tên người dùng và số tiền của mọi khách hàng bằng khoản tiền gửi không kỳ hạn. Giờ đây, bất kỳ ai cũng có thể tính toán tổng nợ phải trả của sàn giao dịch và nếu họ bỏ qua bất kỳ khách hàng nào hoặc nói dối về giá trị tiền gửi của họ, thì có nguy cơ những khách hàng đó sẽ gian lận. Công ty có thể tạo ra những người dùng giả mạo, nhưng nó chỉ có thể tăng giá trị của tổng các khoản nợ được yêu cầu theo cách này. Vì vậy, miễn là không có khiếu nại của khách hàng, việc xuất bản cho phép công ty chứng minh mức ràng buộc dưới đối với các khoản tiền gửi của mình.Tất nhiên, mẹo là chứng minh giới hạn dưới này trong khi tôn trọng quyền riêng tư của người dùng.
HÌNH 4.5. Bằng chứng về các khoản nợ phải trả. Sàn giao dịch công bố gốc của cây Merkle có chứa tất cả người dùng ở lá, bao gồm cả số tiền gửi. Bất kỳ người dùng nào cũng có thể yêu cầu bằng chứng về việc đưa vào cây và xác minh rằng tổng số tiền gửi được lan truyền chính xác đến gốc của cây.
Để làm điều này, sàn giao dịch có thể sử dụng cây Merkle, được thảo luận trong Chương 1. Nhớ lại rằng cây Merkle là một cây nhị phân được xây dựng với các con trỏ băm, để mỗi con trỏ không chỉ chỉ ra nơi chúng ta có thể lấy một phần thông tin mà còn cho biết hàm băm mật mã của thông tin đó là gì. Sàn giao dịch thực hiện bằng chứng bằng cách xây dựng một cây Merkle, trong đó mỗi lá tương ứng với một người dùng và bằng cách xuất bản hàm băm gốc của nó (Hình 4.5). Tương tự như giao thức ngây thơ đã thảo luận trong đoạn trước, mỗi người dùng chịu trách nhiệm đảm bảo rằng cô ấy được đưa vào cây. Ngoài ra, có một cách để người dùng kiểm tra chung tổng số tiền gửi đã yêu cầu. Bây giờ chúng ta hãy đi sâu vào chi tiết.
Chúng ta sẽ thêm vào mỗi một trong những con trỏ băm này một trường hoặc thuộc tính khác. Thuộc tính này là một số đại diện cho tổng giá trị tiền tệ tính bằng bitcoin của tất cả các khoản tiền gửi nằm trong cây con bên dưới con trỏ băm đó trong cây. Để điều này là đúng, giá trị tương ứng với mỗi con trỏ băm phải là tổng giá trị của hai con trỏ băm bên dưới nó.
Sàn giao dịch xây dựng cây này, ký mã bằng mật mã con trỏ gốc cùng với giá trị thuộc tính gốc và xuất bản nó. Giá trị gốc tất nhiên là tổng nợ phải trả, con số mà chúng ta quan tâm. Sàn giao dịch đang đưa ra tuyên bố rằng tất cả người dùng được đại diện trong các lá của cây, rằng giá trị tiền gửi của họ được trình bày chính xác và các giá trị đó được lan truyền lên chính xác trong cây, để giá trị gốc là tổng của tất cả số tiền gửi của người dùng.
Giờ đây, mỗi khách hàng có thể đến tổ chức và yêu cầu bằng chứng về việc đưa vào đúng. Sau đó, sàn giao dịch phải cho khách hàng xem một phần cây từ lá của người dùng đó cho đến gốc, như thể hiện trong Hình 4.6. Sau đó, khách hàng xác minh rằng:
HÌNH 4.6. Bằng chứng về việc đưa vào cây Merkle. Nút lá được tiết lộ, cũng như anh em của các nút trên đường đi từ lá đến gốc.
- Con trỏ băm gốc và giá trị gốc giống như những gì mà sàn giao dịch đã ký và xuất bản.
- Các con trỏ băm là nhất quán hoàn toàn; nghĩa là mỗi giá trị băm thực sự là băm mật mã của nút mà nó trỏ tới.
- Lá chứa thông tin tài khoản người dùng chính xác (ví dụ: tên người dùng / ID người dùng và số tiền gửi).
- Mỗi giá trị là tổng giá trị của hai giá trị bên dưới nó.
- Không có giá trị nào là số âm.
Tin tốt là nếu mọi khách hàng làm điều này, thì mọi nhánh của cây này sẽ được khám phá và ai đó sẽ xác minh rằng đối với mọi con trỏ băm, giá trị liên kết của nó bằng tổng các giá trị của hai con của nó. Điều quan trọng, sàn giao dịch không thể trình bày các giá trị khác nhau ở bất kỳ phần nào của cây cho các khách hàng khác nhau. Đó là bởi vì làm như vậy sẽ ngụ ý khả năng tìm thấy xung đột băm hoặc hiển thị các giá trị gốc khác nhau cho các khách hàng khác nhau, điều mà chúng ta cho là không thể.
Hãy tóm tắt lại. Đầu tiên, sàn giao dịch chứng minh rằng họ có ít nhất X lượng tiền tệ dự trữ bằng cách tự thực hiện giao dịch với số tiền đó. Sau đó, họ chứng minh rằng khách hàng của họ có nhiều nhất một số tiền Y đã gửi. Điều này cho thấy rằng phần dự trữ của họ ít nhất là X/Y. Điều đó có nghĩa là nếu một sàn giao dịch Bitcoin muốn chứng minh rằng họ nắm giữ 25 phần trăm (hoặc 100 phần trăm) dự trữ trên tất cả các khoản tiền gửi, họ có thể làm điều đó theo cách mà bất kỳ ai cũng có thể xác minh độc lập và không cần cơ quan quản lý trung tâm.
Bạn có thể nhận thấy rằng hai bằng chứng được trình bày ở đây (bằng chứng về khoản dự trữ bằng cách ký chuỗi thách thức và bằng chứng về trách nhiệm pháp lý thông qua cây Merkle) tiết lộ rất nhiều thông tin cá nhân. Cụ thể, họ tiết lộ tất cả các địa chỉ đang được sử dụng bởi sàn giao dịch,tổng giá trị của các khoản dự trữ và nợ phải trả, và thậm chí một số thông tin về số dư của khách hàng cá nhân. Các sàn giao dịch thực sự do dự trong việc công bố thông tin này và do đó, các bằng chứng mật mã về dự trữ rất hiếm.
Một giao thức được đề xuất gần đây được gọi là “Các khoản dự phòng” (Provisions) cho phép chứng minh khả năng thanh toán tương tự, nhưng không tiết lộ tổng nợ hoặc dự trữ hoặc địa chỉ đang sử dụng. Giao thức này sử dụng mật mã nâng cao hơn và chúng tôi sẽ không trình bày ở đây, nhưng đó là một ví dụ khác cho thấy cách mật mã có thể được sử dụng để đảm bảo quyền riêng tư.
Khả năng thanh toán là một khía cạnh của quy định mà các sàn giao dịch Bitcoin có thể chứng minh một cách tự nguyện, nhưng các khía cạnh khác của quy định khó được đảm bảo hơn, như chúng ta đã thảo luận trong Chương 7.