楼主:
jayfrog (寫ä¸å‡ºcoding)
2023-12-23 10:32:49推 oSCo: 拜托去问一个大学等级搞程式设计的,你提到 49.216.105.184 12/23 01:53
→ oSCo: 的根本不是大问题 49.216.105.184 12/23 01:53
→ k1popo80: 不懂技术请先学习再发言,你提到的问题 1.165.21.49 12/23 07:32
→ k1popo80: 根本不是问题 1.165.21.49 12/23 07:32
匿名性跟正确性怎么不是一个大问题?
正确性很简单,只要正确的记录下来就好。
而匿名性一直都是很难达成的的问题。
以比特币来说,很多人都说比特币有匿名性,所以洗钱才方便。
那是因为你没有办法知道每个钱包是谁拥有的,所以才有匿名性。
但如果你今天想要把比特币的钱换成实体的钱时,那匿名性就消失。
因为区块链上的交易是公开透明的,每一笔交易都找的到。
因此当我知道这个钱包是你的,那你之前所有的交易都会知道。
所以很容易就知道你在跟谁洗钱。
很多用区块链用e-voting的想法都是这样,只要每个人都给一个钱包,然后统计钱包所有
人的票,这样就可以达到匿名投票了。
但这里的问题的会变成,谁要给你这个钱包?只要给你钱包的那个人记录下来你跟钱包的
连结就会失去匿名性了。
而有些e-voting的设计则是用加密的方式。用非对称式加密的方式来加密选票,之后开票
的时候,再将票解密就好。
因为开票时就可以解密,就代表着选票其实可以随时解密。所以只要能解密的人,在你投
票后把票解密完就可以知道你投给谁。除非你相信拥有密钥的人,要不然是没有匿名性的
我看过比较特别的方法是用verifiable delay function (VDF)的方法。
VDF是一个需要长时间计算才能得到结果的function,但只要得到结果后,可以用快速的
时间验证结果对不对。
所以设计方式就将计算时间设成到开票时间前的时间长度,所以你只能投完票后,开始计
算,就可以在刚好在开票的时候就知道投票结果。但可惜的是这个可能防不能提前开票,
还是不能防止匿名性。因为我会知道需要记录这个VDF是谁丢的,要不然要有重复计票的
问题。
现行的e-voting的方法大致上应该都是以这些方法为主,然后再变型来达到不同的目的。
则上面来说,主要是都是你需要"相信"给你钱包或是拥有密钥的人,才会达到匿名性。
但是就是因为不想盲目相信,才会这么麻烦啊。
当然也有可能是我平常的survey不够,那oSCo、k1popo80两位大大跟我说有那些可行的方法
可以同时达到匿名性跟正确性。
对了,这整篇的文章还没有说到验证问题,你要怎么确保你的身份不要被别人使用。那也
是一般人觉的不可行的点,因为就会产生代投的问题。
题外话,其实电子投票有分两种,一种就是这篇所说的线上投票,另一种则是机台投票。
机台投票就是在投票所放一个机器,然后用这个机器让大家投票。不过这种还是没有办法
有匿名性,因为你可以记录投票时间,然后对照这个时间内投票的结果是什么。就可以知
道你投给谁。