Olas
Go to Olas Website
  • Introduction
    • Economic Model Overview
    • Information Markets Overview
    • Stablecoin Overview
  • Participants
    • Reader
    • Content Contributor
    • Curator
    • Fact Checker
    • Judge
    • Donor
  • Components
    • Identity Layer
    • Initial Monetary Subsidy
    • Funding Pools
    • Stablecoin
      • Issuance and Stability Mechanisms
    • Reputation Systems
      • Reputation System Architecture
      • Reputation Algorithms
      • Impact of Reputation Score By Role
    • Attestations
      • Citation Systems
    • Tagging System
    • Digital Assets
  • Markets
    • Funding Markets
      • News & Opinion Funding Mechanisms
        • Subsidy Allocation Mechanism
        • Quadratic Funding Competitions
      • Investigative Journalism & Scientific Research Funding Mechanisms
        • Investment and Funding Competitions
    • Quality Control Markets
      • Fact Reporting Markets
      • Opinion Markets
      • Scientific Research Markets
        • Review Markets
        • Replication Markets
    • Tipping System
Powered by GitBook
On this page
  • Payout Mechanisms
  • Deciding Market Outcome
  • When does the market resolve to an outcome of SPA ?
  • Surprisingly Popular Answer (SPA) Payout Mechanism
  • When does the market resolve to an outcome of PA?
  • Popular Answer (PA) Payout Mechanism
  1. Markets
  2. Quality Control Markets

Opinion Markets

Leveraging Bayesian Truth Serum to Reward Correct Contrarians

Last updated 6 months ago

The Opinion Markets within Olas serve as a platform where contributors offer diverse opinions and predictions on various subjects. The great weakness of traditional prediction markets in this sector is that bettors are more incentivised to bet on what they believe the majority believes to be true rather than what they know to be true themselves. This biases outcomes to popularly held but incorrect beliefs.

The Bayesian Truth Serum (BTS) algorithm was specifically designed to remedy this bias. Olas employs this algorithm via the article tipping/commenting system and implements a specially designed market on top of it to reward contrarians that believe they hold correct but unpopular beliefs. If it turns out that there are others that share this position in greater numbers than alternative possibilities - the market will provide a signal to everyone else that this 'surprisingly popular' answer is likely to be the most insightful.

The BTS algorithm works using on a dual-questioning approach, pairing factual queries with predictions of popular opinions.

Here is an overview of how the opinion markets work:

Each opinion piece poses a factual question (Q) paired with a popular opinion question (P) related to the topic ( Question Formulation ). Tippers respond to question Q and P with tips and voice their opinions. BTS evaluates discrepancies between responses to Q and P, identifying the Surprisingly Popular Answer (SPA).

Discrepancy in the BTS Method:

In the context of the BTS methodology within Olas, the discrepancy represents the difference or variance between two sets of responses. The discrepancy calculation involves comparing the percentage of participants who responded to the factual question (either "Yes" or "No") with the percentage of participants who predicted what they believe most people will respond to the same question.

Example:

  • If 60% of participants responded "Yes" to the factual question, but 70% predicted that most people would respond "Yes," the discrepancy for "Yes" would be -10% (60% - 70% = -10%).

  • Similarly, if 40% responded "No" to the factual question, but 30% predicted that most people would respond "No," the discrepancy for "No" would be +10% (40% - 30% = +10%).

The discrepancies highlight the difference between participants' actual responses and their predictions regarding the collective opinion. This variance is crucial in identifying the SPA, which is the response with the larger discrepancy, as it signifies an unexpected or contrary view compared to popular expectation.

Market Outcome:

Once the market is settled, there can be 2 outcomes - Popular Answer (PA) or Surprisingly Popular Answer (SPA). PA occurs when there are not enough contrarian opinions on the other hand SPA happens when there are enough contrarian opinions.

