在区块链世界中的token到底是什么?

本文深入浅出地介绍了区块链系统中的Token概念,从技术角度出发,解释了Token如何通过程序定义并承载特定权益,同时探讨了其在现实世界中的应用案例。



token的概念很广泛,在计算机领域中,无论是基础的网络架构还是服务系统的身份验证等,都有涉及到token的概念,然而在这里我想阐述的是在区块链世界中的token是什么。


相信对区块链有些了解的朋友,都或多或少的听过或者看过关于token的描述,过去的两年里,被炒的轰轰烈烈的,通过I-C-O方式去募集的那些个玩意儿,都是指的一种token,有人翻译为数字代币,有人称之为是通证,不管怎么说,总之就是被不少人认为是一种有价值的东西,不,应该说被认为是一种有价格的东西。


回想长时间以来对于区块链的概念阐述,都是基于技术角度的,总认为这样的阐述立场会更客观一些,更朴素一些,对于看官或者读者来说,能够排除其他的主观干扰或者排除一些别有用心的心理暗示。在之前所著的书籍《白话区块链中》,绝大部分的文字也都是阐述技术概念,很少讨论经济学上的意义,或者在社会学、金融领域等的定义。


很显然,如果说在技术上定义一下,区块链系统中的token是什么,那不过就是通过一段程序定义的符号或者说一个值。嗯?就这么结束了?呵呵,当然不是,我们可以在软件开发中通过程序定义各种值,难道那些都是能被称为token么?即便是在区块链软件的开发中或者基于某个基础链的智能合约开发中,随便定义一组数字量,难道就是token了?而这些定义程序不过就是寥寥数十行代码,比如我们常用的基于以太坊公链部署的token合约,最简单的程序代码,不过就十几行,我们来看一个例子:




如图所示,就是一份最简单的基于以太坊的token合约代码,部署在以太坊上时,初始化一个期初总量,这个总量是可以自己随便定义的,一百、一千、一万、一个亿或者更多都可以。部署后,你就拥有了一个名字叫MyToken的token了,或者叫代币,叫通证都可以。当然,这还只是区块链系统中定义token的其中一种方式,token还可以生成子token,可以有变化,定义方法或者说玩法还是挺多的。


说到这,很多朋友可能会有些迷茫,总觉的这个什么token的概念太虚了,真个是如梦幻泡影,如雾亦如电。其实不然,我们来举些例子吧,咱老百姓说话得接点地气。


1)大家在商店买东西的时候,买完一般都会要求收取一张发票,这张发票是商家开具的,证明商品的销售来源和价格的,这张发票就可以算是一种token;


2)古代的时候,有些钱庄银号,为了让客户方便在各地的分号兑换银两,会给客户开具带有兑换效力的银票,这个以银票也是一种token;


3)国家给每位公民都办理了身份证,这个身份证也是一种token;


4)某个村子,全村人都姓王,家家户户的人口信息都会登记到一个册子上,这个册子每隔一段时间就会印发,每户一本,这个册子也是一种token;


5)工厂里工人干活,每个人分配的工时会记录在本子上,到了月底就会汇总,换算成酬劳,这个记在本子上的工时也是一种token。


好了,让我们停一下,大家发现没有,这里被称之为是token的东东都有哪些共同点呢?


在考虑共同点的时候,我们来看下这些token有什么用。如果没有没有这些个发票、银票或者工时记录什么的会怎么样?那就会在需要兑换某种权益的时候没有对应的证明。是不是?


没有发票的话,如果要去店里退换货或者返修,人家可能就不认了;没有银票,那些个银号能给你兑钱么;没有工时记录,到了月底拿什么给你结算?


是的,我们发现这些个东西都承载了某种权益,当然了,这些权益都是有归属的,谁拥有这些个token的所有权,谁就拥有这些token所代表的权益。


那么,既然是一种权益,那自然也是可以转移喽,当然现实生活中的一些token并不都是能通过交易来转换所有者的,比如身份证就是不能随便卖的。


现在让我们再来抽象一下,要说以上这些个token的概念,那还是能理解的,毕竟代表了具体的一些权益的,可是建立在区块链系统中的那些个所谓的token代表了什么呢?比如我在以太坊上部署了一个token的合约程序,这代表了什么具体的权益呢?就这么数行数十行代码写的一段程序怎么就是token了呢?它代表了什么样的价值或者说权益呢?


首先,这些token合约程序,是部署在区块链系统之上的,区块链系统是一种网络系统,而且是一种分布式点对点的网络系统,在这样的一个网络系统中,存在着一种共识机制。在这个网络中,每条数据都是有所有权的,这个所有权通过一种叫私钥的密钥来识别,拥有私钥的人就拥有对应数据的所有权。而整个所有权会通过共识机制让全网来共同验证。比特币是这种机制,以太币是这种机制,以太坊上的token也是这种机制,在这种机制中产生的带有所有权的数据,就是一种token,它代表着什么样的权益呢?就是代表一种所有权,一种被网络中大多数节点都验证认可的所有权。