In the both the cases, the Content Contributor is paid a payout depending on where the market stands (i.e. market share on writer's side).

Payout Mechanisms

Deciding Market Outcome

Once market expires and is ready to settle, we calculate the SPA strength (s) and dynamic threshold (t) to determine if an SPA exists or not.

Discrepancy Calculation:

Dy = Qy −Py \boxed{ D_y \, = \, Q_y \, - P_y \,}Dy​=Qy​−Py​​

Dy=D_y = Dy​= Discrepancy for YES response Qy Q_y \, Qy​is the percentage of participants who voted "YES" for Q PyP_y Py​ is the percentage of participants who voted "YES" for P

Dn = Qn − Pn \boxed{ D_n \, = \, Q_n \, - \, P_n \,}Dn​=Qn​−Pn​​ Dn=D_n =Dn​= Discrepancy for NO response QnQ_nQn​ is the percentage of participants who voted "NO" for Q PnP_nPn​ is the percentage of participants who voted "NO" for P

Spread ( X% ) = ∣Dy∣ + ∣Dn∣\boxed{ Spread \, ( \, X\% \, ) \, = \, |D_y| \, + \, |D_n| }Spread(X%)=∣Dy​∣+∣Dn​∣​

Spread (X%) is the sum of the absolute value of discrepancy for Yes and the absolute value of discrepancy for No.

Dynamic Threshold (t)

Dynamic Threshold is a percentage value which helps us decide if an SPA exists or not. It is calculated using a logarithmic graph which takes into account the total number of participants in the market.

t(n)={18 if n≤106+12⋅(1−(ln⁡(n/10)ln⁡(500))0.4) if 10<n<50006 if n≥5000Where:∙ n is the sample size∙ t(n) is the threshold percentage of total votes required∙ ln⁡ is the natural logarithmt(n) = \begin{cases} 18 & \text{ if } n \leq 10 \\[1ex] 6 + 12 \cdot \left(1 - \left(\frac{\ln(n/10)}{\ln(500)}\right)^{0.4}\right) & \text{ if } 10 < n < 5000 \\[1ex] 6 & \text{ if } n \geq 5000 \end{cases} \\ \begin{aligned} \text{Where:} \\ & \bullet \ n \text{ is the sample size} \\ & \bullet \ t(n) \text{ is the threshold percentage of total votes required} \\ & \bullet \ \ln \text{ is the natural logarithm} \end{aligned}t(n)=⎩⎨⎧​186+12⋅(1−(ln(500)ln(n/10)​)0.4)6​ if n≤10 if 10<n<5000 if n≥5000​Where:​∙ n is the sample size∙ t(n) is the threshold percentage of total votes required∙ ln is the natural logarithm​

When does the market resolve to an outcome of SPA ?

If the SPA spread ratio (X%) exists with a strength of greater than or equal to dynamic threshold (t), we say that SPA exists.

if(X≥t) SPA existswhere:∙ X is the SPA spread ratios∙ t is dynamic thresholdif( X ≥ t) \ \text{SPA exists} \\ \begin{aligned} \\ \text{where:} \\ & \bullet \text{ X is the SPA spread ratios} \\ & \bullet \ \text{t is dynamic threshold} \\ \end{aligned}if(X≥t) SPA existswhere:​∙ X is the SPA spread ratios∙ t is dynamic threshold​

Surprisingly Popular Answer (SPA) Payout Mechanism

SPA Strength (s)

SPA Strength (s) is SPA spread (X%) capped to a limit of t to 2.5t.

s(X,t)=min⁡(2.5⋅t,max⁡(t,X))where:∙ t is the threshold∙ X is the SPA spread\text{s}(X, t) = \min\left(2.5 \cdot t, \max\left(t, \text{X}\right)\right) \\ \begin{aligned} \\ \text{where:} \\ & \bullet \ t \text{ is the threshold} \\ & \bullet \ \text{X is the SPA spread} \\ \end{aligned}s(X,t)=min(2.5⋅t,max(t,X))where:​∙ t is the threshold∙ X is the SPA spread​

SPA Influence (i)

This is what decides how much of an influence SPA has on the market, it ranges from 0 to 1. 0 being 0% influence of SPA and 1 being 100% influence of SPA on the market.

i(s,t)=(s−t)/1.5twhere:∙ 0 ≤ i ≤ 1 ∙ s is the SPA strength∙ t is the SPA threshold percentage\text{i}(s, t) = (s-t)/1.5t \\ \begin{aligned} \\ \text{where:} \\ & \bullet \text { 0 ≤ i ≤ 1 } \\ & \bullet \ s \text{ is the SPA strength} \\ & \bullet \ \text{t is the SPA threshold percentage} \\ \end{aligned}i(s,t)=(s−t)/1.5twhere:​∙ 0 ≤ i ≤ 1 ∙ s is the SPA strength∙ t is the SPA threshold percentage​

Curvature Factor (c)

Decides the curvature of the curve

c=0.7⋅iwhere: 0 ≤ c ≤ 0.7c = 0.7 \cdot i \\ \begin{aligned} \text{where:} \ & \text {0 ≤ c ≤ 0.7} \\ \end{aligned}c=0.7⋅iwhere: ​0 ≤ c ≤ 0.7​

SPA Payout Percentage

This function takes into account the influence (i) (which is calculated using the SPA strength and threshold), the market share from writer's perspective and the curvature (decided via the influence) to come up with a percentage value that dictates how we payout the Content Contributor.

f(x,t,s)={0.5+0.5⋅iif x=00.5+0.5⋅i⋅(1−(x0.45)11−c)if 0<x<0.450.5if 0.45≤x≤0.550.5−0.5⋅i⋅(1−(1−x−0.550.45)11−c)if 0.55<x<10.5⋅(1−i)if x=1where:∙ x is the market share from writer’s perspective∙ i is the SPA influence on market payout∙ c is the curvaturef(x, t, s) = \begin{cases} 0.5 + 0.5\cdot i & \text{if } x = 0 \\[2ex] 0.5 + 0.5\cdot i \cdot \left(1 - \left(\frac{x}{0.45}\right)^{\frac{1}{1-c}}\right) & \text{if } 0 < x < 0.45 \\[2ex] 0.5 & \text{if } 0.45 \leq x \leq 0.55 \\[2ex] 0.5 - 0.5\cdot i \cdot \left(1 - \left(1 - \frac{x-0.55}{0.45}\right)^{\frac{1}{1-c}}\right) & \text{if } 0.55 < x < 1 \\[2ex] 0.5 \cdot (1 - i) & \text{if } x = 1 \end{cases}\\ \begin{aligned} \\ \text{where:} \\ & \bullet \ x \text{ is the market share from writer's perspective} \\ & \bullet \text{ i is the SPA influence on market payout} \\ & \bullet \ c \text{ is the curvature} \end{aligned}f(x,t,s)=⎩⎨⎧​0.5+0.5⋅i0.5+0.5⋅i⋅(1−(0.45x​)1−c1​)0.50.5−0.5⋅i⋅(1−(1−0.45x−0.55​)1−c1​)0.5⋅(1−i)​if x=0if 0<x<0.45if 0.45≤x≤0.55if 0.55<x<1if x=1​where:​∙ x is the market share from writer’s perspective∙ i is the SPA influence on market payout∙ c is the curvature​

SPA Payout

Pspa=f(x,t,s)⋅(T+S)where:∙f is the SPA Payout percentage∙x is the market share from writer’s perspective∙T is the total tips received∙S is the writer’s original stakePspa = f(x,t,s) \cdot (T + S) \\ \begin{aligned} \\ \text{where:} \\ & \bullet \text{f is the SPA Payout percentage} \\ & \bullet \text{x is the market share from writer's perspective} \\ & \bullet \text{T is the total tips received} \\ & \bullet \text{S is the writer's original stake} \end{aligned}Pspa=f(x,t,s)⋅(T+S)where:​∙f is the SPA Payout percentage∙x is the market share from writer’s perspective∙T is the total tips received∙S is the writer’s original stake​

When does the market resolve to an outcome of PA?

if(X<t)  PA existswhere:∙ X is the SPA spread ratio∙ t is dynamic thresholdif( X < t) \ \text{ PA exists} \\ \begin{aligned} \\ \text{where:} \\ & \bullet \text{ X is the SPA spread ratio} \\ & \bullet \ \text{t is dynamic threshold} \\ \end{aligned}if(X<t)  PA existswhere:​∙ X is the SPA spread ratio∙ t is dynamic threshold​

Popular Answer (PA) Payout Mechanism

Parameters:∙ xMarket Share(0≤x≤1)∙ TTotal Tips∙ SminMinimum Stake∙ SmaxMaximum Stake∙ SStake Amount∙ rReputation Score(0-100)Constants:∙ clow=0.85(Curvature for 0≤x<0.45)∙ chigh=0.65(Curvature for 0.55<x≤1)∙ p=0.3(Stake power)∙ α=0.7(Low stake penalty factor)∙ m=0.03(Middle curvature)∙ k=1(High performance multiplier factor)\begin{aligned} \textbf{Parameters:} & \\ & \bullet \ x && \text{Market Share} && (0 \leq x \leq 1) \\ & \bullet \ T && \text{Total Tips} \\ & \bullet \ S_{\text{min}} && \text{Minimum Stake} \\ & \bullet \ S_{\text{max}} && \text{Maximum Stake} \\ & \bullet \ S && \text{Stake Amount} \\ & \bullet \ r && \text{Reputation Score} && (0\text{-}100) \\[2ex] \textbf{Constants:} & \\ & \bullet \ c_{\text{low}} && = 0.85 && \text{(Curvature for } 0 \leq x < 0.45\text{)} \\ & \bullet \ c_{\text{high}} && = 0.65 && \text{(Curvature for } 0.55 < x \leq 1\text{)} \\ & \bullet \ p && = 0.3 && \text{(Stake power)} \\ & \bullet \ \alpha && = 0.7 && \text{(Low stake penalty factor)} \\ & \bullet \ m && = 0.03 && \text{(Middle curvature)} \\ & \bullet \ k && = 1 && \text{(High performance multiplier factor)} \end{aligned}Parameters:Constants:​∙ x∙ T∙ Smin​∙ Smax​∙ S∙ r∙ clow​∙ chigh​∙ p∙ α∙ m∙ k​​Market ShareTotal TipsMinimum StakeMaximum StakeStake AmountReputation Score=0.85=0.65=0.3=0.7=0.03=1​​(0≤x≤1)(0-100)(Curvature for 0≤x<0.45)(Curvature for 0.55<x≤1)(Stake power)(Low stake penalty factor)(Middle curvature)(High performance multiplier factor)​

PA Payout

We calculate the payout for popular answer by using a base curve which is influenced by various multipliers and penalties explained below.

Ppa(x, T, S, r) = \min\left(T, \left(\frac{B(x)}{F(T, S)} \cdot L(x, T, S) \cdot H(x, S)\right) \cdot R(r, \text{Potential_Max_Payout}) \right)

Base Payout B(x)

This determines the base curve for the popular answer payout mechanism.

B(x)=T⋅{0.5⋅(x0.45)2clow+1if 0≤x<0.450.5+(x−0.5)⋅mif 0.45≤x≤0.551−0.5⋅(1−x0.45)2chigh+1if 0.55<x≤1B(x) = T \cdot \begin{cases} 0.5 \cdot \left(\frac{x}{0.45}\right)^{2c_{\text{low}} + 1} & \text{if } 0 \leq x < 0.45 \\[2ex] 0.5 + (x - 0.5) \cdot m & \text{if } 0.45 \leq x \leq 0.55 \\[2ex] 1 - 0.5 \cdot \left(\frac{1-x}{0.45}\right)^{2c_{\text{high}} + 1} & \text{if } 0.55 < x \leq 1 \end{cases}B(x)=T⋅⎩⎨⎧​0.5⋅(0.45x​)2clow​+10.5+(x−0.5)⋅m1−0.5⋅(0.451−x​)2chigh​+1​if 0≤x<0.45if 0.45≤x≤0.55if 0.55<x≤1​

Stake Factor F(T, S)

Stake factor influences the base payout curve depending on the ratio of Tips to Stake throughout the spectrum.

F(T,S)=(TS)pF(T, S) = \left(\frac{T}{S}\right)^p F(T,S)=(ST​)p

Low Stake Penalty L(x, T, S)

Penalizes for low stake when the market share is less than 45%.

L(x,T,S)={1−(0.45−x0.45)α⋅(1−ST)if x<0.451if x≥0.45L(x, T, S) = \begin{cases} 1 - \left(\frac{0.45 - x}{0.45}\right)^{\alpha} \cdot \left(1 - \frac{S}{T}\right) & \text{if } x < 0.45 \\[2ex] 1 & \text{if } x \geq 0.45 \end{cases}L(x,T,S)=⎩⎨⎧​1−(0.450.45−x​)α⋅(1−TS​)1​if x<0.45if x≥0.45​

Reputation Multiplier R(r, Potential_Max_Payout)

R(r,Potential_Max_Payout)=1+r100⋅T−Potential_Max_PayoutPotential_Max_PayoutR(r, \text{Potential\_Max\_Payout}) = 1 + \frac{r}{100} \cdot \frac{T - \text{Potential\_Max\_Payout}}{\text{Potential\_Max\_Payout}}R(r,Potential_Max_Payout)=1+100r​⋅Potential_Max_PayoutT−Potential_Max_Payout​

We calculate the potential max payout, by assuming a market share of 100%

Potential_Max_Payout(T,S,Smin,Smax)==min⁡(T,B(x=1)F(T,S)⋅L(x=1,T,S)⋅H(x=1,S))=min⁡(T,TF(T,S)⋅1⋅H(x=1,S))=min⁡(T,TF(T,S)⋅H(x=1,S))\begin{aligned} & \text{Potential\_Max\_Payout}(T, S, S_{\text{min}}, S_{\text{max}}) = \\ & = \min\left(T, \frac{B(x=1)}{F(T, S)} \cdot L(x=1,T,S) \cdot H(x=1, S)\right) \\[2ex] & = \min\left(T, \frac{T}{F(T, S)} \cdot 1 \cdot H(x=1, S)\right) \\[2ex] & = \min\left(T, \frac{T}{F(T, S)} \cdot H(x=1,S)\right) \end{aligned}​Potential_Max_Payout(T,S,Smin​,Smax​)==min(T,F(T,S)B(x=1)​⋅L(x=1,T,S)⋅H(x=1,S))=min(T,F(T,S)T​⋅1⋅H(x=1,S))=min(T,F(T,S)T​⋅H(x=1,S))​

Alignment in the Opinion Market:

  • Participant Alignment: When a participant's response aligns with the Surprisingly Popular Answer (SPA) for the factual question (Q).

  • Content Contributor Alignment: Indicates alignment when a content contributor's stance in the opinion piece aligns with either the Popular Answer or Surprisingly Popular Answer.

Olas Global Pool Fee

Any amount from Total Tips or Content Contributor's Stake not going to the Writer goes to the Olas Global Pool to fund better opinions in the future.

Olas Opinion Market
Dynamic Threshold
SPA Payout Curve
PA Payout Curve