当然,区块链系统为了维持运转,是需要一整套的运行机制的,比如比特币系统、以太坊系统等,需要部署为一个网络,这个网络要尽可能的广泛,需要共识机制比如挖矿算法就是一种共识机制,当然也还有其他类型的共识机制,还需要有脚本指令系统用于转换所有权,以及等等


在这样的网络系统中,不依赖于某一个权威者,而是通过既定的规则机制来进行这个所有权的自动化证明,因此能获得参与者的认可共识,通过共识保障了所有权。


可能有朋友会问,说我发现目前在一些交易系统中就有交易这些token,价格或高或低,问题是就这么一个所有权,感觉就是人为制造出来的,也不对应什么具体的实物权益,怎么就有高高低低的价格呢?我们知道,一个所有权,不管它是否用于交易,它都是存在的,至于说价格,那是一种市场行为,或者说是炒作行为,这里面又有一番理论,就像黄金为什么会有价格,荷兰郁金香为什么会有价格,一套软件为什么会有价格等等,价格或许是反应这个token的价值的,或者只是人为炒作的,不用去管它,对于我们来说,理解token是一种所有权就可以了。


如果能够正确的使用token这个东西,那么可以设想在网络系统中通过token来携带相应的价值,转换相应的权益,可以去实现类似智能合约这种应用以及等等,可以去发挥一些创意,去对应现实生活中的一些需求,找到一些应用的点,将这个token与具体化的价值物连接起来,这样才能发挥token的作用,否则光是token是没有意义的,不管这个具体化的价值物是什么,它得是对人们有用的,能满足一些需求的才行。


以上就是对区块链系统中的token的一些个人观点,不足之处,欢迎大家指教。


想与作者有更多交流及互动,可扫描下图中二维码加入《白话区块链》读者圈。




(本文内容作者:蒋勇,原文首发于今日头条,作者回答提问“什么是token”)


以下是我们的社区介绍,欢迎各种合作、交流、学习:)



在迷你世界中实现玩家登录时的身份验证机制,可以通过结合客户端与服务器端的交互逻辑来完成。身份验证机制的核心目标是确保每个登录玩家的身份是真实且唯一的,防止冒名顶替或非法访问。以下是一些关键的技术实现方式: ### 使用唯一身份标识验证 在登录过程中,可以要求玩家提供唯一的身份标识,例如绑定的邮箱、手机号或第三方平台账号(如QQ、微信)。通过比对服务器端存储的用户信息,可以验证玩家身份的合法性。例如,玩家在输入账号和密码后,服务器将信息进行比对,并返回验证结果。 ```lua -- 示例代码:简单的登录验证逻辑 local function validateLogin(username, password) -- 从数据库中获取用户信息 local storedUser = database:getUser(username) if storedUser and storedUser.password == password then return true -- 验证成功 else return false -- 验证失败 end end -- 登录事件处理 function onPlayerLogin(player, inputUsername, inputPassword) if validateLogin(inputUsername, inputPassword) then player:send("登录成功,欢迎回来!") else player:kick("身份验证失败,请检查账号或密码。") end end ``` 该代码通过简单的账号密码比对实现身份验证,适用于小型服务器或测试环境。对于更复杂的场景,可以引入加密技术,如对密码进行哈希处理以防止数据泄露。 ### 基于加密通信的身份验证 为了进一步提升安全性,可以在登录过程中使用加密通信协议(如HTTPS)。通过SSL/TLS协议对数据进行加密,确保玩家的登录信息在传输过程中不会被窃取或篡改[^3]。例如,在登录请求中,玩家的账号和密码可以通过HTTPS协议发送到服务器,从而保护数据的完整性。 ### 第三方身份验证 利用第三方平台(如OAuth协议)进行身份验证是一种高效且安全的方式。玩家可以通过已有的社交账号(如QQ、微信)登录游戏,而无需重新注册新账号。这种方式不仅简化了登录流程,还提高了身份验证的可信度。 ```lua -- 示例代码:模拟第三方登录验证 local function verifyThirdPartyToken(token) -- 向第三方平台发送请求,验证token的有效性 local response = thirdPartyAPI:verifyToken(token) if response and response.isValid then return true -- 验证成功 else return false -- 验证失败 end end -- 第三方登录事件处理 function onThirdPartyLogin(player, token) if verifyThirdPartyToken(token) then player:send("通过第三方平台登录成功!") else player:kick("第三方身份验证失败。") end end ``` 该代码通过调用第三方API验证玩家的身份令牌,确保登录请求的合法性。 ### 使用NFT进行身份验证 在某些特定场景下,可以利用NFT作为身份验证的凭证。例如,玩家需要持有特定的NFT才能登录到某个房间或参与特定活动。这种方式可以结合区块链技术,确保身份凭证的唯一性和不可篡改性[^2]。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值